iptables: waruhusu wateja wa VPN kufikia mwenyeji mmoja tu
Sheria unayohitaji iko katika FORWARD, si INPUT. Ruhusu lengo moja kwa kundi la VPN, kataa mengine, kisha thibitisha kwa vihesabu na amri ya kurudisha.
Tikiti mbili za usaidizi zinazoonekana hazihusiani hatimaye zinashiriki sababu moja. Katika ya kwanza, msimamizi anataka seva ikubali miunganisho kutoka kwa handaki tu; katika ya pili, watumiaji wa VPN wanapaswa kufikia mwenyeji mmoja wa ndani na si zaidi. Sera zote mbili ziko katika FORWARD, na zote mbili kwa kawaida hujaribiwa katika INPUT. Matokeo yanaonekana kama ukuta wa moto na hujiendesha kama kishika nafasi.
Ni mnyororo upi unaojibu swali lako
Pakiti ambazo mteja wa VPN hutuma kwa mwenyeji wa LAN, au kuendelea hadi intranet, kerneli huzisambaza na huzipima katika FORWARD. INPUT na OUTPUT huona tu trafiki inayomalizika kwenye seva yenyewe au inayotoka humo. Kwa hivyo kukataa kila kitu kisichofika kwenye tun0 hulinda wasikilizaji wa seva yenyewe, na pia kutamaliza kikao chako cha SSH isipokuwa mitiririko iliyoanzishwa iruhusiwe kwanza. Haibadilishi chochote kuhusu mahali wateja wanaruhusiwa kwenda.
Taja swali kwanza: nani anaweza kufikia seva, au wateja wanaweza kwenda wapi. Mitandao mingi inahitaji majibu yote mawili, katika minyororo tofauti.
Kwanza hali, kisha ruhusa, kisha kukataa
Orodha ya kuruhusiwa hufanya kazi tu ikiwa ruhusa mahususi iko juu ya kukataa kwa jumla na ikiwa trafiki ya kurudi inaruhusiwa juu ya zote mbili. Ingiza sheria katika nafasi zilizo wazi, kisha toa mnyororo kwa iptables -S FORWARD ili mpangilio uonekane badala ya kudhaniwa.
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 REJECTMambo mawili huamua ikiwa hii itastahimili kukutana na trafiki halisi. Bila sheria ya hali, majibu kwa miunganisho uliyoiruhusu hivi punde hupimwa yenyewe dhidi ya kukataa na hutupwa. Sheria ya LOG isiyo na kikomo inaweza kujaza kizigeu kidogo mara ya kwanza uchunguzi ukiigusa, kwa hivyo ongeza -m limit --limit 10/min kabla ya kuendelea kurekodi. REJECT hurudisha hitilafu mara moja, jambo ambalo ni la kirafiki zaidi unapodhibiti orodha; DROP hutupa kimya, kwa hivyo kila kosa huonekana kama muda umeisha. Chagua moja kwa makusudi na uandike chaguo katika rekodi ya mabadiliko.
Usambazaji na NAT lazima viwe vinafanya kazi tayari
Uchujaji hauwezi kuthibitisha kwamba njia ipo. Kwanza thibitisha kwamba kerneli inasambaza kabisa, na ufanye mpangilio huo kuwa wa kudumu badala ya amri ya mara moja kwenye shell. Kichujio ni tabaka la mwisho, si la kwanza.
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s "$POOL" -o eth0 -j MASQUERADEMahali maskarade inapaswa kuwa kunategemea wateja wanatoka wapi. Ikiwa wanatoka kupitia handaki kuelekea mtandao wa mbali, sheria ya NAT huwekwa kwenye kiolesura hicho na si kiolesura cha WAN. Kisha angalia vihesabu: ikiwa kihesabu cha POSTROUTING hakisongi kamwe wakati idadi ya kukubaliwa katika FORWARD inaongezeka, njia ya kurudi imevunjika na kichujio kiko sawa. Usomaji huo huokoa mchana wa kuandika upya sheria ambazo hazikuwa tatizo kamwe.
Kizuizi cha barua pepe kiko mnyororo mmoja zaidi
Kuzuia lango 25 katika INPUT kunasimamisha barua pepe inayoelekezwa kwa seva ya VPN pekee. Mteja aliyeathirika anayetuma barua pepe kupitia handaki husambazwa, kwa hivyo kizuizi lazima kiwe katika FORWARD kando ya 465 na 587. Ikiwa programu moja inasambaza barua pepe kwa njia halali, weka lengo na lango lake juu ya sheria hiyo.
iptables -I FORWARD 2 -s "$POOL" -p tcp -m multiport --dports 25,465,587 -j REJECTAcha kihesabu cha kukataa kifanye kazi kwa wiki moja kabla ya kukaza kitu kingine. Nambari inayoacha kupanda ndiyo mtiririko halali uliouharibu hivi punde.
Soma tena, kisha thibitisha kutoka kwa mteja
Soma seti ya sheria jinsi kerneli inavyoripoti, si jinsi hati yako ilivyoandika. Anza na iptables -S FORWARD, kisha jedwali la NAT na iptables -t nat -L POSTROUTING -n -v, kisha ingizo la conntrack la mtiririko unaouchunguza. Weka amri ya kurudisha au usafishaji uliopangwa kwa muda wote kazi inapoendelea. Kila wito unahitaji -w, vinginevyo wasimamizi wawili watagongana kwenye kufuli la xtables. Hakuna chochote katika haya ambacho ni cha hiari ndani ya dirisha la mabadiliko.
Maliza kwa kujaribu kutoka kwa mteja aliye ndani ya kundi na kutoka kwa mmoja aliye nje yake. Sheria inayofanya kazi tu kutoka kwenye mashine uliyoandikia si sera.