티스토리 뷰

System/Linux

Fedora설치

Mr.Kang 2008. 7. 26. 13:39

아래 사항을 처리 하기 전에 모든 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
링크
«   2024/05   »
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
글 보관함