Twa stipekaarten dy’t ûnferbûn lykje, diele by neier besjen ien oarsaak. Yn it earste wol in behearder dat de tsjinner ferbiningen allinnich fan ’e tunnel oannimt; yn it twadde moatte VPN-brûkers ien ynterne host berikke en neat mear. Beide beliedsregels hearre yn FORWARD, en beide wurde meastentiids yn INPUT besocht. It resultaat liket op in fjoermuorre en hâldt him as in plakhâlder.

Hokker keatling beantwurdet jo fraach

Pakketten dy’t in VPN-klant nei in host op it LAN of fierder nei it ynternet stjoert, wurde troch de kearn trochstjoerd en yn FORWARD beoardield. INPUT en OUTPUT sjogge allinnich ferkear dat by de tsjinner sels einiget of dêrwei ûntstiet. In wegering foar alles wat net op tun0 oankomt, beskermet dêrom de eigen lústerers fan ’e tsjinner, en it sil ek jo SSH-sesje einigje, útsein as fêstige streamen earst tastien wurde. It feroaret neat oan wêr’t klanten hinne meie.

Neam earst de fraach: wa mei de tsjinner berikke, of wêr’t klanten hinne meie. De measte netwurken hawwe beide antwurden nedich, yn ferskillende keatlingen.

Earst de tastân, dan de tastimming, dan de wegering

In tastieningslist wurket allinnich as de spesifike tastimming boppe de algemiene wegering stiet en as weromferkear boppe beide tastien wurdt. Foegje regels yn op eksplisite posysjes en dump dan de keatling mei iptables -S FORWARD, sadat de oarder sichtber is ynstee fan oannommen.

POOL=10.99.0.0/24
iptables -I FORWARD 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD 2 -s "$POOL" -d 172.31.20.15 -p tcp -m multiport --dports 443,3389 -j ACCEPT
iptables -I FORWARD 3 -s "$POOL" -j REJECT

Twa details beslisse oft dit kontakt mei echte ferkear oerlibbet. Sûnder de tastânregel wurde antwurden op ’e ferbiningen dy’t jo krekt tastien hawwe, sels tsjin ’e wegering beoardield en fuortsmitten. In LOG-regel sûnder limyt kin in lytse partysje folskriuwe de earste kear dat in scan him rekket, dus foegje -m limit --limit 10/min ta foardat jo trochgean mei loggen. REJECT jout daliks in flater werom, wat freonliker is wylst jo de list bystelle; DROP smyt stil fuort, sadat elke flater as in tiidferrin liket. Kies ien mei opset en skriuw de kar yn it feroaringsregister.

Trochstjoeren en NAT moatte al wurkje

Filterjen kin net bewize dat in paad bestiet. Befêstigje earst dat de kearn oeral trochstjoerd, en meitsje dy ynstelling permanint ynstee fan in ienmalige shell-opdracht. It filter is de lêste laach, net de earste.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s "$POOL" -o eth0 -j MASQUERADE

Wêr’t de maskerade heart, hinget ôf fan wêr’t klanten útgeane. As se troch de tunnel nei in fier netwurk geane, stiet de NAT-regel op dat ynterface ynstee fan op it WAN-ynterface. Sjoch dan nei de tellers: as de POSTROUTING-teller nea beweecht wylst it tal tastienings yn FORWARD omheech giet, is it werompaad stikken en is it filter goed. Dy lêzing sparret in middei oan it opnij skriuwen fan regels dy’t nea it probleem wiene.

It e-postblok heart ien keatling fierder

Poarte 25 yn INPUT blokkearje stopet allinnich e-post dy’t oan de VPN-tsjinner rjochte is. In kompromittearre klant dy’t e-post troch de tunnel stjoert, wurdt trochstjoerd, dus it blok moat yn FORWARD njonken 465 en 587 stean. As ien applikaasje e-post op in wettige manier trochstjoert, set dan syn bestimmingsplak en poarte boppe dy regel.

iptables -I FORWARD 2 -s "$POOL" -p tcp -m multiport --dports 25,465,587 -j REJECT

Lit de wegeringsteller in wike rinne foardat jo eat oars strakker sette. It getal dat ophâldt mei klimmen is de wettige stream dy’t jo krekt brutsen hawwe.

Lês it werom en bewis it dan fan in klant ôf

Lês de regelset sa’t de kearn him rapportearret, net sa’t jo skript him skreaun hat. Begjin mei iptables -S FORWARD, dan de NAT-tabel mei iptables -t nat -L POSTROUTING -n -v, dan de conntrack-ynskriuwing foar de stream dy’t jo ûndersykje. Hâld in weromsetkommando of in pland leegmeitsjen by de hân sa lang as it wurk duorret. Elke oanrop hat -w nedich, oars botsje twa behearders op it xtables-slot. Neat fan dat is opsjoneel yn in feroaringsfinster.

Einigje troch te testen fan in klant binnen de pool en fan ien dêrbûten. In regel dy’t allinnich fan ’e masine wurket dêr’t jo him op typt hawwe, is gjin belied.

Relatearre artikelen