
Если я добавлю эту строку в свой iptables
:
-A INPUT -s /32 -i tcp -p tcp -m tcp --dport 22 -j DROP
Я получаю ошибку:
iptables-restore v1.4.14: host/network
'не найдено`
При запуске:
sudo iptables-restore /etc/network/iptables
Есть ли проблема с этой строкой? Если нет, я выложу остальную часть конфигурации iptable.
полная конфигурация:
*filter
:INPUT DROP [23:2584]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1161:105847]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 443 -j ACCEPT
# -A INPUT -s /32 -i tcp -p tcp -m tcp --dport 22 -j DROP
-A INPUT -s 192.168.0.10/24 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
скопировано изздесь
решение1
Проблема с этой строкой, а именно с -s /32
частью. Вам нужно определить хост. Например:
-A INPUT -s 123.45.67.8/32 -i tcp -p tcp -m tcp --dport 22 -j DROP
решение2
Также есть проблема с -i tcp
. Это относится к трафику, поступающему в интерфейс tcp
; он не является синтаксически недопустимым, но он вообще ничему не соответствует, потому что такого интерфейса нет.
решение3
Он содержит сетевую маску без хоста. -s /32
Вероятно, так и должно быть -s 127.0.0.1/32
или что-то в этом роде.