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 bármelyikhez -> ($ ext_if)

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 folytatódik

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 flush globális)

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