TCP Wrapper 편집하기

IT위키

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.

편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.

최신판 당신의 편집
1번째 줄: 1번째 줄:
[[분류:리눅스 프로그램]][[분류:보안 도구]]
==개요==
==개요==
* 주요 서비스에 대해 IP기반으로 접근을 통제하는 중앙통제 ACL 시스템
* 서비스별 중앙통제 ACL 시스템
* 리눅스 또는 BSD 같은 운영 체제의 인터넷 프로토콜 서버에서 네트워크 접근을 필터링하기 위해 사용됨
* 리눅스 또는 BSD 같은 운영 체제의 인터넷 프로토콜 서버에서 네트워크 접근을 필터링하기 위해 사용됨
* 대부분 서비스 자체적으로 ACL기능을 제공하기 때문에 점점 안 쓰이는 분위기다.
* 대부분 서비스 자체적으로 ACL기능을 제공하기 때문에 점점 안쓰이는 분위기다.


== TCP Wrapper 접근제어 가능 서비스 ==
'''사용하기 간편하지만 방화벽처럼 모든 서비스 및 포트를 통제 가능한 것이 아님에 주의.'''
* FTP
* Telnet
* SSH
* TFTP
* finger
* systat
* rlogin
* rsh
* talk
* exec


'''httpd는 해당사항이 없다!'''
==지양되는 기술==
* 현대 리눅스에선 네트워크 단위의 접근 통제, 서비스 자체적인 ACL이 지원되고 있기 때문에 TCP Wrapper의 사용은 지양된다.<br>[https://fedoraproject.org/wiki/Changes/Deprecate_TCP_wrappers#Deprecate_TCP_wrappers 페도라 위키(원문) : 현대 리눅스에서 TCP Wrapper는 지양되어야 한다는 내용]


==사용 방법==
==사용 방법==
hosts.allow와 hosts.deny를 통해 서비스별 필터링을 수행한다.
hosts.allow와 hosts.deny를 통해 서비스별 필터링을 수행한다.
 
<pre class='shell'>
* /etc/hosts.allow: 접근을 허용할 Source IP 설정
서비스 목록 : 대상 호스트
* /etc/hosts.deny: 접근을 제한할 Source IP 설정
<pre class="shell">
서비스 목록: 호스트 목록
</pre>
</pre>
형태로 사용된다. 특정 서비스에 대한 접근 통제만 하려면 hosts.deny만 작성해도 된다.
형태로 사용된다. 특정 서비스에 대한 접근 통제만 하려면 hosts.deny만 작성해도 된다.


* 둘다 설정되어 있을 경우 allow가 우선순위 높음
=== 서비스 목록 ===
서비스명이 아닌 실행 데몬명으로 적어야 한다.
* 예를 들어 telnet제어 시 in.telnetd라고 적는다.
* 복수의 경우 따옴표로 구분한다.


=== 호스트 목록 ===
아래와 같이 표현할 수 있다.
* 192.168.10.
* 192.168.10.0/255.255.255.0
* .itwiki.kr
* 192.168.10.0/255.255.255.0, .itwiki.kr
* .itwiki.kr EXCEPT crack.itwiki.kr
* .kr EXCEPT www.crack.kr
===hosts.deny===
===hosts.deny===
접속을 막을 목록을 관리한다. 화이트리스트 기반으로 운영하려면 아래와 같이 설정한다.
접속을 막을 목록을 관리한다. 화이트리스트 기반으로 운영 하려면 아래와 같이 설정한다.
<pre class="shell">
<pre class='shell'>
# vi /etc/hosts.deny
# vi /etc/hosts.deny
ALL:ALL
ALL : ALL
</pre>
===hosts.allow===
화이트리스트 기반으로 운영하려면 hosts.deny에서 ALL:ALL로 다 막아놓고 hosts.allow에 허용할 서비스만 연다.
<pre class="shell">
# vi /etc/hosts.allow
ALL:localhost
in.telnetd:192.168.10.
sshd, vsftpd:.itwiki.kr EXCEPT crack.itwiki.kr
</pre>
</pre>


== 로그 ==
TCP Wrapper가 기록하는 로그 내용은 운영체제별로 다음 장소에 기록
* aix: /var/admin/messages
* hpux10: /usr/spool/mqueue/syslog
* irix: /var/admin/syslog
* solaris: /var/log/syslog
* linux: /var/log/messages, /var/log/secure


==기타==
===hosts.allow===
* 잘 사용하진 않지만 Shell Command를 사용하여 어떤 서비스에 어떤 호스트가 접속할 경우 이메일을 발송하는 등의 고급 옵션을 지정할 수 있다.
화이트리스트 기반으로 운영 하려면 hosts.deny에서 ALL:ALL로 다 막아놓고 hosts.allow에 허용할 서비스만 연다.
* hosts.allow 맨 아래쪽에 다음과 같은 특수한 정책을 넣어 hosts.deny의 역할을 대신할 수 있다.
<pre class='shell'>
<pre class="shell">
# vi /etc/hosts.allow
# vi /etc/hosts.allow
ALL:localhost
ALL : localhost
in.telnetd:192.168.10.
in.telnetd : 192.168.10.10
sshd, vsftpd:.itwiki.kr EXCEPT crack.itwiki.kr
sshd : .itwiki.kr EXCEPT crack.itwiki.kr
ALL:ALL:Deny
</pre>
</pre>
== 보안 유의사항 등 ==
* 현대 리눅스에선 네트워크 단위의 접근 통제, 서비스 자체적인 ACL이 지원되고 있기 때문에 TCP Wrapper의 사용은 지양된다.<br>[https://fedoraproject.org/wiki/Changes/Deprecate_TCP_wrappers#Deprecate_TCP_wrappers 페도라 위키(원문): 현대 리눅스에서 TCP Wrapper는 지양되어야 한다는 내용]
* 다만 설정이 무척 간단하고 직관적이라 현장에선 아직 많이 사용되고 있다.
* 나열된 서비스가 아니면 통제가 안되므로 TCP Wrapper 만으로 서버를 보호하기엔 부족하여 보안 감사, 심사 시 적절한 서버 접근 통제 시스템으로 불인정되기도 한다.
* CentOS 8 부터는 기본적으로 지원이 안된다. epel로 설치는 가능하지만 sshd 등에서 TCP Wrapper 모듈을 참조하고 있지 않으므로 실제 동작은 안된다. 이 때 자동화된 보안 점검 도구에선 단순히 hosts.allow나 hosts.deny만 확인하고 접근 통제가 되는 것처럼 인지될 수 있으니 주의가 필요하다.
IT위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 IT위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소 편집 도움말 (새 창에서 열림)