본문으로 건너뛰기

SSH 원격 접속을 특정 IP에서만 허용할 수 있나요? (리눅스)

💡 요약 정리

  • SSH를 어디서나 열어두면 위험할 수 있습니다. 특정 IP만 허용하도록 제한하세요.
  • 고정 IP라면 /etc/hosts.deny 및 /etc/hosts.allow로 설정할 수 있습니다.
  • 유동 IP 환경이라면 방화벽 관리에서 SSH 접근 제어를 사용할 수 있습니다.
  • 방화벽 적용 시 허용된 IP/포트만 통과합니다. 필요한 항목을 반드시 추가하세요.

SSH를 아무 곳에서나 접속 가능하게 두면 보안상 매우 취약할 수 있습니다. 특정 IP에서만 접속을 허용하도록 설정해 안전하게 사용할 수 있습니다.

원격지 IP가 고정이 아니라면, IP 변경 시 외부 접속이 불가능해질 수 있습니다. 이 경우 서버 내부 설정 대신 방화벽 관리에서 SSH 접근을 제어하는 방법을 상황에 맞게 사용해 보세요.

1. 서버 내부에서 SSH 접근을 특정 IP만 허용하기

아래 순서로 리눅스 서버에서 SSH 접근 제어를 설정합니다.

1) /etc/hosts.deny에 기본 차단 추가

모든 SSH 접근을 기본 차단으로 설정합니다.

sshd: ALL
# vi /etc/hosts.deny
hosts.deny 파일에서 sshd: ALL 추가 예시 화면
  • hosts.deny 파일에 sshd 서비스에 대한 기본 차단 규칙을 추가합니다.

2) /etc/hosts.allow에 허용할 IP 등록

접근을 허용할 IP 주소를 등록합니다.

sshd: 접근허용할 ip.
# vi /etc/hosts.allow
hosts.allow 파일에서 SSH 허용 IP 등록 예시 화면
  • 예시: 123.123.123.123 아이피를 허용하고 111.111.111.* 의 아이피 대역을 허용한다는 뜻입니다.

3) SSH 데몬 재시작 및 접속 확인

위 설정을 적용한 뒤 SSH 데몬을 재시작하고 접속 가능 여부를 확인합니다.

# service sshd restart

2. 방화벽 관리 기능으로 SSH 접근 제어하기

유동 IP(수시로 바뀌는 IP) 환경이라면, 서버 내부 설정 대신 방화벽을 통해 제어하는 방법을 사용할 수 있습니다. 환경에 맞게 선택하세요.

1) 방화벽 활성화

나의 서비스 관리 > 서버관리 > 방화벽 관리 메뉴에서 [방화벽 초기화]로 방화벽을 활성화합니다.

방화벽 관리 초기화 화면 예시
  • [방화벽 초기화]를 통해 방화벽 기능을 켭니다.

2) 포트 목록 확인 및 SSH 정책 설정

활성화 후 현재 서버에서 열려 있는 포트 목록이 표시되며, 간단한 인터페이스로 SSH 접속 설정을 할 수 있습니다.

방화벽에서 오픈 포트 목록과 SSH 설정 화면 예시
  • SSH(기본 포트 22) 접근 허용 IP를 정책으로 지정해 관리하세요.
주의: 방화벽 설정 시 INBOUND/OUTBOUND 접근 정책에 허용된 IP 및 포트 외에는 차단됩니다. 정상 이용을 위해 필요한 포트와 IP는 반드시 별도로 열어 주세요.