Firewalld och Centos som router - portforwarding från insidan

Trädvy Permalänk
Medlem
Plats
Vällingby
Registrerad
Aug 2004

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?

AMD A8-5600K - GTX 770 - G.Skill 1866Mhz 8GB

Trädvy Permalänk
Medlem
Plats
Skövde
Registrerad
Maj 2010

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

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

Trädvy Permalänk
Medlem
Plats
Vällingby
Registrerad
Aug 2004
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?

AMD A8-5600K - GTX 770 - G.Skill 1866Mhz 8GB

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Feb 2007

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...

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

Trädvy Permalänk
Medlem
Plats
Vällingby
Registrerad
Aug 2004

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.

AMD A8-5600K - GTX 770 - G.Skill 1866Mhz 8GB

Trädvy Permalänk
Medlem
Registrerad
Jul 2013

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 bust-a-gamer:

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?

Trädvy Permalänk
Medlem
Plats
Vällingby
Registrerad
Aug 2004
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.

AMD A8-5600K - GTX 770 - G.Skill 1866Mhz 8GB

Trädvy Permalänk
Medlem
Registrerad
Jul 2013

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 bust-a-gamer:

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.

Trädvy Permalänk
Medlem
Plats
Vällingby
Registrerad
Aug 2004

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.

AMD A8-5600K - GTX 770 - G.Skill 1866Mhz 8GB

Trädvy Permalänk
Medlem
Registrerad
Jul 2013

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]

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Feb 2007
Skrivet av bust-a-gamer:

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.

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

Trädvy Permalänk
Medlem
Plats
Lund
Registrerad
Maj 2013

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

CPU: i5 4670k @4.5Ghz GPU: 1080 TI ROG Strix RAM: 4x4GB 1666Mhz MoBo: MSI Z87-g45 GAMING PSU: Corsair CX 750M

Trädvy Permalänk
Medlem
Plats
Vällingby
Registrerad
Aug 2004
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

AMD A8-5600K - GTX 770 - G.Skill 1866Mhz 8GB