Pinnu àṣẹ náà kí o tó ṣí fáìlì ògiri iná kan: àwọn oníbàárà tí a ti fọwọ́ sí lè ṣí àwọn ìsopọ̀ sí ọ̀nà-ìpín pàtó kan, àbáwọlé sì gbọ́dọ̀ kọ gbogbo ọ̀nà àrékọjá mìíràn pàápàá nígbà tí oníbàárà bá fi àwọn ọ̀nà àfikún sórí. Gbólóhùn yẹn ni àpẹrẹ, gbogbo òfin tí ó wà nísàlẹ̀ wà láti mú un ṣẹ. Nnkan tí ó gbòòrò jù, bí gbogbo àyè àdírẹ́sì àdáni, ìjáde sí íńtánẹ́ẹ̀tì nípasẹ̀ ojú-ẹ̀rọ ìsàlẹ̀ tàbí ìrìnàjò láàárín ẹgbẹ́, jẹ́ àpẹrẹ mìíràn tí ó nílò ìpinnu tirẹ̀. Àwọn òfin tún mọ̀ọ́mọ̀ jẹ́ aláìní ìtumọ̀, nítorí ògiri iná tí ó gbọ́n jẹ́ èyí tí ẹnikẹ́ni kò lè ṣàyẹ̀wò rẹ̀ lẹ́yìn náà.

Kọ́kọ́ kọ àwòrán ìsopọ̀ àti àṣẹ náà

Àpẹrẹ náà ń lò Community OpenVPN sáfà pẹ̀lú ẹ̀rọ TUN nínú àyè olùlò tí a ń pè ní tun0, àkópọ̀ oníbàárà 10.77.0.0/24, àti ọ̀nà-ìpín kan tí a so pọ̀ 192.168.60.0/24 lórí lan0. Gbígbé IPv4 ti ń ṣiṣẹ́ tẹ́lẹ̀, LAN sì ti ní ọ̀nà ìpadà sí àkópọ̀ náà, nítorí náà kò sí nnkan níbí tí ó sinmi lórí ìtumọ̀ láàárín wọn.

Ògiri iná lórí ẹ̀rọ-ayárabíá yìí jẹ́ ti UFW, kò sì sí àkójọ òfin inú àpótí tàbí tábìlì nftables ọ̀tọ̀ tí ó lè fi ọ̀nà ìtẹ́wọ́gbà ṣáájú sílẹ̀. Ọ̀nà kúkúrú ìdáṣiṣẹ́ ìṣàn kan tí ó forí ìdánwò náà yóò sọ àwọn ẹ̀wọ̀n olùṣọ́ di ohun ọ̀ṣọ́, nítorí náà fìdí rẹ̀ múlẹ̀ pé kò sí èyí tí ó ń ṣiṣẹ́. Fi gbígbé client-to-client ti OpenVPN fúnra rẹ̀ sílẹ̀ ní pípadé, nítorí ìrìnàjò láàárín ẹgbẹ́ tí kò kọjá ìdánwò ẹ̀rọ ìṣiṣẹ́ rí kò lè dínà pẹ̀lú rẹ̀. Olùgbọ́ ìta àti àwọn òfin ìṣàkóso wà bí wọ́n ti wà, níwọ̀n bí ìyípadà yìí ń ṣàkóso ìrìnàjò ojú-ẹ̀rọ ìsàlẹ̀ tí a ti yọ àdìtú kúrò dípò ríro ògiri iná.

Fi àwọn olùṣọ́ síwájú àwọn ìtẹ́wọ́gbà àkọ́kọ́ UFW

Àṣẹ ọ̀nà àti ìkọ̀ lẹ́yìn rẹ̀ kò tó fún ààlà tí ó le. Àwọn òfin before àkọ́kọ́ ń gba ìrìnàjò tí a ti fìdí rẹ̀ múlẹ̀ àti ICMP kan ṣáájú kí a tó wò òfin olùlò kankan, nítorí náà ìṣàn tí a gbà láàyè ní ọ̀sẹ̀ tó kọjá lè wà ní ìta ìfòfindè ibi-ìlọ tuntun kìkì nítorí pé ó ṣì ní ipò. Ṣe àdàkọ àwọn fáìlì UFW kí o sì pa kọ́ńsóòlì ìta-ìlà mọ́ ní ṣíṣí kí o tó ṣàtúnṣe.

Nínú apá *filter ti fáìlì /etc/ufw/before.rules, polongo ẹ̀wọ̀n méjì lẹ́gbẹ̀ẹ́ àwọn ìkéde tí ó wà àti ṣáájú ìlà òfin kankan.

:vpn-src-guard - [0:0]
:vpn-reply-guard - [0:0]

Lẹ́sẹ̀kẹsẹ̀ lẹ́yìn àwọn ìkéde, àti ṣáájú àwọn àṣẹ ìwọlé àti gbígbé, fò sínú wọn kí o sì sọ ohun tí wọ́n ń gbà láàyè.

-A ufw-before-input -i tun0 -j DROP
-A ufw-before-forward -i tun0 -j vpn-src-guard
-A ufw-before-forward -o tun0 -j vpn-reply-guard

-A vpn-src-guard -o lan0 -d 192.168.60.0/24 -s 10.77.0.0/24 -m conntrack --ctdir ORIGINAL -j RETURN
-A vpn-src-guard -j DROP

-A vpn-reply-guard -i lan0 -d 10.77.0.0/24 -s 192.168.60.0/24 -m conntrack --ctstate RELATED,ESTABLISHED --ctdir REPLY -j RETURN
-A vpn-reply-guard -j DROP

Pa ìyókù apá náà àti ìlà COMMIT rẹ̀ mọ́. Líla tábìlì ìdánwò kejì tàbí pípa àwọn òfin tí kò ní í ṣe pẹ̀lú rẹ̀ ni ọ̀nà tí ìyípadà ògiri iná fi di ìdádúró iṣẹ́, fáìlì sì ku àtúnbẹ̀rẹ̀ kan péré kí ó tó di ẹ̀dà kan ṣoṣo tí ó ṣe pàtàkì.

Ka ohun tí olùṣọ́ kọ̀ọ̀kan ń gbà àti ohun tí ó ń kọ̀

Ẹ̀wọ̀n àkọ́kọ́ ń tẹ̀síwájú ìṣiṣẹ́ kìkì nígbà tí orísun wà nínú àkópọ̀, ibi-ìlọ ni ọ̀nà-ìpín kan náà, ojú-ìsọfúnni ìjáde ni LAN, àti pé ọ̀nà-ìpín náà ń lọ ní ọ̀nà àkọ́kọ́ ti ìṣàn rẹ̀. Gbogbo nnkan mìíràn tí ó ń bọ̀ láti ojú-ẹ̀rọ ìsàlẹ̀ ni a ń sọnù, pẹ̀lú orísun tí ó wà ní ìta àkópọ̀ àti ibi-ìlọkankan tí ó kọjá ọ̀nà-ìpín tí a gbà láàyè.

Ọ̀nà-ìpín ẹgbẹ́ ń wọlé, ó sì ń jáde tun0, nítorí náà ó kùnà ìdánwò ojú-ìsọfúnni LAN kí ó tó dé ìṣàyẹ̀wò ibi-ìlọ pàápàá. Àwọn ìsopọ̀ tuntun láti LAN sí àwọn oníbàárà pẹ̀lú kùnà ìdánwò ọ̀nà ìdáhùn, èyí tí ó ti ìpilẹ̀ṣẹ̀ pa ọ̀nà ìpè-ìpadà mọ́.

RETURN àfojúsùn ń pa ìlànà UFW déédéé mọ́ ní ipò iṣẹ́. Àwọn ẹ̀wọ̀n wọ̀nyí ń ṣe àyọ̀nukúrò, àṣẹ ọ̀nà tí o bá fi kún lẹ́yìn náà ṣì pinnu bóyá a ó gba ọ̀nà-ìpín tí ó ye. Ìpínyà yẹn gan-an ni ó jẹ́ kí o lè yí ọ̀nà-ìpín tí a gbà láàyè padà ní ibi kan lẹ́yìn náà. Kí àwọn olùṣọ́ gba àwọn ọ̀nà-ìpín tààrà, gbogbo òfin ọjọ́ iwájú yóò ní láti fi kún lẹ́ẹ̀mejì.

Gbà ọ̀nà-ìpín láàyè kí o sì ti àwọn ilẹ̀kùn ẹ̀gbẹ́

Kọ́kọ́ wo àṣẹ ọ̀nà náà ṣáájú, lẹ́yìn náà yọ àmì àwòrán kúrò láti lò ó: sudo ufw --dry-run route allow in on tun0 out on lan0 from 10.77.0.0/24 to 192.168.60.0/24. Lẹ́yìn náà ṣàyẹ̀wò ìtòlẹ́sẹẹsẹ àwọn òfin olùlò, nítorí ìkọ̀ tí ó ṣáájú ṣì ń borí àṣẹ tí ó wà lẹ́yìn. Àṣẹ fún gbogbo ọ̀nà-ìpín pẹ̀lú jẹ́ ìrísí tí kò tọ́ nígbà tí ẹnu-ọ̀nà HTTPS ti ẹ̀rọ-ayárabíá kan ṣoṣo yẹ kí ó wà ní àárò.

Kíyè sí ohun tí pípa ìwọlé ń ṣe: àwọn oníbàárà ojú-ẹ̀rọ ìsàlẹ̀ kò lè dé iṣẹ́ kankan lórí àbáwọlé fúnra rẹ̀, pẹ̀lú olùgbọ́ DNS tí a so mọ́ àdírẹ́sì LAN rẹ̀. Gbígbàlejò DNS níbẹ̀ nílò ìyàtọ̀ àfọwọ́kàn tí a mọ̀ọ́mọ̀ ṣe ṣáájú pípa àti àdéhùn àṣẹ tí a tún wò. Tí UFW bá ń ṣàkóso IPv6, fi àwọn ìpa tí ó bá mu fún tun0 kún nínú fáìlì before6.rules pẹ̀lú, nítorí àkójọ ibi-ìlọ IPv4 kò sọ nnkan kan nípa àwọn ọ̀nà-ìpín IPv6.

Fìdí ìlànà tí a ti gbé wọlé múlẹ̀, kì í ṣe àwòrán

Wo ìgbéwọlé-ìpadà ṣáájú, lò ó ní fèrèsé ìtọ́jú, kí o sì ka àkójọ òfin tí ó wà láàyè.

sudo ufw --dry-run reload
sudo ufw show raw

Fìdí rẹ̀ múlẹ̀ pé àwọn olùṣọ́ ojú-ẹ̀rọ ìsàlẹ̀ farahàn ṣáájú àwọn àṣẹ ipò àti ICMP àkọ́kọ́. ufw status tí ó rọrùn kò fi àwọn òfin before tí a fi ọwọ́ ṣàtúnṣe hàn, ìdí nìyẹn tí àwọn olùṣàkóso fi parí pé òfin kan ṣòfò nígbà tí ó wà ní ti gidi. Ka àkójọ àìdánimọ́ láti orí dé ìsàlẹ̀ dípò wíwa ẹ̀ka kan. Tí àwọn olùṣọ́ bá farahàn lẹ́yìn àṣẹ ipò, ààlà náà kò ṣe ohun tí fáìlì náà dábàá.

Lẹ́yìn náà dán ìhùwàsí wò dípò ọ̀rọ̀. Ṣí ìsopọ̀ tuntun sí ẹ̀rọ-ayárabíá tí a gbà láàyè kí o sì wo ìdáhùn, darí ìbéèrè aláìléwu sí ibi-ìlọ tí ó wà ní ìta ọ̀nà-ìpín kí o sì fìdí rẹ̀ múlẹ̀ pé ó kú, gbìyànjú ìsopọ̀ ẹgbẹ́, gbìyànjú iṣẹ́ àdúgbò lórí àbáwọlé, kí o sì gbìyànjú ìsopọ̀ LAN-sí-oníbàárà tí a kò béèrè. Fi ìṣàn kan tí ó wà ní ìta ìwọ̀n tí ó wà ṣáájú ìyípadà náà kún, kí o sì pa ìṣàn yẹn nìkan kúrò dípò fí sọ gbogbo tábìlì àfẹ̀hónúhàn ẹ̀rọ náà di òfìfo.

Kọ àwọn ààlà lẹ́gbẹ̀ẹ́ àwọn òfin: èyí ń dínà àrékọjá, kò sì ṣe nnkan mìíràn. Kò dá oníbàárà dúró láti lo ìsopọ̀ íńtánẹ́ẹ̀tì tirẹ̀, kò dá ẹ̀rọ-ayárabíá LAN tí a gbà láàyè dúró láti tẹ̀síwájú gbígbé ìrìnàjò, kò sì rọ́pò ìjẹ́rìí nínú àwọn iṣẹ́ tí a gbà láàyè.

Àwọn àpilẹ̀kọ tó jọra