PDA

Bekijk Volledige Versie : iptables



kakina
27/09/10, 19:08
ik heb op mn webserver de volgende firewall opgezet. Kunnen jullie daar eens op schieten? Ik vraag me oa af of de bogus sectie wel zin heeft.

nb. er draaien eigen nameservers op.


iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Bogus

iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -s 169.254.0.0/16 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.0.2.0/24 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -i ! lo -j DROP

# Allow traffic already established to continue

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow ssh, dns, ldap, ftp and web services

iptables -A INPUT -p tcp --dport 12345 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport domain -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport ftp -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport ftp -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport ftp-data -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport ftp-data -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT

# Allow local loopback services

iptables -A INPUT -i lo -j ACCEPT

# Allow pings

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# Allow direct admin

iptables -A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT


# DNS - Requests naar andere DNS servers toestaan
iptables -A INPUT -p UDP --sport 53 -j ACCEPT
iptables -A OUTPUT -p UDP --dport 53 -j ACCEPT
iptables -A INPUT -p TCP --sport 53 -j ACCEPT
iptables -A OUTPUT -p TCP --dport 53 -j ACCEPT

# DNS - Requests van clients toestaan
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
iptables -A OUTPUT -p UDP --sport 53 -j ACCEPT
iptables -A INPUT -p TCP --dport 53 -j ACCEPT
iptables -A OUTPUT -p TCP --sport 53 -j ACCEPT

marsipulami
27/09/10, 19:18
ik heb op mn webserver de volgende firewall opgezet........

je hebt een firewall op je server gezet of gewoon een copy past van iptables toegepast?

kakina
27/09/10, 19:20
Script als root uitgevoerd, nog in testfase dus nog niet gesaved.

marsipulami
27/09/10, 19:25
jah maar dit heb je niet zelf bedacht lijkt me. anders google je even op 1 regel uit je iptables lijstje, misschien leer je er nog iets van.

zo moeilijk is het niet

kakina
27/09/10, 19:27
Dit heb ik bij elkaar gesprokkeld uit diverse examples.
Vraag me alleen af of het afdoende is?

Arie.
27/09/10, 19:28
Wat gebeurt er allemaal op die webserver, welk control panel enz enz......

kakina
27/09/10, 19:32
Centos, DirectAdmin port 2222, exim. mysql, http, proftp, ssh op port 12345
nameserver

Arie.
27/09/10, 19:36
Hoe ga je de mail regelen is zie hier exim staan, maar daar horen toch poorten bij, DA gebruikt tevens 587 om buiten poort 25 om ( die bij de meeste providers vaak dicht staat ) mail te kunnen versturen over je eigen mail server !?

kakina
27/09/10, 19:47
exim draait als mailserver met deze iptables configuratie zonder problemen . DA ook. Het is een VPS dus volgens mij staat er niets dicht.

Patrick_st
27/09/10, 21:16
Uitgaande mail zal best werken maar poort 25 inkomend staat dicht dus via smtp zul je weinig mail binnen krijgen.

Verder staat bovenin Output ACCEPT, onderin heb je een paar output regels gemaakt. Deze zijn dan overbodig.

kakina
27/09/10, 23:36
Inderdaad via smtp kreeg ik niets binnen, had ik nog niet door omdat alles via een conractform liep. Bedankt!:thumbup:

Het script ziet er nu zo uit:


# Allow outgoing traffic and disallow any passthroughs

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Bogus

iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -s 169.254.0.0/16 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.0.2.0/24 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 127.0.0.0/8 -i ! lo -j DROP

# Allow traffic already established to continue

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow ssh, dns, ldap, ftp and web services

iptables -A INPUT -p tcp --dport 12345 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport domain -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport ftp -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport ftp -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport ftp-data -i eth0 -j ACCEPT
iptables -A INPUT -p udp --dport ftp-data -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -i eth0 -j ACCEPT

# Allow local loopback services

iptables -A INPUT -i lo -j ACCEPT

# Allow pings

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# Allow direct admin

iptables -A INPUT -p tcp -m tcp --dport 2222 -j ACCEPT


# DNS - Requests naar andere DNS servers toestaan
iptables -A INPUT -p UDP --sport 53 -j ACCEPT
#iptables -A OUTPUT -p UDP --dport 53 -j ACCEPT
iptables -A INPUT -p TCP --sport 53 -j ACCEPT
#iptables -A OUTPUT -p TCP --dport 53 -j ACCEPT

# DNS - Requests van clients toestaan
iptables -A INPUT -p UDP --dport 53 -j ACCEPT
#iptables -A OUTPUT -p UDP --sport 53 -j ACCEPT
iptables -A INPUT -p TCP --dport 53 -j ACCEPT
#iptables -A OUTPUT -p TCP --sport 53 -j ACCEPT

Wat is de reden dat port 25 vaak wordt dichtgezet, kan de server als spamserver worden misbruikt?

Kunnen de regels onder bogus ook niet weg omdat ik in eerste instantie alle input DROP? (iptables -P INPUT DROP)


Verder vraag ik me nog steeds af of de firewall zo afdoende is.

Piwi-Web
28/09/10, 00:17
Is CSF niet makkelijker voor je? Werkt ook mat iptables meer doet weer ietsje meer (wat alleen maar ten goede komt betreft beveiliging)

The-BosS
28/09/10, 00:17
Wat is de reden dat port 25 vaak wordt dichtgezet, kan de server als spamserver worden misbruikt?
Veel provider laten enkel hun eigen netwerk toe (ISP's dan) en jah als je geen goede instellingen hebt kan je server als open relay gebruikt worden.


Kunnen de regels onder bogus ook niet weg omdat ik in eerste instantie alle input DROP? (iptables -P INPUT DROP)
Dat zijn ip adressen die je voor interne doeleinden gebruikt en die wil je niet als outbound of inbound op je server. Tenzei op bvb een dedicated nic waar je local lan op zit, en dan nog kan je dit beperken tot bvb enkele ips voor backup servers, vpn connectie etc.

Verder kan je ook een Standaard drop lijst gebruiken zoals bvb die van spamhaus (http://www.spamhaus.org/drop/drop.lasso) dat bespaart je al een hoop gekende illegale ip adressen, gekaapte ip adressen of gekende spam ip adressen.

EDIT: Gebruik die lijst niet 1 keer maar via cron zodat deze up-to-date blijft

hrodenburg
28/09/10, 07:58
je hebt rules met udp en ftp. ftp is alleen maar tcp.
Ook heb je onderaan rules voor je input chain met als source poort 53 en geen destination poort. Dat betekent dat als ik connect vanaf poort 53, alle poorten op je server toegankelijk zijn. ik zou gewoon alleen filteren op destination port.

LAMP-host
28/09/10, 09:24
volgens mij heeft die bogus sectie totaaaal geen zin... omdat je in het begin van je regels al INPUT op DROP zet , moet je alleen maar regels OPEN zetten ;)
ik denk ook dat die laatste 2 sets van regels , daar de sport regels weg gelaten kunnen worden. TCP port 53 is enkel voor zone transfer tussen 2 DNS servers waar UDP 53 nodig is voor client dns requests.
zelfs de regels van DNS OUTPUT hebben weinig zin want je OUTPUT chain staat op ACCEPT. alle regels met -A OUTPUT -j ACCEPT zullen weinig zin hebben zoals de -A INPUT -j DROP regels...
Zet gewoon UDP en TCP poort 53 open van buiten af naar je server open.
als het makkelijk te installeren is kan je overwegen om Fwbuilder te gebruiken.
Dit is een grafische firewallbuilder die op alle systemen werkt.

hrodenburg
28/09/10, 10:34
volgens mij heeft die bogus sectie totaaaal geen zin... omdat je in het begin van je regels al INPUT op DROP zet , moet je alleen maar regels OPEN zetten ;)
Dat is niet helemaal waar. Op deze manier blok je gelijk onjuiste/bogus ip's. Terwijl je voor ip's die daar niet op matchen verderop services aanbied. Op die manier zijn dus de services voor de bogus ip's niet bereikbaar.
Zinloos is het dus zeker niet.