강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

리눅스 보안설정방법 강좌 제2편

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문




리눅스 보안설정방법 강좌 제2편








본 강좌는 리눅스 서버관리자들을 위한 강좌로써 리눅스 서버 설치후에 설정해야하는 초기 보안설정에 대한 강좌이다. 총 2편으로 구성되어 있으며 현재 강좌는 2편강좌이다.
































제작자 : 리눅스포털 수퍼유저코리아(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파일을 이용하여 기본적인 아파치웹서버보안을 설정한다.

























24. 커널옵션값 설정 (/etc/sysctl.conf 수정)


/etc/sysctl.conf 파일에 아래 설정들을 복사하여 넣어두면

########## 커널옵션 튜닝값들  ################

net.ipv4.icmp_echo_ignore_broadcasts = 1

net.ipv4.icmp_ignore_bogus_error_responses = 1

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 180

net.ipv4.tcp_timestamps = 0

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_max_syn_backlog = 1280

net.ipv4.tcp_sack = 0

net.ipv4.tcp_window_scaling = 0

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

net.ipv4.conf.all.log_martians = 1

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.ip_local_port_range = 32768 61000

net.ipv4.ip_forward = 0

vm.bdflush = 100 1200 128 512 15 5000 500 1884 2

vm.buffermem = 80 10 60

kernel.sysrq = 1


##선택사항

net.ipv4.icmp_echo_ignore_all = 0

fs.file-max = 32768

###  RAM 256M :8192

########## 커널옵션 튜닝값들  ################


  


직접명령어를 사용할 경우에 다음과 같은 명령어로 커널값설정한다.

주의) 오른쪽의 값이 두개이상되는 것들은 입력이 안됨.(방법찾아볼것)


#!/bin/bash


sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1

sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1

sysctl -w net.ipv4.tcp_fin_timeout=30

sysctl -w net.ipv4.tcp_keepalive_time=180

sysctl -w net.ipv4.tcp_timestamps=0

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_max_syn_backlog=1280

sysctl -w net.ipv4.tcp_sack=0

sysctl -w net.ipv4.tcp_window_scaling=0

sysctl -w net.ipv4.conf.all.accept_redirects=0

sysctl -w net.ipv4.conf.all.send_redirects=0

sysctl -w net.ipv4.conf.all.rp_filter=1

sysctl -w net.ipv4.conf.default.rp_filter=1

sysctl -w net.ipv4.conf.all.log_martians=1

sysctl -w net.ipv4.conf.all.accept_source_route=0

sysctl -w net.ipv4.ip_forward=0

sysctl -w kernel.sysrq=1

sysctl -w net.ipv4.icmp_echo_ignore_all=0

sysctl -w fs.file-max=16384

########################################################


25. httpd.conf 파일 수정


-- Options 항목에 Indexes 모두 제거


--- 아래행 추가

## *.inc 파일을 웹에서 불러들이지 못하는 설정

## 수퍼유저코리아 박성수(papa@superuser.co.kr)

## 2003 5 30


     Order allow,deny

     Deny from all



--- 아래행 추가

## *.log 파일을 웹에서 불러들이지 못하는 설정

## 수퍼유저코리아 박성수(papa@superuser.co.kr)

## 2003 5 30


     Order allow,deny

     Deny from all



26. 아파치 cgi 실행옵션제거


    Options 부분에서 ExecCGI 제거  고려할 .

    AddHandler cgi-script .cgi   주석제거


27. 서버설치 직후에 모든 파일시스템의 badblock 점검한다.

- mount 해서 파티션의 정보를 확인한다.

- badblocks -v -o 파티션명.txt 파티션명

  ( badblocks -v -o sda1.txt /dev/sda1

- 시간이 많이 걸리므로 shell 파일을 만들어서 작업한다.

  ( badblocks.sh)

#!/bin/bash

badblocks -v -o sda1.txt /dev/sda1

badblocks -v -o sda2.txt /dev/sda2

badblocks -v -o sda3.txt /dev/sda3


작업이 끝난 후에 배드블럭이 존재하는 디스크는 반드시 교체한다.


28. httpd.conf파일을 이용하여 기본적인 아파치웹서버보안을 설정한다.


- Options 지시자중 Indexes 제거한다.


- Options 지시자중 FollowSymLinks 제거한다. : 심블릭링크파일의 설정을 허용하지 않는다)/home/sspark09/www/linkfile 이라는 파일이 ln -s /home/sspark/09/www/linkfile /etc/passwd라는 링크파일일 경우에 웹에서 linkfile 로딩했을 경우에 /etc/passwd 파일내용을 있다. SymFollowLinks라는 지시자가 없을 경우에는 이런 링크파일의 사용을 웹에서는 허용하지 않는다.


- Options 지시자중 IncludesNoExec옵션을 추가한다. 이는 SSI의실행 태그중 exec cmd 실행하지 못하게 한다.


- CGI 특정 디렉토리에서만 실행가능하도록 설정한다. 게시판등에서 cgi실행파일을 웹서버에 올려두고서 이를 실행하게 되면 시스템의 정보가 쉽게 유출이 있다이를 막기 위하여 다음 예와 같은 설정으로 특정 디렉토리에서만 cgi 실행가능하도록 한다.

 ScriptAlias /cgi-bin/ "//usr/local/apache/cgi-bin/"


- ServerTokens Apache서버에 접속했을 경우에 응답메시지의 헤더에 웹서버 버전, 설치된 응용프로그램등과 같은 정보를 전달한다. 정보들은 공격자들에게는

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  78 명