Meine Server ist das Gateway für alle Clienten.
Erzähle bitte die ganze Geschichte! Zeige:
Alle auf dem Gateway eingerichteten Routen
Das komplette Netfilter-Regelwerk für FORWARD
Geht es um IPv4 oder IPv6 oder um beide Protokolle?
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 8625 Wohnort: Münster |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 87 |
Die Regel wird gar nicht verwendet... |
Anmeldungsdatum: Beiträge: 13938 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 87 |
OK, mein komplettes Skript...ich bastle noch daran. Wenn ein Fehler drin ist, bitte sagen. Wäre echt supi ☺! Ach ja, hab das Skript für 2 Netzwerkschnittstellen erstellt. Habe momentan aber nur eine, also Local=br0 und Inet=br0 ist OK..... IPT=/sbin/iptables IPT6=/sbin/ip6tables INET=br0 LOCAL=br0 LO=lo LOCAL_NET="192.168.0.0/24" VPN_NET="10.8.0.0/24" echo "Schalte Fail2ban aus" service fail2ban stop echo "Schalte Router aus..." echo 0 > /proc/sys/net/ipv4/ip_forward echo "Loesche iptables" $IPT -F $IPT -X $IPT -t nat -X $IPT -t nat -F $IPT -t mangle -X $IPT -t mangle -F echo "Loesche ip6tables" $IPT6 -F $IPT6 -X $IPT6 -t nat -X $IPT6 -t nat -F $IPT6 -t mangle -X $IPT6 -t mangle -F echo "Default policy drop ip6tables" $IPT6 -P INPUT DROP $IPT6 -P OUTPUT DROP $IPT6 -P FORWARD DROP echo "Default policy drop" $IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP echo "MEINE Chains" $IPT -N MYDROP $IPT -N MYACCEPT echo "Logging..." $IPT -A MYDROP -j LOG --log-prefix "FW-DROP: " $IPT -A MYDROP -j DROP $IPT -A MYACCEPT -j LOG --log-prefix "FW-ACCEPT: " $IPT -A MYACCEPT -j ACCEPT echo "Schalte connection tracking ein..." $IPT -A FORWARD -m conntrack --ctstate=RELATED,ESTABLISHED -j ACCEPT $IPT -A FORWARD -m conntrack --ctstate=INVALID -j DROP $IPT -A INPUT -m conntrack --ctstate=RELATED,ESTABLISHED -j ACCEPT $IPT -A INPUT -m conntrack --ctstate=INVALID -j DROP $IPT -A OUTPUT -m conntrack --ctstate=RELATED,ESTABLISHED -j ACCEPT $IPT -A OUTPUT -m conntrack --ctstate=INVALID -j DROP echo "Kamera Internet sperren..." #$IPT -A FORWARD -s 192.168.0.11 -d 0.0.0.0/0 -p TCP -j DROP echo "SSH erlauben..." $IPT -A INPUT -p tcp --dport 30022 -m conntrack --ctstate=NEW -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p tcp --dport 30022 -j ACCEPT echo "Schnittstelle maskieren..." $IPT -t nat -A POSTROUTING -j MASQUERADE echo "Loopback freischalten" $IPT -A INPUT -i $LO -j ACCEPT $IPT -A OUTPUT -o $LO -j ACCEPT echo "DNS Anfragen..." $IPT -A INPUT -m state --state NEW -p udp --dport 53 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p udp --dport 53 -j ACCEPT echo "ping..." $IPT -A INPUT -p icmp -j MYACCEPT $IPT -A OUTPUT -p icmp -j MYACCEPT $IPT -A FORWARD -p icmp -j MYACCEPT echo "Samba LOKAL Freigabe..." $IPT -A INPUT -p TCP -i $LOCAL -s $LOCAL_NET -d $LOCAL_NET --dport=139 -j ACCEPT $IPT -A INPUT -p TCP -i $LOCAL -s $LOCAL_NET -d $LOCAL_NET --dport=445 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -d $LOCAL_NET -m state --state NEW -p TCP --dport 139 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -d $LOCAL_NET -m state --state NEW -p TCP --dport 445 -j ACCEPT $IPT -A INPUT -p UDP -i $LOCAL -s $LOCAL_NET -d $LOCAL_NET --dport=137 -j ACCEPT $IPT -A INPUT -p UDP -i $LOCAL -s $LOCAL_NET -d $LOCAL_NET --dport=138 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -d $LOCAL_NET -m state --state NEW -p UDP --dport 137 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -d $LOCAL_NET -m state --state NEW -p UDP --dport 138 -j ACCEPT echo "Zoneminder..." $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -d $LOCAL_NET -m state --state NEW -p TCP --dport 8080 -j ACCEPT echo "DHCP..." $IPT -A INPUT -p UDP --dport 67 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p UDP --dport 67 -j ACCEPT echo "http und https port Server..." $IPT -A INPUT -p TCP --dport=80 -j ACCEPT $IPT -A INPUT -p TCP --dport=443 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT echo "webmin port Server..." $IPT -A INPUT -p TCP -i $LOCAL -s $LOCAL_NET --dport=10000 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p TCP --dport 10000 -j ACCEPT echo "squid proxy port Server..." $IPT -A INPUT -p TCP --dport=3128 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p TCP --dport 3128 -j ACCEPT echo "smtp ports 25/TCP 465/SSL-TLS 587/STARTTLS Server..." $IPT -A INPUT -p TCP --dport=587 -j ACCEPT $IPT -A INPUT -p TCP --dport=25 -j ACCEPT $IPT -A INPUT -p TCP --dport=465 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p TCP --dport 587 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p TCP --dport 25 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p TCP --dport 465 -j ACCEPT echo "imap/143 imaps/993 port Server..." $IPT -A INPUT -p TCP --dport=993 -j ACCEPT $IPT -A INPUT -p TCP --dport=143 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p TCP --dport 993 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p TCP --dport 143 -j ACCEPT echo "jellyfin port Server..." $IPT -A INPUT -p TCP -i $LOCAL -s $LOCAL_NET -m multiport --dports=8096,8920 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p TCP --dport 8096 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p TCP --dport 8920 -j ACCEPT echo "tvheadend port Server..." $IPT -A INPUT -p TCP -i $LOCAL -s $LOCAL_NET -m multiport --dports=9981,9982 -j ACCEPT $IPT -A INPUT -p UDP -i $LOCAL -s $LOCAL_NET -m multiport --dports=32787,65001 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p TCP --dport 9981 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p TCP --dport 9982 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p UDP --dport 32787 -j ACCEPT $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p UDP --dport 65001 -j ACCEPT echo "MYSQL öffnen..." $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p TCP --dport 3306 -j ACCEPT echo "SMA Speedwire/SBFspot..." $IPT -A OUTPUT -o $LOCAL -s $LOCAL_NET -m state --state NEW -p UDP --dport 9522 -j ACCEPT echo "minidlnad port Server..." $IPT -A INPUT -p UDP -s $LOCAL_NET --dport=1900 -j ACCEPT echo "Internet Clienten..." $IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=80 -j ACCEPT $IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=443 -j ACCEPT $IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=993 -j ACCEPT $IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=587 -j ACCEPT $IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=25 -j ACCEPT $IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=143 -j ACCEPT $IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=465 -j ACCEPT echo "OPENVPN Regeln..." $IPT -A INPUT -i tun0 -s $VPN_NET -j ACCEPT $IPT -A INPUT -p udp -m udp --dport 1194 -j ACCEPT $IPT -A FORWARD -s $VPN_NET -j ACCEPT $IPT -A FORWARD -p UDP --dport=1194 -j ACCEPT $IPT -A INPUT -m state --state NEW -m udp -p udp --dport=1194 -j ACCEPT $IPT -A OUTPUT -m state --state NEW -p UDP --dport 1194 -j ACCEPT $IPT -A OUTPUT -o tun0 -s $VPN_NET -j ACCEPT echo "Multicast..." $IPT -A INPUT -s 224.0.0.0/4 -j ACCEPT $IPT -A FORWARD -s 224.0.0.0/4 -d 224.0.0.0/4 -j ACCEPT $IPT -A OUTPUT -d 224.0.0.0/4 -j ACCEPT echo "Droplog..." $IPT -A INPUT -j LOG --log-prefix "FW-LAST-IN-DROP: " $IPT -A OUTPUT -j LOG --log-prefix "FW-LAST-OUT-DROP: " #echo "Firewall OUTPUT darf ALLES..." #$IPT -A OUTPUT -j ACCEPT echo "Schalte Router ein" echo 1 > /proc/sys/net/ipv4/ip_forward echo "Schalte Fail2ban ein" service fail2ban start |
Anmeldungsdatum: Beiträge: 13938 |
|
(Themenstarter)
Anmeldungsdatum: Beiträge: 87 |
Ja, kann ich versuchen, nur soll alles zusammenpassen.... Im Moment funktioniert alles. Sonst fang ich ja wieder von vorne an. (Kann mich erst am Nachmittag wieder melden) Danke einstweilen 👍 |
Anmeldungsdatum: Beiträge: 13938 |
|
Supporter, Wikiteam
Anmeldungsdatum: Beiträge: 8625 Wohnort: Münster |
Nein, das habe ich nicht gemeint! Ich meinte nicht die Regeln, welche Du anlegen willst (= das Skript), sondern die Regeln, die tatsächlich aktiv sind. Diese kann man abfragen mit: sudo iptables -nL FORWARD Wenn aus FORWARD noch in andere Regelketten verzweigt wird, auch diese auflisten. Die Leitwege zeigt man an mit: ip -4 route |
(Themenstarter)
Anmeldungsdatum: Beiträge: 87 |
Ich meine natürlich das alles in meinem Script funktioniert, außer eben der Sperre für die Kamera. Die Regeln im Script sind alle aktiv (natürlich nicht die Auskommentierten). Wenn die Regel sudo iptables -I FORWARD 1 -p tcp -s 192.168.0.11 ! -d 192.168.0.0/24 -j REJECT nicht läuft, stimmt sie mit meinen Regeln irgendwo nicht überein.... |
Anmeldungsdatum: Beiträge: 13938 |
Kann schon sein, aber wir wollen ja wissen ob diese Regel ohne dein Script läuft. Denn Du hast ja nicht um Hilfe zur Optimierung deines Scriptes gefragt. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 87 |
Natürlich, sorry...du hast recht, ich sollte mehr Angaben machen. |
(Themenstarter)
Anmeldungsdatum: Beiträge: 87 |
Danke noch mal für den Tipp mit dem "!" ...bei iptables lernt man nie aus... Die Regel funktioniert, nur gehört sie vor das connection tracking... |
Anmeldungsdatum: Beiträge: 13938 |
Naja, ich habe ja auch nicht umsonst "I" und "1" in meinem Beispiel benutzt. Denn damit wird die Regel immer an 1. Stelle (d. h. vor allen anderen iptables Regeln) in der chain eingefügt: sudo iptables -I FORWARD 1 -p tcp -s 192.168.0.11 ! -d 192.168.0.0/24 -j REJECT Oder was genau meinst Du mit "vor das connection tracking..."? Wie bzw. wo hast Du die iptables-Regel eingefügt, dass sie nicht vor dem connection tracking war? |
(Themenstarter)
Anmeldungsdatum: Beiträge: 87 |
Ich hab anscheinend aus Gewohnheit ein "A" genommen und die "1" weggelassen, weil ich die nicht kannte... ☹ Jetzt weiß ich das auch ☺ Danke! |