제 리눅스 서버에서 IPtables를 사용하여 24 시간 동안 특정 포트에 액세스하는 IP를 금지하고 싶습니다. 이를 위해, 나는 다음의 iptables 규칙을 사용 로그에서iptables가 x 시간 동안 IP를 차단하지 못합니까?
# Check if IP is on banlist, if yes then drop
-A INPUT -m state --state NEW -j bancheck
-A bancheck -m recent --name blacklist --rcheck --reap --seconds 86400 -j LOG --log-prefix "IPT blacklist_ban: "
-A bancheck -m recent --name blacklist --rcheck --reap --seconds 86400 -j DROP
# PUT IPs on banlist
-A banlist -m recent --set --name blacklist -j LOG --log-prefix "IPT add_IP_to_blacklist: "
-A banlist -j DROP
# Ban access to these ports
-A INPUT -p tcp -m multiport --dports 23,25,445,1433,2323,3389,4899,5900 -j LOG --log-prefix "IPT syn_naughty_ports: "
-A INPUT -p tcp -m multiport --dports 23,25,445,1433,2323,3389,4899,5900 -j banlist
을, 나는이 작동하는지 확인할 수 있습니다
Mar 13 02:12:23 kernel: [39534099.648488] IPT syn_naughty_ports: IN=eth0 OUT= MAC=... SRC=218.189.140.2 DST=... LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=29768 DF PROTO=TCP SPT=65315 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0
Mar 13 02:12:23 kernel: [39534099.648519] IPT add_IP_to_blacklist: IN=eth0 OUT= MAC=... SRC=218.189.140.2 DST=...4 LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=29768 DF PROTO=TCP SPT=65315 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0
Mar 13 02:12:26 kernel: [39534102.664136] IPT blacklist_ban: IN=eth0 OUT= MAC=... SRC=218.189.140.2 DST=... LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=4724 DF PROTO=TCP SPT=65315 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0
그러나 로그도 보여 그냥 2시간 나중에 같은 IP가 다시 내 시스템에 액세스합니다. 체인 "bancheck"을 통해 처음부터 오른쪽으로 차단되는 대신 IP는 포트에 액세스 할 수 있으며, 결과적으로 "banlist"에 다시 입력됩니다 (두 경우 모두 대상 포트가 동일한 포트 25 임). 내가 바로의 iptables 규칙을 이해하면
Mar 13 04:35:59 kernel: [39542718.875859] IPT syn_naughty_ports: IN=eth0 OUT= MAC=... SRC=218.189.140.2 DST=... LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=4533 DF PROTO=TCP SPT=57719 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0
Mar 13 04:35:59 kernel: [39542718.875890] IPT add_IP_to_blacklist: IN=eth0 OUT= MAC=... SRC=218.189.140.2 DST=... LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=4533 DF PROTO=TCP SPT=57719 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0
Mar 13 04:36:02 kernel: [39542721.880524] IPT blacklist_ban: IN=eth0 OUT= MAC=... DST=... LEN=52 TOS=0x00 PREC=0x00 TTL=113 ID=12505 DF PROTO=TCP SPT=57719 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0
Mar 13 04:36:08 kernel: [39542727.882973] IPT blacklist_ban: IN=eth0 OUT= MAC=... SRC=218.189.140.2 DST=... LEN=48 TOS=0x00 PREC=0x00 TTL=113 ID=29092 DF PROTO=TCP SPT=57719 DPT=25 WINDOW=8192 RES=0x00 SYN URGP=0
는하지만, 그것은는 24 시간 이내에입니다만큼, 처음 몇 줄에서 차단, 아래로 얻을 수 없을해야한다는 지금까지의 iptables 규칙 세트 다시 포트 규칙을 위반하는 것으로 판명되고 다시 "금지 목록"을 작성합니다.
내가 잘못했거나 규칙이 작동하는 방식을 잘못 이해합니까?
규칙이 실제로 작동하는지 테스트 해 보았습니까? 원격 서버 또는 위치에서 서버에 액세스하려고 시도하는 것처럼 자신을 차단 해보십시오. 블록이 활성화되어있는 동안 계속해서 서버에 액세스 할 수 있습니다. –
예, 작동했는데, 차단되었으며 내 IP가 위에 표시된 것처럼 로그에 표시됩니다. – anz21