을 사용하고 있습니다 Debian 8 linux
.
일부 IP 주소 그룹을 제외하고 대부분의 IP 주소에서 몇 개의 포트로 들어오는 액세스를 차단하려고 합니다. 다음을 수행하고 있지만 작동하지 않는 것 같습니다.
% sudo /sbin/iptables -v -A INPUT -p tcp -m set '!' --match-set allow-list src -m multiport --dports 110,143,993,995 -j DROP
에 없는 IP 주소에서 이러한 포트에 액세스하려고 시도할 때마다 allow-list
해당 시도는 계속 성공합니다.
다음은 처음 몇 줄입니다 allow-list
.
% sudo /sbin/ipset list allow-list
Name: allow-list
Type: hash:net
Revision: 6
Header: family inet hashsize 16384 maxelem 262144
Size in memory: 687888
References: 2
Members:
125.8.0.0/13
160.94.0.0/15
104.37.68.0/22
205.233.22.0/23
[ ... more CIDR entries ... ]
현재 iptables 구성은 다음과 같습니다.
% sudo /sbin/iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere anywhere ! match-set allow-list src multiport dports pop3,imap2,imaps,pop3s
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
내가 뭘 잘못했나요?
미리 감사드립니다.
답변1
이제 내가 뭘 잘못했는지 깨달았습니다. 다음 수정 사항이 나에게 효과적이었습니다.
% sudo /sbin/iptables -v -I INPUT -p tcp -m multiport --dports 110,143,993,995 -j DROP
% sudo /sbin/iptables -v -I INPUT -p tcp -m multiport --dports 110,143,993,995 -m set --match-set allow-list src -j ALLOW
즉, 먼저허용하다해당 IP는 allow-list
포트 목록을 통해 접속 가능하며,그 다음에이 포트 목록을 통해 액세스하려는 다른 모든 IP를 제거하십시오.
-p tcp
또한 처음에는 TCP 포트를 처리할 때 필요한 옵션을 생략했습니다 .
고쳐 쓰다-A INPUT
: 위에서 잘못 사용한 것으로 나타났습니다 . 올바른 것으로 변경했습니다 -I INPUT
.
추가 업데이트: ...그리고 에 대해서는 -I
규칙을 변경해야 합니다. 이 경우 이전에 정의해야 합니다 DROP
.ALLOW