I think,that in case of pf is good start point this site
http://home.nuug.no/~peter/pf/ and then FAQ parts

2009/5/5 William Chivers <william.chiv...@newcastle.edu.au>:
> Hello Ricardo,
>
> This is not a beginners' mailing list, people here expect questions to
> 1. be very specific, and
> 2. demonstrate that you have spent a lot of time trying to solve the problem
yourself, reading the documentation etc.
>
> Start with http://www.openbsd.org/faq/pf/index.html
> If you still need help, there are several books on pf, for example "The Book
of PF" (http://nostarch.com/pf.htm).
>
> Look back through the misc mailing list to see how specific questions about
pf are. When you have a specific question, the best help available is right
here.
>
> Bill
>
> ---------------------------------------------
> William J. Chivers
> Lecturer in Information Technology
> School of DCIT
> Faculty of Science and Information Technology
> University of Newcastle---Ourimbah Campus
> PO Box 127, Ourimbah, NSW 2259
> Australia
> CRICOS Provider Number: 00109J
>
> phone: B  +61 2 4349 4473
> fax: B  B  +61 2 4349 4565
> email: B william.chiv...@newcastle.edu.au
> ---------------------------------------------
>>>> Ricardo Augusto de Souza <ricardo.so...@cmtsp.com.br> 05/06/09 5:08 AM
>>>
> Thanks for this 'polite' reply.
> As I Said i spent some years away from Unix/Linux world,
> I worked with business intelligence this years.
> Now i AM back to network administration and B i got this Project to B do.
> I used openbsd before version 3. I do like B it.
>
> This is my current senario.
> - B 2 firewalls with 2 carp+pfsync that B Will handle 2 internet
connections, B 1
> mpls connection, 1 lan to handle around 60 bus company that transport 2
> million users per Day, each user has your own myfair card. Each bus has a
> system that store this data in a file. This files Will be imported to
Oracle
> later. After this import, there are a lot of specific applications that
uses
> this informations.
> - behind this 2 firewalls B  we have around 30 servers: ( most Windows)
iis,
> file transfer servers,ws, and some other servers like some red hat
enterprise
> running Oracle 10g.
> - at the beginning the firewalls Will do Nat B + filter B + gateway +
mpd5+squid
> ( the fucking operators Who need Access to the Windows servers were surfing
on
> web from there. )
> - our applications has around 5,000 users per Day, but we have a lot of web
> services and some etl process ( i dont have statistics about volume yet)
>
> So that B is it.
>
>
> -----Mensagem original-----
> De: William Chivers [mailto:william.chiv...@newcastle.edu.au]
> Enviada em: segunda-feira, 4 de maio de 2009 22:46
> Para: Ricardo Augusto de Souza; misc@openbsd.org
> Assunto: Re: Migration from IPTABLES to PF
>
> This is a great advertisement for OpenBSD, PF, and keeping things simple in
> general, mind if I use it Ricardo?
>
> As for your original question, I wouldn't even try to convert your
iptables,
> especially using some magic tool to do it. Decide what you want your
firewall
> to do and start from scratch with PF. That way you will know it is working
and
> you will be able to maintain it reliably.
>
> Cheers, Bill
>
>
> ---------------------------------------------
> William J. Chivers
> Lecturer in Information Technology
> School of DCIT
> Faculty of Science and Information Technology
> University of Newcastle---Ourimbah Campus
> PO Box 127, Ourimbah, NSW 2259
> Australia
> CRICOS Provider Number: 00109J
>
> phone: B  +61 2 4349 4473
> fax: B  B  +61 2 4349 4565
> email: B william.chiv...@newcastle.edu.au
> ---------------------------------------------
>>>> Ricardo Augusto de Souza <ricardo.so...@cmtsp.com.br> 05/05/09 3:17 AM
>>>>
> Hi,
>
> I have a firewall running on a Fedora Core 4 (STentz) with iptables. The
Guy
> Who installed it left our company some months ago.
> I spent some years far from iptables, now i have to migrate this firewall
to
> PF.
> THere are some 'special' features on this firewall, B i need some
> documentation
> or help about implementing this features at new firewall ( PF ).
>
> This is the iptables scripts:
>
> #!/bin/bash
> FW=/sbin/iptables
> LOAD=/sbin/modprobe
> #__________________________________________________________________________
>
> # Carregando Modulo do IPTABLES
> . /etc/rc.d/init.d/prodata/fw_modulos
>
> # Carregando Variaveis
> . /etc/rc.d/init.d/prodata/fw_variaveis
>
> if [ $KERNEL = "sim" ]
> B  then . /etc/rc.d/init.d/prodata/fw_kernel
> fi
>
>
#___________________________________________________________________________
> # Cria politicas de LOGs
>
#___________________________________________________________________________
>
> if [ $LOGS = "sim" ]
> B  then . /etc/rc.d/init.d/prodata/fw_politicas
> fi
>
> Normal rules here
> #################################################################### EOF
>
>
>
> /etc/rc.d/init.d/prodata/fw_modulos
> #$LOAD nfnetlink
>
> $LOAD ip_conntrack
> $LOAD ip_conntrack_ftp
> #$LOAD ip_conntrack_pptp ##
> #$LOAD ip_conntrack_netlink ##
> #$LOAD ip_conntrack_tftp ##
>
> #$LOAD ip_nat
> $LOAD ip_nat_ftp
> $LOAD ip_gre
> #$LOAD ip_nat_pptp ##
> #$LOAD ip_nat_tftp ##
> $LOAD ip_queue ##
> $LOAD ip_tables
>
> $LOAD iptable_filter
> $LOAD iptable_nat
> $LOAD iptable_mangle
>
> $LOAD ipt_helper
> $LOAD ipt_LOG
> $LOAD ipt_limit
> $LOAD ipt_state
> #$LOAD ipt_layer7 ##
> $LOAD ipt_MASQUERADE
> $LOAD ipt_multiport
> #$LOAD ipt_string
> $LOAD ipt_tcpmss
> $LOAD ipt_TCPMSS
> ######################################################### EOF
>
>
> /etc/rc.d/init.d/prodata/fw_kernel
>
#___________________________________________________________________________
> # Protecao do KERNEL
>
#___________________________________________________________________________
> #Enable forwarding in kernel
> echo 1 > /proc/sys/net/ipv4/ip_forward
>
> #Disabling IP Spoofing attacks.
> if [ $IPSEC = "sim" ]
> B  then for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f
> B  done
> else for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 2 > $f
> B  done
> fi
>
> #Don't respond to broadcast pings (Smurf-Amplifier-Protection)
> echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
>
> #Block source routing
> echo 1 > /proc/sys/net/ipv4/conf/all/accept_source_route
>
> #Kill timestamps
> echo 0 > /proc/sys/net/ipv4/tcp_timestamps
>
> #Enable SYN Cookies
> #echo 1 > /proc/sys/net/ipv4/tcp_syncookies
>
> #Kill redirects
> echo 1 > /proc/sys/net/ipv4/conf/all/accept_redirects
>
> #Enable bad error message protection
> echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
>
> #Log martians (packets with impossible addresses)
> echo 1 > /proc/sys/net/ipv4/conf/all/log_martians
>
> #Set out local port range
> echo "32768 61000" > /proc/sys/net/ipv4/ip_local_port_range
>
> #Reduce DoS'ing ability by reducing timeouts
> echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
> echo 2400 > /proc/sys/net/ipv4/tcp_keepalive_time
> echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
> echo 0 > /proc/sys/net/ipv4/tcp_sack
> ################################################################### EOF
>
>
>
> /etc/rc.d/init.d/prodata/fw_politicas
>
#___________________________________________________________________________
> # LOG - Politica de Negacao de frames
>
#___________________________________________________________________________
>
> LOGLIMIT="2/s"
> LOGLIMITBURST="10"
> # Overall Limit for TCP-SYN-Flood detection
> TCPSYNLIMIT="5/s"
> # Burst Limit for TCP-SYN-Flood detection
> TCPSYNLIMITBURST="10"
> # Overall Limit for Ping-Flood-Detection
> PINGLIMIT="5/s"
> # Burst Limit for Ping-Flood-Detection
> PINGLIMITBURST="1"
>
> $FW -N LOG_DROP
> $FW -A LOG_DROP -p tcp -m limit --limit $LOGLIMIT --limit-burst
> $LOGLIMITBURST
> -j LOG --log-prefix "fp=TCP:1 a=DROP "
> $FW -A LOG_DROP -p udp -m limit --limit $LOGLIMIT --limit-burst
> $LOGLIMITBURST
> -j LOG --log-prefix "fp=UDP:2 a=DROP "
> $FW -A LOG_DROP -p icmp -m limit --limit $LOGLIMIT --limit-burst
> $LOGLIMITBURST -j LOG --log-prefix "fp=ICMP:3 a=DROP "
> $FW -A LOG_DROP -p 47 -m limit --limit $LOGLIMIT --limit-burst
$LOGLIMITBURST
> -j LOG --log-prefix "fp=VPN:4 a=DROP "
> $FW -A LOG_DROP -f -m limit --limit $LOGLIMIT --limit-burst $LOGLIMITBURST
-j
> LOG --log-prefix "fp=FRAGMENT:5 a=DROP "
> $FW -A LOG_DROP -p tcp ! --syn -m state --state NEW -j LOG --log-prefix
> "fp=NEW nao SYN: "
> $FW -A LOG_DROP -j DROP
>
>
#___________________________________________________________________________
> # LOG - Politica de Liberacao de frames
>
#___________________________________________________________________________
>
> $FW -N LOG_OK
> $FW -A LOG_OK B -m limit --limit $LOGLIMIT --limit-burst $LOGLIMITBURST -j
LOG
> --log-level 3 --log-prefix "fp=LOG_OK:3 a=ACCEPT "
> $FW -A LOG_OK -j ACCEPT
>
>
#___________________________________________________________________________
> # LOG - Politica de Negacao TCP-SYN-Flood
>
#___________________________________________________________________________
>
> $FW -N LSYNFLOOD
> $FW -A LSYNFLOOD -m limit --limit $LOGLIMIT --limit-burst $LOGLIMITBURST -j
> LOG --log-prefix "fp=SYNFLOOD:1 a=DROP "
> $FW -A LSYNFLOOD -j DROP
>
>
#___________________________________________________________________________
> # TCP - Politica para Aceitar conexoes TCP verificando SYN-Floods
>
#___________________________________________________________________________
>
> $FW -N TCPACCEPT
> $FW -A TCPACCEPT -p tcp --syn -m limit --limit $TCPSYNLIMIT --limit-burst
> $TCPSYNLIMITBURST -j ACCEPT
> $FW -A TCPACCEPT -p tcp -m state --state ESTABLISHED,RELATED --syn -m limit
> --limit $TCPSYNLIMIT --limit-burst $TCPSYNLIMITBURST -j ACCEPT
> $FW -A TCPACCEPT -p tcp --syn -j LSYNFLOOD
> $FW -A TCPACCEPT -p tcp ! --syn -j ACCEPT
>
>
#___________________________________________________________________________
> # SMB - Rejeita frames SMB (Netbios)
>
#___________________________________________________________________________
>
> $FW -N SMB
> $FW -A SMB -p tcp --dport 137 -j DROP
> $FW -A SMB -p tcp --dport 138 -j DROP
> $FW -A SMB -p tcp --dport 139 -j DROP
> $FW -A SMB -p tcp --dport 445 -j DROP
> $FW -A SMB -p udp --dport 137 -j DROP
> $FW -A SMB -p udp --dport 138 -j DROP
> $FW -A SMB -p udp --dport 139 -j DROP
> $FW -A SMB -p udp --dport 445 -j DROP
>
> $FW -A SMB -p tcp --sport 137 -j DROP
> $FW -A SMB -p tcp --sport 138 -j DROP
> $FW -A SMB -p tcp --sport 139 -j DROP
> $FW -A SMB -p tcp --sport 445 -j DROP
> $FW -A SMB -p udp --sport 137 -j DROP
> $FW -A SMB -p udp --sport 138 -j DROP
> $FW -A SMB -p udp --sport 139 -j DROP
> $FW -A SMB -p udp --sport 445 -j DROP
>
>
>
#___________________________________________________________________________
> # ICMP/TRACEROUTE (IN)
>
#___________________________________________________________________________
>
> #Logging of possible Ping-Floods
>
> $FW -N LPINGFLOOD
> $FW -A LPINGFLOOD -m limit --limit $LOGLIMIT --limit-burst $LOGLIMITBURST
-j
> LOG --log-prefix "fp=PINGFLOOD:1 a=DROP "
> $FW -A LPINGFLOOD -j DROP
>
>
#___________________________________________________________________________
>
> $FW -N ICMPINBOUND
>
> #Ping Flood protection. Accept $PINGLIMIT echo-requests/sec, rest will be
> logged/dropped
> $FW -A ICMPINBOUND -p icmp --icmp-type echo-request -m limit --limit
> $PINGLIMIT --limit-burst $PINGLIMITBURST -j ACCEPT
> $FW -A ICMPINBOUND -p icmp --icmp-type echo-request -j LPINGFLOOD
>
> #Block ICMP-Redirects (Should already be catched by sysctl-options, if
> enabled)
> $FW -A ICMPINBOUND -p icmp --icmp-type redirect -j LOG_DROP
>
> #Block ICMP-Timestamp (Should already be catched by sysctl-options, if
> enabled)
> $FW -A ICMPINBOUND -p icmp --icmp-type timestamp-request -j LOG_DROP
> $FW -A ICMPINBOUND -p icmp --icmp-type timestamp-reply -j LOG_DROP
>
> #Block ICMP-address-mask (can help to prevent OS-fingerprinting)
> $FW -A ICMPINBOUND -p icmp --icmp-type address-mask-request -j LOG_DROP
> $FW -A ICMPINBOUND -p icmp --icmp-type address-mask-reply -j LOG_DROP
>
> #Allow all other ICMP in
> $FW -A ICMPINBOUND -p icmp -j ACCEPT
>
>
>
#___________________________________________________________________________
> # ICMP/TRACEROUTE (OUT)
>
#___________________________________________________________________________
>
>
> $FW -N ICMPOUTBOUND
>
> #Block ICMP-Redirects (Should already be catched by sysctl-options, if
> enabled)
> $FW -A ICMPOUTBOUND -p icmp --icmp-type redirect -j LOG_DROP
>
> #Block ICMP-TTL-Expired
> #MS Traceroute (MS uses ICMP instead of UDp for tracert)
> $FW -A ICMPOUTBOUND -p icmp --icmp-type ttl-zero-during-transit -j LOG_DROP
> $FW -A ICMPOUTBOUND -p icmp --icmp-type ttl-zero-during-reassembly -j
> LOG_DROP
>
> #Block ICMP-Parameter-Problem
> $FW -A ICMPOUTBOUND -p icmp --icmp-type parameter-problem -j LOG_DROP
>
> #Block ICMP-Timestamp (Should already be catched by sysctl-options, if
> enabled)
> $FW -A ICMPOUTBOUND -p icmp --icmp-type timestamp-request -j LOG_DROP
> $FW -A ICMPOUTBOUND -p icmp --icmp-type timestamp-reply -j LOG_DROP
>
> #Block ICMP-address-mask (can help to prevent OS-fingerprinting)
> $FW -A ICMPOUTBOUND -p icmp --icmp-type address-mask-request -j LOG_DROP
> $FW -A ICMPOUTBOUND -p icmp --icmp-type address-mask-reply -j LOG_DROP
>
> ##Accept all other ICMP going out
> $FW -A ICMPOUTBOUND -p icmp -j ACCEPT
>
>
>
#___________________________________________________________________________
> # PING Server - Libera ICMP
>
#___________________________________________________________________________
>
> $FW -N icmp_packets
> $FW -A icmp_packets -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT
> $FW -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT
>
>
#___________________________________________________________________________
> # PING Client - Libera ICMP
>
#___________________________________________________________________________
>
> $FW -N icmp_ping
> $FW -A icmp_ping -p ICMP --icmp-type 8 -j ACCEPT
> $FW -A icmp_ping -p ICMP --icmp-type 11 -j ACCEPT
>
>



--
http://www.openbsd.org/lyrics.html

Reply via email to