iptables uitgaand verkeer naar beperkt aantal adressen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • 3dmaster
  • Registratie: December 2004
  • Laatst online: 24-09 10:42
Ik ben bezig met een server die in principe enkel mag communiceren met een beperkt aantal adressen.

Ik heb nu dit bovenin de firewall:
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
:CUST - [0:0]

Naast een aantal standaard regels die ik nodig heb heb ik deze:
# Allow 443 to:
-A CUST -s xx.xx.xx.xx -j ACCEPT

# Allow 443 out
-A OUTPUT -o eth1 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j CUST
-A INPUT -i eth1 -p tcp --sport 443 -m state --state ESTABLISHED -j CUST

Wat ik dus eigenlijk wil is dat ik een slechs kan verbinden op poort 443 op de adressen die ik definieer onder Allow 443 to. Het bovenstaande werkt helaas niet :'( .

Last night I lay in bed looking up at the stars in the sky and I thought to myself, where the heck is the ceiling.


Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 01-10 12:22

CAPSLOCK2000

zie teletekst pagina 888

Wat ik sowieso als probleem zie is dat zowel uitgaand als inkomend verkeer door CUST gaat.
Daar heb je '-s' staan. De ene keer ben je zelf de source, de andere keer de server waar je mee communiceert. Dat gaat dus niet werken.

ESTABLISHED gebruik je volgens mij ook niet goed. Dat gebruik je normaal gesproken als optimalisatie waardoor verkeer dat bij een bestaande verbinding hoort niet helemaal door de firewall hoeft maar direct wordt geaccepteerd.

Ik zou het eerst versimpelen tot je het werkend hebt en dan pas extra's toevoegen. Begine eens met alleen de OUTPUT regel zonder state.

Gebruik een pakketsniffer om te controleren of het fout gaat bij het inkomende of het uitgaande verkeer.

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 01-10 16:13

Kees

Serveradmin / BOFH / DoC
CAPSLOCK2000 schreef op maandag 27 oktober 2014 @ 17:42:
ESTABLISHED gebruik je volgens mij ook niet goed. Dat gebruik je normaal gesproken als optimalisatie waardoor verkeer dat bij een bestaande verbinding hoort niet helemaal door de firewall hoeft maar direct wordt geaccepteerd.
Established word prima gebruikt; Als ik die regels lees mag alleen de server nieuwe connecties opzetten naar het ip van de klant, en mogen inkomende nieuwe connecties niet.

Tenzij hij natuurlijk bedoelt in de text dat de klant alleen op poort 443 mag kunnen connecten.

Anyway, wat je wil is dan iets als:
#inkomende packets van de klant op poort 443 accepteren:
-A INPUT --source $klant --protocol tcp --destination-port 443 --jump ACCEPT

#Uitgaande packets naar de klant toe, vanaf poort 443 accepteren:
-A OUTPUT --destination $klant --protocol tcp --source-port 443 --jump ACCEPT

Dat is in principe al genoeg, maar als je dan ook nog state control erbij wil hebben:
-A INPUT --source $klant --protocol tcp --destination-port 443 --jump ACCEPT
-A OUTPUT --destination $klant --protocol tcp --source-port 443 -m state \
--state ESTABLISHED,RELATED --jump ACCEPT


Waarom je perse naar je eigen CUST chain wil springen ontgaat mij een beetje, maar als je dat perse wil (voor accounting) dan moet je zowel een --source als een --destination match maken.

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


Acties:
  • 0 Henk 'm!

  • 3dmaster
  • Registratie: December 2004
  • Laatst online: 24-09 10:42
Ik heb het opgelost op deze manier
code:
1
2
3
4
5
6
7
# Allow 443 to:
-A CUST -d xx.xx.xx.xx -j ACCEPT

# Allow 443 out CUST
-A OUTPUT -o eth1 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j CUST
-A INPUT -i eth1 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
COMMIT


Ik gebruik een chain om straks de lijst met ip adressen die dit mogen, dat zullen er een paar honderd worden overzichtelijker blijft.

Last night I lay in bed looking up at the stars in the sky and I thought to myself, where the heck is the ceiling.