본문 바로가기

Linux Unix/Command

[ Linux ] hosts.allow, hosts.deny - IP, 서비스 차단하기

반응형

/etc/hosts.allow/etc/hosts.deny 파일은 TCP Wrappers라는 접근 제어 시스템에서 사용됩니다. 이 설정은 주로 네트워크 서비스의 접근을 제한하거나 허용하는 데 사용됩니다.

변경 후 적용 시점

/etc/hosts.allow 또는 /etc/hosts.deny 파일을 변경한 경우, 해당 설정은 서비스 재시작 없이 즉시 적용됩니다. 이는 TCP Wrappers가 파일의 내용을 매 접속 시점에 읽기 때문입니다.

SSHD(SSH 데몬)와의 관계

sshd는 기본적으로 TCP Wrappers를 지원하므로, hosts.allowhosts.deny 파일에서 SSH 접근 제어를 설정할 수 있습니다. 설정이 적용되는 방식은 다음과 같습니다:

  1. 접속 요청 처리 순서
    • /etc/hosts.allow 확인: 먼저 이 파일을 확인하여 허용된 IP가 있는지 검사합니다.
    • /etc/hosts.deny 확인: 허용된 IP가 없으면, 이 파일을 확인하여 차단된 IP인지 검사합니다.
    • 위 두 파일에 해당하지 않으면, 기본적으로 접근이 허용됩니다.
  2. 설정 예제
    예를 들어, /etc/hosts.allow에 다음 설정이 있다면:
   sshd: 192.168.1.0/255.255.255.0

이는 192.168.1.0/24 대역에서 오는 SSH 접속을 허용한다는 뜻입니다.

반대로 /etc/hosts.deny에 다음 설정이 있다면:

   sshd: ALL

이는 기본적으로 모든 SSH 접속을 차단합니다. 하지만 hosts.allow에 명시된 대역은 예외로 허용됩니다.

적용 확인 방법

  1. SSH 접근 제어 설정이 제대로 적용되었는지 확인하려면, 테스트 머신에서 접속 시도 후 /var/log/auth.log (또는 journalctl -xe 명령어)에서 관련 로그를 확인할 수 있습니다.
  2. 예를 들어, SSH 접속 차단이 작동하는 경우:
   sshd[12345]: refused connect from 203.0.113.1

주의 사항

  • 최근 Linux 배포판에서는 OpenSSH에서 TCP Wrappers 지원이 기본적으로 비활성화되었거나 컴파일 시 포함되지 않을 수 있습니다. 이를 확인하려면 OpenSSH의 컴파일 옵션을 확인하거나 /etc/ssh/sshd_configAllowUsers 또는 AllowGroups 옵션을 사용하는 것이 더 권장됩니다.
반응형