링크 ux 아래 iptables 방화벽 설정 노트

11877 단어 nginx
본 고 는 Liux 에서 iptables 방화벽 을 설정 하 는 구체 적 인 방법 을 소개 하고 filter 표 와 nat 표 방화벽 을 설정 하 는 구체 적 인 예 를 포함한다.필요 한 친구 가 있 으 면 참고 하 세 요.
우선, filter 표 의 방화벽 을 설정 합 니 다.
1, iptables 설정 상황 보기 

     [root@tp ~]# iptables -L -n 
    
Chain INPUT (policy ACCEPT)
target       prot opt source                 destination         
Chain FORWARD (policy ACCEPT)
target       prot opt source                 destination         
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination         
Chain RH-Firewall-1-INPUT (0 references)
target       prot opt source                 destination         
ACCEPT       all    --    0.0.0.0/0              0.0.0.0/0           
ACCEPT       icmp --    0.0.0.0/0              0.0.0.0/0             icmp type 255
ACCEPT       esp    --    0.0.0.0/0              0.0.0.0/0           
ACCEPT       ah     --    0.0.0.0/0              0.0.0.0/0           
ACCEPT       udp    --    0.0.0.0/0              224.0.0.251           udp dpt:5353
ACCEPT       udp    --    0.0.0.0/0              0.0.0.0/0             udp dpt:631
ACCEPT       all    --    0.0.0.0/0              0.0.0.0/0             state RELATED,ESTABLISHED
ACCEPT       tcp    --    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:22
ACCEPT       tcp    --    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:80
ACCEPT       tcp    --    0.0.0.0/0              0.0.0.0/0             state NEW tcp dpt:25
REJECT       all    --    0.0.0.0/0              0.0.0.0/0             reject-with icmp-host-prohibited
 

이상 의 설명 에 따 르 면 본 기 계 는 방화벽 이 있 고 22, 80, 25 포트 를 개방 했다.
방화벽 이 설치 되 어 있 지 않 거나 iptables 방화벽 이 시작 되 지 않 으 면 다음 과 같이 표 시 됩 니 다. 

     [root@tp ~]# iptables -L -n 
    
Chain INPUT (policy ACCEPT)
target       prot opt source                 destination         
Chain FORWARD (policy ACCEPT)
target       prot opt source                 destination         
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination 

2. 기 존 규칙 을 지 우려 면 방화벽 규칙 을 설정 하기 전에 현재 filter 의 모든 규칙 을 지 우 는 것 을 권장 합 니 다. 

     [root@tp ~]# iptables -F             filter           
    
[root@tp ~]# iptables -X        filter

방화벽 상태 다시 보기: 
 
    

[root@tp ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target       prot opt source                 destination         
Chain FORWARD (policy ACCEPT)
target       prot opt source                 destination         
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination     

[root@tp ~]# /etc/rc.d/init.d/iptables save
 


이렇게 하면 / etc / sysconfig / iptables 파일 에 쓸 수 있 습 니 다. 방화벽 을 다시 시작 하면 유효 합 니 다. 

     [root@tp ~]# service iptables restart 
    
 

이제 IPTABLES 설정 표 에 아무것도 없습니다. 설정 을 시작 합 시다. (3) 설정 규칙 을 설정 합 니 다. 

     [root@tp ~]# iptables -p INPUT DROP 
    
[root@tp ~]# iptables -p OUTPUT ACCEPT
[root@tp ~]# iptables -p FORWARD DROP
 

IPTABLES 의 filter 표 에 있 는 두 개의 체인 규칙 (INPUT, FORWARD) 을 초 과 했 을 때 이 두 규칙 에 없 는 패 킷 은 어떻게 처리 합 니까? 바로 DROP (포기) 입 니 다. 이렇게 설정 하 는 것 은 안전 합 니 다. 패 킷 유입 을 제어 해 야 합 니 다.한편, OUTPUT 체인, 즉 유출 된 가방 에 대해 우 리 는 너무 많은 제한 을 하지 않 고 ACCEPT 를 취한 다. 즉, 규칙 에 없 는 가방 은 어떻게 해 야 하 는가? 그것 이 바로 통과 이다.INPUT, FORWARD 두 개의 체인 은 어떤 가방 이 통과 할 수 있 는 지, OUTPUT 체인 은 어떤 가방 이 통과 할 수 없 는 지 알 수 있다.이렇게 설정 하 는 것 은 매우 합 리 적 이다. 물론 세 개의 체인 이 모두 DROP 일 수도 있 지만 이렇게 하 는 것 은 필요 없고 쓸 규칙 이 증가 할 것 이다.그러나 제 한 된 몇 가지 규칙 만 원한 다 면, 예 를 들 어 WEB 서버 만 하 는 것 입 니까? 아니면 세 개의 체인 이 모두 DROP 인 것 을 추천 합 니까? 주: 원 격 SSH 로그 인 이 라면 첫 번 째 명령 을 입력 하고 차 로 돌아 갈 때 떨 어 뜨 려 야 합 니 다. 규칙 이 설정 되 어 있 지 않 기 때 문 입 니 다.
(4) 규칙 을 추가 합 니 다. 먼저 INPUT 체인 을 추가 합 니 다. INPUT 체인 의 기본 규칙 은 DROP 이 므 로 ACCETP (통과) 가 필요 한 체인 을 씁 니 다. 

            SSH  ,     22  . 
    
[root@tp ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@tp ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

(비고: 이 규칙 은 OUTPUT 를 DROP 로 설정 하면 이 규칙 을 써 야 합 니 다. 많은 사람들 이 이 규칙 을 써 서 SSH 를 할 수 없습니다. 원 격 으로 하면 되 지 않 습 니까? 다른 포트 도 마찬가지 입 니 다. 웹 서버 를 열 면 OUTPUT 를 DROP 로 설정 하면 체인 도 추가 해 야 합 니 다. 

     [root@tp ~]# iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT ,    .) 
    
 

WEB 서버 를 만 들 었 다 면 80 포트 를 엽 니 다. 

     [root@tp ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
    
 

메 일 서버 를 만 들 었 다 면 25, 110 포트 를 엽 니 다. 

     [root@tp ~]# iptables -A INPUT -p tcp --dport 110 -j ACCEPT 
    
[root@tp ~]# iptables -A INPUT -p tcp --dport 25 -j ACCEPT
 

FTP 서버 를 만 들 었 다 면 21 포트 를 엽 니 다. 

     [root@tp ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT 
    
[root@tp ~]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
 

DNS 서버 를 만 들 었 다 면 53 포트 를 엽 니 다. 

     [root@tp ~]# iptables -A INPUT -p tcp --dport 53 -j ACCEPT 
    
 

만약 당신 이 다른 서버 를 만 들 었 다 면, 어느 포트 를 열 어야 하 는 지, 그대로 쓰 면 됩 니 다. 위 에 주로 INPUT 체인 이 라 고 쓰 여 있 습 니 다. 위의 규칙 에 없 는 것 은 모두 DROP 에서 icmp 가방 이 통과 할 수 있 도록 합 니 다. 즉, ping 을 허용 합 니 다. 

     [root@tp ~]# iptables -A OUTPUT -p icmp -j ACCEPT (OUTPUT   DROP  ) 
    
[root@tp ~]# iptables -A INPUT -p icmp -j ACCEPT    (INPUT DROP )
 

loopback 허용! (그렇지 않 으 면 DNS 가 제대로 닫 히 지 않 는 등 문제 가 발생 할 수 있 습 니 다) 

     IPTABLES -A INPUT -i lo -p all -j ACCEPT (   INPUT DROP) 
    
IPTABLES -A OUTPUT -o lo -p all -j ACCEPT( OUTPUT DROP)
 

다음은 OUTPUT 체인 이 라 고 쓰 여 있 습 니 다. OUTPUT 체인 의 기본 규칙 은 ACCEPT 이기 때문에 DROP (포기) 가 필요 한 체인 을 쓰 겠 습 니 다.
안전 하지 않 은 포트 연결 감소 

     [root@tp ~]# iptables -A OUTPUT -p tcp --sport 31337 -j DROP 
    
[root@tp ~]# iptables -A OUTPUT -p tcp --dport 31337 -j DROP
 

일부 트로이 목마 들 은 포트 31337 에서 31340 (즉 해 킹 언어 중의 elite 포트) 을 스 캔 한다.합 법 적 인 서비스 입 니 다. 이러한 비 표준 포트 를 사용 하지 않 는 이상 이 포트 들 을 막 으 면 네트워크 에 감 염 될 수 있 는 기계 와 원 격 메 인 서버 가 독립 적 으로 통신 할 수 있 는 기 회 를 효과적으로 줄 일 수 있 습 니 다. 그리고 다른 포트 도 마찬가지 입 니 다. 31335, 27444, 27665, 20034 NetBus, 9704, 137 - 139 (smb), 2049 (NFS) 와 같 습 니 다.포트 도 금지 되 어야 합 니 다. 제 가 여기에 쓴 것 도 완전 하지 않 습 니 다. 관심 이 있 는 친 구 는 관련 자 료 를 찾 아 봐 야 합 니 다. 물론 출입 이 더 안전 하 다 는 것 을 고려 하면 OUTPUT 체인 을 DROP 로 설정 할 수 있 습 니 다. 그러면 추가 하 는 규칙 이 많 습 니 다. 위 에 SSH 로그 인 을 허용 하 는 것 처럼 그대로 쓰 면 됩 니 다.
어떤 기계 로 제한 하 는 구체 적 인 규칙.
예 를 들 어 우 리 는 192.168.0.3 의 기계 만 SSH 연결 을 허용 한다. 

     [root@tp ~]# iptables -A INPUT -s 192.168.0.3 -p tcp --dport 22 -j ACCEPT 
    
 

IP 주 소 를 허용 하거나 제한 하려 면 192.168.0.0 / 24 로 192.168.0.1 - 255 단의 모든 IP 를 표시 합 니 다. 24 는 서브 넷 마스크 수 를 표시 합 니 다. 그러나 / etc / sysconfig / iptables 의 이 줄 을 삭제 하 는 것 을 기억 하 십시오. - A INPUT - p tcp - m tcp - dport 22 - j ACCEPT 는 모든 주 소 를 로그 인 할 수 있 음 을 표시 하거나 명령 방식 을 사용 합 니 다. 

     [root@tp ~]# iptables -D INPUT -p tcp --dport 22 -j ACCEPT 
    
 

그리고 저장 합 니 다. 한편 으로 는 명령 을 사용 합 니 다. 그 때 만 유효 합 니 다. 다시 시작 하려 면 저장 해 야 합 니 다. / etc / sysconfig / iptables 파일 에 기록 하 십시오. 

     [root@tp ~]# /etc/rc.d/init.d/iptables save 
    
 

이렇게 쓰 세 요! 192.168.0.3 은 192.168.0.3 의 ip 주 소 를 제외 하고
다른 규칙 연결 도 이렇게 설정 할 수 있 습 니 다.
아래 에 FORWARD 체인 이 있 습 니 다. FORWARD 체인 의 기본 규칙 은 DROP 입 니 다. 그래서 저 희 는 ACCETP (통과) 가 필요 한 체인 을 쓰 고 퍼 가기 체인 에 대한 모니터링 을 합 니 다. 퍼 가기 기능 을 켜 고 (NAT 를 할 때 FORWARD 기본 규칙 은 DROP 일 때 반드시 해 야 합 니 다) 

     [root@tp ~]# iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT 
    
[root@tp ~]# iptables -A FORWARD -i eth1 -o eh0 -j ACCEPT
 

망 가 진 TCP 패키지 버 리 기 

     [root@tp ~]#iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP 
    
 

IP 파편 수량 처리, 공격 방지, 초당 100 개 허용 

     [root@tp ~]#iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT 
    
 

ICMP 패키지 필 터 를 설정 하여 1 초 에 1 개의 가방 을 허용 합 니 다. 트리거 제한 조건 은 10 개의 가방 입 니 다. 

     [root@tp ~]#iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT 
    
 

내 가 앞 에 있 기 때문에 ICMP 가방 을 통과 할 수 있 는 것 은 바로 내 가 여기에 제한 이 있 기 때문이다.
2. NAT 시트 방화벽 1 을 설정 하고 이 컴퓨터 의 NAT 설정 상황 을 봅 니 다. 

     [root@tp rc.d]# iptables -t nat -L 
    
Chain PREROUTING (policy ACCEPT)
target       prot opt source                 destination         
Chain POSTROUTING (policy ACCEPT)
target       prot opt source                 destination         
SNAT         all    --    192.168.0.0/24         anywhere              to:211.101.46.235
Chain OUTPUT (policy ACCEPT)
target       prot opt source                 destination    
 

내 NAT 가 설정 되 어 있 습 니 다. (가장 간단 한 프 록 시 인터넷 기능 만 제공 하고 방화벽 규칙 은 추가 되 지 않 았 습 니 다.) 물론 NAT 가 설정 되 어 있 지 않 으 면 규칙 을 지 울 필요 가 없습니다. NAT 는 기본 적 인 상황 에서 작업 내용 이 없습니다. nat 체인 의 내용 을 지 웁 니 다. 

     [root@tp ~]# iptables -F -t nat 
    
[root@tp ~]# iptables -X -t nat
[root@tp ~]# iptables -Z -t nat

2. 규칙 을 추가 하고 기본 적 인 NAT 주소 변환 을 추가 합 니 다. (NAT 를 어떻게 설정 하 는 지 에 대해 서 는 제 다른 글 을 볼 수 있 습 니 다) 규칙 을 추가 합 니 다. 저 희 는 DROP 체인 만 추가 합 니 다. 기본 체인 은 모두 ACCEPT 이기 때 문 입 니 다. 외부 네트워크 가 내부 네트워크 IP 로 속 이 는 것 을 방지 합 니 다. 

     [root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP 
    
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP
[root@tp sysconfig]# iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
 

MSN, QQ, BT 등 을 막 으 려 면 포트 나 IP 를 찾 아야 합 니 다.
예: 

        211.101.46.253      
    
[root@tp ~]# iptables -t nat -A PREROUTING    -d 211.101.46.253 -j DROP
FTP(21)
[root@tp ~]# iptables -t nat -A PREROUTING -p tcp --dport 21 -j DROP
, .
[root@tp ~]# iptables -t nat -A PREROUTING    -p tcp --dport 21 -d 211.101.46.253 -j DROP
 

이렇게 하면 211.101.46.253 주소 의 FTP 연결 만 사용 하지 않 습 니 다. 다른 연결 은 괜 찮 습 니 다. 예 를 들 어 웹 (80 포트) 연결 입 니 다. 제 가 쓴 대로 QQ, MSN 등 다른 소프트웨어 의 IP 주소 와 포트, 그리고 어떤 프로 토 콜 을 기반 으로 하 는 지 그대로 쓰 면 됩 니 다.
마지막: drop 불법 연결 

     [root@tp ~]# iptables -A INPUT     -m state --state INVALID -j DROP 
    
[root@tp ~]# iptables -A OUTPUT    -m state --state INVALID -j DROP
[root@tp ~]# iptables-A FORWARD -m state --state INVALID -j DROP
 

이미 만들어 진 모든 연결 을 허용 합 니 다. 
 
    

[root@tp ~]# iptables-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
[root@tp ~]# iptables-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

[root@tp ~]# /etc/rc.d/init.d/iptables save


이렇게 하면 / etc / sysconfig / iptables 파일 에 쓸 수 있 습 니 다. 다시 시작 하면 유효 합 니 다: 

     [root@tp ~]# service iptables restart 
   

본문 원본 링크:http://www.jbxue.com/LINUXjishu/9814.html

좋은 웹페이지 즐겨찾기