2014-02-17 4 views
1

포트 443의 트래픽에 대해 IPTables 규칙을 구현하려고합니다. 속도 제한에 도달 할 때까지 새로운 연결을 허용 한 다음 드롭하고 삭제 한 패킷을 기록합니다 (속도 제한을 나중에 로깅). 그러나, 내가 가진 규칙으로, 나의 로깅 규칙은 모든 새로운 연결과 함께 호출됩니다. 나는 속도 제한이 이미 도달하지 않으면 로그 엔트리를 만들고 싶지 않습니다.IPTables 규칙 주문

Google 검색 량에 관계없이이 극히 기본적인 질문을 파악할 수 없습니다. I ACCEPT 규칙은 후속 규칙이 호출되는 것을 중지한다는 것을 알고 있습니다. 그러나 ACCEPT 규칙 이전 또는 이후에 내 로깅 규칙을 설정해도 아무런 차이가 없습니다. 연결은 계속 기록됩니다.

의 iptables -L -v -n은 INPUT 체인에 대해 다음과 같습니다

Chain INPUT (policy DROP 2 packets, 88 bytes) pkts bytes target  prot opt in  out  source    destination   
    0  0 ACCEPT  tcp -- eth1 *  0.0.0.0/0   0.0.0.0/0   tcp dpt:443 state NEW limit: avg 50/min burst 10 
    0  0 LOG  tcp -- eth1 *  0.0.0.0/0   0.0.0.0/0   tcp dpt:443 state NEW LOG flags 7 level 7 prefix "IPTables-50/m-Dropped: " 
    9 612 ACCEPT  all -- eth1 *  0.0.0.0/0   0.0.0.0/0   state RELATED,ESTABLISHED 

답변

0

는이 작업을 달성하기 위해하여 -m limit 모듈을 사용할 수 있습니다.

iptables -t filter -A INPUT -p tcp -i eth1 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j DROP

  • 가 분 당 10의 속도에 도달 할 때까지 첫 번째 줄은 패킷을 받아 들일 것입니다

    iptables -t filter -A INPUT -p tcp -i eth1 --dport 443 -m state --state NEW,RELATED,ESTABLISHED -j LOG --log-prefix "IPTables-443-Dropped: " --log-level 4

    iptables -t filter -A INPUT -p tcp -i eth1 --dport 443 -m limit --limit 10/min -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

    .

  • 두 번째 줄은 분당 10 개를 초과하는 패킷을 일치시키고 기록합니다.
  • 세 번째 줄은 두 번째 규칙과 동일한 패킷을 일치시키고 드롭합니다.

저는 ICMP 패킷을 사용해 보았습니다. 실제로이 방법을 사용하고 싶은지 모르겠습니다. 속도입니다.

당신이 클라이언트 IP 주소 (또는 클라이언트 주소 블록) 당 서버에 병렬 연결의 수를 제한 할 수 있습니다 : 아마 당신은 더 나은로 맨 페이지에 설명 된 -m connlimit 모듈을 사용하여 해제 될 것입니다.

희망이 도움이됩니다.