Linux – IPTables – Beispielkonfiguration (DNS, HTTP, FTP, PING, SSH, SAMBA & NFS)

Aufgrund von Problemen mit dem Suspend-To-Ram (pm-suspend), teste ich zur Zeit einige Linux-Distributionen. Sollte sich jemand von euch mit pm-suspend oder s2ram auskennen kann dieser mich gerne kontaktieren. Nach der Installation von CentOS bin ich wieder einmal über IPTables gestolpert. Noch nie habe ich mich näher mit diesen IP-Tabellen beschäftigt – das hat sich jetzt geändert. 🙂

Was sind IPTables:

Mit Hilfe von iptables wird Netfilter, der IP-Paketfilter des Linuxkernels konfiguriert.
Ist der Paketfilter des Kernel aktiv (d.h. sind mit iptabels erstellte Filterregeln konfiguriert), so werden alle IP-Datenpakete geprüft. Ankommende Pakete werden geprüft, bevor sie an die Zielanwendung geleitet werden, ausgehende Pakete werden geprüft, bevor sie den Rechner verlassen. Agiert der Rechner als Router (z.B. in einem Netzwerk), so werden die Pakete während der Weiterleitung geprüft. Außerdem besteht auch die Möglichkeit der Paketmanipulation. Die Art der Prüfung lässt sich mit Hilfe von iptables sehr detailliert vorgeben.

Quelle: iptables2 im uu-wiki

Ich möchte hier jetzt eigentlich nicht weiter über die Grundlagen oder Funktionsweiße von IPTables schreiben. Stattdessen möchte ich euch meine Beispielkonfiguration veröffentlichen, bei der eigentlich jeder die Funktion dieser Konfiguration erkennen sollte. Wenn nicht, dann stehen ja kleine Erklärungen obendrüber. mrgreen - Linux - IPTables - Beispielkonfiguration (DNS, HTTP, FTP, PING, SSH, SAMBA & NFS)

/etc/sysconfig/iptables oder /etc/iptables/iptables.rules je nach Distribution

##########################################################
# Firewall configuration written by NH from www.loggn.de #
##########################################################
*filter
############################
# alles blocken (Paranoid) #
############################
:INPUT REJECT [0:0]
:FORWARD REJECT [0:0]
:OUTPUT REJECT [0:0]
########################################################################
# eingehende & ausgehende Paket für existierende Verbindungen zulassen #
########################################################################
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
############################
# loopback Device zulassen #
############################
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
##########################
# Ping zulassen (in/out) #
##########################
-A INPUT -p icmp --icmp-type 8 -s 0/0 -d 192.168.137.100 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -p icmp --icmp-type 8 -s 192.168.137.100 -d 0/0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
##################################
# DNS, FTP & HTTP zulassen (out) #
##################################
-A OUTPUT -p udp --sport 1024:65535 --dport 53 -j ACCEPT
-A OUTPUT -p tcp --sport 1024:65535 -m multiport --dports 20,21 -j ACCEPT
-A OUTPUT -p tcp --sport 1024:65535 -m multiport --dports 80,443 -j ACCEPT
#####################
# SSH zulassen (in) #
#####################
-A INPUT -p tcp -s 192.168.137.0/24 -d 192.168.137.100 --sport 513:65535 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
#######################
# SAMBA zulassen (in) #
#######################
-A INPUT -p udp -s 192.168.137.0/24 -d 192.168.137.100 -m multiport --dports 137,138 -j ACCEPT
-A INPUT -p tcp -s 192.168.137.0/24 -d 192.168.137.100 -m multiport --dports 139,445 -j ACCEPT
-A INPUT -p udp -s 192.168.137.0/24 -d 192.168.137.255 --dport 137 -j ACCEPT
####################################################################
# NFS zulassen (in)                                                #
# PORT Konfiguration je nach System unterschiedlich                #
# http://www.ecorak.net/linux/howtos/nfs.php                       #
#           #
#  #
####################################################################
-A INPUT -p tcp -s 192.168.137.0/24 -d 192.168.137.100 -m multiport --dports 111,2049 -j ACCEPT
-A INPUT -p udp -s 192.168.137.0/24 -d 192.168.137.100 -m multiport --dports 111,2049 -j ACCEPT
-A INPUT -p tcp -s 192.168.137.0/24 -d 192.168.137.100 --dport 4000:4003 -j ACCEPT
-A INPUT -p udp -s 192.168.137.0/24 -d 192.168.137.100 --dport 4000:4003 -j ACCEPT
################
# LOG REJECTED #
################
#-A INPUT -j LOG --log-prefix "Rejected "
#-A OUTPUT -j LOG --log-prefix "Rejected "
########
# ENDE #
########
COMMIT

Quellen:
SSH Regel
NFS Regel
LOG Regel
PING Regel
SAMBA Regel
DNS, FTP & HTTP Regeln

Veröffentlicht von

_nico

Mac-User aus Leidenschaft, Blogger seit Oktober 2009, 88er Baujahr, technikaffin. Ich fühle mich aber nicht nur auf Apple'schen Betriebssystemen zu Hause, alles was eine Shell hat, interessiert mich besonders! Ihr findet mich auch auf Twitter und Google+.

2 Gedanken zu „Linux – IPTables – Beispielkonfiguration (DNS, HTTP, FTP, PING, SSH, SAMBA & NFS)“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert