iptables 영향 설명

iptables 영향 설명

상황에 따라 인터넷 포트를 열어야 하며 해당 포트에 대한 액세스를 허용하는 IP 범위의 "화이트리스트"를 설정하려고 합니다. 구현을 이해하기 위해 솔루션의 프로토타입을 작성했습니다. 대규모 화이트리스트(5000개 범위)가 미치는 영향에 대한 우려가 있습니다. 그러한 규칙 세트가 성능에 미치는 영향을 설명할 수 있는 방법이 있습니까? iptables에서 메트릭을 얻는 방법은 무엇입니까?

답변1

최신 코어 CPU는 이를 매우 잘 처리할 수 있어야 합니다.

그러나 규칙을 최적화할 수 있는지 확인하는 것은 나쁘지 않습니다. IP 주소 분포에 따라 규칙을 8개 부분으로 나누는 것이 도움이 될 수 있습니다.

iptables -N ourtable
iptables -N ourtable-000
iptables -N ourtable-032
iptables -N ourtable-064
iptables -N ourtable-096
iptables -N ourtable-128
iptables -N ourtable-160
iptables -N ourtable-192
iptables -N ourtable-224

iptables -A INPUT -p tcp --dport 12345 -j ourtable
iptables -A ourtable -s   0.0.0.0/3 -j ourtable-000
iptables -A ourtable -s  32.0.0.0/3 -j ourtable-032
iptables -A ourtable -s  64.0.0.0/3 -j ourtable-064
iptables -A ourtable -s  96.0.0.0/3 -j ourtable-096
iptables -A ourtable -s 128.0.0.0/3 -j ourtable-128
iptables -A ourtable -s 160.0.0.0/3 -j ourtable-160
iptables -A ourtable -s 192.0.0.0/3 -j ourtable-192
iptables -A ourtable -s 224.0.0.0/3 -j ourtable-224

iptables -A ourtable-000 -s 1.2.3.4 -j ACCEPT
...
iptables -A ourtable-000 -j DROP

iptables -A ourtable-032 -s 32.1.2.3 -j ACCEPT
...
iptables -A ourtable-032 -j DROP

# etc...

이 방법으로 패킷은 5000개가 아닌 625개의 규칙에 따라 검사됩니다(물론 주소가 고르게 분포되어 있다고 가정하고 그렇지 않을 수도 있습니다. 그에 따라 전체 주소 공간의 분할을 조정할 수 있습니다).

또한 목록에 이미 서브넷이 있다고 가정합니다(예: 172.18.0.0부터 172.18.0.7까지 허용해야 하는 경우 172.18.0.0/29로 교체). 그렇지 않은 경우 해당 범위를 확인하십시오. Debian에서는 이 netmask유틸리티를 사용하여 특정 넷마스크가 적용되는 내용을 확인합니다.

$ $ netmask -r 172.18.0.0/29
 172.18.0.0-172.18.0.7      (8)

관련 정보