iptables 정책이 DROP 일때는 DROP 순서를 지키면서
삽입해야하더군요
한마디로 요약하면
정책이 DROP ACCEPT 짬뽕 순서 왔다갔다하면 정책 에러납니다
DROP 밑에
iptables -A INPUT -m geoip --src-cc CN -j DROP
이렇게삽입하는게아닌
iptables -I INPUT 22 -m geoip --src-cc CN -j DROP
iptables -A INPUT -m geoip --src-cc CN -j DROP 식으로 넣으면
ACCEPT밑으로와서
에러
이런식으로 ACCEPT정책선언전에
DROP정책 다음에 넣으니 아주 잘되네여^^
[똘똘이]님이 남기신 글:
>-----------------------------------------
>답변자가 기본적으로 참고할 내용입니다.
>- 배포판(옵션) : cnetos6.2 64bit
>- 커널버전(옵션)
:
>- 데몬버전(예:apache
1.3.27) : apache 2.6.32-220.4.2.el6.x86_64
>- 데몬설치유형(RPM/컴파일/기타)
: 컴파일
>-----------------------------------------
>
>KISA방화벽정책+중국대역ip금지가
지상최대의 저의 목표입니다
>
>이두가지 적용시키고싶은데
방화벽정책상 잘안되서요 ㅜㅜ
>기본적으로 제가 잘모르고 이해를 잘못해서그렇지만요..ㅡㅜ
>
>현재 전 중국ip대역 차단을 geoip단독으로 잘쓰고있습니다
>당연히 gEoip 잘 적용했습니다 잘설치됬고요
>
>밑의사이트가 GEOIP 정말 설치 한방에 잘됩니다
강추!!!!
>맡의 사이트를 참조했는데 설명이 잘되있습니다
>==>
>
>http://xinet.kr/tc/173
>
>
>그런데 문제는 ddos등도 대비할려고
> kisa iptables 정책을 iptables정책을 기본적인 base로 쓰고싶고
쓴다면요
>
>그이후에 제가 중국대역 ip차단하려고 geoip를
이용해서
>중국ip대역 차단정책을 삽입하면요
>
>그순간 kisa의 kisa방화벽 기본정책이
>INPUT이 DROP으로설정되있는상태이기에
정책간의 잘못이있는건지
>
>제가 원하는 중국ip차단정책이
iptable정책상 잘못됬다고
> 밑에와같은 에러메시지가 나온다는거에여
>
>
>
>iptables: Saving firewall rules to /etc/sysconfig/iptables:[FAILED]
>
>그래서 지금현재
> kisa의 kisa방화벽 기본정책 이랑 중국ip 대역 차단을 동시에
제가 쓰고싶지만
>동시에 못쓰는걸 어떻게하면 쓸수있을까요?
>
>
>
>현재 IPTABLE은
>기본적인건 인터넷에서 돌고있는 kisa방화벽정책을
그대로 적용했고요
>
>kisa방화벽 기본정책이
>INPUT이 DROP으로설정되있는상태인데요
>
>여기에다가
>중국아이피를 GEOIP모듈설치하고
막으려고
>
>iptables -A INPUT -m geoip --src-cc CN -j DROP
>
>설정했더니
>정책설정의 문제인거같은데요
>밑에와같이 에러생깁니다
>
>iptables: Saving firewall rules to /etc/sysconfig/iptables:[FAILED]
>
>
>현재 IPTABLE의 정책을 저 밑에와같이 했습니다
>기본 INPUT이 DROP으로설정되있는상태인데요
>
>그런데 여기다 중국아이피를 GEOIP모듈설치하고
막으려고
>
>iptables -A INPUT -m geoip --src-cc CN -j DROP
>
>삽입하고 저장하려다 에러가 생기네요
>
>
>이럴땐 어떤식으로 해야 에러없이 IPTABLE이 중국아이피막고
정상적으로 작동될까요?
>
>
>
>밑에는 현재 KISA IPTABLES 적용설정 SSH입니다
>저상태로 그대로 저에게 적용시켰고요
>
>
>[root@localhost bin]# cat My_Firewall
>#!/bin/sh
>
>IPTABLES="/sbin/iptables"
>IP_ADDR=`grep "IPADDR=" /etc/sysconfig/network-scripts/ifcfg-eth0 | awk
-F'=' '{ print $2 }'`
>
>. /etc/init.d/functions
>
>case "$1" in
>start|restart)
> echo "$1ing My_Firewall :"
> ;;
> stop)
> echo "$1ping My_Firewall :"
> $IPTABLES -F
> $IPTABLES -X
> $IPTABLES -P INPUT ACCEPT
> $IPTABLES -P FORWARD ACCEPT
> $IPTABLES -P OUTPUT ACCEPT
> exit
> ;;
> *)
> echo $"Usage: $0 {start|restart|stop}"
> exit
> ;;
>esac
>
>### 룰셋 초기화
>$IPTABLES -F
>
>### 기본정책 설정
>$IPTABLES -P INPUT DROP
>$IPTABLES -P FORWARD DROP
>$IPTABLES -P OUTPUT ACCEPT
>
>### Loopback 트래픽 허용
>$IPTABLES -A INPUT -i lo -j ACCEPT
>
>### 자기자신을 소스로 하는 트래픽 차단
>$IPTABLES -A INPUT -i eth0 -s $IP_ADDR -j DROP
>$IPTABLES -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP
>
>### 상태추적 설정
>$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
>$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
>$IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
>$IPTABLES -A INPUT -p all -m state --state INVALID -j DROP
>
>### 비정상적 tcp-flags 차단
>$IPTABLES -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL PSH,FIN -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL URG,PSH,FIN -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,ACK,FIN -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,PSH -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,RST -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,RST,PSH -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,FIN,ACK,RST -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ALL SYN,ACK,FIN,RST,PSH -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
>$IPTABLES -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
>
>
>### 서비스포트 추가/제거를 위해서는, 반드시 아래의 설정만
수정하시기 바랍니다!!!
>### $IPTABLES 구문앞의 주석 제거후, My_Firewall 를 재가동하시면
해당포트는 활성화 됩니다.
>
>
>## 관리자 PC가 고정이라면 마스터 IP 로 등록하자.
>$IPTABLES -A INPUT -s 211.47.132.123 -m state --state NEW -j ACCEPT
>
>
>### ftp servive 20은 데이타 포트이므로 반드시 오픈 21은 FTP
포트를 바꾸어 사용가능
>#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 20 -m state --state NEW -j ACCEPT
> #$IPTABLES -A INPUT -p tcp --sport 1024: --dport 21 -m state --state NEW -j
ACCEPT
> $IPTABLES -A INPUT -p tcp --dport 20 -j ACCEPT
>$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
>
>
>
># 또는 FTP의 IP 대역을 지정도 가능하다.
>
>$IPTABLES -A INPUT -p tcp --sport 1024: --dport 21 -s 211.xx.xxx.0/255.255.255.0
-j ACCEPT
>
>
>
>
>### ssh servive 22외에 다른 포트로 변경해서 사용하는게좋다.
>$IPTABLES -A INPUT -p tcp --sport 1024: --dport 22 -m state --state NEW -j ACCEPT
>
>
>
>### smtp servive 멜 서버 돌리지 않으면 막자
>$IPTABLES -A INPUT -p tcp --sport 1024: --dport 25 -m state --state NEW -j ACCEPT
>
>
>
>### dns servive DNS 돌리지 않으면 막자
>#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 53 -m state --state NEW -j ACCEPT
> #$IPTABLES -A INPUT -p udp --sport 1024: --dport 53 -m state --state NEW -j
ACCEPT
>
>
>
>### http servive 기본적으로 웹은 돌릴텐데... 열어놓자.
>$IPTABLES -A INPUT -p tcp --sport 1024: --dport 80 -m state --state NEW -j ACCEPT
>
>
>
>### pop3 servive 메일 서버 안쓰면 막죠...
>#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 110 -m state --state NEW -j ACCEPT
>
>
>
>### identd servive
>$IPTABLES -A INPUT -p tcp --syn --dport 113 -j REJECT --reject-with tcp-reset
>
>
>
>### imap servive
>#$IPTABLES -A INPUT -p tcp --sport 1024: --dport 143 -m state --state NEW -j ACCEPT
>
>
>
>### snmp servive
>#$IPTABLES -A INPUT -p udp --sport 1024: --dport 161 -m state --state NEW -j ACCEPT
>
>
>
>### https servive 보안서버 사용한다면 오픈해야 된다.
>$IPTABLES -A INPUT -p tcp --sport 1024: --dport 443 -m state --state NEW -j ACCEPT
>
>
>
>### rsync servive RSYNC 사용한다면 오픈
>$IPTABLES -A INPUT -p tcp --sport 1024: --dport 873 -m state --state NEW -j ACCEPT
>
>
>
>### mysql servive Mysql 은 돌릴테니 오픈
>$IPTABLES -A INPUT -p tcp --sport 1024: --dport 3306 -m state --state NEW -j ACCEPT
>
>
>
>### ping servive 핑을 열어 접근 테스트가 가능하도록...
>$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
>
>
>./My_Firewall start 하면 시작된다..
>죽일때는 ./My_Firewall stop 하면 된다.
>
>주의해야 될것은 기본 정책을 DROP 으로 했기 때문에
>죽일때 iptables -F 로 죽이면 절대 안된다.....
>
>
>서버 부팅시 자동 적용하게 할려면..
>#serivce iptables save
========================================
|