Fedora9 Firewall macht nicht das was sie soll
Firewall öffnet definierte Ports nicht
Habe Fedora9 auf einem Rechner installiert. Über System/Administration/Firewall habe ich verschiedene Ports (1248, 12489, 5666, 5667) eingetragen. Trotz neu Aktivierung der Firewall oder Neustart des PC, bleiben die Ports verschlossen. Auch wenn ich die Firewall deaktiviere, bleiben sie zu.
Die einzigen offenen Ports sind 22, 80, 111, 139, 443, 445.
Wie bringe ich die Firewall dazu, das zu machen was sie soll?
Habe Fedora9 auf einem Rechner installiert. Über System/Administration/Firewall habe ich verschiedene Ports (1248, 12489, 5666, 5667) eingetragen. Trotz neu Aktivierung der Firewall oder Neustart des PC, bleiben die Ports verschlossen. Auch wenn ich die Firewall deaktiviere, bleiben sie zu.
Die einzigen offenen Ports sind 22, 80, 111, 139, 443, 445.
Wie bringe ich die Firewall dazu, das zu machen was sie soll?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 98714
Url: https://administrator.de/forum/fedora9-firewall-macht-nicht-das-was-sie-soll-98714.html
Ausgedruckt am: 08.04.2025 um 19:04 Uhr
12 Kommentare
Neuester Kommentar
Dann schau mal mit 'netstat' nach ob der Service auch am richtigen Interface lauscht. Wenn er nur auf dem Loopback hängt, ist er nach aussen nicht erreichbar. Im Übrigen sind die Firewall-Regeln ziemlich nutzlos. iptables-Regeln werden sequentiell abgearbeitet. Da die Default-Policy für INPUT auf ACCEPT gesetzt ist, werden sämtliche eingehende Verbindungen zugelassen. Die explizite Freigabe der Ports ist daher nutzlos. Die Default-Policy für INPUT sollte immer DROP oder REJECT sein.
Nimm einfach mal folgendes Skript:
Abspeichern, ausführbar machen und als root mittels 'skript start' ausführen. Wenn es dann nicht geht, poste bitte den Output von 'netstat -tulpe' (als root ausführen). Dann glaub ich nämlich nicht, dass der Service korrekt konfiguriert ist.
#!/bin/bash
echo "Starting firewall"
LOGLIMIT=20
IPTABLES=/sbin/iptables # pfad ggf. anpassen
case "$1" in
start)
echo "starte firewall"
# alle alten Regeln entfernen
echo "Loesche alte Regeln"
$IPTABLES -F
$IPTABLES -X
$IPTABLES -t nat -F
# kette fuers logging erstellen
$IPTABLES -N LOGREJECT
$IPTABLES -A LOGREJECT -m limit --limit $LOGLIMIT/minute -j LOG --log-prefix "FIREWALL REJECT " --log-level notice --log-ip-options --log-tcp-options
$IPTABLES -A LOGREJECT -j REJECT --reject-with icmp-port-unreachable
### PROC MANIPULATION ###
# 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
# default-policy auf drop setzen
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
# output kann durchgelassen werden
$IPTABLES -P OUTPUT ACCEPT
# zu bestehenden zugehoerige verbindungen zulassen
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# im Loopback koennen wir jedem trauen
$IPTABLES -A INPUT -i lo -j ACCEPT
# erlaube Pings
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
# erlaube SSH
$IPTABLES -A INPUT -p tcp --dport 22 --tcp-flags ALL SYN -j ACCEPT
# deine gewuenschten ports oeffnen
$IPTABLES -A INPUT -p tcp --dport 1248 --tcp-flags ALL SYN -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 12489 --tcp-flags ALL SYN -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 5666 --tcp-flags ALL SYN -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 5667 --tcp-flags ALL SYN -j ACCEPT
# Alle TCP Packete, die bis hier hin kommen, werden
# geloggt und rejected
# Der Rest wird eh per Default Policy gedroppt...
$IPTABLES -A FORWARD -p tcp -j LOGREJECT
;;
*)
echo "Usage: `basename $0` {start}" >&2
exit 64
;;
esac
exit 0
Abspeichern, ausführbar machen und als root mittels 'skript start' ausführen. Wenn es dann nicht geht, poste bitte den Output von 'netstat -tulpe' (als root ausführen). Dann glaub ich nämlich nicht, dass der Service korrekt konfiguriert ist.
Wenn auf Port 5667 kein Service läuft, dann kann dorthin natürlich auch nicht verbunden werden. Port 5667 ist der NSCA-Port. Siehe /etc/services. Deswegen wird der Port im Output von netstat als 'nsca' betitelt und wie du in deinem netstat-Output siehst, gibt es bei dir keinen Dienst an diesem Port. Du solltest also eher überprüfen warum dieser Dienst nicht startet und/oder an den Port bindet.