Az OpenBSD szabályainak áttekintése
A pf kikapcsolása a konzolról
pfctl-d
A pf engedélyezése a konzolról
pfctl -e
Pf szabályok alkalmazása fájlból
pfctl -f /etc/pf.conf
A pf
/etc/rc.conf.local
pf = YES # enable PF
A csomagok átirányítása a konzolból, amikor az újraindítás megszakad
sysctl net.inet.ip.forwarding = 1
sysctl net.inet6.ip6.forwarding = 1
Csomag útválasztás folyamatos engedélyezése
/etc/sysctl.conf
net.inet.ip.forwarding = 1
net.inet6.ip6.forwarding = 1
Az OpenBSD 4.1-es verziójával kezdődően a szabályokhoz az alapértelmezett beállítás a keep-state
Ha megtagadja a válasz létrehozását, a dinamikus szabályokat, add hozzá a szabályhoz nincs állapot
Általános szabályszintaktika
cselekvési irány gyors az interface inet proto protokollal az src_addr és a dst_port között
1. művelet: engedélyezze (át) vagy blokkolja (blokkolja) a csomag átvitelét
2. irány: a csomag bejövő (be) \ kimenő (kimenő)
Gyors: a kulcsszó, a szabálynak megfelelő csomagot azonnal alkalmazzák, a szabály a lánc utolsó eleme
4. interfészen: adja meg a hálózati interfészt
5. inet: inet - IPv4 protokoll \ inet6 - IPv6 protokoll
6. proto: a protokollok tcp, udp, icmp, icmp6 jelzése
8. dst_port: a csomag célportja
Hagyjuk át az ssh-t
gyors át a proto tcp-re a 22. portra
vagy úgy
gyors át a proto tcp porton az ssh portra
Engedjük az ICMP visszhangkérelmeket (tartsuk az állapotot)
pass inet proto icmp minden icmp-type 8 kód 0 tartsa az állapotot
vagy úgy
adja át a gyors inet protokollt icmp minden icmp-típusú echoreq
Kimenő forgalom engedélyezése
kihagyni
Blokkolja az összeset
blokkolja az összeset
vagy külön-külön
blokkolja az összeset
blokk mindenben
Port továbbítás
rdr on de inet proto tcp de de port 3389 -> 192.168.0.69 port 3389
Peremnnye
ext_if = "de0"
int_if = "de1"
Állítsa be a lo0 # skip loop tesztet
scrub in all # összegyűjti / normalizálja a csomag minden részét a küldés előtt
nat $ ext_if-on $ int_if: hálózat bármelyik -> $ ext_if # szabály NAT
blokkolja az összes # letiltását mindent bárhonnan
átadja lo0 # engedélyezze a forgalmat a hurokban (helyettesíti az első szabály - set lo0)
adja át a $ int_if-et bármelyikből # mindent megoldjon a helyi hálózatból
vagy például (szelektíven a kikötőkben)
adjon át $ int_if proto tcp-t a $ int_if: hálózatról minden portra
adja ki $ ext_if proto tcp-t a $ ext_if-ből bármely porthoz
adja ki $ ext_if-et a $ ext_if-ből a # allow opnbsd hozzáférésre kívülről
adjon át $ ext_if proto tcp-t bármelyikből $ ext_if portba ssh # enable ssh
pass inet proto icmp minden ICMP-típusú echoreq # enable ICMP
vagy például
átadja a $ ext_if protokoll ICMP-t bárhonnan
adja át a $ int_if protokoll ICMP-t bárhonnan
Adjon egy IP-t soronként
192.168.0.2
192.168.0.3
192.168.0.4
nat on $ ext_if -tól
Példa a DDOS támadások elleni védelemre
Először, adj hozzá egy táblát a bűnözőknek
táblázat
Blokkolási szabály
blokk a naplóban gyorsan
pass on $ ext_if proto tcp és $ ext_if port 80 flags S / SA keep state (max-src-kapcs 30, max-src-kapcs-os 10/5, túlterhelés
A fekete lista megtekintése:
pfctl -t brute -T show
Eltávolítás a feketelistáról:
pfctl -t brute -T flush
Példa a cron 30 percenként történő tisztítására
* / 30 * * * * gyökér pfctl -t brute -T flush
Példa a tisztítás után N másodpercek száma (példánkban 12 óra):
pfctl -t brute -T lejár 43200
Az ALTQ egy alternatív soros platform a BSD számára.
A FreeBSD jelenleg támogatja az ALTQ megvalósításában három ütemezőt:
CBQ osztály alapú várakozás. Az interfészhez csatolt sorok létrehoznak egy fát.
Így minden sorban további gyermek sorok jelennek meg.
Mindegyik sor elsőbbséget és sávszélességet adhat.
A prioritás elsősorban a csomagok küldésének időtartamát ellenőrzi, míg mások várják a sorrendet
Ennek köszönhetően az átfolyás szabályozható.
PRIQ Prioritási sorbaállítás. Ezek a sorok nem tartalmazhatnak gyermeket.
Minden sorhoz egyedi prioritás tartozik, 0 és 15 között
A legnagyobb számú csomagok a legmagasabb prioritást élvezik.
HFSC hierarchikus tisztességes szolgáltatási görbe.
A szülő sor meghatározza az összes átviteli sebességet az összes csatolási sorhoz.
Meghatározza a szolgáltató által biztosított teljes sávszélességet, és független a hálózati felület sebességétől.
A gyermek sorában ez az irányelv határozza meg a maximális bitsebességet, amelyet a sor folyamán bármikor feldolgozni fog
a várólista működési paramétereinek listája:
alapértelmezett - az ebben a sorban érkezett csomag nincs tovább ellenőrizve, és azonnal feldolgozásra kerül
piros - Véletlen korai felismerés csepeg egy csomagot, amely állítólag túlterhelheti a várólistát
ecn - Explicit zavaró bejelentés - hasonló a vöröshez, de vörös használja az optimálisabb algoritmust és a vörös sor feldolgozás sokkal gyorsabb
a kölcsönfelvételi paraméter - a gyermeket várakozó sor a szülői sor ingyenes sávszélességét is megteheti
prioritás a sor elsőbbsége. A CBQ és a HFSC esetében az értékek 0 és 7 között lehetnek PRIQ esetén, 0 és 15 között. Az alapértelmezett érték minden sor esetén 1
# A várakozási sor 10 megabit hálózati interfészének engedélyezése a sor listáján:
altq de0 cbq sávszélesség 10Mb sorban
# queue general eléri a 10 megabit csatornánk 10% -át
várólista általános sávszélesség 10% cbq (alapértelmezett)
# a web 30% -ot, két gyermeke van: webchildone, webchildtwo
# a korai terhelés meghatározásának mechanizmusa - piros
# a szülői sor sávszélességét - az igénybevételi opció használatával
# a web sor elsőbbséget élvez a 4-ben, konfigurációnkban ez a legmagasabb prioritás
# mert a 4 feletti értékek nincsenek definiálva, akkor a webes sor fog kezelni az első csomagokat
várakozási sávszélesség 30% -os prioritás 4 cbq (piros kölcsönzés)
# a leszármazott várakozási sor 50% -os és 30%
# százaléka kiszámolódik a csatorna teljes sávszélességéből, amelyet a szülői sorba rendeltek
sorban webchildone sávszélesség 30%
sorban webchildtwo sávszélesség 50% cbq (kölcsön)
# soros bejegyzés a teljes sávszélesség 5% -át teszi ki, a legalacsonyabb prioritású - 0
# mechanizmusa a korai feltöltés meghatározására - ecn
várakozás utáni sávszélesség 5% -os prioritás 0 cbq (kölcsönös ecn)
# Az ssh sorban két gyermek van: ssh_connect, ssh_data a 7. és a 0. prioritással
# Amikor egy csomag érkezik a 22-es rendeltetési helyre, a szabály az ssh_connect sorra helyezi
# a kapcsolat létrejötte után a csomag az ssh_data sorba lép, és a szülői sorban a legmagasabb prioritású lesz - ssh
sor ssh sávszélesség 20% cbq (kölcsön)
sor ssh_data 7. prioritás
sor ssh_connect prioritás 0
A sorok szabályai
A szabály teljes szintaxisa:
fellépés irányba [log] [Gyors] a felületen [AF] [proto protokoll] származó src_addr [port src_port] a dst_addr [port dst_port] [tcp_flags] [állapotban]
Tevékenységért
A csomagra alkalmazott művelet egy átjáró vagy blokk. vigye vissza a csomagot a rendszermagba
további feldolgozás. míg a blokk a blokkpolitika szerint válaszol.
Az alapértelmezett válasz törölhető a blokkvesztés vagy a blokkvisszaadás megadásával.
blokk visszatérés de0 inet összes sorban általános
adja ki a deo inet proto tcp-t a 192.168.1.0/24-ből a 80-as porthoz. Tartsa meg az állami várólista webchildont
adja ki a de0 inet proto tcp-t 192.168.0.0/24-ből minden 80-as portra
adja ki a de0 inet proto tcp-t bárhonnan bármelyik portra 22 tartsa az állami várólistát (ssh_connect, ssh_data)
adja ki a de0 inet proto tcp-t bármelyikből bármelyik 25-ös portra