Jan-Olof Lindqvist —————————————————————————————————–

1Oct/081

Firefox 3.1 “Shiretoko” vs Google Chrome och IE8

Det verkar vara mycket snack om kampen mellan de olika webbläsarna nu. För mig har det inte funnits ett alternativ till Firefox på många år och jag ser gärna fler konkurrenter som försöker få mig att byta.

Har jag haft otur nog att behöva installera en maskin med Windows så är Firefox alltid den första tredjeparts-programvaran jag installerar.

På Fredag den 3 Oktober är det tänkt att Beta 1 ska vara klar och enligt kriterierna från Mozilla är det troligt att den fungerar tillräckligt bra för att kunna ersätta den gamla utgåvan utan problem.

Beta release criteria
* Betas must be stable and usable enough for daily browsing for a large number of people
* Features are fully implemented, if not finalized
* Most sites should display properly and regression free (from previous major release)

Vill man vara med och diskutera eller bara läsa vad som skrivs på Fredagen (7am - 5pm PDT) så kan man joina IRC-kanalen #testday och kanske även #firefox (irc.mozilla.org).

Om man är vågad så kan man redan nu ladda hem och installera Firefox 3.1 här.

1Oct/081

FreeBSD packet filter/brandvägg (OpenBSD pf)

Packet Filter eller pf som den brukar kallas är ett program eller kanske snarare ett system som har dom primära uppgifterna att filtrera TCP/IP trafik och sköta NAT (Network Address Translation). Den klarar också mycket annat som normalisering av paket, bandbreddskontroll, paketprioritering och Quality of Service (QoS).

Historia
Om jag förstått det hela rätt så började det med att Theo de Raadt plockade bort ipf från OpenBSD CVS (Maj 2001) med anledning av att licensen tolkats på ett annat sätt än tidigare...

... Darren Reed has interpreted his (old, new, whichever) licence in a way that makes ipf not free according to the rules we established over 5 years ago, at www.openbsd.org/goals.html
...
software which OpenBSD uses and redistributes must be free to all (be they people or companies), for any purpose they wish to use it, including modification, use, peeing on, or even integration into baby mulching machines or atomic bombs to be dropped on Australia. ...

Han är bra lustig den där Theo :P

Hur som helst behövde man ett substitut. Då började Daniel Hartmeier skriva de första delarna i OpenBSD pf, som OpenBSD teamet tyckte var en bra start och fortsatte utvecklingen under OpenBSD-CURRENT.

OpenBSD pf portades till FreeBSD ports-samling under Juli 2003 och FreeBSD 5.3 som släpptes under 2004 var den första utgåvan som innehöll pf som en del av bas-systemet. (Läs mer här)

FreeBSD setup
För att aktivera pf och gateway (Behövs för att kunna skicka vidare paket från ett nätverkskort till ett annat) lägg till följande, utöver ordinarie nätverkskonfiguration.

pf_enable="YES"
gateway_enable="YES"

Vill man inte starta om efter att ha lagt till ovan kan man köra följande, tänk dock på att skapa din /etc/pf.conf innan du startar pf för första gången. Speciellt om du inte sitter lokalt vid datorn.

/etc/rc.d/pf start
/etc/rc.d/routing start

Konfiguration
Konfigurationsfilen läses in som standard från /etc/pf.conf men det går bra att använda t.ex. pfctl för att tillfälligt läsa in från någon annan fil. Ett exempel finns vanligtvis i /usr/share/examples/pf/pf.conf men den är inte mycket att ha enligt mig.

Man delar vanligtvis upp konfigurationsfilen i sju delar (Macros, Tables, Options, Traffic Normalization, Queueing, Translation, Packet Filtering). Jag kommer dock inte ta upp dom olika delarna här och nu men hänvisar till manualen för pf.conf där det finns detaljerad information.

Min nuvarande konfigurationsfil
Här nedan har jag klistrat in min nuvarande konfigurationsfil. Den är ganska enkel men du kan använda den om du vill, kommentera gärna med förslag på hur den kan förbättras och om det är något jag gjort fel eller missat eller om du har några frågor. Konfigurationsfilen har hängt med i ett antal år nu utan att jag ändrat på några större delar av den, så den kommer säkerligen behöva en hel del uppdateringar :)

## $FreeBSD: /etc/pf.conf
#
## MACROS
# External network interface
ext_if = "msk0"
# Internal network interface
int_if = "sk0"
# Wireless network interface
wifi_if = "ath0"
# Define all network interfaces
all_if = "{ msk0, sk0, ath0 }"
# Define all allowed TCP-ports
tcp_services = "{ 22, 80, 443, 8000, 50000 }"
# Defined client
clevo = "192.168.11.11"
 
## TABLES
# Table of black/private networks
table <private> const { 10/8, 172.16/12, 192.168/16 }
# Table for ip-addresses that tried to bruteforce machine
table <bruteforce> persist
 
## GLOBAL OPTIONS
# Logging on external interface
set loginterface $ext_if
# What to do with blocked traffic
set block-policy return
# Don't filter localhost
set skip on lo0
 
## TRAFFIC NORMALIZATION
scrub in on $ext_if all fragment reassemble
 
## QUEUEING RULES
# No need for a queueing ruleset at this network
 
## TRANSLATION RULES (NAT)
# Translate the web to the local machines
nat on $ext_if from !($ext_if) to any -> ($ext_if)
# Port redirect to client machine (OpenTTD service)
rdr pass on $ext_if proto { udp, tcp } from any to ($ext_if) \
        port { 3979 } -> $clevo
 
## FILTER RULES
# Default to block all incoming connections
block in log on $ext_if
# Keep blocking all connections from bruteforce ip-addresses
block quick from <bruteforce>
 
# Blocking spoofed traffic
antispoof quick for { lo0 $int_if $wifi_if } inet
 
# Allow outgoing TCP
pass out on $ext_if proto tcp from ($ext_if) to any \
        flags S/SA keep state
# Allow outgoing UPD
pass out on $ext_if proto udp from ($ext_if) to any keep state
# Allow outgoing ICMP
pass out on $ext_if inet proto icmp from ($ext_if) to any keep state
 
# Hosts that try to bruteforce ssh are sent to bruteforce filter
pass quick proto { tcp, udp } from any to ($ext_if) port ssh \
        flags S/SA keep state \
        (max-src-conn-rate 4/10, overload <bruteforce> flush global)
 
# Allow incoming tcp-connections on ports specified in $tcp_services
pass in on $ext_if inet proto tcp from any to ($ext_if) \
   port $tcp_services keep state

Aktuella länkar för inlägget:
FreeBSD
The OpenBSD Packet Filter