Skip to content

조회 수 8857 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

test서버 방화벽 셋팅 (하도 자꾸 잊어버려서 기억하는 차원에서)

centos 64 버전(5.2) : 방화벽환경은 NAT가 필요없는 테스트 서버임(나홀로 내맘대로 서버...^^)
모든 버전은 기본 rpm버전이며 절대로 컴팔은 하지 않음!!!!!

#!/bin/sh
# 자체 서버 방화벽 룰 설정 파일
iptables -F -t filter
iptables -F -t nat
iptables -F -t mangle
# 기존에 설정되어 있을지 모를 룰을 모두 초기화한다.

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# 모든 룰에 매칭되지 않았을 때 실행될 기본 정책을 설정하는 부분이다.
# 자체 서버형태에서는 패킷을 다른 서버로 포워딩하지 않으므로 FORWARD chains 은
# 사용할 필요가 없다. 따라서 기본 정책으로 DROP 하고, OUTPUT은 가급적 허용하도록
# 한다. 단, INPUT에서는 반드시 DROP 하도록 한다.

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# 루프백 인터페이스를 통해 오가는 트래픽은 허용한다.
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i eth0 -s 255.255.255.255/32 -j DROP
iptables -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP
iptables -A INPUT -i eth0 -s 169.254.0.0/16 -j DROP
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i eth0 -s 192.0.2.0/24 -j DROP
#iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP
iptables -A INPUT -i eth0 -s 224.0.0.0/4 -j DROP
iptables -A INPUT -i eth0 -s 240.0.0.0/5 -j DROP
iptables -A INPUT -i eth0 -s 248.0.0.0/5 -j DROP
# INPUT 패킷중 RFC 1918 에 정의된 사설 ip 및 일반적인 인터넷에서는 사용될 수
# 없는 ip 또는 ip 대역을 소스로 한 패킷을 차단한다.
# 위의 경우 외부 네트워크의 인터페이스로 eth0을 사용하는 경우이다.

# ssh buste attack rule
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSHSCAN
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update \
 --seconds 60 --hitcount 5 --rttl --name SSHSCAN -j LOG --log-prefix SSH_Scan:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update \
 --seconds 60 --hitcount 5 --rttl --name SSHSCAN -j DROP

iptables -A OUTPUT -d 10.0.0.0/8 -j DROP
iptables -A OUTPUT -d 255.255.255.255/32 -j DROP
iptables -A OUTPUT -d 0.0.0.0/8 -j DROP
iptables -A OUTPUT -d 169.254.0.0/16 -j DROP
iptables -A OUTPUT -d 172.16.0.0/12 -j DROP
iptables -A OUTPUT -d 192.0.2.0/24 -j DROP
#iptables -A OUTPUT -d 192.168.0.0/16 -j DROP
iptables -A OUTPUT -d 224.0.0.0/4 -j DROP
iptables -A OUTPUT -d 240.0.0.0/5 -j DROP
iptables -A OUTPUT -d 248.0.0.0/5 -j DROP
# OUTPUT chain 에 대한 설정으로 비정상적인 ip 또는 ip 대역을 목적지로 한 패킷을
# 거부한다. FORWARD 는 어떠한 트래픽도 허용하지 않으므로 별도로 언급하지 않아도
# 된다.

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 상태 추적에 따라 허용되어 이미 세션을 맺은 후 뒤따라오는 패킷은 허용하도록 한다.

iptables -A INPUT -i eth0 -p TCP ! --syn -m state --state NEW -j DROP
# tcp 패킷중 상태추적에는 NEW 이면서 syn 패킷이 아닌 패킷을 필터링한다.
# 이외의 패킷은 모두 위조된 패킷이기 때문이다.

iptables -A INPUT -i eth0 -p ALL -m state --state INVALID -j DROP
# 상태추적 테이블에서 INVALID 인 패킷은 차단한다.

iptables -A INPUT -i eth0 -p TCP --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
# 웹 서비스를 제공할 때 목적지 포트가 80번으로 향하는 초기(NEW) 패킷은 허용한다.

iptables -A INPUT -i eth0 -p TCP -s 0/0 --sport 1024: --dport 21 -m state --state NEW -j ACCEPT
# 모든 대역에서의 ftp 접속을 허용한다.

iptables -A INPUT -i eth0 -p TCP -s 0/0 --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
# 모든 에서의 ssh 접속을 허용한다.

iptables -A INPUT -i eth0 -p TCP -s 0/0 --sport 1024: --dport 3306 -m state --state NEW -j ACCEPT
# 모든 에서의 mysql 접속을 허용한다.

iptables -A INPUT -i eth0 -p TCP -s 0/0 --sport 1024: --dport 20 -m state --state NEW -j ACCEPT
# 모든 에서의 ssh 접속을 허용한다.

iptables -A INPUT -i eth0 -p TCP --sport 1024: --dport 25 -m state --state NEW -j ACCEPT
# SMTP 서비스를 제공할 때 외부에서 오는 메일을 받아 서버에 저장하거나 다른 서버로
# 보내고자 할 때 필요하므로 25/tcp를 허용한다.

iptables -A INPUT -i eth0 -p TCP -s 0/0 --sport 1024: --dport 110 -m state --state NEW -j ACCEPT
# pop3 서비스를 제공할 때 110/tcp 번으로 향하는 초기(NEW) 패킷을 허용한다.

iptables -A INPUT -p ICMP --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type network-unreachable -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type host-unreachable -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type port-unreachable -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type fragmentation-needed -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type time-exceeded -j ACCEPT
# icmp 와 관련된 패킷을 허용한다.
# 허용하고자 하는 icmp type을 지정하면 된다.


전반적인 내용은 kisa 방화벽 가이드와 일치한다.

스크립트 작성후

chmod +x iptables 로 실행권한 부여한다.
그리고 ./iptables 후 iptables -L로 확인

/etc/sysconfig/iptables-config 에서

IPTABLES_SAVE_ON_STOP="yes"

# Save current firewall rules on restart.
#   Value: yes|no,  default: no
# Saves all firewall rules to /etc/sysconfig/iptables if firewall gets
# restarted.
IPTABLES_SAVE_ON_RESTART="yes"

2가지 yes로 변경 후 (말그대로 리스타트 할때, 그리고 스톱시킬때 자동 세이브한다는 내용)

/etc/rc.d/init.d/iptables save 하면 기존 스크립트가 /etc/sysconfig/iptables에 저장된다.

ssh 환경 셋팅

/etc/ssh/sshd_config 에서

AllowUsers test --->test 유저만 접속가능
PermitRootLogin no--->#제거후 yes에서 no로. 루트접속금지

  1. No Image 19Jan
    by ADMINPLAY
    2014/01/19 by ADMINPLAY
    Views 7066 

    CentOS Portsentry 1.2 소스설치 오류

  2. No Image 02Jan
    by ADMINPLAY
    2014/01/02 by ADMINPLAY
    Views 7534 

    PHP 보안의 약방의 감초 open_basedir

  3. No Image 10Nov
    by ADMIN
    2008/11/10 by ADMIN
    Views 7824 

    CentOS 5.2 32bit 에 2.6.27.4 커널 + iptables 1.4.2 + connlimit, geoip 모듈 패치 설치하기

  4. No Image 11Nov
    by ADMIN
    2008/11/11 by ADMIN
    Views 8069 

    wowhacker.com

  5. No Image 08Mar
    by l2zeo
    2010/03/08 by l2zeo
    Views 8172 

    파일 퍼미션 설정을 통한 로컬 공격 방지

  6. No Image 30Nov
    by ADMINPLAY
    2009/11/30 by ADMINPLAY
    Views 8316 

    lsof 활용 가이드

  7. No Image 28May
    by ADMINPLAY
    2009/05/28 by ADMINPLAY
    Views 8371 

    서버종합점검[리눅스]

  8. No Image 22May
    by ADMINPLAY
    2009/05/22 by ADMINPLAY
    Views 8389 

    iptables 기본

  9. No Image 08Mar
    by l2zeo
    2010/03/08 by l2zeo
    Views 8394 

    SSH 공격막아내기 방법

  10. No Image 20Oct
    by ADMINPLAY
    2009/10/20 by ADMINPLAY
    Views 8407 

    SSH(Security SHell) 보안쉘

  11. No Image 30Jan
    by ADMINPLAY
    2010/01/30 by ADMINPLAY
    Views 8509 

    Tcpdump 용어 정리

  12. No Image 11Nov
    by ADMIN
    2008/11/11 by ADMIN
    Views 8546 

    ZONE-H.KR

  13. No Image 04Jun
    by ADMINPLAY
    2009/06/04 by ADMINPLAY
    Views 8734 

    pam_abl 을 통한 SSH 무작위 공격 방어

  14. No Image 08Mar
    by l2zeo
    2010/03/08 by l2zeo
    Views 8734 

    LINUX 해킹당했을 때 대처요령

  15. No Image 08Sep
    by ADMINPLAY
    2009/09/08 by ADMINPLAY
    Views 8776 

    시스템 로그를 메일로 - logcheck

  16. No Image 28May
    by ADMINPLAY
    2009/05/28 by ADMINPLAY
    Views 8790 

    서버의 iptable 보안설정 일부분

  17. No Image 13Dec
    by ADMINPLAY
    2009/12/13 by ADMINPLAY
    Views 8800 

    Kernel 2.4.23 버전 이하에 나온 ptrace 버그에 관한 사항

  18. No Image 30Nov
    by ADMINPLAY
    2009/11/30 by ADMINPLAY
    Views 8854 

    iptables 옵션 및 상태 추적 테이블 및 rule

  19. No Image 28May
    by ADMINPLAY
    2009/05/28 by ADMINPLAY
    Views 8857 

    iptables 설정, centos64 설치 간단셋팅

  20. 홈페이지 보안 강화 도구(CASTLE) 보급 안내

Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234