[Debian] Iptables firewall

Pagina: 1
Acties:

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
Hallo,

Ik heb hier vele topics gelezen over het maken van firewalls en heb op http://www.linuxguruz.com/iptables/ heb ik ook de nodige firewalls bestudeerd.

Naar aanleiding van die artikelen ben ik zelf een firewall gaan maken.

Het is een simpele server, alleen HTTP, FTP en SNMP.
De SNMP wordt extern opgehaald dus vandaar die regel.

De SSH sta ik maar toe op 1 IP van de server en vanaf 1 IP.
Hier de firewall
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#! /bin/sh
echo Initializing firewall
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Laad enkele FTP modules
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

# Webserver port 80
/sbin/iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT

# FTP port 21
/sbin/iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
# Passive FTP
/sbin/iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
# Non-Passive FTP
/sbin/iptables -A INPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH port 22
/sbin/iptables -A INPUT --protocol tcp -d IP.AD.RE.S -s IP.AD.RE.S --dport 22 -j ACCEPT

# SNMPD
/sbin/iptables -A INPUT --protocol tcp -s IP.AD.RE.S --dport 161 -j ACCEPT

# ICMP (oa ping)
/sbin/iptables -A INPUT --protocol icmp -j ACCEPT

# De rest deny'en
/sbin/iptables -P INPUT DROP


Ik sta verkeer op poort 80 toe, de FTP staat open en ook de nodige passive poorten.
De SSH kan je alleen bereiken als je het goede IP hebt en ook naar het juiste IP verbind.

Ik zie geen lekken hierin? Iemand op of aanmerkingen hier op?

[ Voor 3% gewijzigd door Snow_King op 06-06-2004 18:35 ]


  • Gondor
  • Registratie: September 2003
  • Laatst online: 09:42
Wat denk je dat de volgorde is waarop een binnen komend pakket tegen jouw regels wordt gezet?

Kijk en denk eens over de volgorde van je regels.

"Peace cannot be kept by force. It can only be achieved by understanding"-Albert Einstein-


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
hmm, ik moet die FTP modules eerst laden?

  • Wilke
  • Registratie: December 2000
  • Laatst online: 12:28
Nee, je moet eerst de default policy op 'DENY' zetten, dus na het flushen van de oude regels eerst 'iptables -P eenchain DENY' en dat voor elke chain.

[ Voor 64% gewijzigd door Wilke op 01-06-2004 23:48 ]


  • Gondor
  • Registratie: September 2003
  • Laatst online: 09:42
Wat Wilke zegt :)

Daar naast zou poort 21 ACCEPT-eren genoeg moeten zijn omdat je de ftp modules gaat gebruiken.

En, waarom heb je geen regel voor FORWARD, heb je het niet nodig of ben je het vergeten?

"Peace cannot be kept by force. It can only be achieved by understanding"-Albert Einstein-


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
ok, ik snap het, ik ga eens schrijven.

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
Gondor schreef op 02 juni 2004 @ 00:05:
Wat Wilke zegt :)

Daar naast zou poort 21 ACCEPT-eren genoeg moeten zijn omdat je de ftp modules gaat gebruiken.

En, waarom heb je geen regel voor FORWARD, heb je het niet nodig of ben je het vergeten?
Hoezo forward? De FTP server draait op die bak en doet het zo best?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#! /bin/sh
echo Initializing firewall
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Alle Deny'en
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

# Laad enkele FTP modules
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

# Webserver port 80
/sbin/iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT

# FTP port 21
/sbin/iptables -A INPUT --protocol tcp --dport 21 -j ACCEPT

# SSH port 22
/sbin/iptables -A INPUT --protocol tcp -d x.x.x.x.x -s x.x.x.x.x --dport 22 -j ACCEPT

# ICMP (oa ping)
/sbin/iptables -A INPUT --protocol icmp -j ACCEPT


Heb hem stukje herschreven, zo klopt ie wel of niet?

[ Voor 17% gewijzigd door Snow_King op 02-06-2004 11:06 ]


  • Gondor
  • Registratie: September 2003
  • Laatst online: 09:42
Ik zie geen OUTPUT regel. En omdat je default target DROP is, komt niets uit je server.

Je kunt gewoon die "ESTABLISHED, RELATED" regel gebruiken zonder beperkingen zoals ip en poort nummer. Of default target op ACCEPT zetten voor OUTPUT.

"Peace cannot be kept by force. It can only be achieved by understanding"-Albert Einstein-


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
Ja, daar was ik al achter gekomen, dat grapje kostte me zojuist een retour Telecity :(

Dus: /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT er aan toevoegen moet werken?

  • Gondor
  • Registratie: September 2003
  • Laatst online: 09:42
Snow_King schreef op 02 juni 2004 @ 20:13:
Ja, daar was ik al achter gekomen, dat grapje kostte me zojuist een retour Telecity :(

Dus: /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT er aan toevoegen moet werken?
Dat zou moeten werken,[disclaimer] imo [/disclaimer]. Ik heb, OUTPUT op ACCEPT staan.

Misschien is het wel handig als iemand het ff kan testen voor jij telecity verlaat, ofzo.

"Peace cannot be kept by force. It can only be achieved by understanding"-Albert Einstein-


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
Om 20:00 was ik al weer thuis.

Maar als ik de OUTPUT op ACCEPT zet dan is dat toch niet erg? Want je moet eerst input krijgen voor je output geeft lijkt me zo?

  • TrailBlazer
  • Registratie: Oktober 2000
  • Laatst online: 07-02 09:48

TrailBlazer

Karnemelk FTW

Snow_King schreef op 02 juni 2004 @ 20:13:
Ja, daar was ik al achter gekomen, dat grapje kostte me zojuist een retour Telecity :(

Dus: /sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT er aan toevoegen moet werken?
Als je verstandig bent maak je een of ander scriptje wat je firewall rules moet bevestigen binnen de 5 minuten en zo niet een default firewall laad. Die mischien wel niet heel erg secure is maar je wel altijd binnen laat. Scheelt were benzine enzo

  • Trebor
  • Registratie: Augustus 2001
  • Laatst online: 31-12-2025
Of kijk eens op www.shorewall.net. Er is natuurlijk een .deb beschikbaar. In Shorewall bestaat ook de mogelijkheid om de nieuwe rules te testen en na een zelf ingestelde tijd de fw te stoppen.

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
Nee, een firewall die je zelf maakt lijkt me beter aangezien je precies weet wat je waar doet.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#! /bin/sh
echo Initializing firewall
# Eerst flushen we alles en staan we alles toe
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT

# Dan staan we niets meer toe
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Laad enkele FTP modules
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

# Webserver port 80
/sbin/iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT

# FTP port 21
/sbin/iptables -A INPUT --protocol tcp --dport 21 -j ACCEPT

# SSH port 22
/sbin/iptables -A INPUT --protocol tcp -d x.x.x.x -s x.x.x.x --dport 22 -j ACCEPT

# ICMP (oa ping)
/sbin/iptables -A INPUT --protocol icmp -j ACCEPT


Volgens mij ben ik zo de goede weg in geslagen.

Ik heb hem getest en hij werkt :)
Heb voor de zekerheid maar een script gemaakt die alle IPtables rules iederen 15 minute flushed ;)

[ Voor 86% gewijzigd door Snow_King op 03-06-2004 11:19 ]


  • Gondor
  • Registratie: September 2003
  • Laatst online: 09:42
* Gondor Huh, :/
De enige target wat gebruikt wordt met dit laatste script is, accept. Met andere woorden; iedereen mag alles. Dat kan (bijna)niet de bedoeling zijn als je iptables gebruikt ;)

Waarom gooi je alles overhoop :?
Het tweede script wat je hier hebt gepost is bijna goed. De enige wat je daar nog moet doen is een regel voor uitgaande pakketjes toevoegen of je default output target op accept zetten.

"Peace cannot be kept by force. It can only be achieved by understanding"-Albert Einstein-


  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
Je bedoeld dus zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#! /bin/sh
echo Initializing firewall
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Alles Deny'en
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

# Output toestaan
/sbin/iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Laad enkele FTP modules
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp

# Webserver port 80
/sbin/iptables -A INPUT --protocol tcp --dport 80 -j ACCEPT

# FTP port 21
/sbin/iptables -A INPUT --protocol tcp --dport 21 -j ACCEPT

# SSH port 22
/sbin/iptables -A INPUT --protocol tcp -d x.x.x.x.x -s x.x.x.x.x --dport 22 -j ACCEPT

# ICMP (oa ping)
/sbin/iptables -A INPUT --protocol icmp -j ACCEPT

# De rest deny'en
/sbin/iptables -P INPUT DROP

  • pierre-oord
  • Registratie: April 2002
  • Laatst online: 12:27
Dat ziet er al beter uit, ik weet alleen even niet of je bij output ook NEW moet toestaan; ik gooi output meestal gewoon op accept :o

edit:
De rest deny'en
/sbin/iptables -P INPUT DROP
Dit is dubbelop, nergens voor nodig.

[ Voor 31% gewijzigd door pierre-oord op 04-06-2004 11:19 ]

Ondernemer in tech (oud LOQED.com, nu UpToMore.com)


Verwijderd

Snow_King schreef op 03 juni 2004 @ 11:10:
Nee, een firewall die je zelf maakt lijkt me beter aangezien je precies weet wat je waar doet.
[...]
En dat weet je met Shorewall niet 8)7 BTW waarom zet je niet gewoon webmin op die server en dan ff poort 10000 open. Als je klaar bent en de firewall werkt goed dan schakel je webmin gewoon weer uit (en/of zet je poort 10000 weer dicht).

  • idef1x
  • Registratie: Januari 2004
  • Laatst online: 19-02 17:26
Snow_King schreef op 03 juni 2004 @ 11:10:
Heb voor de zekerheid maar een script gemaakt die alle IPtables rules iederen 15 minute flushed ;)
Eh wat bedoel je hiermee :? Toch niet dat je elke 15 minuten een iptables -F doet he :? :? Want dan gooi je dus je hele machine compleet op slot (als de default policies op DROP staan)

  • Snow_King
  • Registratie: April 2001
  • Laatst online: 19-02 17:13

Snow_King

Konijn is stoer!

Topicstarter
Nee, ik zet alle input op ACCEPT
Pagina: 1