TCP Wrapper(TCP 래퍼)는 Unix 및 Linux 운영체제 환경에서 네트워크 서비스에 대한 클라이언트의 접근을 제어하는 호스트 기반의 접근 제어(Access Control) 메커니즘입니다.
방화벽(Firewall)이 네트워크 통신 경로의 앞단에서 패킷 필터링을 수행한다면, TCP Wrapper는 서버 내부의 운영체제 단에서 특정 응용 프로그램(데몬)으로 들어오는 연결 요청을 IP 주소나 호스트네임 기반으로 허용하거나 차단하는 역할을 합니다.

동작 원리
클라이언트가 서버의 특정 서비스(예: SSH, FTP, Telnet 등)에 접속을 요청하면, 서버의 실제 서비스 데몬이 응답하기 전에 TCP Wrapper의 데몬인 tcpd가 해당 요청을 먼저 가로챕니다(Intercept). 이후 접근 제어 설정 파일을 검사하여 접속을 허용할지, 차단할지 결정합니다.
- 연결 요청: 클라이언트가 서버의 서비스 포트로 연결을 시도합니다.
- 가로채기: inetd 또는 xinetd (슈퍼 데몬)가 요청을 받아 실제 데몬을 실행하기 전에 tcpd(TCP 래퍼 데몬)에 처리를 넘깁니다.
- 규칙 검사: tcpd는 클라이언트의 IP를 확인하고 규칙 파일을 대조합니다.
- 결과 처리: 접근이 허용되면 실제 서비스 데몬으로 연결을 전달하고, 차단되면 연결을 즉시 끊습니다.
참고: TCP Wrapper는 libwrap.so 라이브러리와 동적 링크되어 컴파일된 프로그램에서만 동작합니다. (예: sshd, vsftpd 등)
접근 제어 정책 적용 순서 (핵심)
TCP Wrapper는 두 가지 설정 파일을 통해 접근을 제어하며, 파일의 적용 순서가 보안상 매우 중요합니다. 설정은 위에서 아래로 읽히며, 가장 먼저 일치하는 규칙이 즉시 적용됩니다.
| 순서 | 확인 파일 | 동작 방식 |
| 1 | /etc/hosts.allow | 허용 규칙 검사. 클라이언트의 IP/호스트가 이 파일의 규칙과 일치하면, 즉시 접근을 허용하고 검사를 종료합니다. |
| 2 | /etc/hosts.deny | 차단 규칙 검사. hosts.allow에 일치하는 항목이 없을 때 검사합니다. 규칙과 일치하면 즉시 접근을 차단합니다. |
| 3 | 기본 정책 | 위 두 파일에 클라이언트의 정보가 모두 없다면, **기본적으로 접근을 허용(Default Permit)**합니다. |
보안 권장 사항 (Default Deny 원칙):
TCP Wrapper는 기본적으로 허용 정책을 띠기 때문에, 보안을 강화하려면 /etc/hosts.deny에서 모든 접근을 차단(ALL: ALL)하고, /etc/hosts.allow에서 필요한 접근만 명시적으로 허용하는 화이트리스트(Whitelist) 방식을 사용하는 것이 일반적입니다.
설정 파일 구문 및 예시
설정 파일의 기본 구문은 다음과 같습니다.
1. /etc/hosts.deny 설정 예시 (모든 접근 차단)
이 설정은 시스템의 기본 방어막 역할을 합니다.
# 모든 서비스(ALL)에 대해 모든 클라이언트(ALL)의 접근을 차단
ALL : ALL
2. /etc/hosts.allow 설정 예시 (특정 접근 허용)
hosts.deny로 모두 막은 상태에서 필요한 곳만 열어줍니다.
# SSH 데몬(sshd)에 대해 192.168.1.0/24 대역의 접근 허용
sshd : 192.168.1.
# FTP 데몬(vsftpd)에 대해 특정 IP 하나만 허용
vsftpd : 10.0.0.50
현대의 TCP Wrapper
과거에는 Unix/Linux 보안의 핵심이었으나, 현대 인프라 환경에서는 iptables, firewalld, ufw와 같은 커널 수준의 패킷 필터링 방화벽이나 클라우드 보안 그룹(Security Group)이 더욱 정교한 제어를 제공하므로 그 역할이 상당 부분 대체되었습니다. 또한, 최신 리눅스 배포판(예: RHEL 8 이상, Ubuntu 최신 버전 등)에서는 기본 패키지에서 TCP Wrapper 지원이 중단되거나 제외되는 추세입니다.
하지만 여전히 레거시 시스템을 유지보수하거나, '심층 방어(Defense in Depth)' 관점에서 2차 방어선으로 응용 계층 접근 제어의 기본 원리를 이해하는 데는 필수적인 개념입니다.
'보안' 카테고리의 다른 글
| [보안점검도구] John the Ripper(존 더 리퍼) (0) | 2026.02.22 |
|---|---|
| [보안점검도구] 트립와이어(Tripwire) (0) | 2026.02.22 |
| 분산 신원 증명(DID, Decentralized Identity) (0) | 2026.02.22 |
| 세션(Session) 기반 인증과 JWT(JSON Web Token) (0) | 2026.02.22 |
| JWT(JSON Web Token) (0) | 2026.02.22 |