HP-UX

TCP Wrapper 에 관해서

 
이명구
비정기 기여자

TCP Wrapper 에 관해서

오늘은 질문이 많네요 ^^



HP-UX에 TCP Wrapper 나 iptables 같은 프로그램이 존재 하는지요 혹시나 위 두개의 프로그램이 설치 되는지 궁금합니다 혹시 관련 인스톨

문서가 있다면 부탁 드립니다..



감사 합니다.
3 응답 3
고재진
중학생

TCP Wrapper 에 관해서

tcp wrapper나 iptables는 hp에서 제공하는 건 없습니다.



http://hpux.cs.utah.edu/

여기 사이트에 가면 원하는 프로그램을 얻을수 있을겁니다..



hp에서는 ipsec이라는 프로그램이 있습니다.

software.hp.com에 가시면 구하실수 있을겁니다.



그럼 즐거운 하루되세요.
김영민_7
임시 조언자

TCP Wrapper 에 관해서

안녕하세요.

TCP Wrapper 설치 방법입니다.

그럼 수고하세요.



=================================================================

Tcp Wrapper





Tcp wrapper란 ?

TCP를 기반으로 한 네트워크 서비스(finger, ftp, telnet 등)의청을

받아 그 서비스를 실행하기전에 요청한 호스트에 대해 보안상으로

필요한 검사를 하여 서비스가 실행되기 이전에 공격을 막을 수 있도록

해주는 프로그램이다.



Tcp wrapper 설치방법 및 환경설정



1. tcp_wrapper를 빅컴 홈페이지의 자료실에서 다운을 받는다.



2. 입수한 프로그램을 적당한 디렉토리에서 압축을 푼다.( /data)



예) 여기에서는 super-user 로 작업합니다.



(bigcom>root)/# ls

tcp_wrappers_7_2_tar.gz



(bigcom>root)/# gzip -d tcp_wrappers_7_2_tar.gz



(bigcom>root)/# tar xvf tcp-wrappers_7_2_tar



(bigcom>root)/# ls



tcp-wrappers_7_2



(bigcom>root)/# cd tfcp-wrappers_7_2



(bigcom>root)/# ls



BLURB fromhost.c patchlevel.h tcpd.8

Banners.Makefile hosts_access.3 percent_m.c tcpd.c

CHANGES hosts_access.5 percent_x.c tcpd.h DISCLAIMER

hosts_access.c printf.ck tcpdchk.8 Makefile hosts_ctl.c

ptx.c tcpdchk.c README hosts_options.5 refuse.c tcpdmatch.8

README.IRIX inetcf.c rfc931.c tcpdmatch.c README.NIS inetcf.h

safe_finger.c tli-sequent.c clean_exit.c misc.c scaffold.c

tli-sequent.h diag.c miscd.c scaffold.h tli.c environ.c mystdarg.h

setenv.c try-from.c eval.c myvsyslog.c shell_cmd.c update.c

fakelog.c ncr.c socket.c vfprintf.c fix_options.c options.c

strcasecmp.c workarounds.c





3. 컴파일 방법



1) 우선 인스톨 하려는 시스템의 타입을 알아야 하므로 시스템의

타입을 아래와 같이확인한다.

(bigcom>root)/# uname -a

SunOS test 5.6 Generic_105181-16 sun4u sparc SUNW,Ultra-1uname -a



2) 프로그램을 풀어놓은 디렉토리에서 "make"를 수행하면



make sys-type 의 형태로 입력하라는 메세지와 함께 샘플 타입이

리스트되며, 그중에서 자신의 시스템에 맞는것을 골라 아래와 같

이 컴파일한다.



(bigcom>root)/# make sunos5







만약, C 컴파일러가 gcc이면 # make sunos5 CC=gcc 로 수정해서

컴파일한다.

config-check에서 error가나는 경우



Makefile을 "vi"에디터로 열어40 Line째 부터 기술된 REAL_DAEMON_DIR

부분을 자신의 시스템에 맞는것을 골라 Uncomment한후, 다시 컴파일한다.

물론, 처음부터 아래와 같이 수행하면 만사 OK !

(bigcom>root)/# make REAL_DAEMON_DIR=/usr/sbin sunos5



컴파일 에러가 생긴다면 현재 사용중인 서버의 컴파일이 무엇인지를 파악한후

실행하시면 됩니다.

컴파일러가 gcc 일경우

(bigcom>root)/# make REAL_DAEMON_DIR=/usr/sbin sunos5 CC=gcc



3) 컴파일이 정상적으로 끝나면 tcpdchk, safe_finger, try-from,

tcpdmatch, tcpd 등 5개의 실행화일이 생성된다.

각각의 기능을 살펴보면 아래와 같다.



- tcpd : TCP Wrapper 프로그램(데몬)

- tcpdchk : TCP Wrapper 컨피규레이션 체크 프로그램

- tcpdmatch : TCP Wrapper 엑세스 콘트롤 체크 프로그램

- try-from : 유저 체크 유틸리티

- safe_finger : finger 체크 유틸리티



4. 인스톨 방법



1) Makefile에는 인스톨 Target이 없기 때문에 수동으로 적당한 곳에 인스톨



한다.(여기서는 /usr/local/etc에 두기로 한다.)



(bigcom>root)/# cp tcpd tcpdchk tcpdmatch try-from safe_finger /usr/local/etc





2) 온라인 매뉴얼의 인스톨



(bigcom>root)/# ls *.

hosts_access.3 hosts_options.5 tcpdchk.8

hosts_access.5 tcpd.8 tcpdmatch.8

(bigcom>root)/# cp *.3 /usr/local/man/man3

(bigcom>root)/# cp *.5 /usr/local/man/man5

(bigcom>root)/# cp *.8 /usr/local/man/man8

* 매뉴얼이 복사가 되지않고 에러가 생긴다면..

복사하기전에 매뉴얼 디렉토리를 만들어 주어야 한다.

(bigcom>root)/# mkdir /usr/local/man/man3

(bigcom>root)/# mkdir /usr/local/man/man5

(bigcom>root)/# mkdir /usr/local/man/man8







5. 사용 방법(환경설정)



1) telnet등 각종 어플리케이션의 엑세스를 상기 TCP Wrapper 프로그램으로



교체하기 위해 "/etc/inetd.conf"화일을 편집한다.



(bigcom>root)/# vi /etc/inetd.conf



예로써 다음을 보면,



ftp stream tcp nowait root /usr/sbin/in.ftpd in.ftpd

telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd



와 같은 형태로 기술되어 있는 밑줄 부분을 /usr/local/etc/tcpd 로

아래와 같이 바꾸면 된다.



ftp stream tcp nowait root /usr/local/etc/tcpd /usr/sbin/in.ftpd

telnet stream tcp nowait root /usr/local/etc/tcpd /usr/sbin/in.telnetd





2) "/etc/inetd.conf"화일에서 ftp, telnet외에 finger, exec, rsh, rlogin,

tftp, talk, comsat등 다른 tcp 또는 udp 서비스들도 사용할수 있으므로

엑세스 콘트롤 해야할 필요가 있는 서비스들을 /usr/local/etc/tcpd 으로

교체해 주면된다.



3) 다음에는 tcpd에 의하여 엑세스 콘트롤을 결정하는 룰(규칙)을 기술하는

콘트롤 화일을 작성한다.







i) 우선 엑세스를 거부하는 화일 "/etc/hosts.deny"를 작성한다.







(bigcom>root)/# cat /etc/hosts.deny



ALL: ALL : ( (/usr/local/etc/safe_finger -l %u@%h;\

echo "--- USERS LIST ---";/usr/bin/rusers -l -i %h) | \



/usr/bin/mail -s "%d에의해 %h에서 test로..." webmaster@domainname) &



ALL: ALL : (/usr/local/etc/safe_finger -l @%h | \



/usr/bin/mail -s %d-%h root) &



상기 첫번째 행은 외부에서 침입시도시 그 log를 전산실에 있는 test의

일정한 장소로 메일을 보내도록 한 것이며, 두번째



행은 그 시스템의 root로 메일을 보내도록 기술한 것이다.



ii) 다음에는 엑세스를 허락하는 화일 "/etc/hosts.allow"를 작성한다.



(bigcom>root)/# vi /etc/hosts.allow

in.ftpd: LOCAL .bigcom.co.kr 210.116.

in.telnetd: LOCAL .bigcom.co.kr 210.116.



만일, 데몬명이 서로 틀리거나 맞지않으면 모두 엑세스가 허용되지

않는등의 현상이 발생하므로 주의 바란다.)



iii) 콘트롤 화일의 기술법

-. 콘트롤 화일의 서식



서버프로그램: 클라이언트 리스트



-. 클라이언트 리스트 기술례



a) 호스트 IP Address에 의한 기술



165.133.1.43



b) 네트웍 어드레스와 네트 마스크에 의한 기술



165.133.3.0/255.255.255.0



c) 네트 그룹에 의한 기술



@local-network



(이 경우 지정한 네트웍 그룹이 /etc/netgroup에 등록 필요)



d) 호스트 명에 의한 기술



test.bigcom.co.kr



.bigcom.co.kr



(상기 도메인명만을 기술하면 그 도메인에 등록된 모든 호스트에 적용)



e) /etc/host내의 모든 로칼 호스트명을 표시 하는와일드카드



LOCAL



f) 모든 호스트를 표시 하는 와일드카드



ALL



g) 유저명과 호스트명의 조합 사용



webmaster@domainname



-. 기술식과 와일드카드의 표기 방법은 상기외에도 있으므로 온라인

매뉴얼을 찾아보기 바란다.



-. hosts.allow와 hosts.deny에 기술되지 않은 호스트에 대하여는

엑세스가 허가되므로 통상은 hosts.deny 에서 모든 호스트를

거부한후 hosts.allow 에서 엑세스 허가를 지정하는 방법을 권한다.



-. 본 문서에서의 클라이언트 리스트의 쉘 스크립트는 생략해도 무방하나

여기서는 콘트롤 화일내의 패턴 매치가 참일경우



쉘 스크립트가 수행 되도록 하였으므로 참고 바란다.



특히, %h, %d 등은 TCP Wrapper에서의 표현으로 각각 호스트명과 데몬



프로세스명을 나타낸다.





6. daemon 의 구동



(bigcom>root)/pub# ps -ef | grep inetd



root 128 1 4 10월 01 ? 500:59 /usr/sbin/inetd -s



(bigcom>root)/# kill -HUP 128



여기서 128은 /etc/inetd 데몬의 Process 번호

서보인
유치원

TCP Wrapper 에 관해서

tcp wrapper는 http://software.hp.com 에서 search 부분에

tcp wrapper 라고 찾으시면 있습니다.



해당 유틸을 받아서 설치 하신다음, 셋팅을 하시면 됩니다.

셋팅 방법은 다음과 같습니다.



# vi /etc/inetd.conf

원하는 부분을 수정합니다. 예를 들어 ftp, telnet부분은..



원래는

ftp stream tcp nowait root /usr/lbin/ftpd in.ftpd

telnet stream tcp nowait root /usr/lbin/telnetd in.telnetd



수정후

ftp stream tcp nowait root /usr/local/etc/tcpd ftpd -l

telnet stream tcp nowait root /usr/local/etc/tcpd telnetd



그 다음은 /etc/hosts.deny 와 /etc/hosts.allow 를 수정하시고..



inetd 데몬을 다시 실행 시키시면 됩니다.( #inetd -c)