Skip to content

조회 수 8854 추천 수 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. 서버종합점검[리눅스]

    Date2009.05.28 ByADMINPLAY Views8367
    Read More
  2. iptables 명령어로 ip 차단 법.

    Date2009.05.28 ByADMINPLAY Views9283
    Read More
  3. 서버의 iptable 보안설정 일부분

    Date2009.05.28 ByADMINPLAY Views8786
    Read More
  4. DDOS - iptables 방화벽 초간단 문서

    Date2009.05.28 ByADMINPLAY Views12302
    Read More
  5. iptables 설정, centos64 설치 간단셋팅

    Date2009.05.28 ByADMINPLAY Views8854
    Read More
  6. iptables/sysctl을 이용하여 DDOS SYN 공격 방어하기

    Date2009.05.28 ByADMINPLAY Views9204
    Read More
  7. iptables 기본

    Date2009.05.22 ByADMINPLAY Views8386
    Read More
  8. 간단한 보안 설정 (TCP Wrapper)

    Date2009.05.22 ByADMINPLAY Views8941
    Read More
  9. DOS Attack을 막기 위한 간단한 방법

    Date2009.05.22 ByADMINPLAY Views9568
    Read More
  10. 기본 tcpdump사용법

    Date2009.05.22 ByADMINPLAY Views11695
    Read More
  11. SQL 인젝션(injection) 프로그램 15종

    Date2009.05.22 ByADMINPLAY Views12538
    Read More
  12. 해킹툴이 사용하는 포트번호

    Date2009.05.22 ByADMINPLAY Views9813
    Read More
  13. 접속 로그파일 보기(wtmp)

    Date2009.05.11 ByADMINPLAY Views13878
    Read More
  14. 국가별로 접속 차단설정(geoip 설치)

    Date2009.05.10 ByADMINPLAY Views10333
    Read More
  15. mod_evasive를 이용한 웹Dos 공격을 막자

    Date2009.05.07 ByADMINPLAY Views9425
    Read More
  16. 보안서버 SSL 구동시 비밀번호 자동 입력 및 부팅시 자동 ...

    Date2009.03.23 ByADMINPLAY Views9314
    Read More
  17. apache 웹방화벽 모듈 modsecurity용 웹설정 툴, Remo

    Date2009.03.17 ByADMINPLAY Views10033
    Read More
  18. 최신 버전으로 구축하는 웹 파이어월, modsecurity

    Date2009.03.17 ByADMINPLAY Views12851
    Read More
  19. 리눅스 아이피 차단 해제

    Date2009.03.11 ByADMINPLAY Views10538
    Read More
  20. 보안서버구축 - SSL(설치 및 키생성)

    Date2009.01.04 ByADMIN Views10462
    Read More
Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234