========================================================== Virtuelles Unix Labor - Firewall - Hubert Feyrer ========================================================== 1. Einleitung [sinn und zweck des ganzen, interfacing, software, ...] 2. Manuelle Outbound-Config mit NAT 2.1 /etc/rc.conf ipfilter=1 ipnat=1 2.2 /etc/ipnat.conf map be0 10.0.0.0/24 -> 0/32 proxy port ftp ftp/tcp map be0 10.0.0.0/24 -> 0/32 portmap tcp/udp 40000:60000 map be0 10.0.0.0/24 -> 0/32 2.3 /etc/ipf.conf pass in from any to any pass out from any to any 2.4 /etc/sysctl.conf Packet forwarding einschalten: net.inet.ip.forwarding=1 3. Manuelle Inbound-Config 3.1 Port-Forwarding /etc/ipnat.conf: Zugriff fuer "client" (durch IP-Nummer ersetzen, s.u.): # vulab1: #rdr be0 from client/bits to any port = 10021 -> 10.0.0.1 port 21 tcp #rdr be0 from client/bits to any port = 10022 -> 10.0.0.1 port 22 tcp #rdr be0 from client/bits to any port = 10023 -> 10.0.0.1 port 23 tcp # # vulab2: #rdr be0 from client/bits to any port = 20021 -> 10.0.0.2 port 21 tcp #rdr be0 from client/bits to any port = 20022 -> 10.0.0.2 port 22 tcp #rdr be0 from client/bits to any port = 20023 -> 10.0.0.2 port 23 tcp Siehe auch 2.2 - wird zusaetzlich benoetigt. 3.2 Dynamische Zugangskontrolle Inhalt /etc/ipnat.conf siehe 3.1. Regeln hinzufuegen: -> sed -n -e 's/#//' -e 's/client/194.95.108.65/' -e 's,bits,32,' -e /rdr/p /etc/ipnat.conf \ | ipnat -f - Regeln entfernen: -> sed -n -e 's/#//' -e 's/client/194.95.108.65/' -e 's,bits,32,' -e /rdr/p /etc/ipnat.conf \ | ipnat -rf - Ggf. aktive NAT-Sessions killen: -> ipnat -F (vgl. Anhang A) 4. Automatische Firewall-Ansteuerung Script "firewall", muß setuid-root sein, damit der www-User es aufrufen kann: Usage: firewall open 1.2.3.4 [32] close list Siehe Anhang B.1 (/etc/ipnat.conf) und B.2 (firewall-Script) 5. Benutzung der Uebungsrechner telnet: telnet smaug.fh-regensburg.de 10023 telnet smaug.fh-regensburg.de 20023 ftp: ftp smaug.fh-regensburg.de 10021 ftp smaug.fh-regensburg.de 20021 Ggf. muss dem FTP-Client explizit gesagt werden, dass Passive FTP verwendet wird, um Dateien zu transferieren. Solaris's ftp(1) tut dies per default. ssh: ssh -p 10022 -l vulab smaug.fh-regensburg.de ssh -p 20022 -l vulab smaug.fh-regensburg.de A Anhang Gespraech mit Darren Reed, IPFilter-Autor: Mon May 5 04:06:48 MEST 2003 [04:06] avalon avalon@caligula.anu.edu.au [04:05] you can do it with a single command, if you can single out the [04:05] rule [04:05] ie. [04:05] grep some_other /etc/ipnat.conf | ipnat -rf - [04:05] (to remove it) [04:05] grep some_other /etc/ipnat.conf | ipnat -f - [04:05] (to add it) B Automatische Firewall-Config B.1 /etc/ipnat.conf smaug# cat /etc/ipnat.conf map be0 10.0.0.0/24 -> 0/32 proxy port ftp ftp/tcp map be0 10.0.0.0/24 -> 0/32 portmap tcp/udp 40000:60000 map be0 10.0.0.0/24 -> 0/32 # # vulab1: #rdr be0 from client/bits to any port = 10021 -> 10.0.0.1 port 21 tcp #rdr be0 from client/bits to any port = 10022 -> 10.0.0.1 port 22 tcp #rdr be0 from client/bits to any port = 10023 -> 10.0.0.1 port 23 tcp # # vulab2: #rdr be0 from client/bits to any port = 20021 -> 10.0.0.2 port 21 tcp #rdr be0 from client/bits to any port = 20022 -> 10.0.0.2 port 22 tcp #rdr be0 from client/bits to any port = 20023 -> 10.0.0.2 port 23 tcp B.2 firewall-Script [include code/firewall] -- $Id: firewall,v 1.6 2012-12-21 23:32:18 feyrer Exp $