-----------------------------------------
답변자가 기본적으로 참고할 내용입니다.
- 배포판(옵션) : 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
|