iptables firewall drama op ubuntu 64 bit

Pagina: 1
Acties:

Onderwerpen


  • Trekkerkearl
  • Registratie: December 2003
  • Laatst online: 28-08 06:57

Trekkerkearl

Twentse Boer en ICT'er

Topicstarter
Ik heb de laatste dagen wat met iptables liggen ****** en krijg het niet voor elkaar m de firewall de laten werken

Ik heb een script gemaakt met de volgende code erin

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -F
iptables -X

iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -s 127.0.0.1 -j ACCEPT

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 23 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 42 -j ACCEPT
iptables -A INPUT -p tcp --dport 43 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A INPUT -p tcp --dport 119 -j ACCEPT
iptables -A INPUT -p tcp --dport 123 -j ACCEPT
iptables -A INPUT -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 194 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -p tcp --dport 631 -j ACCEPT
iptables -A INPUT -p tcp --dport 2207 -j ACCEPT
iptables -A INPUT -p tcp --dport 2208 -j ACCEPT
iptables -A INPUT -p tcp --dport 6881:6999 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 21024 -j ACCEPT
iptables -A INPUT -p tcp --dport 21141 -j ACCEPT
iptables -A INPUT -p tcp --dport 43643 -j ACCEPT

iptables -A INPUT -p udp --dport 80 -j ACCEPT
iptables -A INPUT -p udp --dport 21 -j ACCEPT
iptables -A INPUT -p udp --dport 22 -j ACCEPT
iptables -A INPUT -p udp --dport 23 -j ACCEPT
iptables -A INPUT -p udp --dport 25 -j ACCEPT
iptables -A INPUT -p udp --dport 42 -j ACCEPT
iptables -A INPUT -p udp --dport 43 -j ACCEPT
iptables -A INPUT -p udp --dport 110 -j ACCEPT
iptables -A INPUT -p udp --dport 119 -j ACCEPT
iptables -A INPUT -p udp --dport 123 -j ACCEPT
iptables -A INPUT -p udp --dport 137 -j ACCEPT
iptables -A INPUT -p udp --dport 138 -j ACCEPT
iptables -A INPUT -p udp --dport 139 -j ACCEPT
iptables -A INPUT -p udp --dport 194 -j ACCEPT
iptables -A INPUT -p udp --dport 445 -j ACCEPT
iptables -A INPUT -p udp --dport 631 -j ACCEPT
iptables -A INPUT -p udp --dport 2207 -j ACCEPT
iptables -A INPUT -p udp --dport 2208 -j ACCEPT
iptables -A INPUT -p udp --dport 6881:6999 -j ACCEPT
iptables -A INPUT -p udp --dport 8080 -j ACCEPT
iptables -A INPUT -p udp --dport 21024 -j ACCEPT
iptables -A INPUT -p udp --dport 21141 -j ACCEPT
iptables -A INPUT -p udp --dport 43643 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 23 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 42 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 43 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 119 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 123 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 137 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 138 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 139 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 194 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 445 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 631 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 2207 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 2208 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 6881:6999 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21024 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21141 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 43643 -j ACCEPT

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
iptables -A OUTPUT -p udp --dport 21 -j ACCEPT
iptables -A OUTPUT -p udp --dport 22 -j ACCEPT
iptables -A OUTPUT -p udp --dport 23 -j ACCEPT
iptables -A OUTPUT -p udp --dport 25 -j ACCEPT
iptables -A OUTPUT -p udp --dport 42 -j ACCEPT
iptables -A OUTPUT -p udp --dport 43 -j ACCEPT
iptables -A OUTPUT -p udp --dport 110 -j ACCEPT
iptables -A OUTPUT -p udp --dport 119 -j ACCEPT
iptables -A OUTPUT -p udp --dport 123 -j ACCEPT
iptables -A OUTPUT -p udp --dport 137 -j ACCEPT
iptables -A OUTPUT -p udp --dport 138 -j ACCEPT
iptables -A OUTPUT -p udp --dport 139 -j ACCEPT
iptables -A OUTPUT -p udp --dport 194 -j ACCEPT
iptables -A OUTPUT -p udp --dport 445 -j ACCEPT
iptables -A OUTPUT -p udp --dport 631 -j ACCEPT
iptables -A OUTPUT -p udp --dport 2207 -j ACCEPT
iptables -A OUTPUT -p udp --dport 2208 -j ACCEPT
iptables -A OUTPUT -p udp --dport 6881:6999 -j ACCEPT
iptables -A OUTPUT -p udp --dport 8080 -j ACCEPT
iptables -A OUTPUT -p udp --dport 21024 -j ACCEPT
iptables -A OUTPUT -p udp --dport 21141 -j ACCEPT
iptables -A OUTPUT -p udp --dport 43643 -j ACCEPT


volgens het commande iptables -L moet alles goed staan en zijn de poorten die aagegeven heb goed ingestelt... :)
Echter kan ik niet browsen of samba gebruiken, danwel een van de andere protocollen gebruiken die ik open heb staan, het lijkt wel of alles gedropped wordt.

Ik heb eerst de policy voor input, output & forward op drop gezet en vervolgens moeten de commado's de genoemde poorten op udp en tcp open zetten en de locahost moet alles kunnen.

Als ik dit met mijn shellscript deze commando's toevoeg dan zou eigenlijk alles moeten werken, maar alles is meteen dicht en ik kan niets.
Ik denk dat ik de firewall met de nieuwe regels nog eerst actief moet maken., maar ik kan het commando hiervoor nergens vnden...

sudo /etc/init.d/iptables restart
sudo /etc/init.d/firewall restart
sudo service firewall restart
sudo service iptables restart

De werken allemaal niet en als ik reboot zijn alle regels weer weg en mijn firewall policy is weer "accept" voor alle tables |:(

iemand enig idee wat ik fout doe ? alsvast de dank van een nieuwtje (met iptables dan) _/-\o_

Ik heb d’r nich veur keuzn Tukker te wean, ik heb gewoon onmeunig mazzel had!


  • raymonvdm
  • Registratie: December 2001
  • Laatst online: 30-06 16:35
Ik gebruik shorewall omdat deze naar mijn mening makkelijk is te configeren. IPtables snap ik nog steeds niet. En shorewall is toch echt hetzelfde...

  • autostatic
  • Registratie: April 2004
  • Laatst online: 04-03 19:08
Je hebt nergens source ports aangegeven. Alles zit dus dicht omdat je standaard policy alles dropt. Ook snap ik die iptables -X niet, dan moet je wel aangeven welke user-defined chain je wilt deleten. En wat betreft je script, waarom laadt je die niet bij het opstarten?

[ Voor 78% gewijzigd door autostatic op 20-08-2009 21:07 ]


  • orillion
  • Registratie: April 2006
  • Laatst online: 16:01
Wat gebeurd er als je dit runt:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 

Op deze manier worden related/established verbindingen toegestaan, die worden bij jou gedropt.

Source port maakt overigens niet uit, je wil destport op de pc opgeven en dat doe je al juist.

[ Voor 18% gewijzigd door orillion op 20-08-2009 21:07 ]


  • autostatic
  • Registratie: April 2004
  • Laatst online: 04-03 19:08
Alles wordt gedropt. Niet alleen related/established verbindingen zoals FTP. Sorry orillion, zit niet goed te kijken 8)7
Maar heb je IP forwarding aanstaan? En heb je alle goeie kernel modules geladen?

[ Voor 45% gewijzigd door autostatic op 20-08-2009 21:12 ]


  • Trekkerkearl
  • Registratie: December 2003
  • Laatst online: 28-08 06:57

Trekkerkearl

Twentse Boer en ICT'er

Topicstarter
AutoStatic schreef op donderdag 20 augustus 2009 @ 20:51:
Je hebt nergens source ports aangegeven. Alles zit dus dicht omdat je standaard policy alles dropt. Ook snap ik die iptables -X niet, dan moet je wel aangeven welke user-defined chain je wilt deleten. En wat betreft je script, waarom laadt je die niet bij het opstarten?
sorry, maar ik moet toch eerst alles dicht gooien voor ik de juiste poorten weer kan openen ?
Daarom zet ik de policy juist op drop...en maak ik een uitzondering voor de poorten die ik aangeef ?

Als dit niet zo moet (zou niet weten hoe).... kan iemand me dan een vertellen hoe het wel zou moeten ?
Op het internet staat dat stukje in alle scripts....

Ik heb dit allemaal gedaan in een virtualbox testopstelling met een standaard ubuntu 9.04 installatie.... verder heb ik niets verandert of geinstalleerd/configureerd

Ik heb d’r nich veur keuzn Tukker te wean, ik heb gewoon onmeunig mazzel had!


  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

Portje 53 (DNS) al aan gedacht? Probeer eens stap voor stap te testen, de meest basic dingen e.d. dan kom je er vanzelf achter wat er nog niet mogelijk is en waar de fout zit. En ACCEPT-en op basis van state RELATED of ESTABLISHED scheelt je een hoop afzonderlijke regels om het inkomende traffic weer te matchen.

  • autostatic
  • Registratie: April 2004
  • Laatst online: 04-03 19:08
Trekkerkearl schreef op donderdag 20 augustus 2009 @ 21:56:
[...]


sorry, maar ik moet toch eerst alles dicht gooien voor ik de juiste poorten weer kan openen ?
Daarom zet ik de policy juist op drop...en maak ik een uitzondering voor de poorten die ik aangeef ?

Als dit niet zo moet (zou niet weten hoe).... kan iemand me dan een vertellen hoe het wel zou moeten ?
Op het internet staat dat stukje in alle scripts....
Je doet het goed, eerst alles dichtgooien en dan alleen de poorten die je open wilt openzetten. Maar volgens mij moet je bij de INPUT regels de source specification aangeven en bij de OUTPUT regels de destination specification. Maarja, ik zit ook niet dagelijks iptables rules te schrijven ;) En zodra je je script hebt uitgevoerd zijn de regels trouwens gelijk actief.

[ Voor 4% gewijzigd door autostatic op 20-08-2009 22:10 ]


  • mithras
  • Registratie: Maart 2003
  • Niet online
En mochten ip tables toch nog te lastig zijn, misschien even kijken naar UFW (http://www.ubuntugeek.com...all-for-ubuntu-hardy.html)? Dat is een zeer simpele tool om een firewall te maken :)

  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 19-08 08:24

PowerSp00n

There is no spoon

AutoStatic schreef op donderdag 20 augustus 2009 @ 22:08:
Je doet het goed, eerst alles dichtgooien en dan alleen de poorten die je open wilt openzetten. Maar volgens mij moet je bij de INPUT regels de source specification aangeven en bij de OUTPUT regels de destination specification. Maarja, ik zit ook niet dagelijks iptables rules te schrijven ;)
Klopt, of in ieder geval "moet" ligt net aan je situatie natuurlijk :p. Maar hier klopt het inderdaad niet dat zowel bij INPUT als bij OUTPUT je de destination-port opgeeft. Zie even de bovengenoemde rule om te matchen op state van je traffic, maakt het direct een stuk simpeler en lost bovenstaand probleem op.

  • alx
  • Registratie: Maart 2002
  • Niet online

alx

Tja, de goede antwoorden zijn al gegeven. Gebruik gewoon een goede front-end, want zelf inrammen is idd een drama. Toch kan het wel; de opzet (eerst alles dicht, dan stuksgewijs openen) is ok.
Voor open en eigen connecties vanaf eth0 deed ik altijd:
code:
1
2
  iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT

en verder kun je tot 15 poorten in een multiport gooien, per proto en per ip mask. bv:
code:
1
2
3
4
  iptables -A INPUT -p tcp -m multiport --dports 22,80,4040,8080 -j ACCEPT
  iptables -A INPUT -p udp -m multiport --dports 1234 -j ACCEPT
  iptables -A INPUT -p tcp -m multiport --dports 20,21,139,445 -s 192.168.1.0/24 -j ACCEPT
  iptables -A INPUT -p udp -m multiport --dports 137,138 -s 192.168.1.0/24 -j ACCEPT

succes :)

Acties:
  • 0 Henk 'm!

  • Trekkerkearl
  • Registratie: December 2003
  • Laatst online: 28-08 06:57

Trekkerkearl

Twentse Boer en ICT'er

Topicstarter
code:
1
2
  iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  iptables -A INPUT -m state --state NEW -i ! eth0 -j ACCEPT

dit werkt verder goed, echter kunnen programma's als xchat & amsn nog steeds niets.

Ik heb het opgelost door alleen de input the dropped and the output gewoon te accepten.... andere computers komen er bij mij niet in en mijn pc kan wel verbindgen maken...
Dit lijkt me voorlopig genoeg beveiliging :)

[ Voor 88% gewijzigd door Trekkerkearl op 21-08-2009 11:33 ]

Ik heb d’r nich veur keuzn Tukker te wean, ik heb gewoon onmeunig mazzel had!


Acties:
  • 0 Henk 'm!

Verwijderd

Je bent aardig op weg maar toch een tips hoe ik mijn firewall opzet.

Tip 1:
Iptables werkt volgens het principe van rules. 1 packet wordt vergeleken met de criteria van de 1e rule, als die matched wordt die actie ondernomen met dat packet, geen match dan wordt de 2e rule geprobeerd. Iptables is in die zin een beetje onlogisch in hoe je het opzet want je maakt eigenlijk eerst de gaten in je firewall en dan pas de firewall zelf, als gaten met kaas zegmaar. Zoals je al merkt wordt de policy pas als laatste uitgevoerd en is eigenlijk niks meer dan gewoon de laaste rule als alle andere rules geen match bleken te zijn. Het is daarom een goed idee om helemaal niet op die policy te vertrouwen maar gewoon zelf je chain aftesluiten met een DROP ALL rule. Mocht om wat voor reden de policy onverhoopt op ACCEPT komen te staan dan blijft je firewall intact. Ook kun je een logging rule toevoegen zodat je ook weet waarom een packet was gedropped.

Tip 2:
Gebruik user-chains, stop rules die met elkaar te maken hebben in dezelfde chain dus bijvoorbeeld een chain voor NAT, voor lokale services, een blacklist, etc. Je gebruikt de chain dan als een soort functie die je aanroept. Je INPUT chain bestaat dus bijvoorbeeld uit een rule die de loopback/localhost vrijpleit, Eventueel je IPv6-in-IPv4 tunnel packets, Je ICMP chain, Je lokale services chain, TCP return packets, UDP return packets, en de rest krijgt een DROP ongeacht de policy. Dit is een voorbeeld hoe je chains gebruikt en je INPUT chain kort houdt.

Tip 3:
Gebruik iptables-save en iptables-restore. Onder debian/ubuntu werkt dit zeer goed samen met je netwerk config. Ik save bijvoorbeeld mijn firewall met "iptables-save > /etc/iptables.rules" en in mijn /etc/network/interfaces heb ik een post-up regel met "iptables-restore < /etc/iptables.rules" zodat mijn firewall vers wordt geladen als mijn netwerkkaart up gaat.

Tip 4:
Gebruik ook het source ip in je rules. Ik heb bijvoorbeeld al mijn lokale services zoals SSH, DNS, NTP, etc in een aparte user-chain genaamd 'services'. In de INPUT chain match ik dan op "-s 192.168.69.0/24" wat mijn lokale IPv4 netmask is, en jump dan naar de services-chain waar ik in elke rule opnieuw check op het source ip en natuurlijk port. En in het geval van geen match sluit ik mijn services-chain af met een rate-limited logging rule gevolgd door een DROP rule zodat ik ook weet wie er op mijn 'deur' staat te bonzen.

Tip 5:
Gebruik comments in je rules. Je kunt met --comment een korte note aan je rule plakken die ook met iptables -L wordt weergegeven. Dit maakt het makkelijk om je rules te begrijpen.

Tip 6:
Gebruik iptables -nL. de n maakt dat je geen tijdrovende dns-lookups doet en maakt de output iets uniformer en naar mijn mening beter leesbaar. Zie ook bijvoorbeeld netstat -an om te zien welke poorten er open staan.

Tip 7:
Vergeet IPv6 niet! hoewel je mischien geen IPv6 router en/of uplink/tunnel hebt kan het geen kwaad om IPv6 ook van een firewall te voorzien. Dit doe je met ip6tables, ip6tables-save en ip6tables-restore. Het werkt eigenlijk exact hetzelfde alleen ICMPv6 moet je even opletten of gewoon niet firewallen.

Tip 8:
Hoewel er prachtige tools zijn om je firewall te bewerken vindt ik de makkelijkste methode nog altijd om mijn firewall te saven met iptables-save > /etc/iptables.rules en dan gewoon met vi te bewerken. Mijn services chain bijvoorbeeld begint gewoon elke regel met '-A services -s 192.168.69.0/24" gevold door ofwel -p tcp of -p udp, dan --dport met het relevante port nummer en een --comment met een korte verklaring van wat de rule doet zoals bijvoorbeeld --comment "Accept locale SSH packets" en elke rule is een gat dus afgesloten met een -j ACCEPT.

Dat zijn slechts enkele van de tips hoe ik mijn firewall opzet en ben er opzich best tevreden mee. Als je eenmaal de bekende switches zoals -s -d --dport --comment etc kent kun je sneller dan in welke tool/GUI zo je rules opzetten. Even laden en klaar. En zoals: lees de manpage 'man iptables' waar alle soorten rules, switches en targets worden uitgelegt. Hoewel ik alle howto's en manuals bij de hand had heb ik mijn firewall in een paar uur opgezet met enkel de man page open in mijn andere SSH window. Echt zeer goed leesvoer ook voor beginners.

Acties:
  • 0 Henk 'm!

  • Thc_Nbl
  • Registratie: Juli 2001
  • Laatst online: 21-05 22:24
hmm apt-get install firestarter
doet het prima onder gnome, simpel met wizzard ;-)
gebruik ik al jaren.

je kan hem ook zonder gui gebruiken maar dan moet je wel even
firestarter --help daar staat bij hoe je setup kan aanmaken, even dan even met de hand
je interfaces goedzetten.
firestarter --init ofzo doen, die maakt de scripts.

voor vpn zaken even hier kijken
http://www.fs-security.com/docs/vpn.php
suc7

ehhh.. noppes

Pagina: 1