#!/bin/sh # 1. Beispiel fuer Paketfiler-Firewall-Regeln # ######## Variablen werden definiert ########################################### netdev="fxp0" # Netzwerk-Device auf der Internet-Seite (nach draussen) ############################################################################### # ######## Alle Rgeln werden geloescht (RESET) ################################## ipfw -f flush ############################################################################### # ######## Nicht-Routingfaehige IP's werden verboten (Faelschung) ############### ipfw add 1 deny all from 127.0.0.0/8 to any in via "${netdev}" ipfw add 2 deny all from 192.168.0.0/16 to any in via "${netdev}" ipfw add 3 deny all from 172.16.0.0/12 to any in via "${netdev}" ipfw add 4 deny all from 10.0.0.0/8 to any in via "${netdev}" ############################################################################### # ######## Loopback erlauben #################################################### ipfw add 5 allow all from any to any via lo0 ipfw add 6 deny all from any to 127.0.0.0/8 ############################################################################### # ######## "state-full-Paketfilter-Regeln" werden ermoeglicht ################### ipfw add 7 check-state ############################################################################### # ######## ermoeglicht die Einwahl per SSH von ueberall ######################### ipfw add 10 allow tcp from any to any 22 keep-state ############################################################################### # ######## unterdrueckt jeden Ping von draussen. ################################ ipfw add 20 deny icmp from any to any icmptypes 8 in via "${netdev}" ############################################################################### # ######## unterdruecken bestimmten ICMP-Typen. ################################# ipfw add 40 deny icmp from any to any icmptypes 3 out via "${netdev}" ipfw add 41 deny log icmp from any to any icmptypes 5 ipfw add 42 deny icmp from any to any icmptypes 15 ipfw add 43 deny log icmp from any to any icmptypes 30 ############################################################################### # ######## restlichen icmp-Verkehr wird erlaubt ################################# ipfw add 100 allow log icmp from any to any ############################################################################### # ######## NAMESERVER-Anfragen - erlauben ####################################### ######## Alle Rechner im Netz muessen die selben DNS eingetragen haben! ####### ipfw add 1100 allow tcp from any to any 53 keep-state ipfw add 1150 allow udp from any to any 53 keep-state ipfw add 1200 allow tcp from any to any 53 keep-state ipfw add 1250 allow udp from any to any 53 keep-state ############################################################################### # ############################################################################### # Alle Ports, die zum serven wichtig sein koennten. # # Port 20 (tcp) FTP # FTP - Datenkanal # Port 21 (tcp) FTP # FTP - Verbindungsaufbau # Port 22 (tcp) SSH # SSH ist oben general frei gemacht # # Port 25 (tcp) SMTP # Server fuer raus gehende Mails # Port 53 (tcp/udp) DNS # Domain-Name-Services # Port 67 (udp) DHCPS # Server # Port 68 (udp) DHCPC # Client # Port 80 (tcp) HTTP # unverschluesselte Verbindung ins Web # Port 110 (tcp) POP # Server fuer rein kommende Mails # Port 123 (udp) NTP # NTP-Server siehe Regeln 11 und 12 # # Port 443 (tcp) HTTPS # verschluesselte Verbindung ins Web # Port 8080 (tcp/udp) Proxy # ############################################################################### # ######## DHCP - Zugriffe werden hier erlaubt ################################## ipfw add 1302 allow log udp from any to any 67,68 keep-state ############################################################################### # ######## aktualisieren der Uhrzeit mittels Network-Time-Protocol ############## ipfw add 1303 allow udp from any to any 123 keep-state via "${netdev}" ############################################################################### # ######## fuer HTTPS erforderlich ############################################## ipfw add 1304 allow tcp from any to any 443 keep-state via "${netdev}" ############################################################################### # # # # # # Von den folgenden beiden Regelbloecken sollte, je nach dem Anwendungsgebiet, # nur der obere oder untere Regelblock aktiv sein! # ######## Der Zugriff in das Internet wird erlaubt ############################# ######## Ist fuer einen Desktop-Rechner gedacht. ############################## ipfw add 3000 allow tcp from any to any 21,25,80,110 keep-state out via "${netdev}" ipfw add 3500 allow tcp from any to any 25 keep-state in via "${netdev}" ############################################################################### # ######## Der Zugriff aus dem Internet wird erlaubt ############################ ######## Ist fuer einen Web-Server gedacht. ################################### #ipfw add 5000 allow tcp from any to any 21,25,80,110 keep-state in via "${netdev}" #ipfw add 5500 allow tcp from any to any 25 keep-state out via "${netdev}" ############################################################################### # # # # # ######## Der Rest wird verboten ############################################### ipfw add 40000 deny all from any to any ###############################################################################