Presentation is loading. Please wait.

Presentation is loading. Please wait.

정보 보안 개론과 실습 시스템 해킹과 보안 √ 원리를 알면 IT가 맛있다 ehanbit.net.

Similar presentations


Presentation on theme: "정보 보안 개론과 실습 시스템 해킹과 보안 √ 원리를 알면 IT가 맛있다 ehanbit.net."— Presentation transcript:

1 정보 보안 개론과 실습 시스템 해킹과 보안 √ 원리를 알면 IT가 맛있다 ehanbit.net

2

3 학습목표 윈도우의 개별 서비스에 따른 취약점 이해 취약점에 대한 적절한 보안 설정 보안 설정 적용 시 대안 설정

4 ■ 계정관리 계정관리 패스워드 관리 불필요한 계정의 제거 계정 정책의 설정
주기적으로 관리하는 시스템의 패스워드를 크랙하여 취약한 패스워드를 가진 계정을 체크한다. 불필요한 계정의 제거 계정의 생성은 반드시 문서화하여 기록하고 주기적으로 불필요한 계정을 삭제한다. 계정 정책의 설정 5회 이상 잘못된 패스워드 입력 시 계정이 자동으로 잠기도록 설정한다.

5 ■ 로컬 보안 설정 1 로컬 보안 설정 네트워크에서 이 컴퓨터 액세스 / 거부
윈도우의 대부분의 설정은 ‘거부’가 우선권을 갖는다. ‘네트워크에서 이 컴퓨터 액세스 거부’를 설정할 경우에는 원격에서만 접속이 불가능하다.

6 ■ 로컬 보안 설정 2 로컬 보안 설정 로컬 로그인/거부 시스템 종료 / 원격에서 강제로 시스템 종료
‘로컬 로그인 거부’를 사용할 경우에는 원격에서는 접속이 가능하지만 시스템 앞에서 로그인할 수는 없다. 시스템 종료 / 원격에서 강제로 시스템 종료 ‘시스템 종료’는 기본으로는 Administrators, Backup Operators, Power Users 그룹만이 로컬에서 시스템을 종료시킬 수 있다. ‘원격에서 강제로 시스템 종료’는 ‘Administrators’ 그룹만이 가능하다. 로그인 스크린에 마지막 사용자 이름 표시 안 함 ‘로그인 스크린에 마지막 사용자 이름 표시 안 함’을 다음과 같이 ‘사용’으로 바꾼다.

7 ■ 로컬 보안 설정 3 로컬 보안 설정 로그인 시도하는 사용자에 대한 메시지 제목 / 텍스트 로그인하지 않고 시스템 종료 허용
  GUI 환경의 터미널 접속에서 경고 창을 생성하여 로그인 시도자에게 알려주는 역할을 한다. 로그인하지 않고 시스템 종료 허용 로그인 시 ‘옵션’을 누르면 ‘시스템 종료’ 버튼이 활성화된다. 기본적으로 금지하는 것이 좋다. 보안 감사를 로그할 수 없는 경우 즉시 시스템 종료 감사 로그가 꽉 차거나, 로깅을 정상적으로 시행할 수 없을 때 시스템을 재부팅하게 하는 설정 Administrator 계정 이름 바꾸기 공격자가 윈도우의 기본 관리자 계정을 추측하여 패스워드 크래킹 공격을 시도할 수 있으므로 기본 관리자 계정의 이름을 바꾼다.

8 ■ 데몬 관리 - FTP 데몬 관리 익명계정 로그인 동시 접속자 수 FTP의 W3C 로깅 정보가 남는 파일
  FTP의 취약점 중 가장 일반적인 취약점은 익명계정(anonymous)의 로그인 허용이다. 윈도우 시스템에서는 익명 계정이 기본적으로 허용되어 있다. 이러한 익명계정에 의한 FTP 로그인을 금지한다. 동시 접속자 수 FTP에 접속할 필요가 있는 세션 수 이상의 접속이 이루어지지 않도록 설정한다. FTP의 W3C 로깅 정보가 남는 파일 c:/winnt/system32/logfiles/MSFTPSVC1 FTP로그인 시 경고문 설정 FTP 접근제어 설정

9 ■ 데몬 관리 - SMTP 데몬 관리 telnet 명령을 이용한 배너 그래빙 SMTP의 W3C 로깅 정보가 남는 파일
c:/winnt/system32/logfiles/MSFTPSVC1 SMTP 접근제어 설정 SMTP 릴레이 설정

10 ■ 데몬 관리 - HTTP ■ 데몬 관리 – HTTPS 1/2 데몬 관리 기본 가상 디렉토리 변경 디렉토리 보안
기본 웹 가상 디렉토리인 C:\inetpub\wwwroot 를 다른 임의의 디렉토리로 변경 필요 디렉토리 보안 익명 액세스와 인증 제어, IP 주소 및 도메인 이름 제한, 보안 통신에 대한 설정 ■ 데몬 관리 – HTTPS 1/2 HTTPS는 443번 포트를 사용해서 운영되며, 암호화된 웹 접속을 할 수 있게 한다.

11 ■ 데몬 관리 – HTTPS 2/2 데몬 관리 Step 1. 인증 서버의 설치

12 ■ 데몬 관리 – LOC-SRV, NetBIOS-SSN, SMB 1/3
프로토콜 포트 서비스 TCP 135 RPC/DCE Endpoint Mapper UDP 137 NetBIOS 이름 해석 서비스 138 NetBIOS 데이터그램 서비스 139 NetBIOS 세션 서비스 (SMB/CIFS over NetBIOS) TCP/UDP 445 Direct Host (SMB/CIFS over TCP) 널 세션 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa의 restrictanonymous 값을 2로 설정해준다. 이 값을 2로 설정하면 널 세션을 생성할 수 없다.

13 ■ 데몬 관리 – LOC-SRV, NetBIOS-SSN, SMB 2/3
PSEXEC를 이용한 원격 시스템 로그인 원격 시스템에 관리자 권한을 가진 계정을 이용하여, 로그인 후 명령창을 획득할 수 있다.

14 ■ 데몬 관리 – LOC-SRV, NetBIOS-SSN, SMB 3/3
제어판의 네트워크 설정에 대한 등록정보에서 ‘Microsoft 네트워크용 클라이언트’ 프로토콜만 남겨두고, ‘Microsoft 네트워크용 파일 및 프린터 공유’ 프로토콜을 사용하지 않는다.

15 데몬 관리 ■ 데몬 관리 – SNMP SNMP는 시스템의 여러 정보를 원격에서 수집할 수 있도록 한다.

16 ■ 데몬 관리 – PRINTER ■ 데몬 관리 – NFS or IIS 데몬 관리
프린터와 TCP/IP를 이용해서 연결할 때 쓰는 포트. 프린터를 굳이 사용하지 않는다면, 데몬을 중지시켜준다. ■ 데몬 관리 – NFS or IIS - IIS 시스템이 DCE(Distributed Computing Environment)를 운영하기 위한 포트로 메신저 서비스가 이 포트에 의해 운영된다. - 메신저 서비스는 근래에 악용되어 인터넷을 통해 상업용 메시지를 뿌리는 데 사용되어 이를 중지시키는 경우가 많은데, 웹 서버의 경우에는 이를 중지시킬 경우 웹 서버가 정상적으로 동작하지 않는다. net send "메신저 서비스를 악용한 사례“

17 ■ 데몬 관리 – LSA or nterm ■ 데몬 관리 – MSDTC ■ 데몬 관리 – MS-Term-Serv 데몬 관리
브리지 또는 라우터와 IP를 이용한 통신을 할 때 이를 조절하는 역할을 한다. ■ 데몬 관리 – MSDTC 설정의 변경 사항에 대한 클러스터링 시스템간 동기화에 쓰이며, 가장 일반적인 경우는 ‘윈도우 업데이트’가 자동으로 뜨게 만드는 데몬이다. ■ 데몬 관리 – MS-Term-Serv 윈도우에서 제공하는 터미널 서비스에 대한 포트 터미널 포트에 대한 비인가 접속을 막기 위해 포트 번호를 변경한다. 레지스트리 키 값 : ‘HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\ Wds\Rdpwd\Tds\Tcp\PortNumber’

18 데몬 관리 ■ 데몬 관리 – 패치 마이크로 소프트 사이트에서 해당 패치를 검색하여 업데이트한다.

19 접근 제어 ■ 접근제어 – Sygate 1 Sygate를 이용해 현재 동작중인 응용 프로그램 확인

20 접근 제어 ■ 접근제어– Sygate 2 Sygate를 이용한 네트워크 트래픽 확인

21 접근 제어 ■ 접근제어– Sygate 3 Sygate 사이트에서의 원격 취약점 분석

22 접근 제어 ■ 접근제어– Sygate 4 Sygate 방화벽에서의 접근제어 설정

23 ■ 파일 및 디렉토리 관리 파일 및 디렉토리 관리 디렉토리에 대한 보안 옵션
모든 권한 : 디렉토리에 대한 접근 권한과 소유권을 변경할 수 있으며, 서브 폴더와 파일을 삭제할 수 있다. 수정 : 폴더를 삭제할 수 있으며, 수정의 권한이 있으면, ‘읽기 및 실행’ 그리고 ‘쓰기’ 권한이 주어진 것과 같다. 읽기 및 실행 : 읽기를 수행할 수 있으며, 디렉토리나 파일을 이동할 수 있다. 폴더 내용 보기 : 디렉토리 내의 파일이나 서브 디렉토리의 이름을 볼 수 있다. 읽기 : 디렉토리 안의 내용의 읽기만 가능하다. - 쓰기 : 해당 디렉토리의 서브 디렉토리와 파일을 생성할 수 있으며, 소유권이나 접근 권한의 설정 내용을 확인할 수 있다.

24 파일 및 디렉토리 관리 ■ 파일 및 디렉토리 관리 권한 적용을 위한 계정 또는 그룹 선택 창

25 파일 및 디렉토리 관리 ■ 파일 및 디렉토리 관리 EFS의 적용

26 Thank you ehanbit.net

27 리눅스/유닉스 설정과 취약점

28 시스템/파일 및 디렉토리에 대한 접근 제어 설정
학습목표 계정에 대한 정책 수행 및 적용 유닉스의 개별 서비스에 따른 취약점 이해 취약점에 대한 적절한 보안 설정 시스템/파일 및 디렉토리에 대한 접근 제어 설정

29 ■ 계정 관리 계정관리 취약한 패스워드의 점검 사용하지 않는 계정의 제거 중복된 root 계정의 존재 여부
grep ':0:' /etc/passwd

30 서비스 관리 ■ 서비스 관리 – Inetd 데몬 Inetd 데몬의 구성 및 동작

31 서비스 관리 ■ 서비스 관리 /etc/services

32 telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd
서비스 관리 ■ 서비스 관리 /etc/inetd.conf telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd ① ② ③ ④ ⑤ ⑥ ⑦

33 ■ 서비스 관리 서비스 관리 ① : 서비스 : 서비스 이름을 정의하며, /etc/services에 정의되어 있어야 한다.
② : 소켓 타입(Socket Type) : TCP일 경우에는 stream, UDP일 경우에는 dgram이라고 표기한다. ③ : 프로토콜 : /etc/protocols 에 정의된 프로토콜 종류와 그 번호이다. tcp는 /etc/protocols 파일에서 확인할 수 있듯이 프로토콜 번호가 6번이다. ④ : 대기 설정 : inetd가 클라이언트로부터 서비스를 요청받은 경우, 이후에 즉시 또 다른 요청을 처리할 것인지 여부에 따라 nowait, wait로 구분한다. tcp의 경우에는 반드시 nowait여야 한다. ⑤ : 로그인 이름 : 데몬을 어떤 사용자의 권한으로 수행할 것인지 명시해준다. ⑥ : 서버 : 해당 서비스를 수행하기 위해 어떤 프로그램을 실행시킬 것인지를 적는다. 절대 경로로 적는다. ⑦ : 인자(Argument) : 데몬을 실행하는 데 필요한 인자 값을 적는다.

34 ■ 서비스 관리 서비스 관리 ECHO ( 포트 7 ) Discard ( 포트 9 ) Daytime ( 포트 13 )
어떤 시스템이 echo 포트로 데이터를 보내면, echo 포트에 데이터를 받은 시스템은 보낸 시스템에 똑같은 데이터를 보낸다. 특별한 서비스를 위한 것이라기보다는 ping과 비슷한 역할을 한다. Discard ( 포트 9 ) echo 포트와는 달리 discard 포트는 어떤 데이터를 받더라도 그 데이터를 소거하는 역할을 한다. 응답을 보내지 않는다. Daytime ( 포트 13 ) 현재 날짜와 시간을 알려준다. telnet

35 ■ 서비스 관리 서비스 관리 Charen ( 포트 19 )
입력 값에 관계없이 임의의 문자열을 보낸다. telnet /etc/inetd.conf 에서 ECHO, Discard, Daytime, Charen 서비스 중지

36 ■ 서비스 관리 서비스 관리 FTP ( 포트 21 ) FTP – Anonymous 계정 생성법
주요 보안 이슈는 원격 버퍼 오버플로우 공격과 포맷 스트링 공격, 그리고 anonymous 로그인과 root 계정의 로그인 허용이 있다. FTP – Anonymous 계정 생성법 1. useradd 명령으로 ftp 계정을 생성한다. 2. Anonymous 계정이 사용할 디렉토리를 생성하고, 실행에 필요한 ls 명령 등을 복사해둔다. Anonymous 계정의 역할에 따라 필요한 파일을 복사한다. 3. 생성된 ftp 계정의 /etc/passwd 파일 내용을 바꾼다. 4. 생성된 ftp 계정의 /etc/shadow 파일 내용을 바꾼다. 5. /etc/group에 ftpg 그룹을 생성해준다. 6. Anonymous 계정으로 로그인한다.

37 ■ 서비스 관리 서비스 관리 FTP – /etc/ftpusers 를 이용한 접근제어

38 서비스 관리 ■ 서비스 관리 SSH (포트 22) SSH는 암호화된 Telnet 서비스. SSH1은 접속과 인증을 위해서 RSA(Rivest-Shamir-Adleman)를 이용하며, 통신의 암호화를 위해서는 Blowfish, DES, 3DES, RC4 및 IDEA 등을 사용한다. .

39 ■ 서비스 관리 서비스 관리 Telnet (포트 23)
평문 전송으로 암호화 되지 않은 통신. 네트워크를 이용한 다양한 공격에 매우 취약하다. Telnet – 관리자 원격 로그인 제한 - /etc/default/login Telnet – 로그인 시 경고문 출력 - /etc/issue

40 서비스 관리 ■ 서비스 관리 SMTP (포트 25) Sendmail에 대한 가장 일반적인 보안 이슈는 원격 버퍼오버플로우나 포맷 스트링 그리고, EXPN (Expansion)과 VRFY(Verify) 명령의 실행 여부다. telnet Expn root Vrfy wishfree

41 서비스 관리 ■ 서비스 관리 SMTP – Expn, Vrfy 명령 금지 설정 Vi /etc/mail/sendmail.cf

42 ■ 서비스 관리 서비스 관리 Sendmail 배포판 무결성 확인
1. sendmail의 배포판과 전자서명 파일인 sig(signature : 서명) 파일을 다운로드 받는다.

43 ■ 서비스 관리 서비스 관리 2. md5sum 유틸리티를 이용해서 해시 값을 구한다. 3. GNUPG 설치
md5sum sendamil tar.gz 3. GNUPG 설치 rpm -Uvh gnupg i386.rpm

44 ■ 서비스 관리 서비스 관리 4. sendmail 배포 사이트의 공개 키 입력 5. 서명 파일을 이용한 서명 확인
gpg --import PGPKEYS 5. 서명 파일을 이용한 서명 확인 gpg --verify sendmail.VERSION.tar.gz.sig sendmail.VERSION.tar.gz

45 ■ 서비스 관리 서비스 관리 Time (포트 37) TFTP (포트 69)
daytime(포트 13) 프로토콜과 마찬가지로 시간을 알려주는 프로토콜이다. TFTP (포트 69) FTP를 이용해서 접속하고자 할 때, Anonymous 계정이 존재하는 경우를 제외하면 계정과 패스워드를 입력해야만 접속할 수 있다. 그러나 TFTP의 경우에는 이러한 인증 과정이 전혀 없다. TFTP를 이용하는데 계정과 패스워드는 필요 없다. 따라서, TFTP 데몬은 운영하지 않는 것이 최상이며, 운영하고자 할 경우에는 –s(secure) 옵션을 주어 실행한다.

46 ■ 서비스 관리 서비스 관리 TFTP를 이용한 임의 파일 전송
TFTP 데몬이 –s 옵션없이 실행되고 있을 경우 다음과 같이 임의의 사용자가 이를 다운로드 받을 수 있다.

47 ■ 서비스 관리 서비스 관리 Finger (포트 79)
finger

48 ■ 서비스 관리 서비스 관리 HTTP (포트 80) SUNRPC (포트 111)
웹 서비스를 수행하는 매우 중요한 포트다. 또한 취약점이 많은 포트이기도 하다. SUNRPC (포트 111) RPC는 자신에게 연결을 요청한 클라이언트에게 등록된 포트 중 적당한 포트를 클라이언트에게 할당해주고, 클라이언트는 RPC로부터 서버에 대한 연결 정보를 얻어 자신에게 필요한 서비스를 제공해주는 포트로 재접속한다.

49 ■ 서비스 관리 서비스 관리 SUNRPC - rpcinfo SUNRPC – rpc 중단
/etc/init.d/rpc stop

50 서비스 관리 ■ 서비스 관리 SNMP (포트 121) 시스템에 대한 많은 정보를 유출할 수 있다.

51 서비스 관리 ■ 서비스 관리 SNMP의 중지 SNMP는 다른 서비스와는 달리 inetd 데몬에 의해서 운영되는 데몬이 아니다. standalone 데몬이라는 뜻이다. 따라서 이 SNMP를 중지시켜주기 위해서는 기본 부팅 설정인 /etc/rc3.d에서 이를 제거해주어야 한다. 제거할 때는 나중에 다시 동작시킬 수 있도록 backup과 같은 디렉토리로 옮겨주자. Mv /etc/rc3.d/S76snmpx /etc/rc4.d/backup/S76snmpdx

52 ■ 서비스 관리 서비스 관리 Exec (포트 512), Login(포트 513), Shell (포트 514)
R-command라는 명령어 계열을 위한 포트다. R-command는 자체적으로 위험을 가지고 있다. r-command는 네트워크 해킹에서 하나의 이슈였던 시스템간 신뢰(Trust) 관계가 형성되어 있을 때 편리하다. 그러나, 보안에 있어서는 매우 위험하다. 신뢰관계가 형성된 시스템에서는 이러한 기능을 이용해서 임의의 명령을 수행, 및 조정할 수 있다. Exec, Login, Shell 서비스 중지 vi /etc/inetd.conf

53 ■ 서비스 관리 서비스 관리 Exec 데몬을 이용한 원격지 시스템에서 임의 명령 수행
rexec l root cat /tmp/a.txt rexec l root cat /etc/shadow

54 ■ 서비스 관리 서비스 관리 Exec, Login, Shell 서비스의 중지 Printer (포트 515)
vi /etc/inetd.conf Printer (포트 515) 프린터 연결을 위한 포트다. 서버에 굳이 프린터를 이용해야 하는 서버는 그다지 많지 않다. 버퍼 오버플로우 또는 포맷 스트링 공격 가능성이 있으므로 제거해준다.

55 ■ 서비스 관리 서비스 관리 UUCP (포트 540) Submission (포트 587)
UUCP(Unix to unix copy protocol)는 1976년 IBM에 의해 만들어진 프로토콜이다. 유닉스 시스템간 통신을 위해서 만들어졌다. 하지만 지금은 거의 사용되지 않는다. 마찬가지로 /etc/inetd.conf에서 제거해준다. Submission (포트 587) SNMP 서비스를 제공하는 또 다른 포트다. 보조적으로 동작하는 포트로, 25번 포트와 마찬가지로 sendmail에 의해서 운영된다. /etc/mail/sendmail.cf 에서 설정할 수 있다.

56 ■ 서비스 관리 서비스 관리 Unknown (포트 898)
솔라리스 시스템에만 열려 있는 포트로 ‘Sun Management Console’이라고 부르는 포트다. 시스템에 있는 사용자 계정 등에 대한 프로파일을 생성하고 삭제하는 등의 기능을 한다. usr/sadm/bin/smprofile add -H myhost -p mypasswd -u root -- -n "User          Manager" -d "Manage users and groups" -a solaris.admin.usermgr.write -a solaris.admin.usermgr.read -p Operator -m RtUserMgmt.html

57 ■ 서비스 관리 서비스 관리 Lockd (포트 4045)
RPC 데몬 중에 하나로 rpc.lockd로 표기하는 게 보통이며, rpc.statd와 함께 사용된다. NFS를 사용할 경우에 하나의 클라이언트가 시스템 자원에 대해 자원을 공유할 때 파일을 여는 동안 다른 클라이언트가 중복 변경을 행하지 않도록 파일을 잠그는(lock) 데몬이다. 이 데몬 역시 standalone 데몬으로서 snmp를 정지시켜주었을 때와 마찬가지 방법을 사용한다. 옮겨주어야 할 파일은 /etc/rc2.d/S73nfs.client다. Mv /etc/rc2.d/S73nfs.client /etc/rc2.d/backup/S73nfs.client

58 ■ 서비스 관리 서비스 관리 X11 : XDMCP (포트 6000)
XDMCP(X Display Manager Control Protocol)는 원격에서 GUI 환경으로 시스템을 관리하기 위한 프로토콜이다. 윈도우의 터미널 서비스와 비슷하다고 생각하면 될 것이다. XDMCP를 이용하기 위해서는 윈도우에서 Xmanager라는 툴이 필요하다. Xmanager를 이용한 원격 시스템 접속

59 서비스 관리 ■ 서비스 관리 X11 : XDMCP (포트 6000) Xmanager를 이용한 원격 시스템 접근 후 로그인

60 ■ 서비스 관리 서비스 관리 X11 : XDMCP (포트 6000) - 접근제어
vi /usr/openwin/lib/xdm/Xaccess

61 ■ 서비스 관리 서비스 관리 DTSPC (포트 6112) Font – Service (포트 7100)
DTSPC(desktop subprocess control service)는 원격에서 서버를 관리할 때, 프로세스 제어를 위한 것으로 XDMCP와 같이 CDE(common Desktop Environment)를 사용하지 않는 경우에는 중지시킨다. 다른 일반적인 서비스들처럼 inetd.conf에서 중지시킨다. Font – Service (포트 7100) 7100 포트는 명칭에서도 알 수 있듯이 폰트에 대한 정보를 제공해준다. XDMCP와 같은 서비스에 해당 문자 폰트를 제공한다. 특별한 취약점이 있는 서비스는 아니다. 그러나, 다른 데몬들과 마찬가지로 버퍼오버플로우나 포맷 스트링 공격의 가능성이 있으므로 사용하지 않을 경우에는 중지시킨다.

62 ■ 패치 관리 - 레드햇 패치 관리 Up2date 명령을 이용한 자동 업데이트 보안패치에 대한 사이트 정보
.redhat.com/apps/support/errata

63 패치 관리 ■ 패치 관리 - 솔라리스 SUN 사이트에서 적절한 패치 정보 및 패치 획득

64 패치 관리 ■ 패치 관리 - 솔라리스 설치된 패치 목록 확인 showrev showrev -p

65 ■ 패치 관리 - 솔라리스 패치 관리 압축된 패치 풀기와 설치 jar xvf 114137.jar
atchadd /wishfree/patch/

66 패치 관리 ■ 패치 관리 - 솔라리스 압축된 패치 확인과 제거 showrev -p patchrm

67 패치 관리 ■ 패치 관리 – HP-UX, AIX

68 ■ 접근제어 - TCPWrapper 접근제어 TCPWrapper 의 동작 원리
TCPWrapper가 설치되면, inetd 데몬은 연결을 TCPWrapper의 데몬인 tcpd 데몬에 넘겨준다. tcpd 데몬은 접속을 요구한 클라이언트가 적절한 접근 권한이 있는 지를 확인하고, 해당 데몬에 연결을 넘겨준다. 이때 연결에 대한 로깅도 실시한다. TCPWrapper는 모든 프로토콜에 대한 접근 제어를 할 수 있는 것은 아니다. inetd 데몬이 관리하지 않는 standalone 데몬과 같은 경우는 inetd 데몬이 통제할 수 없으며, TCP 프로토콜 외에 일부 프로토콜에 대해서만 통제가 가능하다.

69 ■ 접근제어 - TCPWrapper 접근제어 TCPWrapper의 설치
/usr/sfw/sbin/ 설치되어 있지 않을 경우에는 각 벤더에서 팩키지로 제공하고 있다. 그렇지 않을 경우 TCPWrapper 소스를 받아 컴파일해야한다.

70 ■ 접근제어 - TCPWrapper 접근제어 TCPWrapper의 적용
vi /etc/inetd.conf telnet stream tcp6  nowait   root    /usr/sfw/sbin/tcpd   in.telnetd 설정을 변경한 후에는 이를 적용하기 위해서 inetd 데몬을 재시작해야 한다.

71 ■ 접근제어 - TCPWrapper 접근제어 접근제어의 설정
vi /etc/inetd.conf telnet stream tcp6  nowait   root    /usr/sfw/sbin/tcpd   in.telnetd TCPWrapper에서는 접근 제어에 /etc/hosts.allow와 /etc/hosts.deny를 사용하는데, 이름에서도 쉽게 알 수 있듯이 시스템에 접근을 허용 또는 차단할 시스템과 네트워크를 정의하는 파일이다. hosts.allow 파일과 hosts.deny, 두 파일 모두에  접근하고자 하는 해당 클라이언트가 설정 사항에 포함되지 않을 때는 접근을 허용하게 된다.

72 ■ 접근제어 - TCPWrapper 접근제어 접근제어의 설정 – 통제 규칙 설정
데몬 목록 : 클라이언트 목록 [ :셸 명령] 접근제어의 설정 – /etc/hosts.deny ALL:ALL 접근제어의 설정 – /etc/hosts.allow in.telnetd:

73 ■ 접근제어 - TCPWrapper 접근제어 접근제어의 규칙 검사 /usr/local/bin/tcpdchk
 /usr/sfw/sbin/tcpdmatch in.telnetd

74 ■ 접근제어 - TCPWrapper 접근제어 접근제어의 규칙 설정 방법
ALL : , EXCEPT 모든 데몬에 대해, 과 에 대한 접근을 허락해주고, 는 금지한다. in.ftpd : / *** 네트워크에 해당하는 시스템이 FTP에 접속하는 것을 허락한다. in.telentd : .co.kr 도메인 이름이 co.kr로 끝나는 시스템으로부터의 telnet 접근을 허락한다.

75 ■ 접근제어 - Xinetd 접근제어 Xinetd의 동작 원리
xinetd도 inetd와 매우 유사하다. 다른 점이 있다면 xinetd는 /etc/xinetd.conf 파일에서 xinetd 데몬에 대한 공통적인 설정을 하고 있으며, /etc/xinetd.d/ 디렉토리 안에 각 데몬별로 설정 파일이 따로 존재한다. 예를 들면, 텔넷 데몬에 대한 설정이 /etc/xinetd.d/telnet으로 존재하는 것이다.

76 접근제어 ■ 접근제어 - Xinetd Xinetd 기본 데몬 설정 vi /etc/xinetd.conf

77 ■ 접근제어 - Xinetd 접근제어 Xinetd 기본 데몬 설정 vi /etc/xinetd.conf
○  instances : 동시에 동일 서버의 최대 동작 가능 수를 정의한다. 기본은 60이므로, 60명 이상이 동시에 텔넷 데몬을 이용할 수 없다. ○  logtype : 로깅 방식으로 syslogd가 기본으로 설정되어 있으며, auth priv는 인증 레벨을 의미하며, daemon, auth, user 또는 local0-7 중에서 선택할 수 있다. ○  log_on_success : 서버에 사용자가 접속하여 구동될 때 로깅되는 정보를 선택한다. ○  log_on_failure : 서버가 자원 부족 또는 접근 규칙 때문에 구동할 수 없을 때의정보를 로깅한다. ○  cps : 서버에 들어올 수 있는 초당 최대 접속 수를 제한한다. ‘25 30’은 1초 안에 25회 이상 접속을 시도할 때 30초 동안 서비스가 중지된다는 의미다.

78 접근제어 ■ 접근제어 - Xinetd Xinetd – 데몬별 설정 vi /etc/xinetd.d/telnet

79 ■ 접근제어 - Xinetd 접근제어 Xinetd – 데몬별 설정
○ disable : 데몬에 대한 동작 여부를 설정한다. 조금 이상하지만, ‘yes'는 동작 중지이고, ’no'는 동작을 의미한다. disable이 부정의 의미이니, 부정의 부정이 동작을 의미하는 것이다. ○ flags : 데몬의 동작에 대한 특성을 부여한다. ○ socket_type : inetd 데몬과 같다. 텔넷은 TCP 프로토콜을 이용하므로 stream으로 적어준다. UDP 프로토콜일 경우에는 dgram, IP를 이용한 3계층 접속일 경우에는 raw 또는 seqpacket()을 적는다. ○ wait : 스레드에 대한 서비스 동작을 정의한다. ○ user : 데몬을 구동시킬 사용자를 정의한다. telnet을 이용해 root 권한을 사용할 필요가 없다면, 적절한 권한의 다른 계정으로 바꾸어 주는 것이 좋다. ○ server : 텔넷의 실제 데몬이 있는 경로를 지정한다. ○ log_on_failure : xinetd.conf 파일의 log_on_failure과 같다.

80 ■ 접근제어 - Xinetd 접근제어 Xinetd – 접근제어
/etc/xinetd.conf 파일에서도 가능하고, 각 데몬의 설정 파일인 /etc/xinetd.d/telnet와 같은 각 데몬 파일에서도 가능하다.

81 ■ 접근제어 - Xinetd 접근제어 Xinetd – 접근제어 설정
'only_from = '을 /etc/xinetd.conf 파일에 추가하였다. 이런 설정은 IP 을 가진 클라이언트 이외에는 xinetd 데몬이 관리하는 어떤 서비스에도 접근할 수 없게 한다. vi /etc/xinetd.conf Xinetd – 재시작 service xinetd restart

82 ■ 접근제어 - Xinetd 접근제어 Xinetd – 접근제어 설정 only_from = 192.168.68.0/24
시스템에 대한 접근 제어를 허락하듯이 네트워크에 대한 접근 제어를 설정한 것이다. only_from = / 접근 제어는 TCPWrapper와 마찬가지로 시스템과 네트워크를 나열해서 적용할 수 있다. no_access = /0 no_access는 명시적으로 특정 네트워크에 대해 접근을 금지할 때, 사용되며 only_from에 허락되어 있더라도, no_access에 정의되어 있는 시스템이나  네트워크는 접근이 차단된다 /0은 모든 네트워크에서의 접근을 차단함을  의미한다.

83 ■ 접근제어 - Xinetd 접근제어 Xinetd – 로깅
로깅은 데몬의 설정 파일에서 log_on_success, log_on_failure에 의해 로그 설정을 확인할 수 있다. 로그 파일은 /var/log/messages 파일에서 다음과 같이 확인할 수 있다. vi /var/log/messages

84 ■ 파일 및 디렉토리 관리 파일 및 디렉토리 관리 PATH 설정 각 디렉토리 및 파일 별 적절한 권한 설정
PATH 환경 변수에 현재 디렉토리를 지칭하는 '.'이 맨 앞에 포함되어 있을 경우에는 자주 사용하는 명령과 같은 이름으로 생성한 백도어를 임의의 디렉토리에 생성해놓으면, 관리자가 해당 디렉토리에서 명령을 실행할 때 PATH에서 그 명령이 포함되어 있는 경로를 찾게 되는데, 최초에 ‘.’이 있으므로 현재 디렉토리의 내용을 먼저 검색한다. 이 때, 실제 명령과 관계없는 백도어가 실행된다. 따라서 PATH 환경 변수에 현재 디렉토리를 의미하는 ‘.’을 포함시키지 않아야 한다. 각 디렉토리 및 파일 별 적절한 권한 설정 /etc 접근 권한 751 (d rwx r-x --x) /bin 접근 권한 771 (d rwx rwx --x) /usr/bin 접근 권한 751 (d rwx r-x --x) /sbin 접근 권한 771 (d rwx rwx --x)

85 ■ 파일 및 디렉토리 관리 파일 및 디렉토리 관리 각 디렉토리 및 파일 별 적절한 권한 설정
/tmp 접근 권한 1777 (d rwx rwx rwt) /var/tmp 접근 권한 1777 (d rwx rwx rwt) /var/log 접근 권한 751 (d rwx r-x --x) /etc/ssh 접근 권한 750 (d rwx r-x ---) /var/log/messages 접근 권한 640 (- rw- r-- ---) /etc/crontab 접근 권한 600 (- rw ) /etc/syslog.conf 접근 권한 640 (- rw- r-- ---) /var/log/wtmp 접근 권한 640 (- rw- r-- ---)

86 ■ 파일 및 디렉토리 관리 파일 및 디렉토리 관리 각 디렉토리 및 파일 별 적절한 권한 설정
/var/log/lastlog 접근 권한 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/lilo.conf 접근 권한 600 (- rw )

87 ■ 파일 및 디렉토리 관리 파일 및 디렉토리 관리 각 디렉토리 및 파일 별 적절한 권한 설정
/etc/securetty 접근 권한 600 (- rw ) /etc/rc.d/init.d 접근 권한 750 (- rwx r-x ---) /etc/init.d 접근 권한 750 (- rwx r-x ---) /etc/inetd.conf 접근 권한 600 (- rw ) /etc/cron.allow 접근 권한 400 (- r ) /etc/cron.deny 접근 권한 400 (- r ) /etc/hosts 접근 권한 644 (- rw- r-- r--)

88 Thank you ehanbit.net


Download ppt "정보 보안 개론과 실습 시스템 해킹과 보안 √ 원리를 알면 IT가 맛있다 ehanbit.net."

Similar presentations


Ads by Google