Jeg har behov for at lave en form for port redirection. Mit setup er som følger:
1. eth0 har adressen 192.168.2.2. Bundet til denne IP har jeg bl.a. en Samba-server kørende, så portene 445, 137, 138 og 139 er i brug.
2. eth0:0 er et alias for eth0, og har adressen 192.168.2.3. Bundet til denne IP har jeg en anden CIFS-server (dvs. en anden slags Samba) kørende. Den er non-root og kører derfor på de ikke-priviligerede porte 1445, 1137, 1138 og 1139.
3. Endelig har jeg UFW som firewall.
Udfordringen er nu: Hvordan laver jeg en redirection, så alle forbindelser til eth0:0 portene 445, 137, 138 og 139 går til eth0:0 portene 1445, 1137, 1138 og 1139 i stedet? (UFW-reglerne ikke ødelægges, og eth0 skal stadig være Samba-server.)
Port redirection med UFW
-
- Indlæg: 110
- Tilmeldt: 29. jan 2008, 08:58
- Geografisk sted: Nørresundby
-
- Indlæg: 5095
- Tilmeldt: 27. apr 2008, 02:16
- IRC nickname: lars_t_h
- Geografisk sted: Fyn
Re: Port redirection med UFW
wolf skrev:Jeg har behov for at lave en form for port redirection. Mit setup er som følger:
1. eth0 har adressen 192.168.2.2. Bundet til denne IP har jeg bl.a. en Samba-server kørende, så portene 445, 137, 138 og 139 er i brug.
2. eth0:0 er et alias for eth0, og har adressen 192.168.2.3. Bundet til denne IP har jeg en anden CIFS-server (dvs. en anden slags Samba) kørende. Den er non-root og kører derfor på de ikke-priviligerede porte 1445, 1137, 1138 og 1139.
3. Endelig har jeg UFW som firewall.
Udfordringen er nu: Hvordan laver jeg en redirection, så alle forbindelser til eth0:0 portene 445, 137, 138 og 139 går til eth0:0 portene 1445, 1137, 1138 og 1139 i stedet? (UFW-reglerne ikke ødelægges, og eth0 skal stadig være Samba-server.)
Det du skal lave er NPAT - Network Port Address Translations: http://en.wikipedia.org/wiki/Port_address_translation.
UFW er ikke en firewall, men et program til administration af den stateful packet inspection (SPI) firewall der er inde i kernen(=Linux).
Du kan installere et mere avanceret firewall-administrationsprogram, hvis du gerne vil - de konflikter ikke, da der som sagt kun er en firewall i Linux operativsystemer, og den firewall er en del af kernen.
Du kan hente en Øvelse jeg har lavet ud i brug af en firewall på Linux (via bash) på:
http://www.larsth.dk/ubuntudanmark_dk/ITLAN_11.pdf (222,2 KB)
/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
-
- Indlæg: 110
- Tilmeldt: 29. jan 2008, 08:58
- Geografisk sted: Nørresundby
Re: Port redirection med UFW
lath skrev:Det du skal lave er NPAT - Network Port Address Translations: http://en.wikipedia.org/wiki/Port_address_translation.
Joh, tak... men hvordan gør jeg det?
UFW er ikke en firewall, men et program til administration af den stateful packet inspection (SPI) firewall der er inde i kernen(=Linux).
Jeg ved det. Min pointe er bare, at jeg gerne vil kunne starte UFW og lade den gøre sin magi med iptables, sådan så en eventuel efterfølgende leg med iptables ikke flusher alt mit tidligere arbejde.
-
- Indlæg: 5095
- Tilmeldt: 27. apr 2008, 02:16
- IRC nickname: lars_t_h
- Geografisk sted: Fyn
Re: Port redirection med UFW
wolf skrev:lath skrev:Det du skal lave er NPAT - Network Port Address Translations: http://en.wikipedia.org/wiki/Port_address_translation.
Joh, tak... men hvordan gør jeg det?
pdf-dokumentet på mit website giver nogle eksempler.
iptables manual siden[1, 2] , og en iptables script generator[3] kan være en god hjælp.
Denne side[4] er god til at forstå lidt mere om hvad der sker. Jeg har givet dig den (1 ud af 3) type NAT du skal bruge. Vigtigt: Læs tabellerne i toppen af den side, samt linkene 1 og 2, ellers forstår du ikke hvad du skal gøre
wolf skrev:UFW er ikke en firewall, men et program til administration af den stateful packet inspection (SPI) firewall der er inde i kernen(=Linux).
Jeg ved det. Min pointe er bare, at jeg gerne vil kunne starte UFW og lade den gøre sin magi med iptables, sådan så en eventuel efterfølgende leg med iptables ikke flusher alt mit tidligere arbejde.
Det her er virkeligt også i småtingsafdelingen, men iptables er heller ikke firewallen, men en tekstbaseret front-end til firewallen.
/Lars
[1] iptables manual siden:
http://manpages.ubuntu.com/manpages/karmic/en/man8/iptables.8.html
[2] Ubuntu Community Documentation: iptables tutorial
https://help.ubuntu.com/community/IptablesHowTo
[3] iptables script generator
http://easyfwgen.morizot.net/gen/
[4] Linux Home Networking: Quick HOWTO : Ch14 : Linux Firewalls Using iptables - Port Forwarding Type NAT (DHCP DSL)
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch14_:_Linux_Firewalls_Using_iptables#Port_Forwarding_Type_NAT_.28DHCP_DSL.29
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
-
- Indlæg: 110
- Tilmeldt: 29. jan 2008, 08:58
- Geografisk sted: Nørresundby
Re: Port redirection med UFW
Jeg sætter pris på, at du meget gerne vil lære mig om firewalls helt fra bunden. Jeg har dog et helt konkret problem, som jeg ikke har kunnet finde information om på Google, og som jeg håber, at jeg kan få løst, uden at jeg skal til at tage et universitetskursus om firewalls. Når jeg bruger UFW, er det således fordi den sætter mig i stand til at konfigurere en acceptabel firewall, uden at jeg skal myrekneppe iptables eller forstå, hvordan kernens SPI fungerer. Jeg har sådan set lært teorien engang, men det er i den praktiske konfiguration, at jeg ikke kan gennemskue, hvad jeg skal skrive.
Rent praktisk prøver jeg at sætte de iptables-regler op, som kan findes her. Der bliver lyttet på port 1139, men når jeg prøver med f.eks.:
iptables -t nat -i eth0 -d 192.168.2.3 -A PREROUTING -p tcp --dport 139 -j REDIRECT --to-ports 1139
(hvor jeg skriver "-i eth0 -d 192.168.2.3", fordi iptables ikke understøtter aliases), så får jeg ikke forbindelse til port 139, når jeg f.eks. skriver "telnet 192.168.2.3 139").
Jeg bemærker, at den ovenstående form (måske?) bruger en anden form for NAT, end du foreslår, men tilsyneladende er det noget, der på en eller anden måde har gjort det muligt at omdirigere til en anden port.
Rent praktisk prøver jeg at sætte de iptables-regler op, som kan findes her. Der bliver lyttet på port 1139, men når jeg prøver med f.eks.:
iptables -t nat -i eth0 -d 192.168.2.3 -A PREROUTING -p tcp --dport 139 -j REDIRECT --to-ports 1139
(hvor jeg skriver "-i eth0 -d 192.168.2.3", fordi iptables ikke understøtter aliases), så får jeg ikke forbindelse til port 139, når jeg f.eks. skriver "telnet 192.168.2.3 139").
Jeg bemærker, at den ovenstående form (måske?) bruger en anden form for NAT, end du foreslår, men tilsyneladende er det noget, der på en eller anden måde har gjort det muligt at omdirigere til en anden port.
-
- Indlæg: 5095
- Tilmeldt: 27. apr 2008, 02:16
- IRC nickname: lars_t_h
- Geografisk sted: Fyn
Re: Port redirection med UFW
wolf skrev:Jeg sætter pris på, at du meget gerne vil lære mig om firewalls helt fra bunden. Jeg har dog et helt konkret problem, som jeg ikke har kunnet finde information om på Google, og som jeg håber, at jeg kan få løst, uden at jeg skal til at tage et universitetskursus om firewalls. Når jeg bruger UFW, er det således fordi den sætter mig i stand til at konfigurere en acceptabel firewall, uden at jeg skal myrekneppe iptables eller forstå, hvordan kernens SPI fungerer. Jeg har sådan set lært teorien engang, men det er i den praktiske konfiguration, at jeg ikke kan gennemskue, hvad jeg skal skrive.
Rent praktisk prøver jeg at sætte de iptables-regler op, som kan findes her. Der bliver lyttet på port 1139, men når jeg prøver med f.eks.:
iptables -t nat -i eth0 -d 192.168.2.3 -A PREROUTING -p tcp --dport 139 -j REDIRECT --to-ports 1139
(hvor jeg skriver "-i eth0 -d 192.168.2.3", fordi iptables ikke understøtter aliases), så får jeg ikke forbindelse til port 139, når jeg f.eks. skriver "telnet 192.168.2.3 139").
Jeg bemærker, at den ovenstående form (måske?) bruger en anden form for NAT, end du foreslår, men tilsyneladende er det noget, der på en eller anden måde har gjort det muligt at omdirigere til en anden port.
Såvidt jeg husker skal du slå routing til før NAT virker på en Linux box:
IP forwarding (routing) aktiveres i kernen (midlertidligt indtil næste boot):
Kode: Vælg alt
echo 1 > /proc/sys/net/ipv4/ip_forward
og det kontrolleres at IP forwarding blev aktiveret:
Kode: Vælg alt
cat /proc/sys/net/ipv4/ip_forward
som skal skrive
1
på skærmen.
Permanent IP forwarding laves ved at rette i:
/etc/sysconfig/network filen
Det er linien:
FORWARD_IPV4 = NO
som skal rettes til
FORWARD_IPV4 = YES
du kan slukke for routing ved at udføre:
Kode: Vælg alt
echo 0 > /proc/sys/net/ipv4/ip_forward
/Lars
Jeg er Software ingeniør (Diplomingeniør) i Informationsteknologi og indlejede systemer, hvor indlejrede systemer er computer (microcontroller) + elektronik i for eksempel et TV, en router, en vaskemaskine og den slags
-
- Indlæg: 110
- Tilmeldt: 29. jan 2008, 08:58
- Geografisk sted: Nørresundby
Re: Port redirection med UFW
lath skrev:Såvidt jeg husker skal du slå routing til før NAT virker på en Linux box:
IP forwarding (routing) aktiveres i kernen (midlertidligt indtil næste boot):
Kode: Vælg alt
echo 1 > /proc/sys/net/ipv4/ip_forward
og det kontrolleres at IP forwarding blev aktiveret:
Kode: Vælg alt
cat /proc/sys/net/ipv4/ip_forward
som skal skrive
1
på skærmen.
Ja, det har jeg også sikret mig. Det fremgår også af vejledningen på den side, jeg linkede til.
Jeg gætter på, at mit problem skyldes i, at maskinens "rigtige" IP-adresse er 192.168.2.2, mens det er på aliaset 192.168.2.3, at jeg vil lave den pågældende port-omdirigering. Men jeg har ingen anelse om, hvad jeg i så fald skal gøre ved det.
-
- Indlæg: 110
- Tilmeldt: 29. jan 2008, 08:58
- Geografisk sted: Nørresundby
Re: Port redirection med UFW
Jeg er kommet et lille stykke nærmere en løsning ved at lave to iptables-regler for hver port:
Men tilsyneladende tillader dette kun den lokale maskine (dvs. den, der har IP-adressen 192.168.2.2, og hvor 192.168.2.3 er et alias på samme netværkskort) at forbinde. Andre computere på 192.168.2.0/24-netværket kan ikke komme i forbindelse med maskinen.
... og så alligevel: Når jeg angiver en SMB-port med "smbclient -L \\\\192.168.2.3 -p 1139", er der hul igennem. Men når jeg angiver default-port (139), så er der ikke hul igennem. Der ER dog åbent i firewallen til port 139 (og, indtil videre, 1139). Det tyder på, at lige netop forward ikke fungerer for andre end den lokale maskine.
Jeg har prøvet at angive "-s 192.168.2.0/24" i smøren ovenfor, men det hjælper heller ikke.
Nogen gode bud?
Kode: Vælg alt
iptables -t nat -A PREROUTING -d 192.168.2.3 -p tcp --dport 139 -j REDIRECT --to-ports 1139
iptables -t nat -A OUTPUT -d 192.168.2.3 -p tcp --dport 139 -j REDIRECT --to-ports 1139
Men tilsyneladende tillader dette kun den lokale maskine (dvs. den, der har IP-adressen 192.168.2.2, og hvor 192.168.2.3 er et alias på samme netværkskort) at forbinde. Andre computere på 192.168.2.0/24-netværket kan ikke komme i forbindelse med maskinen.
... og så alligevel: Når jeg angiver en SMB-port med "smbclient -L \\\\192.168.2.3 -p 1139", er der hul igennem. Men når jeg angiver default-port (139), så er der ikke hul igennem. Der ER dog åbent i firewallen til port 139 (og, indtil videre, 1139). Det tyder på, at lige netop forward ikke fungerer for andre end den lokale maskine.
Jeg har prøvet at angive "-s 192.168.2.0/24" i smøren ovenfor, men det hjælper heller ikke.
Nogen gode bud?