Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Firewall funktioniert nicht mehr

Tutenchamun1

Stamm User
Registriert
11. November 2013
Beiträge
1.044
Lösungen
3
Reaktionspunkte
304
Punkte
263
Ort
Afrika
Hallo

Mir ist aufgefallen, das die Firewall meines Servers nicht mehr funktioniert. Ich nutze eine Igel UD5 noch mit Debian Jessie und IPC 11.6.

Ich weiß nicht wie lange das schon so ist, das die Firewall nicht richtig läuft. Ich habe es bemekrt als ich von aussen auf das Webif von IPC gegangen bin. Ich kam ohne Probleme drauf obwohl es geschützt sein müsste.

Hier der Auszug der "iptables -L":

Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:***** "ssh Port"
ACCEPT tcp -- anywhere anywhere tcp dpt:***** "Oscam Webif"
ACCEPT tcp -- anywhere anywhere tcp dpt:***** "cccam Port"
ACCEPT tcp -- anywhere anywhere tcp dpt:***** "oscam port"
DROP icmp -- anywhere anywhere icmp echo-request

Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5
ACCEPT tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5
icmp -- anywhere anywhere icmp echo-request limit: avg 1/sec burst 5

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere


Was könnte das Problem sein? Ich habe vor 1-2 Jahren Debian geupdatet von Freezy auf Jessie. Hat es eventuell damit zu tun?
 
Lösung
Ich habe das jetzt dort eingefügt. jetzt klappts. Vielleicht hatte es wie von dir vermutet mit eth0 zu tun.

$IPT -I INPUT -i lo -j ACCEPT
$IPT -I OUTPUT -o lo -j ACCEPT
# bestehende Verbindungen
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH
$IPT -A INPUT -p tcp --dport ***** -j ACCEPT
# OSCAM WEB
$IPT -A INPUT -p tcp --dport ***** -j ACCEPT
# CCCAM
$IPT -A INPUT -p tcp --dport ****** -j ACCEPT
# OSCAM
$IPT -A INPUT -p tcp --dport ****** -j ACCEPT
# CS378X
#$IPT -A INPUT -p tcp --dport 12345-j ACCEPT
# CAMD35
#$IPT -A INPUT -p udp --dport 12345-j ACCEPT
# PING SPERRE
$IPT -A INPUT -j REJECT
$IPT -A INPUT -j DROP

Vielen Dank
Hi @Birch,
Die CHAIN INPUT regelt alles was sich direkt mit deinem Server verbinden möchte. Durch policy ACCEPT wird erstmal jede Verbindung erlaubt. Wählt man diesen Modus, also "Erstmal alles erlauben und im Anschluss gezielt etwas verbieten", müsste man Regern definieren, die gezielt Verbindungen REJECT'n oder DROP'n ... wobei REJECT die feinere englische Art wäre.
Deine Regeln erlauben zusätzlich den Zugriff auf die Dienste mit den Ports (für ssh, Oscam Webif, cccam Port, oscam port) obwohl eh alles erlaubt ist.
Lediglich ein "PING" (ICMP) wird am Ende verboten ... da die Regeln von oben nach unten abgearbeitet werden und die Erste die passt angewendet wird und das Regelwerk direkt verläßt, wird auch nicht zum Zuge kommen.
 
Wie kann das denn auf einmal sein. ich habe da nichts dran geändert. Ich richte mir die Firewall immer flgend ein und das hat bisher immer funktioniert:

Erst:
apt-get update && apt-get install iptables

Code:
nano /etc/init.d/firewall
Code:
#!/bin/sh
### BEGIN INIT INFO
# Provides: custom firewall
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: firewall initscript
# Description: Custom Firewall
### END INIT INFO

IPT=/sbin/iptables

case "$1" in
start)

# bestehende Verbindungen
$IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Über Loopback alles erlauben
$IPT -I INPUT -i lo -j ACCEPT
$IPT -I OUTPUT -o lo -j ACCEPT
# SSH
$IPT -A INPUT -i eth0 -p tcp --dport ***** -j ACCEPT
# OSCAM WEB
$IPT -A INPUT -i eth0 -p tcp --dport ***** -j ACCEPT
# CCCAM
$IPT -A INPUT -i eth0 -p tcp --dport ****** -j ACCEPT
# OSCAM
$IPT -A INPUT -i eth0 -p tcp --dport ***** -j ACCEPT
# CS378X
#$IPT -A INPUT -i eth0 -p tcp --dport 12345-j ACCEPT
# CAMD35
#$IPT -A INPUT -i eth0 -p udp --dport 12345-j ACCEPT
# PING SPERRE
$IPT -A INPUT -i eth0 -j REJECT
# SICHERHEIT
$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
$IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
$IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s
echo "Firewall wurde aktiviert, der Server ist geschützt"
exit 0
;;

stop)
$IPT -F INPUT
echo "Achtung, Firewall wurde gestoppt, der Server ist ungeschützt"
exit 0
;;

restart|reload|force-reload)
$0 stop
sleep 1
$0 start
exit 0
;;

*)
echo "Usage: $0 {start|stop|restart|reload|force-reload}"
exit 1
;;
esac

_________
Dann diese Befehle eingeben:

chmod 775 /etc/init.d/firewall
ln -s /etc/init.d/firewall /usr/sbin/f

Von nun an könnt ihr die Firewall mit folgenden Befehlen steuern:

Code:
f start #Firewall wird gestartet
f stop #Firewall wird gestoppt
f restart #Firewall wird neugestartet
f reload #Firewall wird neugestartet
f force-reload #Firewall wird neugestartet



Um die Firewall automatisch mit einem Server Reboot zu starten, genügt es die rc.local wie folgt zu ergänzen:

Code:
nano /etc/rc.local
Code:
.....
/etc/init.d/firewall start
exit 0
 
Hi @Birch,
ok, wie schon erwähnt, erlaubt "Chain INPUT (policy ACCEPT)" erst mal alles; und im Anschluss wird nichts geblockt.
Dann sollte man die Policy der INPUT-Chain auf DROP setzen, d.h. vor dieser Zeile "# bestehende Verbindungen" diesen Befehl setzen: $IPT -P INPUT DROP

P.S. wenn man an den Firewall-Regeln rumexperimentiert, dann sollte man sich immer ein Hintertürchen offen halten, falls mal eine Regel schief geht und sich dadurch vom Server ausschließen sollte.
 
habe $IPT -P INPUT DROP vor der zeile "# bestehende Verbindungen" gesetzt. jetzt habe ich kein zugang mehr über ssh.

das kapiere ich nciht. wenn die iptables mit als erstes $IPT -P INPUT DROP alles schließt und dann danach die Ports erlaubt werden folgend, dann müsste doch alles so sein wie ich es haben möchte. Aber mekrwürdigerweise ist der ssh Port gesperrt. ich raffe es nicht.
 
Zuletzt bearbeitet:
sorry jetzt verstehe ich gar nichts mehr. ich habe den Befehl so wie du es geschrieben hast vor der Zeile "# bestehende Verbindungen" gepackt. Jetzt ist im Prinzip alles gesperrt. Jetzt soll ich was im abschnitt stop ändern? aber wofür ? Es geht doch um den Start der Firewall. Steige da jetzt nicht durch. Kannst du dir das script anschauen und entsprechend ändern so wie du es meinst ?
 
Hi @Birch,
wenn man die Firewall stoppt, dann werden die Regeln der INPUT-Chain gelöscht; sprich die Freigaben ... die Policy DROP (alles ist verboten) bleibt erhalten und somit hat man sich ausgesperrt.

So habe ich mir die Änderung vorgestellt.
Bash:
#!/bin/sh
### BEGIN INIT INFO
# Provides: custom firewall
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: firewall initscript
# Description: Custom Firewall
### END INIT INFO

IPT=/sbin/iptables

case "$1" in
start)
# Erst mal alles sperren
$IPT -P INPUT DROP
# bestehende Verbindungen
$IPT -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Über Loopback alles erlauben
$IPT -I INPUT -i lo -j ACCEPT
$IPT -I OUTPUT -o lo -j ACCEPT
# SSH
$IPT -A INPUT -i eth0 -p tcp --dport ***** -j ACCEPT
# OSCAM WEB
$IPT -A INPUT -i eth0 -p tcp --dport ***** -j ACCEPT
# CCCAM
$IPT -A INPUT -i eth0 -p tcp --dport ****** -j ACCEPT
# OSCAM
$IPT -A INPUT -i eth0 -p tcp --dport ***** -j ACCEPT
# CS378X
#$IPT -A INPUT -i eth0 -p tcp --dport 12345-j ACCEPT
# CAMD35
#$IPT -A INPUT -i eth0 -p udp --dport 12345-j ACCEPT
# PING SPERRE
$IPT -A INPUT -i eth0 -j REJECT
# SICHERHEIT
$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP
$IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
$IPT -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s
echo "Firewall wurde aktiviert, der Server ist geschützt"
exit 0
;;

stop)
# Wieder alles freigeben
$IPT -P INPUT ACCEPT
$IPT -F INPUT
echo "Achtung, Firewall wurde gestoppt, der Server ist ungeschützt"
exit 0
;;

restart|reload|force-reload)
$0 stop
sleep 1
$0 start
exit 0
;;

*)
echo "Usage: $0 {start|stop|restart|reload|force-reload}"
exit 1
;;
esac

Nachtrag:
Mir ist gerade noch der Befehl aufgefallen
# PING SPERRE
$IPT -A INPUT -i eth0 -j REJECT
.. wegen dem Kommentar habe ich mir den nicht genau angesehen .. der verbietet alle Verbindungen die vor diesem Befehl nicht erlaubt wurden, d.h. wenn die Regel wirken würde, dann wäre auch Port 80 gesperrt, solange sich hinter "*****" keine 80 versteckt. ... diese Regel sieht man aber bei der Ausgabe von iptables -L nicht. Ist die Ausgabe von "iptables -L" vollständig und das Skript so 1:1 im Einsatz?
 
Zuletzt bearbeitet:
Zurück
Oben