유닉스 시스템 보안 설정 ( 솔라리스 9, 10)
-
Upload
solomon-solis -
Category
Documents
-
view
276 -
download
1
description
Transcript of 유닉스 시스템 보안 설정 ( 솔라리스 9, 10)
IT CookBook, 정보 보안 개론과 실습 : 시스템 해킹과 보안 (개정판 )
유닉스 시스템 보안 설정 ( 솔라리스 9, 10)
2/61
Contents
학습목표 계정 관리를 적절하게 수행할 수 있다 . 유닉스의 개별 서비스에 따른 취약점을 이해할 수 있다 . 유닉스의 각 취약점에 대해 적절한 보안 설정을 할 수 있다 . 유닉스 시스템에 대한 접근 제어를 적용할 수 있다 . 유닉스 시스템의 파일과 디렉터리에 대한 적절한 접근 권한을 설정할 수
있다
내용 계정 관리 서비스 관리 접근 제어 파일과 디렉터리 관리 패치
3/61
계정 관리
유닉스에서 계정 관리의 주요 사항 첫 번째 : 중복된 root 계정의 존재 여부 root 이외의 관리자 계정 존재 여부 확인
[ 그림 11-1] /etc/passwd 파일에 있는 계정 ID 와 그룹 ID 가 0 인 계정
grep ':0:' /etc/passwd
4/61
root 계정 이외의 다른 관리자 계정 생성 계정 생성
useradd 로 wish 계정 생성
/etc/passwd 파일 수정
/etc/passwd 파일 내용에서 사용자 ID 를 0 으로 바꾼다
[ 그림 11-2] root 이외에 계정 ID 가 0 인 계정 생성
실습 11-1 유닉스에서 관리자 계정 생성하기
1
useradd wish
vi /etc/passwd
2
5/61
패스워드 설정
생성한 계정의 패스워드 설정
[ 그림 11-3] 계정 ID 가 0 인 계정의 패스워드 설정
실습 10-1 윈도우 FTP 서비스 보안 설정하기3
passwd wish
6/61
로그 파일 디렉터리 (C:\Windows\system32\LogFiles)
su 명령으로 wish 계정으로 바뀐 뒤 , id 명령으로 root 확인
[ 그림 11-4] 계정 ID 가 0 인 계정의 동작 확인
실습 10-1 윈도우 FTP 서비스 보안 설정하기4
su wishidsu rootid
7/61
로그 파일 디렉터리 (C:\Windows\system32\LogFiles)
su 명령으로 wish 계정으로 바뀐 뒤 , id 명령으로 root 확인
[ 그림 11-4] 계정 ID 가 0 인 계정의 동작 확인
실습 10-1 윈도우 FTP 서비스 보안 설정하기4
su wishidsu rootid
8/61
유닉스에서 계정 관리의 두 번째 주요 사항 : 셸 계정에서 셸 제거 : /etc/passwd 파일에서 /bin/sh 와 같이 사용자의 셸이 정의된
부분을 /bin/false 로 바꿈
[ 그림 11-5] 계정의 로그인 셸 설정
실습 10-1 윈도우 FTP 서비스 보안 설정하기
9/61
유닉스의 계정에 대한 패스워드 정책 : shadow 파일 이용 패스워드 바꾼 날 , 패스워드를 바꾸기 전 최소 사용 기간 , 패스워드를 바꾸지 않고
최대한 사용할 수 있는 기간 , 패스워드를 변경하기 며칠 전에 경고를 보낼 것인지 ,
계정이 정지되고 불가능해지기까지의 기간 등 설정
[ 그림 11-6] wishfree 계정으로의 원격 접속 확인
실습 10-1 윈도우 FTP 서비스 보안 설정하기
10/61
서비스 관리
Inetd 데몬 수퍼 데몬 텔넷과 FTP 클라이언트가 서버 접속 요구시 확인 텔넷 연결 시도일 경우 : inetd 데몬의 설정 파일 /etc/inetd.conf 에서 데몬에 대한
설정 /etc/services 파일에서 설정된 포트 번호에 대해 클라이언트의 요청 시 텔넷 데몬
실행 FTP 연결 시도일 경우 : inetd 데몬이 이 연결을 FTP 서버에 인계 /etc/services 에 해당 데몬에 대한 포트가 정의되어 있지 않거나 , /etc/inetd.conf
파일에서 특정 서비스에 대한 연결 차단하면 해당 서비스에 대한 접속 불가능
11/61
서비스 관리
/etc/services 의 실제 내용
[ 그림 11-8] /etc/services 파일의 내용
[ 데몬 이름 ] [ 포트 번호 ]/[ 프로토콜 ]
12/61
서비스 관리
솔라리스 9 의 inetd 데몬• inetd.conf 파일 확인
[ 그림 11-9] /etc/inetd.conf 파일의 텔넷 데몬 설정telnet stream tcp6 nowait root /usr/sbin/in.telnetd
in.telnetd➊ ➋ ➌ ➍ ➎ ➏ ➐
13/61
서비스 관리
➊ 서비스 : 서비스 이름 정의 , /etc/services 에 정의
➋ 소켓 타입 (Socket Type) : TCP 일때 stream, UDP 일때 dgram 로 표기
➌ 프로토콜 : /etc/protocols 에 정의된 프로토콜 종류와 번호
TCP 는 /etc/protocols 파일에서 확인할
[ 그림 11-10] /etc/protocols 파일의 내용
telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd
➊ ➋ ➌ ➍ ➎ ➏ ➐
14/61
서비스 관리
➍ 대기 설정 : inetd 가 클라이언트에 서비스를 요청 받은 때 , 이후에 즉시 또 다른 요청을
처리할 것인지 여부에 따라 nowait, wait 로 구분 . TCP 는 반드시 nowait
➎ 로그인 이름 : 데몬을 어떤 사용자의 권한으로 수행할 것인지 명시
➏ 서버 : 해당 서비스를 수행하기 위해 어떤 프로그램을 실행할지를 절대 경로 입력
➐ 인자 (Argumnet) : 데몬을 실행하는 데 필요한 인자 값 입력
솔라리스의 /etc/rc3.d 디렉터리에서 snmp 데몬과 웹 서버인 아파치가
standalone 으로 실행되는 것 확인
[ 그림 11-11] /etc/rc3.d 디렉터리 밑의 파일들
15/61
서비스 관리
솔라리스 10 의 inetd 데몬• 솔라리스 10 버전에서도 inetd 데몬의 기본적인 동작 동일• inetd 데몬 관리 : svcadm 또는 inetadm 툴 사용
[ 그림 11-12] inetadm 실행 결과
inetadm
16/61
서비스 관리
• inetadm 실행 : 관련된 서비스 리스트의 목록이 출력• 옵션 ‘ -?’ 실행 : 사용방법 출력
[ 그림 11-13] inetadm -? 실행 결과
17/61
서비스 관리
• 옵션 확인 • -?: 도움말 출력 • -p : 기본 inetd 등록 정보 값 출력 • -l : inet 서비스에 대한 inetd 등록 정보 값 출력 • -e : inet 서비스 활성화 • -d : inet 서비스 비활성화 • -m: inet 서비스 inetd 등록 정보 값 수정 • -M : 기본 inetd 등록 정보 값 수정•-p 옵션으로 inetd 등록 정보 값 확인
[ 그림 11-14] inetadm -p 실행 결과
inetadm -p
18/61
서비스 관리
동작중인 서비스 확인 솔라리스 10 최초 설치 후 : NMAP( 포트 스캐너 ) 이용 동작 중인 포트 점검
[ 그림 11-15] 솔라리스 10 의 포트 스캔 결과
19/61
서비스 관리
주요 서비스 보안 설정 FTP(File Transfer Protocol, 21)
• FTP 에 대한 보안 이슈 - 원격 버퍼 오버플로우 공격 - 포맷 스트링 공격 - Anonymous 로그인 - root 계정의 로그인 허용
20/61
FTP 계정 생성
생성한 계정의 패스워드 설정
FTP 계정 디렉터리 생성
Anonymous 계정이 사용할 디렉터리 생성 , 실행에 필요한 ls 명령 등을 복사 Anonymous 계정의 역할에 따라 필요한 파일 복사
실습 11-2 FTP Anonymous 접속 설정하기
1
useradd ftp
useradd ftp
2
21/61
/etc/passwd 파일 수정
생성된 FTP 계정의 /etc/passwd 파일 내용 바꿈
[ 그림 11-16] /etc/passwd 파일에서 anonymous 계정에 이용할 FTP 계정의 설정 변경
실습 11-2 FTP Anonymous 접속 설정하기
3
ftp:x:1002:1::/home/ftp:/bin/sh->
ftp:x:30000:30000:AnonymousFTP:/export/home/ftp:/nosuchshell
22/61
/etc/shadown 파일 수정
생성된 FTP 계정의 /etc/shadow 파일 내용 바꿈
[ 그림 11-17] /etc/shadow 파일에서 anonymous 계정에 이용할 FTP 계정의 설정 변경
실습 11-2 FTP Anonymous 접속 설정하기
4
ftp:*LK*:::::::-> ftp:NP:6445::::::
23/61
ftpg 그룹 생성
/etc/group 에 ftpg 그룹 생성
Anonymous 계정으로 로그인 확인
Anonymous 계정으로 로그인
[ 그림 11-18] 생성한 FTP 계정을 이용한 Anonymous 계정 로그인 성공
실습 11-2 FTP Anonymous 접속 설정하기
5
ftpg::30000:
6
ftp 192.168.68.5
24/61
Anonymous 계정은 FTP 를 운영할 때 유용하지만 남용하면 보안에 치명적 Anonymous 계정으로 로그인되는 디렉터리에 시스템에서 운영 중인 웹 서비스의
코드나 관리 매뉴얼 등이 저장되어 있다면 , 다른 보안 사고 발생 가능 부득이한 경우 제외하고 Anonymous FTP 를 만들면 안 되며 , 철저히 관리 FTP 의 또 다른 보안 사항은 로그인 사용자의 제한 FTP 는 해당 시스템에 계정이 있는 사용자라면 누구나 로그인 가능
[ 그림 11-19] 일반 계정을 이용한 FTP 로그인
실습 11-2 FTP Anonymous 접속 설정하기
25/61
FTP 로그인 사용자 제한 : /etc/ftpusers 파일 이용
FTP 접속 차단하려는 사용자 계정 목록 /etc/ftpuser 에 등록
[ 그림 11-20] /etc/ftpusers 설정
리눅스의 경우 설치 초기부터 시스템 계정 대부분 ftpusers 에 등록
[ 그림 11-21] /etc/ftpusers 에 등록한 계정을 이용한 FTP 로그인 시도
실습 11-2 FTP Anonymous 접속 설정하기
vi /etc/ftpusers
26/61
SSH(Secure Socket Shell, 22)• 암호화된 통신• SSH1 은 접속과 인증을 위해서 RSA(Rivest-Shamir-Adleman) 를 이용• 통신의 암호화 위해 Blowfish, DES, 3DES, RC4 및 IDEA 등 사용
실습 11-2 FTP Anonymous 접속 설정하기
27/61
새로운 연결 설정 위해 SSH1 과 SSH2 등의 프로토콜 중 하나 선택 SSH2 의 키 교환 방식 : RSA 와 DSA(Digital Signature Algorithm) 두가지
SSH 클라이언트 설치
Secure CRT 내려받아 설치
프로토콜 및 인증 방법 선택
프로토콜은 SSH2 로 , 인증 방법은 패스워드로 선택
[ 그림 11-22] Secure CRT 를 이용한 SSH2 접속 시도
실습 11-3 SSH 접속하기
1
2
28/61
SSH2 로 선택하고 연결 시도하면 서버 측의 키에 대한 MD5 해시 값 확인
[ 그림 11-23] 서버 측 시스템의 MD5 해시 값 사용자 계정과 패스워드 입력 : 사용자 계정과 패스워드 입력하고 로그인 시도
[ 그림 11-24] SSH 계정과 패스워드 입력
실습 11-3 SSH 접속하기
3
29/61
연결 확인 : 접속에 성공하고 셸 확인
[ 그림 11-25] SSH 로그인
실습 11-3 SSH 접속하기
4
30/61
서비스 관리
텔넷 (Telecommunication network, 23)• 텔넷 서비스 이용 접속 : 사용 자체가 위험 , 사용 자제• 관리자가 원격 시스템에 접속 시도할 경우 root 계정의 접속 차단
[ 그림 11-26] root 계정으로 로그인 시 연결 끊김
• /etc/default/login 파일의 console=/dev/console 설정
[ 그림 11-27] root 계정에 대한 원격 로그인 제한
vi /etc/default/login
31/61
서비스 관리
• console=/dev/console 에 주석처리 (#) 를 하면 원격에서 root 계정으로 접속 가능
[ 그림 11-28] ‘console=/dev/console’ 주석 처리 후 root 계정으로 로그인• root 계정의 원격 접속 차단 - HP-UX 의 경우 : /etc/securetty 파일의 맨위에 console 추가 . • 셸이 필요 없는 계정 : 계정 관리에서 확인했듯이 /etc/passwd 파일의 /bin/sh 과 같이 설
정한 부분을 /bin/false 로 바꿔줌• 원격지에서 root 계정에 대한 로그인이 불가능하도록 설정했다면 , 텔넷 로그인 시도할 때
출력되는 경고문 설정• 경고문 : 해킹에 직접 영향을 주지는 않지만 해킹의도 약할 때 해킹 저지• 명백한 경고는 법적 책임 물을 때 효과적
32/61
서비스 관리
• 경고문은 /etc/issue 파일에 입력 , issue 파일은 솔라리스의 경우 새로 생성 , 레드햇의 경 우 이미
• 있으므로 수정 사용 . • issue 파일에 다음 내용 입력
[ 그림 11-29] /etc/issue 파일의 편집• 텔넷으로 로그인 시도 시 경고문이 출력되는 것 확인
[ 그림 11-30] 텔넷 로그인 시 /etc/issue 에 저장된 경고문 출력
vi /etc/issue
33/61
서비스 관리
finger (79)• 서버에 현재 로그인 중인 사용자 계정 정보 확인하여 해커가 사용자의 이용 시간 및 계정의
존재 유무 확인
[ 그림 11-31] finger 명령을 이용한 시스템 계정 정보 확인
finger -l @192.168.1.129
34/61
서비스 관리
SUNRPC(SUN Remote Procedure Call protocol, 111)• RPC : 자신에게 연결 요청한 클라이언트에 등록된 포트 중 적당한 포트 할당• 클라이언트 : RPC 에 서버에 대한 연결 정보를 얻어 자신에 필요한 서비스 제공 포트로 재접속• rpcinfo 명령 : 현재 구동 중인 RPC 정보 확인
[ 그림 11-33] rpcinfo 명령 수행 결과
rpcinfo
35/61
서비스 관리
• 서비스의 취약점 : 원격 버퍼 오버플로우• RPC 와 관련한 주요 취약 서비스 :rpc.statd, rpc.ttdbserver 등• RPC 중지 : inetadm 명령에 -d 옵션 사용 서비스별로 중지
[ 그림 11-34] RPC 서비스 중 rstat 중지
inetadm -d svc:/network/rpc/rstat
36/61
서비스 관리
Exec(512), Login(513), Shell(514)• Exec(512), Login (513), Shell(514) 의 3 가지 포트 : r-command 명령 계열 위한
포트
[ 그림 11-35] rexec 를 이용한 원격 시스템 /etc/shadow 파일 읽기
rexec 192.168.68.5 -l root cat /tmp/a.txtrexec 192.168.68.5 -l root cat /etc/shadow
37/61
서비스 관리
• 솔라리스 10 에서 허용되어 있는 rsh 와 rlogin 도 클러스터링과 같이 시스템 간 신뢰 관계를설정해놓아야 하는 경우가 아니라면 모두 제거하는 것이 좋음
• inetadm 명령 이용 정지
[ 그림 11-36] inetadm 명령을 이용한 rlogin 데몬 실행 중지 설정
inetadm -d svc:/network/login:rlogin
38/61
서비스 관리
X11 : XDMCP(X Display Manager Control Protocol, 6000)• GUI 환경에서 원격으로 시스템을 관리하기 위한 프로토콜• Xbrowser 실행
[ 그림 11-37] Xmanager 를 이용한 원격 시스템 접속• 6000 번 포트가 열린 시스템의 IP 입력 < 이동 > 버튼 클릭• Xbrowser 로 해당 시스템 접속하여 GUI 인터페이스 사용
[ 그림 11-38] Xmanager 를 이용한 원격 시스템 로그인
39/61
접근 제어 파일 확인
XDMCP 에 대한 접근 제어 : Xaccess 파일에서 수행
[ 그림 11-39] 시스템 내부의 Xaccess 검색
실습 11-4 XDMCP 접근 제어하기
1
man xdm
find / -name Xaccess
40/61
접근 제어 설정
접근 제어 설정
[ 그림 11-40] Xaccess 파일에 대한 접근 제어 설정
실습 11-4 XDMCP 접근 제어하기
2
vi /usr/openwin/lib/xdm/Xaccess
41/61
접근 제어•접근하는 시스템 제어•XDMCP 서버가 자신의 포트가 열려 있음을 어느 서버에 알릴 것인지에 대한 설정 통해 제어•기본은 모두‘ *’ 로 같으며 , 어떤 시스템에든 접근 가능•모든 접근 막으려면 이 두‘ *’ 삭제•특정 시스템 접근 : ‘*’ 대신 해당 시스템의 IP 입력
실습 11-4 XDMCP 접근 제어하기
42/61
서비스 관리
DTSPC(DeskTop SubProcess Control service, 6112)• 원격에서 서버 관리할 때 프로세스 제어
FONT-Service(7100)• 폰트에 대한 정보 제공
43/61
서비스 관리
기타 서비스 보안 설정 echo(7)
• 어떤 시스템이 echo 포트로 데이터 보내면 , echo 포트에 데이터를 받은 시스템은 보낸 시스템에 똑같은 데이터 전송
• ping 과 비슷한 역할
discard(9)• echo 와 달리 어떤 데이터를 받더라도 그 데이터를 소거하는 역할 , 응답 보내지 않음
Daytime(13)• 현재 날짜와 시간 알려줌
Charen(Character generator, 19)• 제공한다기보다 입력 값에• 관계없이 임의의 문자열을 보내는 역할
44/61
서비스 관리
SMTP(Simple Message Transfer Protocol, 25)• 메일 전송 위한 프로토콜로 , 대부분 Sendmail 이용• 가장 일반적인 보안 이슈 : EXPN(Expansion) 과 VRFY(Verify) 명령의 실행 여부• ‘expn root’ 라고 입력하고 를 누른 후‘ vrfy wishfree’ 를 입력
[ 그림 11-43] expn, vrfy 명령으로 시스템 계정 확인
• root 와 wishfree 계정이 존재하는 것을 확인할
telnet 192.168.68.5 25expn rootvrfy wishfree
45/61
서비스 관리
• expn 과 vrfy 명령 실행 방지 : sendmail 의 설정 파일 변경 • 솔라리스에는 /etc/mail/sendmail.cf, 다른 시스템에는 /etc/sendmail.cf 가 있음• 시스템에 따라 위의 두 경로 중 하나에 포함
[ 그림 11-44] expn, vrfy 명령에 대한 /etc/mail/sendmail.cf 파일 설정• O PrivacyOptions 에서 noexpn 과 novrfy 를 추가하고 sendmail 서비스를
재시작하거나시스템을 재시작해야만 설정 변경 적용
vi /etc/mail/sendmail.cf
46/61
서비스 관리
TIME(37)• Daytime 프로토콜처럼 시간 알려줌• 일반 사용자가 아닌 시스템을 위한 것으로 , 일반 ASCII 기반의 문자열이 아닌 특수 형태 문자
주고받음
TFTP(Trivial File Transfer Protocol, 69)• FTP 의 간략화 버전 , FTP 처럼 파일 전송 위한 프로토콜이지만• FTP 를 이용해서 접속할 경우 , Anonymous 계정이 존재 할때를 제외하면 계정과 패스워드• 입력해야 접속 할 수 있지만 TFTP 는 이런 인증 과정 불필요• TFTP 이용 . get 명령 이용 /etc/passwd 파일 내려받기
[ 그림 11-45] tftp 데몬을 이용한 /etc/passwd 파일 전송 시도
tftp 192.168.68.5get /etc/passwd
47/61
서비스 관리
SNMP(Simple Network Management Protocol, 161)• 윈도우처럼 많은 정보 유출 할 수 있다• standalone 데몬 , 솔라리스 9 에서 SNMP 중지하려면 기본 부팅 설정 /etc/rc3.d 에서
제거
Printer (515) : 프린터 연결 위한 포트
UUCP(Unix to Unix Copy Protocol, 540)• 유닉스의 시스템 간 통신 위해 만들어졌지만 지금은 거의 사용되지 않음
Submission(587)• SNMP 서비스 제공하는 또 다른 포트 , 보조적으로 동작 , 25 번 포트처럼 sendmail 에 의해
운영• /etc/mail/sendmail.cf 에 587 포트로 지정
Sun Management Console(898)• 시스템에 있는 사용자 계정에 대한 프로파일 생성 /삭제
48/61
접근 제어
TCP Wrapper 이해 위해 inetd 수퍼 데몬 먼저 이해 필요
TCP Wrapper 설치되면 , inetd 데몬은 TCP Wrapper 데몬인 tcpd 에 연결을 넘김
tcpd 데몬은 접속 요구한 클라이언트가 적절한 접근 권한이 있는지 확인 후 연결 넘김 연결에 대한 로깅 실시
49/61
TCP Wrapper 설치
유닉스 시스템에는 대부분 TCP Wrapper 이 기본 탑재
[ 그림 11-53] /usr/sfw/sbin 디렉터리에서 설치된 TCP Wrapper 확인
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
1
/usr/sfw/sbin/
50/61
TCP Wrapper 데몬의 적용
inetadm -p 명령 : inetd 데몬에 대한 속성 확인 tcpd 의 적용 여부 : ‘tcp_wrappers=’ 항목에서 확인 ‘초기 값은 FALSE’ 로 tcpd 적용 않음
[ 그림 11-54] inetadm -p 명령으로 inetd 속성 확인
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
2
inetadm -p
51/61
TCP Wrapper 의 -M(odify) 옵션 사용 ‘inetd -M tcp_wrappers=TRUE’ 명령으로 ‘ tcp_wrappers=’ 항목의 설정 값을
TRUE 로 바꿔 TCP Wrapper 적용
[ 그림 11-55] tcpd 적용 후 확인
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
inetadm -M tcp_wrappers=TRUEinetadm -p
52/61
inetd.conf 에 텔넷 연결 in.telnetd 에 넘김
[ 그림 11-56] /etc/inetd.conf 파일에서 텔넷 데몬 설정 확인
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
vi /etc/inetd.conftelnet stream tcp6 nowait root /usr/sbin/in.telnetd
in.telnetd-> telnet stream tcp6 nowait root /usr/sfw/sbin/tcpd
in.telnetd
53/61
접근 제어 설정
TCP Wrapper 에서 접근 제어 적용 : /etc/hosts.allow 와 /etc/hosts.deny 사용
접근 통제 규칙
데몬 목록에는 : 특정 서비스를 수행하는 데몬 이름 , 클라이언트 목록에는 호스트 이름 ,
IP, 네트워크 정의
[ 그림 11-57] /etc/hosts.deny 파일 설정
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
3
데몬 목록 : 클라이언트 목록 [ : 셸 명령 ]
ALL:ALL
54/61
접근 제어 설정 사항 확인
/usr/sfw/sbin/tcpdchk 실행 /etc/hosts.deny 파일에 ‘ ALL:ALL’ 대신 ‘ dfALL:ALL’ 로 입력 inetd.conf 파일에 dfALL 서비스가 존재하지 않음 나타냄
[ 그림 11-58] tcpdchk 로 TCP Wrapper 적용 규칙의 유효성 검사 결과 오류
오류를 수정한 뒤 , tcpdchk를 실행하면 어떤 오류 메시지도 확인
[ 그림 11-59] /usr/sfw/sbin/tcpdchk 을 이용한 TCP Wrapper 규칙 확인
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
4
/usr/local/bin/tcpdchk
55/61
원격지 시스템에서 실제로 로그인을 해보지 않고도 접근 제어가 이루어지고 있는지/usr/sfw/sbin/tcpdmatch 이용 시험
원격지에서 접근 시도
[ 그림 11-60] /usr/sfw/sbin/tcpdmatch 을 이용한 TCP Wrapper 규칙 확인
[ 그림 11-61] TCP Wrapper 에 의한 로그인 시도 차단
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
/usr/sfw/sbin/tcpdmatch in.telnetd 200.200.200.200
56/61
192.168.75.1 만 시스템에 접근 허용 /etc/hosts.allow 파일을 이용 텔넷에만 접근이 가능하도록 파일 생성 입력
[ 그림 11-62] /etc/hosts.allow 파일 설정
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
in.telnetd:192.168.75.1
57/61
tcpdmatch 이용 접속 가능 시험
[ 그림 11-63] /usr/sfw/sbin/tcpdmatch 을 이용한 TCP Wrapper 규칙 확인 2
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
/usr/sfw/sbin/tcpdmatch in.telnetd 192.168.75.1
58/61
TCP Wrapper 의 접근 제어에 이용하는 hosts.allow 파일에 대한 규칙 이러한 규칙들은 hosts.deny 파일에도 같은 형식으로 적용
• ALL : 192.168.68.3, 192.168.68.4 EXCEPT 192.168.68.5
모든 데몬에 192.168.68.3 과 192.168.68.4 에 대한 접근 허락
192.168.68.5 금지
• in.ftpd : 192.168.68.0/255.255.255.0
192.168.68.*** 네트워크에 해당하는 시스템이 FTP 에 접속하는 것 허락
• in.telentd : .co.kr
도메인 이름이 co.kr 로 끝나는 시스템에 텔넷 접근 허락 HP-UX : 자체적으로 /var/adm/inetd.sec 파일 통해 TCP-Wrapper 기능
제공 inetd.sec 파일 설정
실습 11-5 TCP Wrapper 를 이용한 접근 제어 적용하기
[ 서비스 이름 ] [allow/deny] [ 시스템 /네트워크 주소 또는 이름 ]
59/61
파일과 디렉터리 관리
권한 설정 • /etc 접근 권한 751(d rwx r-x -x)
• /bin 접근 권한 771(d rwx rwx --x)
• /usr/bin 접근 권한 751(d rwx r-x --x)
• /sbin 접근 권한 751(d rwx rwx --x)
• /var/log 접근 권한 751(d rwx r-x --x)
• /var/log/messages 접근 권한 640(- rw- r-- ---)
• /etc/crontab 접근 권한 600(- rw- --- ---)
• /etc/syslog.conf 접근 권한 640(- rw- r-- ---)
• /etc/ftpusers 접근 권한 600(- rw- --- ---)
• /etc/passwd 접근 권한 440(- r-- r-- ---)
• /etc/shadow 접근 권한 600(- rw- --- ---)
• /etc/hosts.equiv 접근 권한 600(- rw- --- ---)
• /etc/hosts.allow 접근 권한 600(- rw- --- ---)
• /etc/hosts.deny 접근 권한 600(- rw- --- ---)
• /etc/securetty 접근 권한 600(- rw- --- ---)
• /etc/inetd.conf 접근 권한 600(- rw- --- ---)
• /etc/hosts 접근 권한 644(- rw- r-- r--)
60/61
패치
솔라리스 10 에서 패치 방법
➊ 현재 설치된 패치 목록을 확인하고 패치의 설치 필요성 여부 확인
➋ 설치된 패치 현황을 확인하고 , 설치되지 않은 패치가 있을 경우 설치
➌ 접속하는 patch 서버 정보 확인
# smpatch get
# smpatch update
# smpatch analyze
IT CookBook, 정보 보안 개론과 실습 : 시스템 해킹과 보안 (개정판 )