LINUX.ORG.RU
решено ФорумAdmin

Почему ping видит хост, а telnet - нет?

 


0

2
# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=53.3 ms
^C
--- 10.0.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 53.395/53.395/53.395/0.000 ms

# telnet 10.0.0.2
Trying 10.0.0.2...
telnet: Unable to connect to remote host: No route to host

# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=52.5 ms
^C
--- 10.0.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 52.583/52.583/52.583/0.000 ms

Потому что пинг это ICMP, а телнет это TCP. Телнет подключается к порту по ip адресу, а ты его не указал

redwagon ()
Ответ на: комментарий от Tanger
# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8811
ACCEPT     icmp --  anywhere             10.0.0.3             icmp echo-request state NEW,RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  10.0.0.3             anywhere             icmp echo-reply state RELATED,ESTABLISHED
Einstok_Fair ★★☆ ()
Ответ на: комментарий от Tanger
# iptables-save
# Generated by iptables-save v1.6.1 on Fri Feb 14 17:04:04 2020
*nat
:PREROUTING ACCEPT [165901:15712312]
:INPUT ACCEPT [11:924]
:OUTPUT ACCEPT [180734:16160062]
:POSTROUTING ACCEPT [180734:16160062]
COMMIT
# Completed on Fri Feb 14 17:04:04 2020
# Generated by iptables-save v1.6.1 on Fri Feb 14 17:04:04 2020
*mangle
:PREROUTING ACCEPT [30240295:34648361235]
:INPUT ACCEPT [30240294:34648361199]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [29860383:33518819261]
:POSTROUTING ACCEPT [29860389:33518819654]
COMMIT
# Completed on Fri Feb 14 17:04:04 2020
# Generated by iptables-save v1.6.1 on Fri Feb 14 17:04:04 2020
*raw
:PREROUTING ACCEPT [30240295:34648361235]
:OUTPUT ACCEPT [29860383:33518819261]
COMMIT
# Completed on Fri Feb 14 17:04:04 2020
# Generated by iptables-save v1.6.1 on Fri Feb 14 17:04:04 2020
*security
:INPUT ACCEPT [30073641:34632609054]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [29860383:33518819261]
COMMIT
# Completed on Fri Feb 14 17:04:04 2020
# Generated by iptables-save v1.6.1 on Fri Feb 14 17:04:04 2020
*filter
:INPUT ACCEPT [1209505:1323170257]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1216328:1289639896]
-A INPUT -p tcp -m tcp --dport 8811 -j ACCEPT
-A INPUT -d 10.0.0.3/32 -p icmp -m icmp --icmp-type 8 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -s 10.0.0.3/32 -p icmp -m icmp --icmp-type 0 -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT
# Completed on Fri Feb 14 17:04:04 2020
Einstok_Fair ★★☆ ()
Ответ на: комментарий от Einstok_Fair

Теперь ты правильно пишешь, а то что порт закрыт - это фиревале проблемы. Если это CentOS, выключи его командами

systemctl stop firewalld
systemctl disable firewalld

redwagon ()
Ответ на: комментарий от redwagon

это фиревале проблемы

Да, если его остановить то всё хорошо. Неясно что с ним не так.

Может ему не хватает ещё одного правила про RELATED, ESTABLISHED?

Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от Einstok_Fair

Ну это вопрос уже как настроить файервол, потрудись найти мануал и настроить

redwagon ()
Ответ на: комментарий от Einstok_Fair

ну и как так, секция output для пакетов сформированных сервером, а у тебя там только icmp. остальному не положено да ? (:

Morin ★★★ ()
Ответ на: комментарий от Morin

Политика таблицы filter цепочки OUTPUT и INPUT - ACCEPT. Т.е. глубоко пофигу, каки там разрешающие правила и с какими адресами. Всё разрешено уже на уровне политики.

shell-script ★★★★★ ()
Последнее исправление: shell-script (всего исправлений: 1)
Ответ на: комментарий от Einstok_Fair

Значит ты что-то не то скопипастил. В твоём iptables-save всё разрешено.

Покажи тогда iptables -nvL до и после остановки фаера.

shell-script ★★★★★ ()
Ответ на: комментарий от shell-script
# systemctl stop firewalld
# systemctl restart systemd-networkd
# ip r l >before
# systemctl start firewalld
# ip r l >after
# md5sum -b before after
89c872a9850407268bcedfea6a7a9f30 *before
89c872a9850407268bcedfea6a7a9f30 *after
Einstok_Fair ★★☆ ()
Ответ на: комментарий от kawaii_neko

С клиента

# traceroute -Tp 23 10.0.0.2
traceroute to 10.0.0.2 (10.0.0.2), 30 hops max, 60 byte packets
 1  10.0.0.2 (10.0.0.2)  55.187 ms !X  55.118 ms !X  55.087 ms !X
С сервера
# traceroute -Tp 23 10.0.0.2
traceroute to 10.0.0.2 (10.0.0.2), 30 hops max, 60 byte packets
 1  10.0.0.2 (10.0.0.2)  0.040 ms  0.016 ms  0.015 ms

Einstok_Fair ★★☆ ()
Ответ на: комментарий от Tanger
# ip r l table wireguard
default via 10.0.0.1 dev wg2 proto static src 10.0.0.2 
# ip rule show
0:	from all lookup local
0:	from 10.0.0.2 lookup wireguard
0:	from all to 10.0.0.2 lookup wireguard
32766:	from all lookup main
32767:	from all lookup default

Ну и там много ещё всего, но мне кажется, что оно не интересное. Пинги ведь ходят?

Einstok_Fair ★★☆ ()
Ответ на: комментарий от shell-script

У меня все правила слетели уже́.

# iptables -nvL
Chain INPUT (policy ACCEPT 25333 packets, 24M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 23118 packets, 23M bytes)
 pkts bytes target     prot opt in     out     source               destination         
# systemctl stop firewalld
# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 
Но при включенном файрволле не работает, а при выключенном - работает. Вот при таких одинаковых таблицах.

Работает - это значит, что пингуется в любом случае, а телнетом коннектится только если firewall не запущен.

Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от Tanger

Нет разницы

# ip r l table all >with
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-02-14 18:09:29 MSK; 10min ago
     Docs: man:firewalld(1)
 Main PID: 23506 (firewalld)
    Tasks: 2 (limit: 4915)
   Memory: 32.8M
      CPU: 1.588s
   CGroup: /system.slice/firewalld.service
           └─23506 /usr/bin/python3.6 /usr/sbin/firewalld --nofork --nopid

Feb 14 18:09:27 server.local systemd[1]: Starting firewalld - dynamic firewall daemon...
Feb 14 18:09:29 server.local systemd[1]: Started firewalld - dynamic firewall daemon.
# systemctl stop firewalld
# systemctl restart systemd-networkd
# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/lib/systemd/system/firewalld.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Fri 2020-02-14 18:19:52 MSK; 44s ago
     Docs: man:firewalld(1)
  Process: 23506 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 23506 (code=exited, status=0/SUCCESS)
      CPU: 1.914s

Feb 14 18:19:52 server.local systemd[1]: Stopped firewalld - dynamic firewall daemon.
Feb 14 18:19:52 server.local systemd[1]: firewalld.service: Consumed 1.914s CPU time.
# ip r l table all >without
# diff -u with without
#
Einstok_Fair ★★☆ ()

вставляй логирующие правила и смотри где он проходит по цепочкам

REJECT может быть не только в таблице filter, к слову. Так не рекомендуют делать, но от этого работать оно не перестает

-j TRACE в помощь

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

REJECT может быть не только в таблице filter

  1. выше есть выхлоп iptables-save, где все таблицы
  2. получаем no route to host, а в случае reject должно быть Connection refused (а в случае DROP - connection timeout)
Tanger ★★★★★ ()
Последнее исправление: Tanger (всего исправлений: 1)
Ответ на: комментарий от Tanger

помогло вот это:
# firewall-cmd --zone=public --add-port=8811/tcp
success

Вот отсюда:
https://superuser.com/questions/986866/tcp-connect-no-route-to-host

Но я так и не понял, что это такое было...

Официальная документация на ЭТО:
https://firewalld.org/documentation/
Не очень официальная:
https://wiki.archlinux.org/index.php/Firewalld

«It uses nftables by default.»

Einstok_Fair ★★☆ ()
Последнее исправление: Einstok_Fair (всего исправлений: 3)
Ответ на: комментарий от Tanger

получаем no route to host, а в случае reject должно быть Connection refused

Что, даже если там --reject-with icmp-host-prohibited ?

vpn ~ # iptables -I FORWARD 1 -d 10.0.0.3 -j REJECT --reject-with icmp-host-prohibited
-------------------------------
client ~ # telnet 10.0.0.3 20
Trying 10.0.0.3...
telnet: connect to address 10.0.0.3: No route to host
-------------------------------
server ~ # netstat -pnlt | grep 20
tcp        0      0 0.0.0.0:20              0.0.0.0:*               LISTEN      7836/nc
Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Einstok_Fair

Сдаётся мне у тебя конфликс nftables и iptables. Выбери что-то одно и настраивай через него. Да, они оба работают через Netfilter, но на ЛОРе уже были посты о том, что смешивать управление этими двумя утилитами чревато.

А у тебя еще и firewalld там, надо смотреть через что работает он...

Pinkbyte ★★★★★ ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей