Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Linux/UNIX Linuxverfechter finden hier Weggefährten.

Firewall für Homeserver

Diskussion: Firewall für Homeserver im Forum Linux/UNIX, in der Kategorie Operating Systems; Anzeige Hi, könnte sich mal jemand meine iptables anschaun und mir sagen ob das so taugt für einen Homeserver? Der ...

Antwort
Alt 08.05.10, 09:33   #1 (permalink)
Senior Member
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard Firewall für Homeserver

Anzeige

Hi,

könnte sich mal jemand meine iptables anschaun und mir sagen ob das so taugt für einen Homeserver? Der Rechner hängt direkt am Netz, da bin ich manchmal etwas paranoid und da meine iptables skills noch nicht so gut sind hol dich da lieber mal Drittmeinungen ein

Code:
#!/bin/bash

###################################
# SETUP
###################################

modprobe ip_conntrack
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "0" > /proc/sys/net/ipv4/ip_dynaddr

###################################
# CLEAR ALL AND SET DEFAULTS
###################################

# clear all
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F

# set policies
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

###################################
# ALLOW ALL TRAFFIC ON LOOPBACK
###################################

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

###################################
# EXCEPTIONS OF THE INPUT POLICY
###################################

# allow all traffic from the inside
iptables -A INPUT -i eth0 -j ACCEPT

# allow port 22 from the outside
iptables -A INPUT -i ppp0 -p tcp --dport 22 -j ACCEPT

# allow port 80 from the outside
iptables -A INPUT -i ppp0 -p tcp --dport 80 -j ACCEPT

# allow related
iptables -A INPUT -i ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT

# log all tcp traffic that will be dropped
iptables -A INPUT -i ppp0 -p tcp -j LOG

###################################
# EXCEPTIONS OF THE FORWARD POLICY
###################################

# allow all traffic to pass from the inside to the outside
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT

# and allow related traffic to be forwarded to the inside
iptables -A FORWARD -i ppp0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

# enable source nat
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
cu
serow
Serow ist offline   Mit Zitat antworten
Alt 08.05.10, 11:33   #2 (permalink)
 
Registriert seit: 05.09.07
Garfield Leistung: Z3
Likes: 0
Standard

Ich bin nicht sonderlich gut, in Sachen iptables - aber "Blocke alles außer ..." ist schon mal nicht verkehrt
Ansonst kann ich dir aber prinzipiell mal http://nmap-online.com/ empfehlen, um den Server von außen abzutasten.
Garfield ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 08.05.10, 11:36   #3 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

also wenn du SSH-Port nach außen hin offen hast (und auch noch auf Standard-Port 22), dann hast du gaaanz schnell 'ne ziemlich große auth.log

Da solltest du 1.) den SSH-Server so absichern, dass nur ganz bestimmte Nutzer (und definitiv KEIN root) Zugriff bekommen können.
und 2.) könntest du fail2ban nutzen, um Scriptkiddies und Bots, welche permanent versuchen, sich (meist mit username=root) bei dir einzuloggen, für eine frei definierbare Dauer komplett zu blocken...

Du kannst natürlich SSH auch einfach auf einen anderen Port legen und hast automatisch 90% weniger Angriffe, aber diese Art der "Sicherung", Security through Obscurity, sollte definitiv niemals die einzige sein...

Es gibt auch Möglichkeiten, dass du den SSH-Port an sich sperrst und erst auf 'nem anderen Port "anklopfen" musst, auf dass die Firewall den SSH-Port freigibt... (Stichwort "port knocking")
beavisbee ist gerade online   Mit Zitat antworten
Alt 08.05.10, 18:27   #4 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

Folgende procfs-Einstellungen würde ich noch empfehlen:

Code:
        # auf Broadcast-Pings nicht antworten
        echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
        # halt die Klappe bei komischen ICMP Nachrichten
        echo 0 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
        # Kicke den ganzen IP Spoofing Shit
        # (Source-Validierung anschalten)
        echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
        # Setze Default-TTL auf 61 (Default fuer Linux ist 64)
        echo 61 > /proc/sys/net/ipv4/ip_default_ttl
        # sende RST-Pakete wenn der Buffer voll ist
        echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow
        # warte max. 30 secs auf ein FIN/ACK
        echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
        # unterbreche Verbindungsaufbau nach 3 SYN-Paketen
        # Default ist 6
        echo 3 > /proc/sys/net/ipv4/tcp_syn_retries
        # unterbreche Verbindungsaufbau nach 3 SYN/ACK-Paketen
        # Default ist 6
        echo 3 > /proc/sys/net/ipv4/tcp_synack_retries
Ausserdem würde ich das Logging nur aktivieren, wenn gerade ein Angriff zu analysieren ist, da dir sonst das übliche Hintergrundrauschen tausender Bots die Logs zuspammen wird.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
Alt 08.05.10, 18:52   #5 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Hi,

danke für die Tips. Schonmal gut zu hören, dass es nicht komplett verkehrt war ^^ Die /proc Settings verstehe ich zwar nicht, habe sie aber mal übernommen. Da fehlt mir wohl das Hintergrundwissen bzgl Attacken.

Ich hab meine Logs bisher mal analysiert und habe gemerkt, dass wohl 90% der gedroppten Packete aus China kam. Darauf hin hab ich mir ne Liste aller IP Blöcke aus China geholt und per

Code:
iptables -A INPUT -i ppp0 -s <BLOCK> -j DROP
gesperrt. Jetzt dauert ein "iptables -L" zwar > 20min aber wenigstens kommt da nix mehr an ^^ Muss nur schaun, dass ich das wieder rausnehme falls ich mal nach China komme

cu
serow
Serow ist offline   Mit Zitat antworten
Alt 08.05.10, 18:56   #6 (permalink)
Moderator
 
Benutzerbild von bitmuncher
 
Registriert seit: 30.09.06
bitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcorebitmuncher Quadcore
Likes: 441
Standard

Bedenke, dass sehr viele Regeln allgemein den Traffic ausbremsen, da jedes Paket durch diese Regeln wandern muss. Man sollte daher die Regeln so gering wie möglich halten und besser IP-Ranges mit einer Regel aussperren, anstatt mit 255 oder mehr.
__________________
Mein Blog - Mein Job - Diaspora

Der Ring uns zu knechten besteht aus 12 Sternen auf blauem Grund.

Neue Beiträge im Habo via Twitter - Das HaBo auf FB - Das HaBo bei G+
bitmuncher ist offline   Mit Zitat antworten
Alt 08.05.10, 20:02   #7 (permalink)
Senior Member
Themenstarter
 
Registriert seit: 26.03.06
Serow Leistung: 8086
Likes: 16
Standard

Hi,

allein die IP Blocker Regeln sind schon 485 Stück Ist vllt doch etwas viel ...

cu
serow
Serow ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Operating Systems » Linux/UNIX » Firewall für Homeserver
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



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