유닉스 시스템 보안 설정 20082230 여태현.

Slides:



Advertisements
Similar presentations
7 장. 원격지에서 리눅스서버를 관리하자. 텔넷서버를 설치 / 운영한다. SSH 서버를 운영한다. VNC 서버를 설치 / 운영한다.
Advertisements

Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.

정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Postfix MTA SPARCS 08 진준호 ( Alex ).
Chapter 6. 리눅스 백도어 황 선 환.
Android Wi-Fi Manual (Guest용)
운영체제 설정과 취약점 인터넷공학/컴퓨터공학 이수백/허성욱.
Network Lab. Young-Chul Hwang
MYSQL 설치.
툴 설치 가이드 Design Compiler SynopsysMentor.
정보 보안 개론과 실습 시스템 해킹과 보안 √ 원리를 알면 IT가 맛있다 ehanbit.net.
오 태 호 POSTECH Laboratory for UNIX Security
Hostname 변경 및 Service open
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
윈도우&유닉스 시스템 보안설정 Start! 서화섭.
Vsftpd 를 이용한 FTP service 와 samba 서버 구축
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
8장. 원격지 시스템 관리하기.
Root Filesystem Porting
소리가 작으면 이어폰 사용 권장!.
Root Filesystem Porting
7 목록화.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
rc script, 특정 port로 telnet
시스템 인터페이스 Lab3 Unix 사용법 실습.
TSRM 사용시 PC 기본환경설정 1. 로그인이 안되는 문제해결 1) Windows8 이상일때
솔라리스10 3장. 솔라리스 패키지 관리.
㈜시스원이 제공하는 시스템 관리 통합 솔루션 SysmanagerOne Agent설치 안내서
홀인원2.0 설치 메뉴얼.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Linux/UNIX Programming
UNIX Unbounded A Beginning Approach
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Day-27(Tue_10.16) 파일 서비스 설정 AD 가 설치된 환경에서 DHCP 설치 할 경우 권한 자격을 주어야함.
Nessus 4 설치 정보보호응용 조용준.
화면 갈무리 및 파일 권한 설정.
오라클 넷(Oracle Net)의 개념 및 구성
Root passwd 분실, bootblk 복구
KERBEROS.
WebtoB - Jeus 연동.
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
PMIS 서버 설정 환경설정 작성자 : 배경환.
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
웹(WWW).
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
STS 에서 웹 서버 설치 방법.
OpenCV 설정 2.21 만든이 딩딩.
2장. 솔라리스10 설치. 2장. 솔라리스10 설치 Solaris 3. 솔라리스10 설치 후 설정하기 1. 텔넷 ( telnet ) 서비스 사용 SSH ( Secure Shell ) 서비스 사용 FTP ( File Transfer Protocol )서비스 사용 시스템.
1. 신규 연세메일(Gmail)에 로그인 합니다. ( yonsei. ac. kr )
 파일 아카이브와 압축 명령 익히기.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
JSP Programming with a Workbook
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
FTP 스캔 설정 방법 강사 : 이성휘 대리.
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
숙제 작성 및 제출 과정 김진하 2008/03/14.
Docker Study 6~7.
Chapter 07. 사용자 관리 Solaris3. 사용자 암호 관리 및 소유권 관리
운영체제보안 SELinux 실습 박민재
시스템 해킹과 보안 permission과 SetUID.
Presentation transcript:

유닉스 시스템 보안 설정 20082230 여태현

차례 계정 관리 서비스 관리 접근 제어 패치 관리 파일 및 디렉터리 관리

계정 관리 취약한 패스워드 점검과 사용하지 않는 계정의 제거 유닉스에서 계정 관리의 주요 사항 첫 번째 : 중복된 Root 계정의 존재 여부 Root 이외의 관리자 계정 존재 여부 확인 /etc/passwd 파일에 있는 계정 ID와 그룹 ID가 0인 계정 Grep ‘:0:’ /etc/passwd

서비스 관리 Inetd 데몬 슈퍼 데몬이 라고도 불린다. 텔넷과 FTP클라이언트가 서버 접속 요구 시 확인 텔넷 연결 시도일 경우 : Inetd 데몬의 설정 파일 /etc/inetd.conf에서 데몬에 대한 설정을 읽는다. /etc/service 파일에서 설정된 포트 번호에 대해 클라이언트의 요청 시 텔넷 데몬 실행 FTP연결 시도일 경우 : Inetd 데몬이 이 연결을 FTP 서버에 인계 /etc/services에 해당 데몬에 대한 포트가 정의되어 있지 않거나, /etc/inetd.conf 파일에서 특정 서비스에 대한 연결을 차단하면 해당 서비스에 대한 접속 불가능

서비스 관리 /etc/services의 실제 내용 [데몬 이름] [포트 번호]/[프로토콜]

서비스 관리 솔라리스 9의 Inted 데몬 Inetd.conf 파일 확인 /etc/services의 실제 내용

Telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd 서비스 관리 ➊ 서비스 : 서비스 이름 정의, etc/services에 정의 ➋ 소켓 타입(Socket Type) : TCP일 때 Stream, UDP일 때 dgram로 표기 ➌ 프로토콜 : /etc/protocols에 정의된 프로토콜 종류와 번호 TCP는 etc/protocols 파일에서 확인할 수 있다. /etc/protocols 파일의 내용 Telnet stream tcp6 nowait root /usr/sbin/in.telnetd in.telnetd ➊ ➋ ➌ ➍ ➎ ➏ ➐

서비스 관리 ➍ 대기 설정 : inted가 클라이언트에 서비스를 요청 받은 때, 이후에 즉시 또 다른 요청을 처리할 것인지 여부에 따라 nowait, wait로 구분 TCP는 반드시 nowait. ➎ 로그인 이름 : 데몬을 어떤 사용자의 권한으로 수행할 것인지 명시 ➏ 서버 : 해당 서비스를 수행 하기 위해 어떤 프로그램을 실행할지를 절대 경로 입력 ➐ 인자(Argumnet) : 데몬을 실행하는데 필요한 인자 값 입력 솔라리스의 /etc/rc3.d 디렉터리에서 snmp 데몬과 웹서버인 아파치가 standalone으로 실행 되는 것 확인 /etc/rc3.d 디렉터리 밑의 파일들

서비스 관리 주요 서비스 보안 설정 FTP(File Transfer Protocol, 21) FTP에 대한 보안 이슈 원격 버퍼 오버플로우 공격 포맷 스트링 공격 Anonymous 로그인 Root 계정의 로그인 허용

서비스 관리 텔넷(Telecommunication network, 23) 텔넷 서비스 이용 접속 : 사용 자체가 위험, 사용 자제 관리자가 원격 시스템에 접속 시도할 경우 root 계정의 접속 차단 /etc/default/login 파일의 console=/dev/console 설정 root 계정에 대한 원격 로그인 제한 vi /etc/default/login

서비스 관리 ‘console=dev/console’주석 처리 후 root 계정으로 로그인/ HP-UX의 경우 : /etc/securetty 파일의 맨위에 console 추가. 셸이 필요 없는 계정 : 계정 관리에서 확인했듯이/etc/passwd 파일의 /bin/sh과 같이 설정한 부분을 /bin/false로 바꿔줌 원격지에서 root 계정에 대한 로그인이 불가능하도록 설정했다면, 텔넷 로그인 시도할 때 출력되는 경고문 설정 경고문 : 해킹에 직접 영향을 주지는 않지만 해킹의도 약할 때 해킹 저지 명백한 경고는 법적 책임 물을 때 효과적

서비스 관리 경고문은 /etc/issue 파일에 입력, issue 파일은 솔라리스의 경우 새로 생성, 레드햇의 경우 이미 있으므로 수정 사용. issue 파일에 다음 내용 입력 /etc/issue 파일의 편집 텔넷으로 로그인 시도 시 경고문이 출력되는 것 확인 텔넷 로그인 시 /etc/issue에 저장된 경고문 출력 vi /etc/issue

서비스 관리 finger (79) finger -l @192.168.1.129 서버에 현재 로그인 중인 사용자 계정 정보 확인하여 해커가 사용자의 이용 시간 및 계정의 존재 유무 확인 finger 명령을 이용한 시스템 계정 정보 확인 finger -l @192.168.1.129

서비스 관리 sunrpc(SUN Remote Procedure Call protocol, 111) rpcinfo 명령 : 현재 구동 중인 RPC 정보 확인 rpcinfo 명령 수행 결과 rpcinfo

서비스 관리 서비스의 취약점 : 원격 버퍼 오버플로우 서비스의 취약점 : 원격 버퍼 오버플로우 RPC와 관련한 주요 취약 서비스 :rpc.statd, rpc.ttdbserver등 RPC 중지 : inetadm 명령에 -d 옵션 사용 서비스별로 중지 RPC 서비스 중 rstat 중지 inetadm -d svc:/network/rpc/rstat

서비스 관리 Exec(512), Login(513), Shell(514) Exec(512), Login (513), Shell(514)의 3가지 포트 : r-command 명령 계열 위한 포트 rexec를 이용한 원격 시스템 /etc/shadow 파일 읽기 rexec 192.168.68.5 -l root cat /tmp/a.txt rexec 192.168.68.5 -l root cat /etc/shadow

서비스 관리 기타 서비스 보안 설정 echo(7) discard(9) Daytime(13) 어떤 시스템이 echo 포트로 데이터 보내면, echo 포트에 데이터를 받은 시스템은 보낸 시스템에 똑같은 데이터 전송 ping과 비슷한 역할 discard(9) echo와 달리 어떤 데이터를 받더라도 그 데이터를 소거하는 역할, 응답 보내지 않음 Daytime(13) 현재 날짜와 시간 알려줌 Charen(Character generator, 19) 제공한다기보다 입력 값에 관계없이 임의의 문자열을 보내는 역할

서비스 관리 SMTP(Simple Message Transfer Protocol, 25) 메일 전송 위한 프로토콜로, 대부분 Sendmail 이용 가장 일반적인 보안 이슈 : EXPN(Expansion)과 VRFY(Verify) 명령의 실행 여부 ‘expn root’라고 입력하고 를 누른 후‘vrfy wishfree’를 입력 expn, vrfy 명령으로 시스템 계정 확인 telnet 192.168.68.5 25 expn root vrfy wishfree

서비스 관리 expn과 vrfy 명령 실행 방지 : sendmail의 설정 파일 변경 솔라리스에는 /etc/mail/sendmail.cf, 다른 시스템에는 /etc/sendmail.cf가 있음 시스템에 따라 위의 두 경로 중 하나에 포함 expn, vrfy 명령에 대한 /etc/mail/sendmail.cf 파일 설정 O PrivacyOptions에서 noexpn과 novrfy를 추가하고 sendmail 서비스를 재시작 하거나 시스템을 재시작 해야만 설정 변경 적용 vi /etc/mail/sendmail.cf

서비스 관리 TIME(37) TFTP(Trivial File Transfer Protocol, 69) Daytime 프로토콜처럼 시간 알려줌 일반 사용자가 아닌 시스템을 위한 것으로, 일반 ASCII 기반의 문자열이 아닌 특수 형태의 문자를 주고받음. TFTP(Trivial File Transfer Protocol, 69) FTP의 간략화 버전, FTP처럼 파일 전송 위한 프로토콜이지만 FTP를 이용해서 접속할 경우, Anonymous 계정이 존재할 때를 제외하면 계정과 패스워드 입력해야 접속 할 수 있지만 TFTP는 이런 인증 과정 불필요 TFTP 이용. get 명령 이용 /etc/passwd 파일 내려 받기 tftp 데몬을 이용한 /etc/passwd 파일 전송 시도 tftp 192.168.68.5 get /etc/passwd

서비스 관리 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) 시스템에 있는 사용자 계정에 대한 프로파일 생성/삭제

접근 제어 솔라리스에서 접근 제어를 하기 위해 TCPWrapper를 사용함. TCPWrapper를 통한 데몬 동작 개념도 텔넷과 FTP 클라이언트가 서버에 접속을 요구하면 Inetd 데몬이 이를 확인 tcpd 데몬은 접속 요구한 클라이언트가 적절한 접근 권한이 있는지 확인 후 연결 넘김 연결에 대한 로깅 실시 TCPWrapper는 모든 프로토콜에 대한 접근 제어를 할 수 있는 것은 아니다. Inetd 데몬이 관리하지 않는 standalone 데몬과 같은 경우는 Inetd 데몬이 통제 할 수 없으며, TCP 프로토콜 외에 일부 프로토콜에 대해서만 통제가 가능하다.

패치 관리 솔라리스 9 ➋ jar파일의 압축을 풀기 위해 jar명령을 하는데, 옵션은 tar 명령과 거의 같다. http://sunsolve.sun.com/pub-cgi/show.pl?target=patchpage에서 해당 패치 내려 받기 ➊ 현재 설치된 패치 목록을 확인하고 패치의 설치 필요성 여부 확인 -p옵션을 주면 설치된 패치의 목록을 보여준다 ➋ jar파일의 압축을 풀기 위해 jar명령을 하는데, 옵션은 tar 명령과 거의 같다. xvf옵션으로 내려 받은 패치를 푼다. ➌ patchadd 명령을 이용해서 패치를 해줄 때는 압축을 푼 디렉토리를 지정해주면 된다. Showrev Showrev -p Jar xvf 114137.jar Patchadd / wishfree / patch / 114137-04

파일 및 디렉터리 관리 권한 설정 /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--)

파일 및 디렉터리 관리 권한 설정 /etc 접근 권한 751(d rwx r-x -x) /bin 접근 권한 771(d rwx rwx --x) 솔라리스에서는 기본 권한이 777이다. 이 디렉터리는 ls, cd 등의 명령에 대한 실행 파일이 존재 한다. 권한을 777로 주면 임의의 사용자가 해당 디렉터리의 파일을 바꿔치기하는 것도 가능하므로, 기본권한을 777로 주는 것은 매우 위험할 수 있으므로 771로 설정한다. /usr/bin 접근 권한 751(d rwx r-x --x) /bin 디렉터리와 비슷한 경우다. 솔라리스에서는 기본 권한이 755이므로 751로 바꿔준다. /sbin 접근 권한 751(d rwx rwx --x) /bin 디렉터리와 비슷한 경우다. 솔라리스에서는 기본 권한이 755이므로 771로 바꿔준다. /var/log 접근 권한 751(d rwx r-x --x) /var/log 디렉터리에는 여러 가지 로그 정보를 담고 있는 파일이 있다. 이러한 로그 정보는 임의의 사용자에게 읽혀지거나 변조되어서는 안되므로 권한을 751로 설정한다. 솔라리스의 기본 권한은 755이다.

파일 및 디렉터리 관리 권한 설정 /var/log/messages 접근 권한 640(- rw- r-- ---) 레드햇에서 xinetd 데몬의 로그를 저장하는 파일로 최소한의 권한을 준다. /etc/crontab 접근 권한 600(- rw- --- ---) Cron 데몬에 의한 자동 실행을 설정할 수 있는 파일로 매우 위험할 수도 있는 파일이므로 관리자만이 접근할 수 있도록 설정한다. /etc/syslog.conf 접근 권한 640(- rw- r-- ---) 시스템 로그에 대한 설정을 담고 있는 파일로 공격자가 어떤 행위가 로깅되고 있는지 또 이를 회피하기 위해서 어떻게 해야 하는지 등에 대해 많은 정보를 줄 수 있으므로 640 이상의 권한을 주지 않는다. /etc/ftpusers 접근 권한 600(- rw- --- ---) 관리자나 특정 계정에 대해 ftp에 로그인이 불가능하도록 설정하는 접근 제어에 관한 파일로 관리자 이외에 사용할 필요가 없다. 600 이상의 권한을 주지 않고 솔라리스에서는 기본적으로 644 권한을 주고 있으므로 수정한다. /etc/passwd 접근 권한 440(- r-- r-- ---) 계정에 대한 기본적인 정보를 제공하는 파일이다. 솔라리스 기본 설정은 444다. 440이상의 권한을 주지 않는다.

파일 및 디렉터리 관리 권한 설정 /etc/shadow 접근 권한 600(- rw- --- ---) 암호화된 패스워드가 있는 파일이다. 솔라리스에서는 기본으로 400의 권한을 주고 있다. /etc/hosts.equiv 접근 권한 600(- rw- --- ---) 시스템에 대한 신뢰를 설정할 수 있는 파일로 반드시 600 이상의 권한을 주어서는 안되며, 사용하지 않는 파일이라면 아예 삭제하는 것이 좋다. 이 파일은 기본으로 존재하는 파일이 아니므로, 생성할 때 umask값에 따라 권한이 설정된다. 따라서 생성 후 반드시 권한의 변경이 필요하다. /etc/hosts.allow 접근 권한 600(- rw- --- ---) TCPWrapper에서 접근 권한을 설정하는 파일로 600 이상의 권한을 주지 않는다. 이 파일 역시 기본적으로 존재하는 파일이 아니므로, 생성 후 반드시 권한을 변경해준다. /etc/hosts.deny 접근 권한 600(- rw- --- ---) Hosts.allow 파일과 마찬가지로 TCPWrapper에서 접근 제어를 설정할 때 사용하는 파일이므로 600 이상의 권한을 주지 않는다. 이 파일 역시 기본적으로 존재하는 파일이 아니므로, 생성한 후 반드시 권한을 변경해준다. /etc/securetty 접근 권한 600(- rw- --- ---) 텔넷 등에 대한 접근 제어를 설정하는 파일이다. 600 이상의 권한을 주지 않는다.

파일 및 디렉터리 관리 권한 설정 /etc/inetd.conf 접근 권한 600(- rw- --- ---) 시스템이 제공하는 서비스에 대한 정보를 담고 있다. 관리자 이외에는 접근 권한이 없도록 설정한다. 솔라리스에서 기본 권한은 777이므로 반다시 변경한다. /etc/hosts 접근 권한 644(- rw- r-- r--) 시스템이 접근하는 호스트들에 대한 IP와 호스트 이름을 확인할 수 있는 정보를 제공한다. 이에 대한 임의의 변경은 시스템을 마비시킬 수도 있다. 644 이상의 권한을 주지 않는다.

감사 합니다. 이상 입니다.