Forum Linux.pl

System => Konfiguracja => Wątek zaczęty przez: pld w 2020-05-30, 07:57:35

Tytuł: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: pld w 2020-05-30, 07:57:35
Witam,
mam skonfigurowany router na linuxie (reguły iptables, systemowy firewall i apparmor wyłączony) z openvpn, za tym routerem mam komputer z Windowsem, wszystko działa poprawnie, ale gdy na tym komputerze z Windowsem próbuje załadować plik na jakąkolwiek stronę gdzie można uploadować, wszystkie połaczenia są przerywane ,
-przerwanie uploadu
-przerwanie połączenia openvpn
-przerwanie sesji ssh z routerem (łączenie poza openvpn)
Po chwili openvpn połączy się ponownie i po RDP dostane się do tego komputera z Windowsem to upload jest przerwany na 1%
Jaka może być przyczyna?

#/bin/bash
#Czyszczenie dotychczasowych regul
iptables -F
iptables -Z
iptables -X
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

#Przypisanie interfejsow do zmiennych
INTERNET="eth3"
LAN="eth2"
DMZ="eth1"
VPN="tun0"
LANNETWORK="10.0.0.0/16"
DMZNETWORK="192.168.0.0/24"
VPNNETWORK="192.168.99.0/24"
VPNPORT="1194"
VPNPROTOKOL="tcp"

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE


iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s $LANNETWORK -j ACCEPT
iptables -A INPUT -s $VPNNETWORK -j ACCEPT
iptables -A INPUT -p $VPNPROTOKOL --dport $VPNPORT -j ACCEPT
iptables -A INPUT -i $INTERNET -p tcp -m multiport --dport 22000 -j ACCEPT

iptables -P OUTPUT ACCEPT

iptables -P FORWARD DROP
iptables -A FORWARD -i $INTERNET -o $DMZ -j ACCEPT
iptables -A FORWARD -i $DMZ -o $INTERNET -j ACCEPT
iptables -A FORWARD -i $INTERNET -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $LAN -o $INTERNET -j ACCEPT
iptables -A FORWARD -i $DMZ -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $LAN -o $DMZ -j ACCEPT
iptables -A FORWARD -i $INTERNET -o $VPN -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $VPN -o $INTERNET -j ACCEPT
iptables -A FORWARD -i $VPN -o $LAN -j ACCEPT
iptables -A FORWARD -i $LAN -o $VPN -j ACCEPT
iptables -A FORWARD -i $DMZ -o $VPN -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $VPN -o $DMZ -j ACCEPT

Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: Paweł Kraszewski w 2020-05-30, 09:38:09
1. W regułkach brakuje dopuszczenia ruchu po loopbacku. Powinien być iptables -i lo -j ACCEPT jako pierwsza reguła. Nie wiem, czy to przyczyna, czy nie.
2. Nigdy nie rób openvpn po TCP. To awaryjna funkcja dla szczególnego przypadku użycia VPN przez firewall wycinający UDP. Zobacz What is TCP Meltdown (https://openvpn.net/faq/what-is-tcp-meltdown/) i Why TCP Over TCP Is A Bad Idea (http://sites.inka.de/bigred/devel/tcp-tcp.html).
3. openvpn jest grymaśny co do MTU - zobacz, czy obniżenie go do 1400 po stronie Windows coś pomoże.

99. Reguły ... --state ESTABLISHED,RELATED -j ACCEPT powinny być zawsze na początku listy (o ile nie zmienia to sematyki), jako early accept. Ale to ma wpływ tylko na wydajność.
Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: pld w 2020-05-31, 11:52:31
1. W regułkach brakuje dopuszczenia ruchu po loopbacku. Powinien być iptables -i lo -j ACCEPT jako pierwsza reguła. Nie wiem, czy to przyczyna, czy nie.
2. Nigdy nie rób openvpn po TCP. To awaryjna funkcja dla szczególnego przypadku użycia VPN przez firewall wycinający UDP. Zobacz What is TCP Meltdown (https://openvpn.net/faq/what-is-tcp-meltdown/) i Why TCP Over TCP Is A Bad Idea (http://sites.inka.de/bigred/devel/tcp-tcp.html).
3. openvpn jest grymaśny co do MTU - zobacz, czy obniżenie go do 1400 po stronie Windows coś pomoże.

99. Reguły ... --state ESTABLISHED,RELATED -j ACCEPT powinny być zawsze na początku listy (o ile nie zmienia to sematyki), jako early accept. Ale to ma wpływ tylko na wydajność.

1. Dodałem - nie pomogło :(
2 i 3. To chyba nie wina openvpn, komputer Windows za routerem z którego próbuje wykonać upload  łączy się z routerem lokalnie przez switch (nie openvpn), ale zmieniłem port na UDP

Dla testu ustawiłem takie reguły iptables i również rozłącza, przyczyna chyba jest gdzieś indziej..

#/bin/bash
#Czyszczenie dotychczasowych regul
iptables -F
iptables -Z
iptables -X
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

#Przypisanie interfejsow do zmiennych
INTERNET="eth3"
LAN="eth2"
DMZ="eth1"
#INTERNET2="eth3"
VPN="tun0"
#IPADMIN="172.16.0.2"
LANNETWORK="10.0.0.0/16"
DMZNETWORK="192.168.0.0/24"
VPNNETWORK="192.168.99.0/24"
VPNPORT="1194"
VPNPROTOKOL="udp"

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A FORWARD -o lo -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: pld w 2020-05-31, 21:13:27
Chyba spróbuję zrobić taką samą konfigurację na wirtualnych maszynach, aby upewnić się czy to nie problem hardwareowy?
Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: Paweł Kraszewski w 2020-05-31, 22:13:37
lo robisz tylko na INPUT'cie (ewentualnie na OUTPUT'cie, jeżeli jego polityka jest inna niż ACCEPT). Nie robisz na FORWARD, bo lo nie bierze udziału w routingu.

A co do topologii: może rozpisz jaśniej co jak jest pospinane, skąd, dokąd i jakim łączem uploadujesz. Bo zrozumiałem, że Windows łączy się po lanie z routerem i dalej uploaduje coś w świat via openvpn z routera gdzieśtam:

[COŚTAM]--internet--[ServVPN]--internet--[KlientVPN|Router]--lan--[Windows]
Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: pld w 2020-06-01, 16:27:36
lo robisz tylko na INPUT'cie (ewentualnie na OUTPUT'cie, jeżeli jego polityka jest inna niż ACCEPT). Nie robisz na FORWARD, bo lo nie bierze udziału w routingu.

A co do topologii: może rozpisz jaśniej co jak jest pospinane, skąd, dokąd i jakim łączem uploadujesz. Bo zrozumiałem, że Windows łączy się po lanie z routerem i dalej uploaduje coś w świat via openvpn z routera gdzieśtam:

[COŚTAM]--internet--[ServVPN]--internet--[KlientVPN|Router]--lan--[Windows]

Topologia:
[komputer z Windows z którego próbuje wykonać upload]--lan--[linux router iptables]--internet
Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: pld w 2020-06-01, 17:16:32
Na wirtualnych maszynach dzieje się to samo, połączenie jest zrywane
Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: pld w 2020-06-01, 18:21:15
Problem wygląda następująco, na dystrybucjach Opensuse Leap 42.3, oraz na Opensuse Tumbleweed rozłącza, spróbowałem na Debianie i działa,  czy to jakieś ustawienia kernela? Pomóżcie :) Lubię Opensuse i nie chciałbym zmieniać z takiego powodu
Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: Paweł Kraszewski w 2020-06-01, 19:07:03
Topologia:
[komputer z Windows z którego próbuje wykonać upload]--lan--[linux router iptables]--internet

Yyyyyyyyy? A gdzie tu OpenVPN, którego wspominałeś? Czy wspominałeś bo wspominałeś, a problematyczny ruch przez niego nie idzie?
Tytuł: Odp: Przy uploadzie przerywane są wszystkie połączenia
Wiadomość wysłana przez: pld w 2020-06-01, 20:13:01
Topologia:
[komputer z Windows z którego próbuje wykonać upload]--lan--[linux router iptables]--internet

Yyyyyyyyy? A gdzie tu OpenVPN, którego wspominałeś? Czy wspominałeś bo wspominałeś, a problematyczny ruch przez niego nie idzie?

Problematyczny ruch przez niego nie idzie