이 게시물에서는 CentOS 7버전의 TCP Wrapper 개념과 설정 방법에 대해 설명합니다. TCP Wrapper 설정으로 특정 서비스에 대한 액세스를 차단하는 방법을 설명합니다.
What are TCP Wrappers?
TCP Wrapper는 악의적인 공격으로부터 컴퓨터를 보호하는 데 사용되는 보안 소프트웨어 유형입니다. SSH, FTP 및 Telnet과 같은 특정 서비스에 대한 액세스를 제어하는 데 사용됩니다. 또한 들어오는 연결을 기록하고 동시 연결 수를 제한하는 데 사용할 수 있습니다.
How to Configure TCP Wrappers in CentOS7
1. 먼저 TCP Wrapper 패키지를 설치합니다 :
sudo yum install tcp_wrappers
2. /etc/hosts.deny 파일에 서버로 접근 차단할 서비스 및 IP 를 지정합니다 :
vi /etc/hosts.deny
3. 예를 들어 모든 IP에 대해 SSH 연결을 차단하려면 아래와 같이 추가합니다 :
sshd: ALL
4. /etc/hosts.allow 파일에 서버로 접근 허용할 서비스 및 IP 를 지정합니다 :
vi /etc/hosts.allow
5. 예를 들어 특정 IP 대역에 대해서 SSH 연결을 허용하려면 다음 줄을 추가합니다 :
sshd: 10.10.10. # 10.10.10. 은 실제로 10.10.10.0(/24) 와 같습니다.
이때 동일한 데몬에 대해서 아래와 같이 한번에 쓸수도, 여러줄로 기재할 수 있습니다.
sshd, in.telnetd: ALL
sshd: ALL
in.telnetd: ALL
이는 IP에 대해서도 동일하며 구분에는 ","(콤마)를 사용합니다.
sshd: 10.10.10., 20.20.20., 30.30.30.30
# A server
sshd: 10.10.10.
# B server
sshd: 20.20.20.
# C server
sshd: 30.30.30.30
6. 설정 해준 뒤 서비스를 재시작합니다 :
sudo systemctl restart sshd
TCP Wrapper 설정은 TCP 관련 모든 Connection 제어를 하는 것은 아닙니다.
네트워크 관련 서비스 중 libwrap.so 를 사용하는 서비스만 적용되며 라이브러리 링크를 확인하는 방법은 아래와 같습니다.
for file in /usr/sbin/*; do ldd $file 2>/dev/null | grep -q libwrap.so && echo $file; done
Conclusion
이 블로그 게시물에서는 CentOS 7 버전에서 TCP Wrapper 를 구성하는 방법에 대해 설명했습니다.
일반적으로 /etc/hosts.deny 파일에는 ALL: ALL 으로 모든 서비스 및 IP를 차단하는 것을 기본으로 하고,
접근 허용할 서비스 및 IP 를 /etc/hosts.allow 파일에 지정하여 관리하는 식으로 사용합니다.