본문 바로가기

Linux Unix/Command

[ Linux ] hosts.allow, hosts.deny - 특정 서비스에서 특정 ip 접속 막기 (sshd)

반응형

특정 대역(예: 192.168.1.0/24)에서 오는 모든 접속을 허용하고, 그 외의 IP에 대해서는 SSH 접속만 차단하려면 /etc/hosts.allow/etc/hosts.deny 파일을 아래와 같이 설정할 수 있습니다.


설정 예제

  1. /etc/hosts.allow
    특정 대역에서 모든 서비스에 대한 접속을 허용:
   ALL: 192.168.1.0/255.255.255.0
  1. /etc/hosts.deny
    그 외 IP에 대해서 sshd 서비스만 차단:
   sshd: ALL

설정 동작 설명

  • /etc/hosts.allowALL: 192.168.1.0/255.255.255.0을 설정하면, 192.168.1.0/24 대역에서는 모든 서비스가 허용됩니다.
  • /etc/hosts.denysshd: ALL을 설정하면, 그 외 대역의 IP에서는 SSH 접속만 차단됩니다.
  • 다른 서비스는 차단되지 않습니다.

종합적인 설정

# /etc/hosts.allow
ALL: 192.168.1.0/255.255.255.0

# /etc/hosts.deny
sshd: ALL

주의 사항

  1. TCP Wrappers 지원 여부 확인
    OpenSSH가 설치된 환경에서 TCP Wrappers를 지원하지 않을 수 있습니다. 이를 확인하려면 sshd가 TCP Wrappers를 지원하는지 확인하거나 다음 명령어로 테스트해볼 수 있습니다:
   ldd /usr/sbin/sshd | grep libwrap

결과에 libwrap.so가 포함되어 있다면 TCP Wrappers를 지원합니다.

  1. 대안적인 방법
    TCP Wrappers가 지원되지 않는 경우에는 방화벽(iptables 또는 firewalld)을 사용하거나 /etc/ssh/sshd_config에서 설정을 추가하는 방법을 고려해야 합니다:
   Match Address *,!192.168.1.0/24
       DenyUsers *

 

반응형