sun's longitude:258 25 12.84 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  

질문과 답변 게시판입니다.

현재 실시간으로 이곳 서버의 설정파일(몇개)를 보여주고 있습니다.
서버의 설정내용에 관한 질문은 먼저 이곳 서버의 설정내용을 참고하시길 바랍니다.

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
2913 번 글: 산이님 IPTABLES 정책 문의 좀드릴게요
글쓴이: 똘똘이 글쓴날: 2012년 03월 06일 16:14:31 화(오후) 조회: 1977
-----------------------------------------
답변자가 기본적으로 참고할 내용입니다.
- 배포판(옵션)    : 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

 
이전글 : 산이님 답변 감사해요^^
다음글 : 해결했습니다 자문 자답입니다  
 from 65.49.14.72
JS(Redhands)Board 0.4 +@

산이님 답변 감사해요^^ 해결했습니다 자문 자답입니다
인쇄용 


apache lighttpd linuxchannel.net 
Copyright 1997-2024. linuxchannel.net. All rights reserved.

Page loading: 0.48(server) + (network) + (browser) seconds