슈퍼 유져에 접근 할 수 있는 권한을 특정 그룹에만 할당하기
특정 유저만 su root 할수 있도록 설정하려면 다음과 같이한다. /etc/pam.d/su 파일의 처음에 다음을 추가한다.
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
/etc/group 의 wheel 그룹에 su root를 허용하고자 하는 사용자 그룹 등록한다.
wheel:x:10:root,someone
wheel 그룹에만 할당 되어야할 프로그램들
아래의 프로그램들은 슈퍼 유져만이 권한을 가지는 것이 좋다. 일반 유져가 아래 파일들을 사용할 경우 사용자가 우리 서버를 해킹 하거나, 우리 서버를 경유해서 다른 서버를 해킹 할 수 있는 도구가 된다.
su
ps
netstat
uptime
nslookup
dig
df
top
telnet
ftp
ssh
lynx
whois
finger
위의 모든 프로그램의 사용자와 그룹을 다음과 같이 한다.
chown root.wheel 파일이름
위 모든 프로그램의 사용 권한을 750으로 설정한다.
chmod 750 파일이름
열려 있어도 되는 포트들
다음의 포트만 오픈한다.
21 : ftp
22 : ssh
25 : smtp
45 : dns
53 : dns
80 : http
110 : pop3
웹서비스 시에 home 디렉토리와 계정의 권한 설정
홈 디렉토리와 계정 디렉토리에 사용자 외에는 실행 할 수 있는 권한만 줌으로써, 정확한 경로를 모를 경우 찾지 못하게 할 수 있다.
chmod 701 home
chmod 701 /home/usernmae
FTP 데몬의 설정으로 일반 유져는 chroot가 되지 않도록 셋팅 한다.
PROFTPD의 경우
# User login 을 했을시에 user 들이 자신의 홈상위 디렉토리들을 마음대로 돌
# 아다니지 못하게 chroot() 를 설정한다. group 별로 설정을 하게 되며 "!"는
# 제외하라는 의미를 가지게 된다.
#DefaultRoot ~ !groupname
위 ?DefaultRoot 부분의 주석을 풀고 !groupname을 !wheel로 바꾼다. 그렇게 하면 휠 그룹을 제외하고는 root 디렉토리에 ftp 클라이언트로 접근이 불가능하다.
VSFTPD의 경우
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
위의 chroot_list_enable 앞의 주석을 지운다. 위의 chroot_list_file의 주석을 지운다. chroot_list_file을 만든다.
vi /etc/vsftpd.chroot_list
아래와 같이 써 넣는다.
username1
username2
username3
위 리스트에 포함된 사용자는 root 디렉토리로 이동하지 못한다.
Posted by 가야태자
#슈퍼유져(root)의 권한을 획득하는 명령어
chown root.wheel /bin/su
#현재의 프로세서 상태를 확인 하는 명령어
chown root.wheel /bin/ps
#현재 서버의 넷트워크 상태를 확인 하는 명령어
chown root.wheel /bin/netstat
#현재 서버의 사용 시간과 로드를 확인 하는 명령어
chown root.wheel /usr/bin/uptime
#외부 도메인 주소의 아이피/MX 등을 조회 할 수 있는 툴
chown root.wheel /usr/bin/nslookup
chown root.wheel /usr/bin/dig
#현재 하드 디스크의 용량을 확인 할 수 있는 프로그램
chown root.wheel /bin/df
#실시간 프로세서 분석 도구
chown root.wheel /usr/bin/top
# 텔넷 클라이언트(옵션)
chown root.wheel /usr/bin/telnet
#f FTP 클라이언트(옵션)
chown root.wheel /usr/bin/ftp
# SSH 클라이언트(옵션)
chown root.wheel /usr/bin/ssh
# 텍스트용 웹 브라우져(옵션)
chown root.wheel /usr/bin/lynx
# 후이즈
chown root.wheel /usr/bin/whois
# 핑거 서비스
chown root.wheel /usr/bin/finger
#텍스트 기반 다운로드 도구
chown root.wheel /usr/bin/wget
#NC FTP 클라이언트
chown root.wheel /usr/bin/ncftp
윗 부분들을 복사해서 실행하면 특정 그룹으로 권한을 줄 수 있다.
그리고
옵션 이라고 해 둔 부분들은 그런대로 사용자에게 허가 해도 되는 부분이다.
chmod 4750 /bin/su
chmod 750 /bin/ps
chmod 750 /bin/netstat
chmod 750 /usr/bin/uptime
chmod 750 /usr/bin/nslookup
chmod 750 /usr/bin/dig
chmod 750 /bin/df
chmod 750 /usr/bin/top
chmod 750 /usr/bin/telnet
chmod 750 /usr/bin/ftp
chmod 750 /usr/bin/ssh
chmod 750 /usr/bin/lynx
chmod 750 /usr/bin/whois
chmod 750 /usr/bin/finger
chmod 750 /usr/bin/wget
chmod 750 /usr/bin/ncftp
위의 명령어로 그룹만 실행 할 수 있는 권한을 준다.
Posted by 가야태자
이곳은 가야태자의 일상생활, 사진, 리눅스, 자유, 개발언어, 데이타베이스 등에 대해서 이야기 하는 공간입니다.
- 가야태자
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 |