İçeriğe atla

PF (Güvenlik Duvarı)

Vikipedi, özgür ansiklopedi

PF (Packet Filter, aynı zamanda pf), BSD lisanslı bir stateful paket filtresi olup, güvenlik duvarı için merkezi bir yazılım parçasıdır. Netfilter (iptables), ipfw ve ipfilter ile karşılaştırılabilir.

PF, OpenBSD için geliştirilmiş, ancak birçok diğer işletim sistemine aktarılmıştır.

PF, ilk olarak, kural sözdiziminin çoğunu türettiği Darren Reed'in IPFilterinin yerine geçmek üzere tasarlanmıştı. IPFilter, OpenBSD geliştiricilerinin lisansıyla ilgili kaygıları nedeniyle 30 Mayıs 2001'de OpenBSD'nin CVS ağacından kaldırılmıştır.[1]

PF'in ilk versiyonu Daniel Hartmeier (6 Ağustos 2017 tarihinde Wayback Machine sitesinde arşivlendi.) tarafından yazılmıştır. 1 Aralık 2001'de yayımlanan OpenBSD 3.0'da çıktı.[2]

Daha sonra Henning Brauer tarafından yazılan kod çoğunlukla Henning Brauer (10 Ağustos 2020 tarihinde Wayback Machine sitesinde arşivlendi.) ve Ryan McBride tarafından kapsamlı bir şekilde yeniden tasarlandı. Henning Brauer şu anda PF'nin ana geliştiricisidir.

Filtreleme sözdizimi, IPFilter'e benzer ve bazı değişikliklerle daha anlaşılır hale getirilir. Ağ Adresi Çevirisi (Network Address Translation, NAT) ve Hizmet Kalitesi (Quality of Service, QoS), ALTQ kuyruklama yazılımını içe aktararak ve PF yapılandırmasına bağlayarak PF, QoS'ye entegre edilmiştir. Yük devretme ve yedekleme için pfsync ve CARP, oturum kimlik doğrulaması için authpf ve zor FTP protokolünün güvenlik duvarını kapatmayı kolaylaştırmak için ftp-proxy gibi özellikler de PF'yi genişletmiştir. Aynı zamanda PF, SMP (Symmetric multiprocessing, Simetrik çoklu işlem) ve STO (Stateful Tracking Options, Durum İzleme Seçenekleri)ni destekler.

Birçok yenilikçi özellikten biri de PF'nin günlüğüdür. PF'nin günlüğü, pf.conf içindeki kural başına yapılandırılabilir ve günlükler, kullanıcı düzeyindeki programlar için çekirdek düzeyinde moddan verileri kaldırmanın tek yolu olan pflog adlı bir sözde ağ arabirimi tarafından PF'den sağlanmaktadır. Günlükler, OpenBSD'de özellikle amaç için genişletilmiş olan tcpdump gibi standart araçlar kullanılarak veya pflogd arka plan programını kullanarak tcpdump/pcap ikili biçiminde diske kaydedilebilir.

Kullanılan dağıtımlar

[değiştir | kaynağı değiştir]

Kendi ev platformu olan OpenBSD üzerinde çalışan PF, diğer birçok diğer işletim sistemine taşınmıştır.

Ancak bununla birlikte, yeteneklerde büyük farklılıklar olduğuna dikkat etmek gerekmektedir. OpenBSD'nin daima en son sürümünü en çok özelliklere sahiptir.

PF şu anda şu işletim sistemlerinde kullanılmaktadır:

Açıklamalı örnek pf.conf dosyası

[değiştir | kaynağı değiştir]
## Macros

# The internal interface (connected to the local network).
int_if="xl0"

## Options

# Set the default policy to return RSTs or ICMPs for blocked traffic.
set block-policy return

# Ignore the loopback interface entirely.
set skip on lo0

## Translation rules

# NAT traffic on the interface in the default egress interface group (to
# which the interface out of which the default route goes is assigned) from the
# local network.
match out on egress from $int_if:network to any nat-to (egress)

## Filtering rules

# Default deny rule, with all blocked packets logged.
block log all

# Pass all traffic to and from the local network, using quick so that later
# rules are not evaluated if a packet matches this. Some rulesets would restrict
# local traffic much further.
pass quick on $int_if all

# Permit all traffic going out, keep state so that replies are automatically passed;
# many rulesets would have many rules here, restricting traffic in and out on the
# external (egress) interface. (keep state is not needed in the newest version of pf)
pass out keep state

Dış bağlantılar

[değiştir | kaynağı değiştir]
Vikikitap
Vikikitap
Vikikitapta bu konu hakkında daha fazla bilgi var:
  1. ^ "CVS: cvs.openbsd.org: src; Remove ipf". 30 Mayıs 2001. 12 Temmuz 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Kasım 2014. 
  2. ^ "OpenBSD 3.0". 1 Aralık 2001. 19 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Kasım 2014. 
  3. ^ "IPFW(8) Manual Page". Apple, Inc. 27 Eylül 2012. 18 Nisan 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Kasım 2014. This utility is DEPRECATED. Please use pfctl(8) instead.