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 서비스에 대한 기본 차단 규칙을 추가합니다.
2) /etc/hosts.allow에 허용할 IP 등록
접근을 허용할 IP 주소를 등록합니다.
sshd: 접근허용할 ip.
# vi /etc/hosts.allow
- 예시: 123.123.123.123 아이피를 허용하고 111.111.111.* 의 아이피 대역을 허용한다는 뜻입니다.
3) SSH 데몬 재시작 및 접속 확인
위 설정을 적용한 뒤 SSH 데몬을 재시작하고 접속 가능 여부를 확인합니다.
# service sshd restart
2. 방화벽 관리 기능으로 SSH 접근 제어하기
유동 IP(수시로 바뀌는 IP) 환경이라면, 서버 내부 설정 대신 방화벽을 통해 제어하는 방법을 사용할 수 있습니다. 환경에 맞게 선택하세요.
1) 방화벽 활성화
나의 서비스 관리 > 서버관리 > 방화벽 관리 메뉴에서 [방화벽 초기화]로 방화벽을 활성화합니다.
- [방화벽 초기화]를 통해 방화벽 기능을 켭니다.
2) 포트 목록 확인 및 SSH 정책 설정
활성화 후 현재 서버에서 열려 있는 포트 목록이 표시되며, 간단한 인터페이스로 SSH 접속 설정을 할 수 있습니다.
- SSH(기본 포트 22) 접근 허용 IP를 정책으로 지정해 관리하세요.