Я изменил все iptables цепочки на DROP
, и сделанный правилом позволить ssh от компьютера (10.21.0.40, скрыли NAT, eth1) к Серверу Ubuntu (172.16.21.1, статический IP, eth0), вот правило:
sudo iptables -I INPUT 1 -p tcp -dport 22 -i eth1 -s 10.21.0.40 -d 172.16.21.1 -m conntrack --ctstate NEW -j ACCEPT
и когда я пытаюсь соединиться с компьютера на сервер человечности в ssh, я получаю ошибку:
connect to host 172.16.21.1 port 22: Connection refused
почему это происходит?
Правило было прекрасно, забыл устанавливать открытый-ssh.
Правило, которое Вы заключили в кавычки, не будет работать из-за синтаксических ошибок. В дополнение к этому у Вас было две других проблемы:
полный ряд правил прибавить машину, которая Вы хотите принять входящие соединения SSH:
# Flush all the rules in all tables
iptables -F
iptables -t nat -F
# Delete all user defined tables
iptables -X
# Set default policies (you normally leave OUTPUT as 'ACCEPT')
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# Allow local connections
iptables -A INPUT -i lo -j ACCEPT
# Allow ICMP traffic (optional)
iptables -A INPUT -i lo -j ACCEPT
# Allow TCP sessions that are already established
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Finally, allow incoming SSH connections.
iptables -A INPUT -p tcp --dport 22 -j ACCEPT