SSH временами рвет соединение при включенном iptables
Hellsy22 4 апреля, 2013 - 07:22
Ноут воткнут в роутер. Туда же воткнут настраиваемый сервер. Сервер раздает wifi.
Пока не было iptables ssh работал идеально.
Если подключиться с помощью wifi - с ssh все тоже ок.
Если подключиться через какой-нибудь другой сервер - все ок.
Но в первоначальной конфигурации (ноут и сервер воткнуты в роутер) регулярно разрывается ssh соединение при массовом выводе текста или при попытке отправить блок текста.
Пробовал:
ifconfig eth0 mtu 1420 - немного помогло, по крайней мере соединение перестало рваться при выводе
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu - ничего не изменилось.
eth0 - WAN
wlan0 - LAN
localhost ~ # iptables -L -v
Chain INPUT (policy DROP 259 packets, 24112 bytes) pkts bytes target prot opt in out source destination 129 62294 ACCEPT udp -- eth0 any anywhere anywhere udp spt:domain dpts:1024:65535 20 3020 ACCEPT icmp -- any any anywhere anywhere icmp destination-unreachable 0 0 ACCEPT icmp -- any any anywhere anywhere icmp time-exceeded 0 0 ACCEPT icmp -- any any anywhere anywhere icmp echo-reply 0 0 ACCEPT icmp -- any any anywhere anywhere icmp echo-request 1552 81245 ACCEPT all -- wlan0 any anywhere anywhere 0 0 ACCEPT all -- lo any anywhere anywhere 4224 207K ACCEPT tcp -- any any anywhere anywhere ctstate RELATED,ESTABLISHED 2 656 REJECT udp -- !wlan0 any anywhere anywhere udp dpt:bootps reject-with icmp-port-unreachable 0 0 REJECT udp -- !wlan0 any anywhere anywhere udp dpt:domain reject-with icmp-port-unreachable 7 420 SSHCONN tcp -- any any anywhere anywhere ctstate NEW tcp dpt:ssh Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 12 1437 DROP all -- wlan0 any anywhere 192.168.0.0/16 460 86244 ACCEPT all -- wlan0 any 192.168.0.0/16 anywhere 494 122K ACCEPT all -- eth0 any anywhere 192.168.0.0/16 Chain OUTPUT (policy ACCEPT 10514 packets, 3216K bytes) pkts bytes target prot opt in out source destination Chain LOGACCEPT (1 references) pkts bytes target prot opt in out source destination 7 420 LOG tcp -- any any anywhere anywhere LOG level debug prefix "IPT TCP ACCEPTED: " 0 0 LOG udp -- any any anywhere anywhere LOG level debug prefix "IPT UDP ACCEPTED: " 7 420 ACCEPT all -- any any anywhere anywhere Chain LOGDROP (1 references) pkts bytes target prot opt in out source destination 0 0 LOG tcp -- any any anywhere anywhere LOG level debug prefix "IPT TCP DROPPED: " 0 0 LOG udp -- any any anywhere anywhere LOG level debug prefix "IPT UDP DROPPED: " 0 0 DROP all -- any any anywhere anywhere Chain SSHCONN (1 references) pkts bytes target prot opt in out source destination 0 0 LOGDROP all -- any any anywhere anywhere ctstate NEW recent: UPDATE seconds: 60 hit_count: 5 name: DEFAULT side: source mask: 255.255.255.255 7 420 LOGACCEPT all -- any any anywhere anywhere recent: SET name: DEFAULT side: source mask: 255.255.255.255
localhost ~ # iptables -L -v -t mangle
Chain PREROUTING (policy ACCEPT 7326 packets, 632K bytes) pkts bytes target prot opt in out source destination Chain INPUT (policy ACCEPT 6229 packets, 381K bytes) pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT 966 packets, 209K bytes) pkts bytes target prot opt in out source destination 53 2544 TCPMSS tcp -- any any anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU Chain OUTPUT (policy ACCEPT 10558 packets, 3223K bytes) pkts bytes target prot opt in out source destination Chain POSTROUTING (policy ACCEPT 11512 packets, 3431K bytes) pkts bytes target prot opt in out source destination
»
- Для комментирования войдите или зарегистрируйтесь
проблема скорее всего в MTU,
проблема скорее всего в MTU, iptables не при чём
Я такое видал с кривыми D-Link роутерами, решение - перепрошить их или заменить
Нейтральность - высшее достижение сознания!
Но почему тогда без iptables
Но почему тогда без iptables при ровно том же роутере все работает идеально?
Роутер Zyxel Keenetic. Установленный на нем размер MTU - 1460, MRU - 1400. Никаких проблем до этого с ним не было.
а чем так плох стандартный
а чем так плох стандартный MTU:1500 ?
Это было в стандартных
Это было в стандартных рекомендациях по настройке L2TP от Билайна. Я не углублялся в причины.
Попробовал на роутере и 1400-1400, 1460-1460, 1460-1500. В комбинациях с 1500, 1460, 1400 на eth0, увы - ничего не меняется.
Это было потому, что при
Это было потому, что при поднятие l2tp соединения виртуальный интерфейс на котором поднято l2tp соединение (например ppp0) имеет MTU=1460 (в ряде случаев), а у обычных сетевых интерфейсов (eth0, eth1...) обычно MTU=1500 (если в /etc/conf.d/net не заданно иначе), соответственно возникает ситуация когда транзитные пакеты имеют MTU=1500 и не проходят через ppp0.
Вы лучше посмотрите чему равно MTU на вашем виртуальном интерфейсе через которое поднято l2tp соединение:
# ifconfig ... ... ... ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1460 inet XXX.XXX.XXX.XXX netmask 255.255.255.255 destination 85.21.0.255 ppp txqueuelen 3 (Point-to-Point Protocol) RX packets 58507864 bytes 14097522287 (13.1 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 93090739 bytes 101127990650 (94.1 GiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ... ... ...
Не надо бояться, что жизнь закончится - надо бояться, что она не начнется!
Hellsy22 написал(а): Но
Надо выверять правила, значит. ИМХО приведенные выше правила переусложнены
Нейтральность - высшее достижение сознания!