Linux 보안설정

Security &

2010.05.11 15:26

리눅스 보안설정 몇 가지.
보안가이드라인 만들 때 참고할 만한 항목들은 딱히 보이진 않지만 그래도 참고는 할 만하다.

TELNET 배너 제거하기
#/etc/xinetd.d/telnet
Server_args=-h 적용
변경사항 적용 # killall -HUP xinetd

리눅스를 설치하면 자동으로 생성되는 계정 가운데 lp, sync, shutdown, halt, news, uucp, operator, games, gopher 등 여러분이 실제로 사용하지 않는 계정은 모두 없애는 것이 좋다.
ftp, xfs, adm, lp, newes, gopher를 /etc/passwd와 /etc/group 에서 주석처리 또는 userdel uid, groupdel gid를 하면 된다.
#userdel adm
#userdel lp
#userdel sync
#userdel shutdown
#userdel halt
#userdel news
#userdel uucp
#userdel operator
#userdel games
#userdel gopher
#userdel ftp (anymous FTP server를 운영하지 않으면 삭제 한다.)
#groupdel adm
#groupdel lp
#groupdel news
#groupdel uucp
#groupdel games
#groupdel dip
#groupdel pppusers
#gropudel slipusers

사용자 계정을 없앨 때에는:
[root@kapil /]# userdel [계정명]
 
그룹을 없앨 때에는:
[root@kapil /]# groupdel [그룹명]
 
좋은 패스워드를 고르기 전에 아래 규칙에 따라 패스워드 최소 길이를 설정한다.
패스워드 길이: 리눅스를 기본 값들로 설치하면, 최소 다섯 글자만 넣으면 패스워드로 받아들이도록 설정되어 있을 것이다. 하지만, 다섯 글자는 너무 적어 안전하지 못하고 최소한 여덟 글자는 되어야만 한다. 패스워드 길이 하한을 바꾸려면 login.defs 파일을 열어(vi /etc/ligin.defs) 아래와 같이 편집한다.
 
PASS_MIN_LEN 5
 
숫자 5들 아래처럼 8로 바꾼다:
PASS_MIN_LEN 8
 
"login.defs" 파일은 로긴 프로그램의 환경 설정 값을 넣어두는 파일이다.
 
 
root 계정
"root" 계정은 유닉스 계열 시스템에서 매우 강력한 권한을 가진 계정이다. root로 로그인한 시스템 관리자가 로그아웃하는 것을 깜빡 잊고 root 프롬프트를 남겨둔 채 떠나버렸다면, 타임아웃을 설정해 두고 일정한 시간이 지나서 자동으로 로그아웃하도록 설정할 수 있다. "TMOUT" 변수에 초단위로 타임아웃 시간을 설정하면 된다. "vi /etc/profile" 명령으로 프로파일을 열어서 아래 설정을 적당한 곳에 덧붙인다.
 
"HISTFILESIZE="
TMOUT=3600
 
"TMOUT=" 변수에 설정한 값은 1 시간을 뜻한다. (60 * 60 = 3600 초) 이 줄을 "/etc/profile"에 넣어두면 사용자가 접속해서 한 시간이 지나도록 아무 것도 하지 않을 때 자동으로 로그아웃한다.
사용자 홈 디렉토리 아래 ".bashrc " 파일에 넣어두고 개인적으로 사용할 수도 있다. 여러분 시스템에서 이 패러미터를 설정한 뒤에는 반드시 로그아웃 한 다음 다시 로긴해서 바뀐 설정 내용을 시스템에 적용해야 한다.
 
 
TCP_WRAPPERS
TCP_WRAPPERS를 이용하면 허용하지 않는 외부 주소로부터 들어오는 침입을 막아 보안을 강화시켜 준다. 가장 좋은 정책은 "/etc/hosts.deny" 파일을 열어 "ALL:
ALL@ALL, PARANOID" 줄을 추가해서 모든 호스트를 기본적으로 거부(deny)한 다음, "/etc/hosts.allow" 파일을 열어 신뢰할 수 있는 호스트만 열어주는 것이다. TCP_WRAPPERS는 아래 두 파일로 제어되는데 일단 일치하는 규칙을 찾으면 다른 규칙들은 비교하지 않는다.(규칙을 찾는 순서는 아래 순서대로이다)
 
/etc/hosts.allow
/etc/hosts.deny
 
Step 1
hosts.deny 파일을 열어 (vi /etc/hosts.deny) 다음 줄들을 추가한다:
 
# 모든 접속을 거부
ALL:
ALL@ALL, PARANOID
 
Which means all services, all locations is blocked, unless they are permitted access by entries in the allow file.
위 설정은 모든 서비스, 모든 사용자, 모든 출발지 주소를 막는다. allow 파일에서 허용할 주소로 설정된 목록까지 포함해서.
 
Step 2
hotsts.allow 파일을 열어 (vi /etc/hosts.allow) 다음 예문처럼 여러분에 필요한 값들을 추가한다:
 
예를 들어:
ftp: 202.54.15.99 foo.com
여러분 서버를 이용할 클라이언트 머신이: IP 주소가 202.54.15.99이고, 호스트 이름이 foo.com이라면 ftp 접속을 허용한다.
 
Step 3
tcpdchk 프로그램은 tcpd 래퍼 환경설정을 점검한다. tcpdchk는 여러분 시스템에 설정된 tcp 래퍼 환경설정을 검사하고 잠재되었거나 실제로 드러나는 문제점들을 찾아내 보고 한다.
 
* tcpd 래퍼를 설정한 다음에 tcpdchk 프로그램을 실행한다.
[Root@kapil /]# tcpdchk
 
다른 장치에서는 root로 로긴하지 못하게 만든다.
"/etc/securetty" 파일은 "root" 사용자로 로긴 할 수 있는 TTY 장치를 지정한다. "/etc/securetty" 파일을 열어서 필요 없는 tty는 모두 주석으로 바꾼다. (# 문자를 줄 처음에 끼워 넣는다)
 
다른 사용자가 su 명령으로 root가 되는 것을 막는다
su (substitute user) 명령은 한 사용자가 같은 시스템 안에 있는 다른 사용자가 될 때 사용하는 도구이다. 여러분이 허용한 사용자가 아니라면 su 명령을 사용할 수 없도록 설정하려면 "/etc/pam.d/" 디렉토리 아래 "su" 설정 파일을 열어 맨 꼭대기에 다음 두 줄을 덧붙인다.
 
Step 1
su 파일을 열어 (vi /etc/pam.d/su) 다음 두 줄을 맨 꼭대기에 추가한다:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
 
이 설정은 "wheel" 그룹의 사용자만 su 명령으로 root가 될 수 있도록 허용한다; 그리고 누군가가 root로 su 했다면 기록을 남긴다. 이제부터는 su 명령으로 root가 되는 것을
허용할 사용자를 wheel 그룹에 추가하기면 된다.

티스토리 툴바