Archiv verlassen und diese Seite im Standarddesign anzeigen : firewall richtig ?
hallo zusammen
habe einen rechner mit einer netzwerkkarte im netz und möchte ihn optimal abdichten.
das folgende shript habe ich mir zusammengebastelt (bin anfänger mit firewall).
eigendlich brauch nur der samba-server frei sein. (der rechner ist ein images-backup-server in einem netzwerk)
ist das shript richtig oder was ist zuviel oder zuwenig
dann noch eine frage
geht es wenn ich auf dem apache-server zugreife, das es eine weiterleitung
zu einem anderen apache-server gibt (also zugriff auf 192.168.10.30 -> angezeigt wird der apache-server 192.168.10.20).
wenn ja wie?
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# NUR ZUM TESTEN: Alle Pakete protokollieren
iptables -A FORWARD -j LOG
iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG
# Pakete vom Type Destination-unreachable bearbeiten
iptables -A INPUT -i eth0 -p icmp --icmp-type destination-unreachable -j ACCEPT
# NUR ZUM TESTEN Ping zulassen
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
# SYS-flood-Attacken
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# NUR ZUM TESTEN Apache-Server
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
# iptables -A INPUT -i eth0 -p udp --dport 80 -j ACCEPT
# Samba-Server
iptables -A INPUT -i eth0 -p tcp --dport 139 -j ACCEPT
# iptables -A INPUT -i eth0 -p udp --dport 137 -j ACCEPT
# Routing
echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
besten dank
hjn
Hallo!
Lass dir mal das firewallscript von
http://www.harry.homelinux.org/modules.php?name=iptables_Generator
schicken, da sind noch einige Optionen zum verhindern von Portscans enthalten.
# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
und unter
http://www.linux-community.de/Neues/story?storyid=5531
sind ein paar nette Postings zu finden...
gucks dir mal an...
mfg
cane
hallo
soweit so gut
nur noch eine frage (habe noch nichts gefunden)
geht es wenn ich auf dem apache-server zugreife, das es eine weiterleitung
zu einem anderen apache-server gibt (also zugriff auf 192.168.10.30 -> angezeigt wird der apache-server 192.168.10.20).
wenn ja wie?
besten dank
hjn
Das geht auf jeden Fall.
Wie genau da bin ich aber überfragt...
Google mal oder stell die Frage nach http://www.linuxforen.de/forums/forumdisplay.php?s=&forumid=15
mfg
cane
@hjn: mir ist aufgefallen, das du nie ein -i (--in-interface) bzw. -o angibst. Auf was bezieht sich dann die Regel? Einfach ganz allgemein auf die jeweilige Chain?!
@maxxle
Richtig!
Die Regeln von hjn
iptables -A FORWARD -j LOG
iptables -A INPUT -j LOG
iptables -A OUTPUT -j LOG
beziehen sich einfach auf die jeweilige chain.
Da der Rechner nur eine Netzwerkkarte hat braucht das Interface nicht angegeben werden.
cane
Original geschrieben von hjn
nur noch eine frage (habe noch nichts gefunden)
geht es wenn ich auf dem apache-server zugreife, das es eine weiterleitung
zu einem anderen apache-server gibt (also zugriff auf 192.168.10.30 -> angezeigt wird der apache-server 192.168.10.20).
wenn ja wie?
Auch das geht über das Firewall-Skript vom iptables Generator :D
Harry
hallo
-------------------------------------------------------------------------------
Original geschrieben von Harry
Auch das geht über das Firewall-Skript vom iptables Generator
-------------------------------------------------------------------------------
wie soll das den gehen ?
um in die nat einstellung zu kommen muß ich 2 unterschiedliche interface angeben
ich habe aber nur ein interface eth0
mfg
hjn
Du kannst Dir ein Skript mit DNAT unter Angabe von zwei Interfaces generieren lassen und anschließend die DNAT-Zeilen für HTTP leicht modifiziert (löschen des Input-Interfaces) in dein Skript übernehmen.
Wo ist das Problem?
Harry
hallo
das ist ja gerade mein problem was muß ich ändern
so ein experte bin ich nicht
die wichtigsten zeilen sin wohl folgende
----------------------------------------------------------------------------------------------
# IP-Adresse des LAN-Interfaces ermitteln
LAN_IP=$(ifconfig eth0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)
# NAT fuer HTTP
iptables -t nat -A PREROUTING -i ppp1 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.20
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -j SNAT --to-source $LAN_IP
iptables -A FORWARD -i ppp1 -m state --state NEW -p tcp -d 192.168.10.20 --dport 80 -j ACCEPT
# NAT fuer HTTP
iptables -t nat -A PREROUTING -i ppp1 -p tcp --dport 80 -j DNAT --to-destination
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -j SNAT --to-source $LAN_IP
iptables -A FORWARD -i ppp1 -m state --state NEW -p tcp -d --dport 80 -j ACCEPT
----------------------------------------------------------------------------------------------
also der rechner hat eine netzwerkkarte (eth0) die ip 192.168.10.30 und http anfragen sollen nach 192.168.10.10 umgeleitet werden.
mfg
hjn
Für Deine Zwecke sollte folgendes ok sein:
# IP-Adresse des LAN-Interfaces ermitteln
LAN_IP=$(ifconfig eth0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)
# NAT fuer HTTP
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.20
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -j SNAT --to-source $LAN_IP
iptables -A FORWARD -i eth0 -m state --state NEW -p tcp -d 192.168.10.20 --dport 80 -j ACCEPT
Harry
hallo
und besten dank
für $LAN_IP kann ich doch bestimmt die eindeutige ip eintragen
oder
mfg
hjn
Original geschrieben von hjn
für $LAN_IP kann ich doch bestimmt die eindeutige ip eintragen
oder
Ja natürlich. Wenn du direkt die IP deines Rechners dort einträgst, dann können diese Zeilen auch gelöscht werden:
# IP-Adresse des LAN-Interfaces ermitteln
LAN_IP=$(ifconfig eth0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)
Sie dienen sonst lediglich zur Ermittlung der korrekten IP-Adresse.
Harry
hallo
leider funktioniert die umleitung/weiterleitung mit http NAT noch nicht.
hier noch mal der komplette auszug
-------------------------------------------------------------------------------------
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# MY_REJECT-Chain
iptables -N MY_REJECT
# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable
# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -j DROP
# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# HTTP
#iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 80 -j ACCEPT
# IP-Adresse des LAN-Interfaces ermitteln (192.168.10.30)
#LAN_IP=$(ifconfig eth0 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)
# NAT fuer HTTP
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.20
iptables -t nat -A POSTROUTING -o eth0 -p tcp --dport 80 -j SNAT --to-source 192.168.10.30
iptables -A FORWARD -i eth0 -m state --state NEW -p tcp -d 192.168.10.20 --dport 80 -j ACCEPT
# Ping (nur zum Testen)
#iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
#iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
# SMB
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 137 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 138 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 137 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 138 -j ACCEPT
iptables -A INPUT -i eth0 -m state --state NEW -p udp --dport 139 -j ACCEPT
# Webmin
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 10000 -j ACCEPT
# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT
-------------------------------------------------------------------------------------
mfg
hjn
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.