Firewall pour station : Pf
Pf (firewall à filtrage de paquet avec conservation d'Etat - statefull inspection)
Pf (via pfctl) est l'interface utilisateur permettant d'administrer le firewall présent à partir de la version 3.0 d'OpenBSD.
Quelques rappels :
Scripts présentés :
Les deux fichiers de configuration présentés ont les caractéristiques suivantes :
Exemples de logs :
Nov 07 21:53:48.703280 rule 15/0(match): block in on ep1: 10.1.1.43.137 > 10.1.1.3.137: udp 88
Nov 07 21:54:04.742276 rule 13/0(match): block in on ep1: 10.1.1.42.4668 > 10.1.1.3.22: S 2918997:2918997(0) win 8192
pf_rules_down.conf :
### BEGIN
pass in all
pass out all
pf_rules_up.conf :
### VARIABLES
INT="ep1" # Interface
# Addresses
ADM_IP="{ 10.1.1.77 }" # Ip Address of the remote allowed administration station
DNS_IP="{ 10.1.1.10 , 10.1.1.11 }"
PROXY_IP="{ 10.1.1.20 , 10.1.1.21 }"
MAIL_IP="{ 10.1.1.30 , 10.1.1.31 }"
# Ports
GP_SSH="{ 22 }"
GP_PROXY="{ 8080 }"
GP_MAIL="{ 25 , 110 }"
GP_DNS="{ 53 }"
### BEGIN
# Normalization
scrub in all
# Default Policie : Deny
block in on $INT all
block out on $INT all
### REMOTE MANAGEMENT
# Allow SSH remote management and log connections
pass in log quick on $INT inet proto tcp from $ADM_IP to any port $GP_SSH flags S/SA keep state
### ALLOW THESE TCP CONNECTIONS
# Allow SSH anywhere
pass out quick on $INT inet proto tcp from any port > 1024 to any port $GP_SSH flags S/SA keep state
# Allow HTTP/HTTPS to HTTP proxy servers
pass out quick on $INT inet proto tcp from any port > 1024 to $PROXY_IP port $GP_PROXY flags S/SA keep state
# Allow SMTP/POP to MailServers
pass out quick on $INT inet proto tcp from any port > 1024 to $MAIL_IP port $GP_MAIL flags S/SA keep state
### ALLOW THESE UDP CONNECTIONS
# Allow DNS Protocol to DNS Servers
pass out quick on $INT inet proto udp from any port $GP_DNS to $DNS_IP port $GP_DNS keep state
### ALLOW THESE ICMP CONNECTIONS
# Allow that kind of ICMP packets
pass out quick on $INT inet proto icmp from any to any icmp-type echoreq keep state
### AND LAST : LOG AND DENY
block in log quick on $INT inet proto tcp from any to any
block out log quick on $INT inet proto tcp from any to any
block in log quick on $INT inet proto udp from any to any
block out log quick on $INT inet proto udp from any to any
block in log quick on $INT inet proto icmp from any to any
block out log quick on $INT inet proto icmp from any to any
Simon Castro
Maj le 27 novembre 2002