무차별 SSH 공격에 대한 규칙을 추가하는 데 문제가 있습니다. 나는 다음을 통해 이 작업을 수행하려고 합니다.
iptables -F
iptables -L
iptables -N SSHATTACK
iptables -A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
iptables -A SSHATTACK -j DROP
#Block each IP address for 120 seconds which establishe more than three connections within 120 seconds. In case of the forth connection attempt, the request gets delegated to the SSHATTACK chain, which is responsible for logging the possible ssh attack and finally drops the request.
iptables -A INPUT -i venet0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i venet0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK
하지만 다음 두 줄에 문제가 있습니다.
iptables -A INPUT -i venet0 -p tcp -m state --dport 22 --state NEW -m recent --set
iptables -A INPUT -i venet0 -p tcp -m state --dport 22 --state NEW -m recent --update --seconds 120 --hitcount 4 -j SSHATTACK
이 명령 이후의 출력은 다음과 같습니다.
iptables: No chain/target/match by that name.
iptables -L
다음과 같은 출력을 제공합니다.
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 SSHATTACK (0 references)
target prot opt source destination
LOG all -- anywhere anywhere LOG level debug prefix `Possible SSH attack! '
DROP all -- anywhere anywhere
그리고 iptables -S
다음을 제공합니다:
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N SSHATTACK
-A SSHATTACK -j LOG --log-prefix "Possible SSH attack! " --log-level 7
-A SSHATTACK -j DROP
ip add
주어진 경우("?"로 IP 주소를 숨겼습니다):
1 lo LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN
linkloopback 000000000000 brd 000000000000
inet 127.0.0.18 scope host lo
inet6 1128 scope host
valid_lft forever preferred_lft forever
2 venet0 BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP mtu 1500 qdisc noqueue state UNKNOWN
linkvoid
inet 127.0.0.132 scope host venet0
inet ?.?.?.24820 brd ?.?.?.255 scope global venet00
이 규칙을 추가하려면 어떻게 해야 합니까? 내가 무엇을 놓치고 있나요?
답변1
이것은 오래된 스레드이지만 누군가 여기에 오면 도움이 될 수 있습니다(나를 위해 해결되었습니다).
문제는 커널 드라이버가 없다는 것입니다. 추가한 후
CONFIG_NETFILTER_XT_MATCH_RECENT=y
커널 구성을 수정하고 다시 컴파일하면 문제가 해결됩니다. 모듈(=m)로 추가하고 런타임에 insmod할 수도 있습니다.
행운을 빌어요!
답변2
매개 변수가 일치 --dport
의 일부가 아닙니다 . state
노력하다:
iptables -A INPUT -i venet0 -p tcp --dport 22 -m state --state NEW -m recent --set