티스토리 뷰
아래 사항을 처리 하기 전에 모든 RPM패키지를 YUM을 사용하여 업데이트를 완료후 아래 사항을
처리 한다.
1. Fedora설치후 필요없는 패키지 삭제
1-1 삭제할 패키지 데몬의 프로세스를 멈춘다
* /etc/rc.d/init.d/apmd stop
* /etc/rc.d/init.d/sendmail stop
* /etc/rc.d/init.d/kudzu stop
* /etc/rc.d/init.d/anacron stop
1-2 불필요한 패키지 삭제
* rpm -e --nodeps anacron apmd at dosfstools eject kudzu mailcap pciutils setserial sendmail
2. Ctrl-Alt-Del키를 이용한 부팅막기
vi /etc/inittab
ca::ctrlaltdel:/sbin/shutdown -t3 -r now에 주석처리를 한다.
3. /etc/service 파일 변경불가 설정
* 표준 서비스로 제공된 포트 번호는 정해진 포트번호로 /etc/service에 정의 되어 있다.
대부분의 포트가 정의가 되어 있어 수정할 필요가 없으므로 보안강화를 위해 이 파일에 대해
변경불가설정을 한다.
chattr +i /etc/services
4. /etc/securetty
* vi /etc/securetty
/etc/securetty내용에서 tty1과 vc/1만 빼고 나머지는 전부 주석처리를 하여 터미널로만 root로
로그인을 허용하게 한다
- ssh로 root접속 불가 설정
vi /etc/ssh/sshd_config
- 주석 제거와 로그인 사용을 no로 변경
PermitRootLogin no
- ssh재시작
/etc/init.d/sshd restart
5. 특수계정 관리
* 불필요한 그룹과 아이디는 삭제를 한다.
* 시스템에 있는 그룹계정 삭제
groupdel username
* 시스템에 있는 계정 삭제
userdel username
5-1 /etc/passwd파일에 있는 계정 중에서 안전한 서버의 운영에 있어 불필요한 계정들을 찾아 삭제한다.
5-2 /etc/passwd에서 불필요한 사용자를 삭제한 다음 /etc/group에서 기본 사용자 계정을 삭제한다.
5-3 위의 과정을 마쳤으면 유저를 추가 한다.
* useradd username
* passwd username
5-4 파일 보호와 링크로 인해 해킹 방지를 위해 변경 불가 비트 설정
* chattr +i /etc/passwd
* chattr +i /etc/shadow
* chattr +i /etc/group
* chattr +i /etc/gshadow
6. 스크립트 관리
6-1 /etc/rc.d/init.d 관리
* 부팅시 정상적인 서비스를 시작하게 하거나 또는 시작하지 않도록 제어하는 스크립트 파일의
실행권한을 오직 root만 수정할수 있도록 조정한다.
chmod -R 700 /etc/rc.d/init.d/*
7. 소유자가 없는 파일 삭제
* 소유자가 없는 파일을 이용하여 해킹 가능성이 있으므로 소유자가 없는 파일들을 삭제한다.
(단 /dev 디렉토리에 있는 파일들은 무시한다.)
find / -nouser -o -nogroup
8. .rhosts파일
* .rhosts화일 하나로 보안에 큰 문제가 생기므로 주기적으로 검색을 하여 내용을 확인후 삭제를
하여야 한다.
find /home -name .rhosts
9. 로그인 접근 제어 테이블
9-1 인증된 사용자만 su권한으로 root로 접속 가능하게 한다.
vi /etc/security/access.conf파일에 아래 구문을 추가한다.
* root와 kevin만 콘솔로 접속가능 구문
-:ALL EXCEPT root kevin kimos lei:ALL
* 이 구문은 LOCAL 즉, 모든 사용자(root를 포함)의 콘솔접근을 허용하지 않고
root로 로그인을 하려면 먼저 IP가 192.168.0.1인 호스트에서
kevin계정으로 로그인하여 su를 이용하여 root로 전환하여야 한다는 구문이다
-:ALL EXCEPT root kevin:192.168.0.1
-:ALL:LOCAL
9-2 access.conf기능을 사용하려면 아래의 라인을 /etc/pam.d/login와 sshd에 추가 하여야 한다.
vi /etc/pam.d/login
account required /lib/security/pam_access.so
10. PING과 Broadcast 요청에 반응 하지 않도록 설정
10-1 PING 요청에 응답거절
- vi /etc/sysctl.conf에 아래 라인을 추가 한다.
net.ipv4.icmp_echo_ignore_all = 1
- 설정 적용을 위해 모든 네트워크 설정을 재시작한다.
/etc/rc.d/init.d/network restart
10-2 Boradcast 요청에 응답거절
- vi /etc/sysctl.conf에 아래 라인을 추가한다.
net.ipv4.icmp_echo_ignore_broadcasts = 1
- 설정 적용을 위해 모든 네트워크 설정을 재시작한다.
/etc/rc.d/init.d/network restart
11. IP라우팅 소스 차단
- vi /etc/sysctl.conf 에 아래 라인을 추가한다.
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0
* net.ipv4.conf.eth1.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
- 설정 적용을 위해 모든 네트워크 설정을 재시작한다.
/etc/rc.d/init.d/network restart
12. TCP SYN Cookie 방어
- vi /etc/sysctl.conf에 아래 라인을 추가한다.
net.ipv4.tcp_syncookies = 1
- 설정 적용을 위해 모든 네트워크 설정을 재시작한다.
/etc/rc.d/init.d/network restart
13 ICMP리다이렉트 차단
- vi /etc/sysctl.conf에 아래 라인을 추가한다.
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.eth1.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
- 설정 적용을 위해 모든 네트워크 설정을 재시작한다.
/etc/rc.d/init.d/network restart
14. IP스푸핑 차단
- vi /etc/sysctl.conf에 아래 라인을 추가한다.
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth1.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
- 설정 적용을 위해 모든 네트워크 설정을 재시작한다.
/etc/rc.d/init.d/network restart
15. PortSentry설치 (Page 503)
cp portsentry-1.1.tar.gz /var/tmp
cd /var/tmp
tar xzpf portsentry-1.1.tar.gz
cd portsentry-1.1
- vi +83 portsentry.conf에서
IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore" 구문을
IGNORE_FILE="/etc/portsentry/portsentry.ignore"으로 수정
HISTORY_FILE="/usr/local/psionic/portsentry/portsentry.history" 구문을
HISTORY_FILE="/var/log/portsentry/portsentry.history"으로 수정
BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked" 구문을
BLOCKED_FILE="/var/log/portsentry/portsentry.blocked"으로 수정을 한다.
- vi +34 portsentry_config.h에서
#define CONFIG_FILE "/usr/local/psionic/portsentry/portsentry.conf" 구문을
#define CONFIG_FILE "/etc/portsentry/portsentry.conf"으로 수정한다.
- vi +24 Makefile에서
CC = cc구문을 CC = gcc으로 수정
CFLAGS = -O -Wall구문을 CFLAGS = -03 -march=i686 -funroll-loops -fomit-frame-pointer -Wall
으로 변경
INSTALLDIR = /usr/local/psionic구문을 INSTALLDIR = /etc
- make하기
*root에서 실행
cd
find /* > PortSentry1
* 해당 디렉토리에서 실행
cd /var/tmp/portsentry-1.1
make linux
install -m700 -s portsentry /usr/sbin/
mkdir -p -m700 /etc/portsentry
install -m600 portsentry.conf /etc/portsentry/
install -m600 portsentry.ignore /etc/portsentry/
touch /etc/portsentry/portsentry.modes
chmod 600 /etc/portsentry/portsentry.modes
mkdir -p -m700 /var/log/portsentry
touch /var/log/portsentry/portsentry.blocked
touch /var/log/portsentry/portsentry.history
cd
find /* > PortSentry2
diff PortSentry1 PortSentry2 > PortSentry-Installed
- make후 삭제
cd /var/tmp/
rm -rf portsentry-1.1
rm -f portsentry-1.1.tar.gz
- PortSentry 파일 설정
vi /etc/portsentry/portsentry.conf
책을 보고 셋팅
'System > Linux' 카테고리의 다른 글
페도라 Subversion설치 (0) | 2008.07.26 |
---|---|
[Apache] mod_rewrite 설치 (0) | 2008.07.26 |
스팸중계 (0) | 2008.07.26 |
Qmail설치 및 설정 (0) | 2008.07.26 |
Apache와 Tomcat설치와 연동 (0) | 2008.07.26 |
- Total
- Today
- Yesterday
- letsencrypt
- Intellj들여쓰기
- 마이바티스CamelCase
- camelcase
- Letsencrypt+nginx
- Letsencrypt wildcard auto renew
- Letsencrypt wildcard
- 마이바티스
- SSL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |