- tcp_wrapper
/usr/sbin/tcpd 데몬에 의해 TCP 서비스를 제어하는 역할을 한다.
/etc/hosts.allow와 /etc/hosts.deny 파일을 가지고 설정한다.
- Rule 적용 순서
/etc/hosts.allow -> /etc/hosts.deny -> Allow
hosts.allow 에 적힌 내용 허용 -> hosts.deny에 적힌 내용 거부 -> 나머지 다 허용
(권장) 이 파일에 설정할 때 시스템이름이나 도메인 이름을 사용하지 말고 IP주소를 사용할 것을 권장합니다.
(권장) 또한, /etc/hosts.deny 파일에는 deny ALL로 설정한 후 접속을 허용할 주소만 /etc/hosts.allow 파일에 기록할 것을 권장한다.
(주의) 2개의 설정파일(/etc/hosts.allow, /etc/hosts.deny)에 정의를 할 때 저장하는 즉시 유효하므로 작성시에 주의하여야 합니다. (서비스를 restart 하는 방법이 아니므로 주의해야 한다.)
(주의) 서비스 차단시 portmap(111) 서비스는 다른 서비스들(EX: NFS, NIS)과 상관이 있으므로 주의해서 차단할 것을 권장한다.
- 규칙
파일 작성시 문법 규칙
deamon_list : client list [: shell_command]
deamon_list : 한 개 이상의 데몬 프로세스 혹은 에약어
client_list : 한 개 이상의 호스트 이름, 주소, 패턴 혹은 예약어
예약어
ALL : 모든 서비스 또는 모든 호스트를 나타냄
LOCAL : 같은 네트워크에 있는 모든 호스트
KNOWN : 이름이 KNOWN 호스트, 혹은 이름 또는 주소를 알고 있는 호스트
UNKNOWN : 이름이 UNKNWON 호스트, 혹은 이름이나 주소를 모르는 호스트
PARANOID : 호스트이름이 주소와 일치되지 않는 호스트(정방향/역방향 검색이 일치하지 않는 모든 호스트)
B EXCEPT A : 목록 B에서 A를 제외한 모든 B
패턴 형식
':' 의 위치에 유념하고 ALL과 ' : '은 공백이 있어야 한다.
Shell Command
명령
spawn : 현재 수행중인 프로세스의 자식프로세스(Child Process)로 수행
twist : 현재 수행중인 프로세스의 이미지 교체 후 수행
(프로세스의 이미지가 교체되므로 규칙의 마지막 옵션으로 사용해야 한다.
확장 옵션
%a (%A): 클라이언트(서버)의 주소
%c : 클라이언트의 정보(EX: user01@example.com)
%n (%N): 클라이언트의 이름
%d : 서비스 데몬의 이름
%h (%H): 클라이언트(서버) 이름 또는 주소
%p : 데몬 프로세스 ID
%s : 서버 정보
%u : 클라이언트 사용자 이름
- tcpd 데몬에 의해 제어되는 서비스 확인 방법
# which xinetd
/usr/sbin/xinetd
# ldd /usr/sbin/xinetd | grep libwrap -> 결과가 있으면 제어 가능
# strings /usr/sbin/xinetd | grep hosts -> 결과가 있으면 제어 가능
- 참고
hosts.deny 파일에
ALL: ALL 이라고 절대 적지 않는다.
어떤 데몬이 제어 되고 있는지 알 수 없기 때문에 문제가 발생 할 수 있다.
'Security > Linux Server' 카테고리의 다른 글
IDS (Instrusion Detect System)_실습_ snort 탐지확인 (0) | 2017.12.22 |
---|---|
IDS (Instrusion Detect System)_환경 구성_snort 설치/설정 (0) | 2017.12.22 |
방화벽( Firewall )_ iptables ( NAT ) (0) | 2017.12.21 |
방화벽 ( Firewall ) _ iptables ( 패킷 필터링 ) (0) | 2017.12.20 |
리눅스 서버 점검 (계정 잠금 임계값 설정 ) 쉘 스크립트 (0) | 2017.12.15 |