В iptables у меня есть правило для ssh, почему это не работает?

Я изменил все 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

почему это происходит?

-1
задан 29 November 2015 в 16:35

2 ответа

Правило было прекрасно, забыл устанавливать открытый-ssh.

1
ответ дан 30 September 2019 в 02:31

Правило, которое Вы заключили в кавычки, не будет работать из-за синтаксических ошибок. В дополнение к этому у Вас было две других проблемы:

  • Вы только позволили входящие соединения, которые только имеют набор флага SYN (новые соединения)
  • , Вы устанавливаете политику по умолчанию ОТБРОСИТЬ для ВЫХОДНОЙ цепочки, не разрешая ответам выйти. Как сервер 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
1
ответ дан 30 September 2019 в 02:31

Другие вопросы по тегам:

Похожие вопросы: