Firewalld och Centos som router - portforwarding från insidan

Permalänk
Medlem

Firewalld och Centos som router - portforwarding från insidan

Hej,

Jag har CentOS 7 med FirewallD satt som router. Två interface, "insida" och "utsida".
Trafik flödar både in och ut samt att port forward från utsidan och in fungerar, t.ex. att ssh'a hem från jobbet.
Det som inte fungerar är om jag försöker att ssh'a till samma adress och port från insidan.

Detta fungerar från arbetet:
jag@arbetet: ssh jag@hem-extern-ip
men kör jag samma hemifrån så blir det "connection droped" eller liknande.

Detta gäller inte bara ssh utan även tjänster så som Seafile, torrentsync/syncthing etc. etc.
Allt fungerar när jag är ute men inte när jag är på insidan.

Vad måste jag aktivera för att det ska fungera på insidan med?

Visa signatur

AMD Ryzen 5 1600 @3.7Ghz
Vengence LPX 4x8gb @3000Mhz
Asus RTX3070
Lagring: Samsung 860 2TB SSD

Permalänk
Medlem

Du kan maskera trafiken så att det ser ut som att den kommer ifrån utsidan

Men bäst är nog en hair pin NAT:
https://en.wikipedia.org/wiki/Hairpinning

Tror detta kommer att lösa dina problem

Visa signatur

i7-6700K | MSI Z170A | MSI 1080 8GB | 16GB Kingston HyperX | Intel 600P 256GB | Samsung EVO Basic 840 250GB x2 raid 0 | Corsair RM 750W | 3 x Dell U2414H

Permalänk
Medlem
Skrivet av gn1p:

Du kan maskera trafiken så att det ser ut som att den kommer ifrån utsidan

Men bäst är nog en hair pin NAT:
https://en.wikipedia.org/wiki/Hairpinning

Tror detta kommer att lösa dina problem

Hmmm - ser intressant ut men verkar inte finnas i firewalld - finns det andra förslag?

Visa signatur

AMD Ryzen 5 1600 @3.7Ghz
Vengence LPX 4x8gb @3000Mhz
Asus RTX3070
Lagring: Samsung 860 2TB SSD

Permalänk
Medlem

Kika närmare på NAT-reflektering(samma som hair pinning) så löser Du säkert problemet.
I pfSense är det något man klickar i en kryssruta för att slå av/på.

http://www.nycnetworkers.com/real-world/nat-reflectionnat-loo...

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Medlem

Tack gn1p och veni - hittar dock inte dessa funktioner alls för firewalld till centos 7 =( googlar man runt får man bara info om hur man gör på ASA eller Juniper.

Visa signatur

AMD Ryzen 5 1600 @3.7Ghz
Vengence LPX 4x8gb @3000Mhz
Asus RTX3070
Lagring: Samsung 860 2TB SSD

Permalänk
Medlem

Har du öppnat portarna på det interna interfacet?
kan du pinga port 22?
Lyssnar SSH-servern på det interfacet?

Om du inte kan pinga port 22 så lär inte porten vara öppen, eller så lyssnar inte SSH servern på det interfacet.

Skrivet av Joshiegy:

Hej,

Jag har CentOS 7 med FirewallD satt som router. Två interface, "insida" och "utsida".
Trafik flödar både in och ut samt att port forward från utsidan och in fungerar, t.ex. att ssh'a hem från jobbet.
Det som inte fungerar är om jag försöker att ssh'a till samma adress och port från insidan.

Detta fungerar från arbetet:
jag@arbetet: ssh jag@hem-extern-ip
men kör jag samma hemifrån så blir det "connection droped" eller liknande.

Detta gäller inte bara ssh utan även tjänster så som Seafile, torrentsync/syncthing etc. etc.
Allt fungerar när jag är ute men inte när jag är på insidan.

Vad måste jag aktivera för att det ska fungera på insidan med?

Permalänk
Medlem
Skrivet av user789:

Har du öppnat portarna på det interna interfacet?
kan du pinga port 22?
Lyssnar SSH-servern på det interfacet?

Om du inte kan pinga port 22 så lär inte porten vara öppen, eller så lyssnar inte SSH servern på det interfacet.

på interface "inside" är alla portar accepterade.
telnet externip <sshport> ger timeoute från insidan men fungerar från utsidan.
telnet router/firewallip <sshport> ger timeout från insidan men fungerar uppenbarligen inte från utsidan.

Visa signatur

AMD Ryzen 5 1600 @3.7Ghz
Vengence LPX 4x8gb @3000Mhz
Asus RTX3070
Lagring: Samsung 860 2TB SSD

Permalänk
Medlem

Om du har portarna öppna och du inte kan pinga ssh-servern, så lär inte den lyssna på det interfacet.

prova lägg in följande, kanske hjälper.

/etc/ssh/sshd_config

ListenAddress 10.10.1.1
ListenAddress 192.1..1.3

Eller vilka adresser du nu har.

Starta om servern.

Skrivet av Joshiegy:

på interface "inside" är alla portar accepterade.
telnet externip <sshport> ger timeoute från insidan men fungerar från utsidan.
telnet router/firewallip <sshport> ger timeout från insidan men fungerar uppenbarligen inte från utsidan.

Permalänk
Medlem

user789 - min sshd_configu är det inget fel på Den tar emot trafik från alla de klienter den ska när trafiken går direkt mot den eller utifrån via routern/gatewayen - men trafiken vill inte studsa från insidan->gateway->ssh-server.

Sen är det inte bara min ssh-jumpgate det gäller utan alla tjänster. Allt fungerar när jag är utanför mitt nätverk.
Det är som att firewalld inte tillåter portforward inom samma zon eller dylikt.

Visa signatur

AMD Ryzen 5 1600 @3.7Ghz
Vengence LPX 4x8gb @3000Mhz
Asus RTX3070
Lagring: Samsung 860 2TB SSD

Permalänk
Medlem

Ok, sorry, då förstår jag.

Du har har skapat en intern zone och lagt till en forward ?
kolla med: firewall-cmd --get-active-zones, firewall-cmd --get-active-zones, firewall-cmd --get-zone-of-interface=eth0

Annars skapa med.
firewall-cmd --permanent --zone=internal --change-interface=eth0
firewall-cmd --zone=internal --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.3

eller om du har alla interface i samma zone?

Du har säkert gjort allt försöker bara hjälpa dig

[quotke postid="15542934" userid="42438" name="bust-a-gamer"]
user789 - min sshd_configu är det inget fel på Den tar emot trafik från alla de klienter den ska när trafiken går direkt mot den eller utifrån via routern/gatewayen - men trafiken vill inte studsa från insidan->gateway->ssh-server.

Sen är det inte bara min ssh-jumpgate det gäller utan alla tjänster. Allt fungerar när jag är utanför mitt nätverk.
Det är som att firewalld inte tillåter portforward inom samma zon eller dylikt.
[/quote]

Permalänk
Medlem
Skrivet av Joshiegy:

Tack gn1p och veni - hittar dock inte dessa funktioner alls för firewalld till centos 7 =( googlar man runt får man bara info om hur man gör på ASA eller Juniper.

Antingen så gör Du en ful-lösning genom att ange dom lokala IP-adresserna i din hosts fil eller i din interna DNS-server, eller https://atomicorp.com/forums/viewtopic.php?f=3&t=7697

Ändra dock porten i förhållande till exemplet.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.

Permalänk
Medlem

kanske dum fråga men har du testat SSH:a den lokala IP adressen? I mitt fall 192.168.1.103 som exempel.

Visa signatur

CPU: Ryzen 5600xGPU: 1080 TI ROG Strix RAM:2x16GB G.skill Trident @ 3600MHz MoBo: Asus B550FPSU: Corsair SF750
En resa till Nordkorea
2 dagar i Tjernobyl

Permalänk
Medlem
Skrivet av Veni:

Antingen så gör Du en ful-lösning genom att ange dom lokala IP-adresserna i din hosts fil eller i din interna DNS-server, eller https://atomicorp.com/forums/viewtopic.php?f=3&t=7697

Ändra dock porten i förhållande till exemplet.

Detta kan vara lösningen - ser aningen jobbigt ut men är det så jag måste göra så får jag lösa batchning med mina fabricscript ^^, ska testa någon dag snart.

Tack för svaren alla! Om någon annan har någon idé eller tips så är detta välkommet med

Visa signatur

AMD Ryzen 5 1600 @3.7Ghz
Vengence LPX 4x8gb @3000Mhz
Asus RTX3070
Lagring: Samsung 860 2TB SSD