iptables firewall/gateway:geen inet verbinding voor server

Pagina: 1
Acties:

  • savale
  • Registratie: Oktober 2000
  • Laatst online: 05:01
Ik heb een zeer simpele firewall draaien die eigenlijk ook best wel goed werkt, maar het probleem is dat ik op deze manier vanaf de server zelf geen verbinding met het internet kan maken.

eth0 = extern (direct op internet met ip van provider)
eth1 = intern (192.168.0.1)

het script:
code:
1
2
3
4
5
6
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ; masquerading aan
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
echo "1" > /proc/sys/net/ipv4/ip_forward ; ip forward aan
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT ; accepteer poort 80

werkt dus prima: internet op alle pcs achter me server en poort 80 staat open zodat apache op de server kan draaien. maar een ping naar google.com of ftp connectie vanaf de server naar een ftp site zelf is niet mogelijk, wat moet ik nog toevoegen aan dit script(je)?

[ Voor 6% gewijzigd door savale op 12-04-2004 11:46 ]


  • TrickShot
  • Registratie: Februari 2003
  • Laatst online: 14-12-2023

TrickShot

Veel shots... weinig tricks.

Ik vind het raar dat je webserver nog werkt, je zet al het inkomend verkeer dicht. :) (edit: over je laatste regel heengekeken :o )

Ben je statefull aan het packetfilteren, zet dan als eerste regel bij elke chain dat alle pakketten die established en related zijn worden geaccepteerd.

tip: kijk eens naar het tooltje FWBuilder, dit is een gratis GUI voor verschillende soorten firewalls waaronder iptables/netfilter.

voor ftp:
iptables -A INPUT -i eth0 -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 20 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -i eth0 -p udp --dport 21 -j ACCEPT

ping zou moeten werken na het toevoegen van de regel, established & related.

[ Voor 57% gewijzigd door TrickShot op 12-04-2004 11:43 ]

Athlon 2500+ @ 2230 MHz, 512 MB 3200 kingston, 2 x sata maxtor 120 GB, 1 WD 80 GB, Ti4200, Antec Sonata


  • savale
  • Registratie: Oktober 2000
  • Laatst online: 05:01
ik draai geen X dus FWbuilder gaat niet werken(?). ik zet met de laatste regel toch de webserver weer open? het enige dat niet werkt is dat ik vanaf me server zelf geen connectie naar buiten kan maken.

edit: ik was denk ik niet helemaal duidelijk. poorten open zetten lukt wel (poort 80 in het bovenstaande script) maar vanaf de server een connectie naar buiten maken lukt niet: dus pingen vanaf me server naar google.com ofzo of ftpen naar een ftp site.

[ Voor 75% gewijzigd door savale op 12-04-2004 11:45 ]


  • TrickShot
  • Registratie: Februari 2003
  • Laatst online: 14-12-2023

TrickShot

Veel shots... weinig tricks.

FWBuilder genereert een configuratiescriptje, dat enkel moet worden uitgevoerd op de server. Hierdoor kan je op je werk pc de firewall regels aanmaken en bvb via een scp en ssh sessie overbrengen naar je server.

Athlon 2500+ @ 2230 MHz, 512 MB 3200 kingston, 2 x sata maxtor 120 GB, 1 WD 80 GB, Ti4200, Antec Sonata


  • Sendy
  • Registratie: September 2001
  • Niet online
Je doet nu een -A INPUT DROP (zodat alle inkomende verkeer wordt dichtgezet), en later sta je alleen input verkeer toe naar port 80. Het lijkt mij (en TrickShot) duidelijk dat dat niet gaat werken ;)

Nu kan je zelf wel bedenken wat er mis is ;)

-- edit
Het pingen en ftpen vanaf je server werkt dus niet, omdat verkeer dat terugkomt (om bijvoorbeeld aan te geven dat een pakketje is aangekomen) geweigerd wordt. Ik zou eens kijken naar --state RELATED,ESTABILISHED.

[ Voor 33% gewijzigd door Sendy op 12-04-2004 11:50 ]


  • TrickShot
  • Registratie: Februari 2003
  • Laatst online: 14-12-2023

TrickShot

Veel shots... weinig tricks.

Voeg de regel van established en related toe en je probleem is opgelost.

Athlon 2500+ @ 2230 MHz, 512 MB 3200 kingston, 2 x sata maxtor 120 GB, 1 WD 80 GB, Ti4200, Antec Sonata


  • savale
  • Registratie: Oktober 2000
  • Laatst online: 05:01
Sendy schreef op 12 april 2004 @ 11:46:
Je doet nu een -A INPUT DROP (zodat alle inkomende verkeer wordt dichtgezet), en later sta je alleen input verkeer toe naar port 80. Het lijkt mij (en TrickShot) duidelijk dat dat niet gaat werken ;)

Nu kan je zelf wel bedenken wat er mis is ;)
hehe uhhhhhh 8)7 waarom werkt dat niet dan?

  • savale
  • Registratie: Oktober 2000
  • Laatst online: 05:01
TrickShot schreef op 12 april 2004 @ 11:48:
Voeg de regel van established en related toe en je probleem is opgelost.
ok mijn probleem was eerst idd niet helemaal duidelijk denk: want snap ook wel dat voor een ftp server die op me server draait poort 21 open moet. ;)
ok waar voeg ik established en related toe?

  • Sendy
  • Registratie: September 2001
  • Niet online
Om het makkelijk te maken. In mijn scriptje is dit een heel belangrijke regel. Let op dat er shell variablen gebruik, dus je moet even de juiste dingen daar invullen:
code:
1
2
# Allow inbound, related to these outbound
iptables -A FORWARD -i $EIF -o $IIF -m state --state RELATED,ESTABLISHED -j ACCEPT


-- edit
maar goed, zoals je nu ook (;) ) zelf begrijpt, dit is niet helemaal de oplossing voor je probleem. Want in dit regeltje wordt FORWARD verkeer toegelaten. Jij moet INPUT verkeer toestaan ;)

[ Voor 25% gewijzigd door Sendy op 12-04-2004 11:55 ]


  • TrickShot
  • Registratie: Februari 2003
  • Laatst online: 14-12-2023

TrickShot

Veel shots... weinig tricks.

Sendy schreef op 12 april 2004 @ 11:52:
Om het makkelijk te maken. In mijn scriptje is dit een heel belangrijke regel. Let op dat er shell variablen gebruik, dus je moet even de juiste dingen daar invullen:
code:
1
2
# Allow inbound, related to these outbound
iptables -A FORWARD -i $EIF -o $IIF -m state --state RELATED,ESTABLISHED -j ACCEPT
Ik zou deze regel wel toevoegen aan de INPUT chain. ;)

edit: net te laat

[ Voor 3% gewijzigd door TrickShot op 12-04-2004 11:56 ]

Athlon 2500+ @ 2230 MHz, 512 MB 3200 kingston, 2 x sata maxtor 120 GB, 1 WD 80 GB, Ti4200, Antec Sonata


  • savale
  • Registratie: Oktober 2000
  • Laatst online: 05:01
ok het is gelukt! met dit scriptje werkt mijn server nu dus als gateway voor de pc's op het eth1 netwerk. en kan ik ook nog poorten openzetten en internetten vanaf me server.

code:
1
2
3
4
5
6
7
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ; masquerading aan
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
echo "1" > /proc/sys/net/ipv4/ip_forward ; ip forward aan
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT ; accepteer poort 80


ps. is dit een goed sciptje? Ik wilde het graag zo simpel mogelijk houden zodat ik het zelf nog kon snappen :)

  • Sendy
  • Registratie: September 2001
  • Niet online
Ik heb bijna zoiets. Mijn INPUT is accept, mijn FORWARD deny. Jouw versie lijkt me veiliger (want INPUT deny) en onveiliger (want FORWARD accept).

Als het goed is kan je ook je FORWARD deny maken, dan moet het nog hetzelfde werken (want je hebt die RELATED,ESTABLISHED regel)
Pagina: 1