Nästa Föregående Innehållsförteckning

6. Att konfigurera IP-filtrering (ipfwadm)

Till att börja med så bör du ha IP-vidareskickning (IP Forwarding) påslagen i din kärna och ditt system skall vara igång och skicka vidare allt som du skickar till den. Dina routingtabeller skall vara på plats och du skall kunna ha tillgång till allt, både från insidan till utsidan och från utsidan till insidan.

Men vi bygger en brandvägg så vi behöver börja begränsa vad som går att få tillgång till.

I mitt system så skapade jag ett par script för att ställa in brandväggens vidareskickningspolicy och redovisningspolicy. Jag kör dessa script ifrån scripten i /etc/rc.d så att mitt system konfigureras vid uppstart.

Med standardinställningarna så skickar Linuxkärnans system för IP-vidareskickning vidare allt. På grund av detta så bör din brandvägg börja med att neka access till allt och tömma alla ipfwadm-regler som finns kvar sedan det kördes sist. Följande script fixar detta:

  #
  # setup IP packet Accounting and Forwarding
  #
  #   Forwarding
  #
  # By default DENY all services
  ipfwadm -F -p deny
  # Flush all commands
  ipfwadm -F -f
  ipfwadm -I -f
  ipfwadm -O -f

Nu har vi den ultimata brandväggen. Inget kan komma igenom. Du har utan tvekan några tjänster som du behöver skicka vidare genom brandväggen, så här kommer några exempel som kan vara användbara för dig:

  #  Skicka vidare e-post till din server
  ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 192.1.2.10 25

  # Skicka vidare e-postanslutningar till utomstående e-postservrar
  ipfwadm -F -a accept -b -P tcp -S 196.1.2.10 25 -D 0.0.0.0/0 1024:65535

  # Skicka vidare www-anslutningar till din www-server
  /sbin/ipfwadm -F -a accept -b -P tcp -S 0.0.0.0/0 1024:65535 -D 196.1.2.11 80

  # Skicka vidare www-anslutningar till utomstående www-server
  /sbin/ipfwadm -F -a accept -b -P tcp -S 196.1.2.* 80 -D 0.0.0.0/0 1024:65535 

  # Skicka vidare DNS-trafik
  /sbin/ipfwadm -F -a accept -b -P udp -S 0.0.0.0/0 53 -D 196.1.2.0/24

Du kanske också är intresserad av att hålla reda på trafik som går igenom din brandvägg. Följande script kommer att räkna alla paket. Du kan lägga till en eller ett par rader för att hålla reda på paket till ett enskilt system.

                      
  # Flush the current accounting rules
  ipfwadm -A -f
  # Accounting
  /sbin/ipfwadm -A -f
  /sbin/ipfwadm -A out -i -S 196.1.2.0/24 -D 0.0.0.0/0
  /sbin/ipfwadm -A out -i -S 0.0.0.0/0 -D 196.1.2.0/24
  /sbin/ipfwadm -A in -i -S 196.1.2.0/24 -D 0.0.0.0/0
  /sbin/ipfwadm -A in -i -S 0.0.0.0/0 -D 196.1.2.0/24

Om allt du ville ha var en filtrerande brandvägg så kan du sluta här. Ha skoj :-)


Nästa Föregående Innehållsförteckning