PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Firewall Nuub sucht hilfe ;)



SirVival
15.04.01, 18:43
Also ich hab jetzt seit geraumer Zeit schon meinen Linux Router laufen und es funktioniert auch alles wunderbar.

Jetzt will ich mich mal ranmachen und eine Firewall einrichten.
Hat evtl. einer schon ein FW-Script für Ipchains was enigermaßen sicherheit bietet aber noch Client-Progamme wie ICQ, IRC und Quake zulässt?

mein Masq. sieht zur Zeit so aus



# rc.firewall - einfaches Masquerading-Setup fuer 2.1.x- und
# 2.2.x-Kerne mittels IPCHAINS
#

# Laden von erforderlichen IP-Masq Modulen
#
# Hinweis: Laden Sie nur Module, die Sie auch nutzen wollen. Alle
# derzeit verfuegbaren Masq-Module sind unten aufgefuehrt und vom
# Laden auskommentiert.
#
/sbin/depmod -a

# Unterstuetzt optimierte FTP-Dateiuebertragung mittels der
# Port-Methode
#
/sbin/modprobe ip_masq_ftp

# Unterstuetzt die Maskierung von Real Audio ueber das UDP-Protokoll.
# Real audio funktioniert auch ohne dieses Moduls, dann aber
# im TCP-Modus und das kann fuer Einbusen in der
# Soundqualitaet sorgen
#
/sbin/modprobe ip_masq_raudio

# Erlaubt maskierte IRC DCC-Dateiuebertragung
#
/sbin/modprobe ip_masq_irc

# Die Maskierung von Quake und Quake World wird per Voreinstellung
# unterstuetzt. Diese Module werden nur bei mehreren Spielern
# gleichzeitig hinter dem Masq-Server gebraucht. Wenn Sie QuakeI, II
# oder III ueber andere Serverports spielen wollen,
# dann ist das zweite Beispiel das Richtige
#
# Quake I / QuakeWorld(Ports 26000 and 27000)
/sbin/modprobe ip_masq_quake
#
# Quake I, II und III / QuakeWorld(Ports 26000, 27000, 27910)
#/sbin/modprobe ports=ip_masq_quake 26000,27000,27910

# Unterstuetzt die Maskierung von
# CuSeeme(Can you See me)-Videokonferenz-Software
#
/sbin/modprobe ip_masq_cuseeme

# Unterstuetzt die Maskierung von VDO-live Videokonferenz-Software
#
/sbin/modprobe ip_masq_vdolive

# Kritisch: Aktiviert die IP-Umleitung(IP-forwarding), da sie
# per Voreinstellung deaktiviert ist.
#
echo "1" > /proc/sys/net/ipv4/ip_forward

# Dynamische IP-Adressen:
#
# Wenn Ihnen die IP-Adresse dynamisch zugeteilt wird, ist die
# folgende Option von Vorteil, da sie das Arbeiten mit Diald
# und aehnlichen Programmen erheblich erleichtert.
#
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr

# Masq-Auszeiten(timeouts)
#
# 2 Std. Auszeit fuer TCP-Sitzungen
# 10 Sek. Verkehrsauszeit nach dem Empfang des letzten TCP/IP-Paketes
# 60 Sek. Auszeit fuer UDP-Verkehr(maskierte ICQ-Benutzer
# muessen 30 Sek. Firewall-Auszeit im ICQ-Programm
# selbst einstellen)
#
/sbin/ipchains -M -S 7200 10 60

# Aktivierung von IP-Umleitung und Masquerading
#
# Hinweis: Das folgende Beispiel steht fuer ein internes LAN
# mit 192.168.0.x als Netzadresse und 255.255.255.0
# oder 24-Bit als Subnetzmaske. Bitte aendern Sie die
# Netzadresse und Subnetzmaske in die Ihres internen LAN
#
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -s 192.168.0.0/24 -j MASQ

# DHCP: Leute, die ihre externe IP-Adresse von entweder DHCP
# oder BOOTP empfangen wie ADSL-Benutzer muessen dieses noch vor
# dem deny-Befehl einbinden. Der Ausdruck
# »bootp_client_net_if_name« steht fuer den Namen der
# Schnittstelle, der der DHCP/BOOTP-Server eine
# IP-Adresse zuordnet. Das kann etwa
# wie eth0, eth1, etc. aussehen
#
# Das Beispiel ist per Voreinstellung deaktiviert.
#
#ipchains -A input -j ACCEPT -w bootp_clients_net_if_name -s 0/0 68 -d 0/0 67 -p udp

Pima
16.04.01, 17:47
Moin, also mein Script sieht fast genau gleich aus wie deines ;-)

Ich versuche momentan mit diesem zu arbeiten, es lässt aber komischer weise keine erweiterung zu, sprich quake, irc etc, will einfach net ;-(

na, hier erstmal das script:


# Firewall Skript
#!/bin/sh

DEV_LAN=eth0
IP_LAN=192.168.10.10
LAN=192.168.10.0/255.255.255.0
DEV_INET=ippp0
INET=0.0.0.0/0.0.0.0

#----- IP Forwarding und Unterstuetzung dynamisch zugeteilter IP Adressen aktivieren -----
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo "1" > /proc/sys/net/ipv4/ip_forward

#----- Alle Regeln loeschen -----
ipchains -F

#----- Default Policy auf DENY setzen -----
ipchains -P input DENY
ipchains -P forward DENY
ipchains -P output DENY

#----- ip-spoofing verhindern -----
ipchains -A input -i $DEV_INET -p tcp -s $LAN -j DENY -l

#----- Loopback erlauben -----
ipchains -A input -i lo -j ACCEPT
ipchains -A output -i lo -j ACCEPT

#----- alle Intranet Verbindungen erlauben -----
ipchains -A input -i $DEV_LAN -s $LAN -j ACCEPT
ipchains -A output -i $DEV_LAN -d $LAN -j ACCEPT

#----- DNS Abfragen ins Internet erlauben, sowohl UDP als auch TCP -----
ipchains -A output -i $DEV_INET -p udp -d $INET 53 -j ACCEPT
ipchains -A input -i $DEV_INET -p udp -s $INET 53 -j ACCEPT
ipchains -A output -i $DEV_INET -p tcp -d $INET 53 -j ACCEPT
ipchains -A input -i $DEV_INET -p tcp -s $INET 53 -j ACCEPT ! -y

#----- HTTP erlauben -----
ipchains -A output -i $DEV_INET -p tcp -d $INET 80 -j ACCEPT
ipchains -A input -i $DEV_INET -p tcp -s $INET 80 -j ACCEPT ! -y

#----- HTTPS erlauben -----
ipchains -A output -i $DEV_INET -p tcp -d $INET 443 -j ACCEPT
ipchains -A input -i $DEV_INET -p tcp -s $INET 443 -j ACCEPT ! -y

#----- FTP erlauben -----
ipchains -A output -i $DEV_INET -p tcp -d $INET 21 -j ACCEPT
ipchains -A input -i $DEV_INET -p tcp -s $INET 21 -j ACCEPT ! -y

#----- Erweiterung fuer aktives FTP -----
ipchains -A output -i $DEV_INET -p tcp -d $INET 20 -j ACCEPT
ipchains -A input -i $DEV_INET -p tcp -s $INET 20 -j ACCEPT

#----- Telnet ins Internet erlauben -----
ipchains -A output -i $DEV_INET -p tcp -d $INET 23 -j ACCEPT
ipchains -A input -i $DEV_INET -p tcp -s $INET 23 -j ACCEPT ! -y

#----- SMTP ins Internet erlauben -----
ipchains -A output -i $DEV_INET -p tcp -d $INET 25 -j ACCEPT
ipchains -A input -i $DEV_INET -p tcp -s $INET 25 -j ACCEPT ! -y

#----- POP3 ins Internet erlauben -----
ipchains -A output -i $DEV_INET -p tcp -d $INET 110 -j ACCEPT
ipchains -A input -i $DEV_INET -p tcp -s $INET 110 -j ACCEPT ! -y

#----- Chain fuer ICMP erstellen -----
ipchains -N icmp-out
ipchains -A icmp-out -p icmp --icmp-type echo-reply -j DENY
ipchains -A icmp-out -p icmp --icmp-type echo-request -j ACCEPT
ipchains -A icmp-out -p icmp --icmp-type destination-unreachable -j ACCEPT
ipchains -A icmp-out -p icmp --icmp-type source-quench -j ACCEPT
ipchains -A icmp-out -p icmp --icmp-type time-exceeded -j ACCEPT
ipchains -A icmp-out -p icmp --icmp-type parameter-problem -j ACCEPT

ipchains -N icmp-in
ipchains -A icmp-in -p icmp --icmp-type echo-reply -j ACCEPT
ipchains -A icmp-in -p icmp --icmp-type echo-request -j DENY
ipchains -A icmp-in -p icmp --icmp-type destination-unreachable -j ACCEPT
ipchains -A icmp-in -p icmp --icmp-type source-quench -j ACCEPT
ipchains -A icmp-in -p icmp --icmp-type time-exceeded -j ACCEPT
ipchains -A icmp-in -p icmp --icmp-type parameter-problem -j ACCEPT

#----- ICMP Pakete an Output Chain uebergeben -----
ipchains -A output -p icmp -j icmp-out

#----- ICMP Pakete an Input Chain uebergeben -----
ipchains -A input -p icmp -j icmp-in

#----- Masquerading aktivieren -----
ipchains -A forward -s 192.168.10.0/24 -d 0.0.0.0/0 -j MASQ

Ich hab versucht am ende noch :

/sbin/depmod -a

/sbin/modprobe ip_masq_quake

.....

anzufügen, dannn arbeitet das Script aber leider nicht!

Alex_K
16.04.01, 22:43
das "/sbin/depmod -a" kannst weglassen, aber du musst noch die ports für quake frei geben (weis jetzt leider net welche das sind ...).

Pima
16.04.01, 23:08
ich hab /sbin/depmod -a auch weggelassen, funzt aber auch net ;-(

ftp funzt auch net richtig [ohne ip_masq_ftp]. mist alles...naja, ich werkel noch ein bisserl rum!

Pima
18.04.01, 21:52
Hi SirVival.
Ich habe eben noch mal mit meinem Linux-Papst gesprochen...

Er meint dein Script ist eigentlich ziemlich sicher...
-> durch ipchains -P forward deny

wird kein fremdes IP-Paket an dein Netzwerk
weitergeleitet.
d.h. nur dein Router wäre ein wenig unsicher.

Du kannst natürlich rp_filter aktivieren und Syncookies.

Ich habe den Inetd so eingestellt, das nur

ftp [kein anonymous] und manchmal SSH [je nach dem....] gestartet werden.

So gehen weitere Sicherheitsrisiken zu nichte!!!

Ich habe mich entschieden auch mein altes [deins] weiterzuverwenden mit ein wenig Extras [BC Support...] und nebenbei vielleicht mal ein Script zu erstellen, welches auch eine gute Sicherheit dem Router gegenüber darstellt....

SirVival
19.04.01, 01:40
Hi Pima

freut mich zu hören, dass das einigermaßen sicher ist ;) und thx das du dich mal schlau gemacht hast....

BC-Support hab ich auch, das haste aber das Prob, dass wirklich alles auf den Ports weitergeleitet wird. Naja mal schaun evtl. mach ich das auch, so das der BC-Support nur temporär genutzt wird, ich bruach BC höchstens einmal pro Woche....

Ich denke mal ich werd bei gelegenheit nochmal ei bischen dran rumwerkeln ;)
bei mir ist nur dsa Problem, dass ich auf Sachen wie ICQ, IRC, Counter-Strike etc. mehr oder weniger angewiesen bin.
Aber das ist alle mal sicherer als ein blöder Winblöd PC am netz ;)