리눅스 보안설정방법 강좌 제1편
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 8,958 조회
- 0 추천
- 목록
본문
리눅스 보안설정방법 강좌 제1편 |
본 강좌는 리눅스 서버관리자들을 위한 강좌로써 리눅스 서버 설치후에 설정해야하는 초기 보안설정에 대한 강좌이다. 총 2편으로 구성되어 있으며, 현재강좌는 1편강좌이다. |
제작자 : 리눅스포털 수퍼유저코리아(www.superuser.co.kr) 박성수
-----목차------
1. 서버구축시에는 반드시 별도의 파티션과, 별도의 백업디스크를 둔다.
2. 시스템디스크와 데이터디스크를 구분하여 구축한다.
3. /etc/xinetd.d/ 불필요한 파일들 제거
4. /etc/rc.d/init.d/ 불필요한 초기화 스크립트 제거
5. /etc/services 파일의 사용하지 않는 포트정보 주석처리
6. tcp_wrapper의 효율적인 활용을 위한 /etc/hosts.allow, /etc/hosts.deny 파일 설정
7. proftpd 설치시에 Anonymous로그인 불허설정.(주석처리)
8. ssh의 root원격로그인 설정제거
9. su 명령어의 사용제한설정
10. logserver 설정 : 필요할 경우에.....
11. secu_script로 파일보안을 위한 파일퍼미션 설정
12. /etc/rc.d/rc.local내에 시스템 시작시 실행할 초기화 스크립트 설정
13. timeserver 설정
14. cron에 local 백업설정 (가능한 새벽 04:00)
15. cron에 시스템 점검 실행 설정 system_check (가능한 아침 08:00)
16. 불필요한 process 제거
17. ntsysv 에서 초기 실행할 서비스데몬 내리기
18. 로그인정보수정 및 리눅스버전정보 숨기기
19. root소유의 SetUID, SetGID 명령어 퍼미션수정및 불피요한 것일 경우에 삭제
20. systemfiles들 로컬복구를 위한 별도저장
21. chkrootkit 설치및 실행결과 확인
22. 시스템 performance및 hacking보안을 위한 kernel option값 설정
23. 마지막에는 tripwire 설치 및 초기화 설정
24. 커널옵션값 설정 (/etc/sysctl.conf 수정)
25. httpd.conf 파일 수정
26. 아파치 cgi 실행옵션제거
27. 서버설치 직후에 모든 파일시스템의 badblock을 점검한다.
28. httpd.conf파일을 이용하여 기본적인 아파치웹서버보안을 설정한다.
1. 서버구축시에는 반드시 별도의 파티션과, 별도의 백업디스크를 둔다.
이 백업디스크에 일백업및 실시간 백업이 이루어 지도록 구성한다.
backup.sh 파일작성및 crontab에 설정적용함.
### crontab 파일내용(기본)
00 00 * * * su - root /usr/bin/rdate -s time.bora.net && /sbin/clock -w
00 01 * * * su - root -c '/home/papa/backup.sh' >& /dev/null
00 08 * * * su - root -c '/home/papa/system_check' > /home/papa/www/system_check/system_check_logs
### backup.sh 내용(기본)
#!/bin/bash
cd /backup
rm -f *.tar.gz
tar cvfpz /backup/usr.local.tar.gz /usr/local/
tar cvfpz /backup/home.tar.gz /home
tar cvfpz /backup/etc.tar.gz /etc
tar cvfpz /backup/var.tar.gz /var
2. 시스템디스크와 데이터디스크를 구분하여 구축한다.
예 sda : / 시스템(운영체제가 설치되는)디스크
sdb : /home : 데이터디스크
sdc : /usr : Mysql, Apache등의 Applications 저장 디스크
sdd : /backup : 백업 디스크
3. /etc/xinetd.d/ 불필요한 파일들 제거
4. /etc/rc.d/init.d/ 불필요한 초기화 스크립트 제거
5. /etc/services 파일의 사용하지 않는 포트정보 주석처리
6. tcp_wrapper의 효율적인 활용을 위한 /etc/hosts.allow, /etc/hosts.deny 파일 설정
/etc/hosts.allow의 권장내용
popper : ALL
sendmail : ALL
7. proftpd 설치시에 Anonymous로그인 불허설정.(주석처리)
** RPM시에는 /etc/proftpd/conf/proftpd.conf 파일에 설정
** 컴파일시에는 /usr/local/proftpd/etc/proftpd.conf 파일에 설정
관리자 ID외의 상위 디렉토리 이동제한설정
예1)
DefaultRoot ~ !papa
예2)
DefaultRoot ~ !ds5ezp,!papa
8. ssh의 root원격로그인 설정제거
sshd가 설치되어 있지않을 경우나 망가져있을 경우에는 ssh관련 파일들을 rpm으로 설치하거나 compile하여 설치한다.
rpm으로 설치하였을 경우에는 /etc/rc.d/init.d/sshd start를 해줘야만 local key파일들이 /etc/sshd에 생성된다.
/etc/ssh/sshd_config파일내의 (redhat 7.3에서는 기본설정되어 있음(주석처리되어 있다는 의미)
PermitRootLogin no
9. su 명령어의 사용제한설정
chmod 4750 /bin/su
/etc/group내의 wheel그룹에 관리자계정 등록(예 : wheel:x:10:root,papa)
chown root:wheel /bin/su
10. logserver 설정 : 필요할 경우에.....
/etc/hosts 에는 logserver의 호스트정보 등록
/etc/syslog.conf 에는 로그를 원격로그서버에 저장할 대상 설정
작업서버에서의 syslog 재시작(/etc/rc.d/init.d/syslog restart)
로그서버(su21)에서의 syslogd재시작(/sbin/syslogd -h -r)
11. secu_script로 파일보안을 위한 파일퍼미션 설정
12. /etc/rc.d/rc.local내에 시스템 시작시 실행할 초기화 스크립트 설정
/usr/local/apache/bin/apachectl start
/usr/local/mysql/bin/safe_mysqld&
/usr/local/proftpd/sbin/proftpd
### Time Server Setting
/usr/bin/rdate -s time.bora.net
/sbin/clock -w
13. timeserver 설정
방법#1 cron에 설정 (매일 한번씩 맞춤)
00 01 * * * su - root /usr/bin/rdate -s time.bora.net && /sbin/clock -w
time server 설정시 크론의 내용을 확인하여 작동이 되지않을 경우에는 /etc/services 내의 time관련 서비스 항목의 주석제거할것....
방법#2 부팅시마다 적용하기 위해 /etc/rc.d/rc.local에 설정
### Time Server Setting
/usr/bin/rdate -s time.bora.net
/sbin/clock -w
14. cron에 local 백업설정 (가능한 새벽 04:00)
15. cron에 시스템 점검 실행 설정 system_check (가능한 아침 08:00)
16. 불필요한
관련자료
-
이전
-
다음