- Registriert
- 11. Juni 2010
- Beiträge
- 4.080
- Reaktionspunkte
- 2.847
- Punkte
- 373
Hallo Zusammen,
da ich schon mehrfach gefragt worden bin bzgl. des Firewallscripts und dem Umstand das Ubuntu ab 15.10 Systemd statt Upstart nutzt, habe ich hier ein kleines HowTo.
Alle Informationen zu Systemd findet Ihr
Zu allererst muss der Firewall Service unter /etc/systemd/system/firewall.service mit folgendem Inhalt erstellt werden:
Als nächstes erstellen wir das Firewall Script unter /usr/bin:
Anschließend muss das Script ausführbar gemacht werden:
Um die Konfiguration abzuschließen, muss der Service aktiviert werden:
Jetzt kann die Firewall aktiviert werden:
Als Optionen funktieren folgende Eingaben:
Start der Firewall: systemctl start firewall
Stop der Firewall: systemctl stop firewall
Restart / Reload der Firewall: systemctl reload firewall
da ich schon mehrfach gefragt worden bin bzgl. des Firewallscripts und dem Umstand das Ubuntu ab 15.10 Systemd statt Upstart nutzt, habe ich hier ein kleines HowTo.
Alle Informationen zu Systemd findet Ihr
Sie müssen registriert sein, um Links zu sehen.
Zu allererst muss der Firewall Service unter /etc/systemd/system/firewall.service mit folgendem Inhalt erstellt werden:
Code:
[Unit]
Description=firewall
After=network.target
[Service]
RemainAfterExit=yes
ExecStart=/usr/bin/firewall start
ExecStop=/usr/bin/firewall stop
ExecReload=/usr/bin/firewall restart
User=root
#Da die Firewall im Systemkontext gestartet werden soll, muss als User root angegeben werden!
[Install]
WantedBy=multi-user.target
Als nächstes erstellen wir das Firewall Script unter /usr/bin:
Code:
#!/bin/bash
sleep 5
iptables=`which iptables`
iptablesv6=`which ip6tables`
#User Definition mit Zugriffen auf spezielle Services
user="user.dyndns.org,deinedyn.homedns.com"
# wenn iptables nicht installiert abbrechen
test -f $iptables || exit 0
case "$1" in
start)
echo "Starte Firewall..."
# alle Regeln löschen
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
#$iptablesv6 -t nat -F
$iptablesv6 -t filter -F
$iptablesv6 -X
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
$iptablesv6 -P FORWARD DROP
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT
$iptablesv6 -A INPUT -i lo -j ACCEPT
$iptablesv6 -A OUTPUT -o lo -j ACCEPT
$iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptablesv6 -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#$iptablesv6 -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -P OUTPUT ACCEPT
$iptablesv6 -P OUTPUT ACCEPT
#Wenn euer Server per Ping erreichbar sein soll, dann bitte entsprechend die IP ändern und die # entfernen!
#Standardmäßig ist der Server nicht anpingbar!
#$iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d 10.20.30.40 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#$iptables -A OUTPUT -p icmp --icmp-type 0 -s 10.20.30.40 -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#SSH Zugriff
#SSH Zugriff für ALLE Standardmäßig aktiv
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
#ODER:
#Zugriff haben nur Clients die für spezielle Services in der Variable user hinterlegt sind (Vorher bitte die # vor der nächsten Zeile entfernen und obrigen Zugriff für Alle deaktivieren!)
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source $user -p tcp --dport 22 -j ACCEPT
#Oscam Webif Zugriff nicht beschränkt (Port ggf. anpassen!)
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 8888 -j ACCEPT
#Oscam Webif Zugriff beschränkt (Port ggf. anpassen!)
$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED --source $user -p tcp --dport 8888 -j ACCEPT
#CS378x Share (Camd3 TCP) (Port ggf. anpassen und zum aktivieren des Zugriffs # entfernen!)
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 33399 -j ACCEPT
#CCcam Share (Port ggf. anpassen und zum aktivieren des Zugriffs # entfernen!)
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22444 -j ACCEPT
#CS357x Share (Camd3 UDP) (Port ggf. anpassen und zum aktivieren des Zugriffs # entfernen!)
#$iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -p udp --dport 11002 -j ACCEPT
#Block APNIC LACNIC
#Hinweis: Blockiert Asien, Südamerika, Mittelamerika, beschränkt Russland bzw. Osteuropa!
APNIC=(
"1.0.0.0/8"
"14.0.0.0/8"
"27.0.0.0/8"
"36.0.0.0/8"
"39.0.0.0/8"
"42.0.0.0/8"
"49.0.0.0/8"
"58.0.0.0/8"
"59.0.0.0/8"
"60.0.0.0/8"
"61.0.0.0/8"
"101.0.0.0/8"
"103.0.0.0/8"
"106.0.0.0/8"
"110.0.0.0/8"
"111.0.0.0/8"
"112.0.0.0/8"
"113.0.0.0/8"
"114.0.0.0/8"
"115.0.0.0/8"
"116.0.0.0/8"
"117.0.0.0/8"
"118.0.0.0/8"
"119.0.0.0/8"
"120.0.0.0/8"
"121.0.0.0/8"
"122.0.0.0/8"
"123.0.0.0/8"
"124.0.0.0/8"
"125.0.0.0/8"
"126.0.0.0/8"
"175.0.0.0/8"
"180.0.0.0/8"
"182.0.0.0/8"
"183.0.0.0/8"
"202.0.0.0/8"
"203.0.0.0/8"
"210.0.0.0/8"
"211.0.0.0/8"
"218.0.0.0/8"
"219.0.0.0/8"
"220.0.0.0/8"
"221.0.0.0/8"
"222.0.0.0/8"
"223.0.0.0/8"
"43.0.0.0/8"
"133.0.0.0/8"
"150.0.0.0/8"
"153.0.0.0/8"
"163.0.0.0/8"
"171.0.0.0/8"
"177.0.0.0/8"
"179.0.0.0/8"
"181.0.0.0/8"
"186.0.0.0/8"
"187.0.0.0/8"
"189.0.0.0/8"
"190.0.0.0/8"
"200.0.0.0/8"
"201.0.0.0/8"
)
for blockapnic in ${APNIC[*]}
do
$iptables -A INPUT --source $blockapnic -j DROP
done
#$iptables -N LOGGING
#$iptables -A INPUT -j LOGGING
#$iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7
#$iptables -A LOGGING -j DROP
#$iptables -A LOGGING -j REJECT
#$iptables -A INPUT -i eth0 -j REJECT
;;
stop)
echo "Stoppe Firewall..."
$iptables -t nat -F
$iptables -t filter -F
$iptables -X
$iptables -P INPUT ACCEPT
$iptables -P OUTPUT ACCEPT
$iptables -P FORWARD ACCEPT
$iptablesv6 -t nat -F
$iptablesv6 -t filter -F
$iptablesv6 -X
$iptablesv6 -P INPUT ACCEPT
$iptablesv6 -P OUTPUT ACCEPT
$iptablesv6 -P FORWARD ACCEPT
;;
restart|reload|force-reload)
$0 stop
$0 start
;;
*)
echo "Usage: /etc/init.d/firewall (start|stop)"
exit 1
#;;
esac
exit 0
Anschließend muss das Script ausführbar gemacht werden:
Code:
chmod 755 /usr/bin/firewall
Code:
systemctl enable firewall.service
Code:
systemctl start firewall
Als Optionen funktieren folgende Eingaben:
Start der Firewall: systemctl start firewall
Stop der Firewall: systemctl stop firewall
Restart / Reload der Firewall: systemctl reload firewall
Zuletzt bearbeitet von einem Moderator: