Nmap kì í sábà rán àkójọpọ̀ tí o rò pé o béèrè fún. Nígbà tí àwọn raw socket kò bá sí, ó máa ń fi ìwádìí TCP connect rọ́pò ìwádìí SYN àkọ́kọ́, nítorí náà ṣíṣe é gẹ́gẹ́ bí olùlò lasan àti ṣíṣe é lábẹ́ sudo lè dá àwọn ìbéèrè ọ̀tọ̀ọ̀tọ̀ lóhùn nípa ibùdó kan náà. Àwọn àbájáde dà bí ìṣòro àṣẹ, ṣùgbọ́n ní sábà wọ́n jẹ́ ìyípadà ọ̀nà. Fífi ọ̀nà hàn kedere ni ọ̀nà kan ṣoṣo láti fi ṣe àfiwé àwọn ìṣe méjèèjì.

Àwọn olùwádìí méjì, ibùdó kan, àwọn ọ̀nà kóòdù ọ̀tọ̀ọ̀tọ̀

Ìwádìí SYN fúnra rẹ̀ kọ orí TCP, ó rán an láti raw socket, ó sì ka ìdáhùn láti inú nẹ́tíwọ́kì kí òkè TCP ti kẹ́nẹ́lì tó gba ìsopọ̀ tí ó parí sílẹ̀. Ìwádìí connect béèrè lọ́wọ́ ẹ̀rọ ìṣiṣẹ́ pé kí ó ṣí socket lasan, ó sì jábọ̀ ohun tí connect() dá padà. Àwọn méjèèjì lè pe ibùdó ní ṣíṣí, ṣùgbọ́n ọ̀kan ṣoṣo ni ó fi ìgbìyànjú ààbọ̀-ṣíṣí sílẹ̀, ọ̀kan ṣoṣo sì ni ó wà lábẹ́ ìlànà ìpele socket tí ó so mọ́ ìlana tí ń ránṣẹ́.

Ọ̀nà raw nílò CAP_NET_RAW, ìdí nìyẹn tí ìwádìí àkọ́kọ́ fi ń dín kù lẹ́nu nígbà tí agbára yẹn kò sí. Ìtọ́kasí àwọn ìlànà ìwádìí Nmap fúnra rẹ̀ ṣàlàyé ìrọ́pò yìí: ìwádìí connect ni àbájáde kejì nítorí kò nílò àṣẹ pàtàkì kankan. Ìrọ́pò náà máa ń ṣẹlẹ̀ láìsí ìkìlọ̀ nínú ọ̀pọ̀ ìṣe, ìyẹn sì ni ó mú kí ó rọrùn láti kà á lọ́nà tí kò tọ́. Ní kété tí o bá mọ̀ pé àbájáde kejì wà, “ṣíṣí gẹ́gẹ́ bí root, títì gẹ́gẹ́ bí olùlò” kò ní dún bí àṣìṣe àṣẹ mọ́, ó sì bẹ̀rẹ̀ sí dún bí ìdíwọ̀n méjì ọ̀tọ̀ọ̀tọ̀.

Kí ni sudo ń yí padà ní ti gidi nínú ìwádìí

Gbígbé àṣẹ sókè ń mú ọ̀nà raw socket padà, ìyẹn sì ń yí ju ìdájọ́ lọ. Yíyan ibùdó orísun, àkókò àkójọpọ̀, ìhùwàsí àtúnránṣẹ́ àti bí a ṣe ń pín ìdáhùn tí a ṣe àyẹ̀wò rẹ̀—gbogbo rẹ̀ wá láti inú kóòdù ọ̀tọ̀ọ̀tọ̀. Ẹ̀rọ àárín tí ń dín ìwọ̀n SYN kù ń tọ́jú àwọn ìṣe méjèèjì láìdọ́gba pàápàá nígbà tí ẹ̀rọ ìpèǹpéjú ìdí jẹ́ ọ̀kan náà.

Ìkọ̀wé àkọsílẹ̀ ní ẹ̀gbẹ́ ìdí náà pẹ̀lú yàtọ̀. Ìfọwọ́sowọ́pọ̀ tí ó parí ni a rí látọ̀dọ̀ iṣẹ́ àti látọ̀dọ̀ ìṣirò socket èyíkéyìí, nígbà tí olùwádìí ààbọ̀-ṣíṣí tí a tún ṣe kì í sábà hàn. Bí o bá ń fi àwọn ìṣe wé ẹ̀rọ ìpèǹpéjú tí ìwọ pẹ̀lú ń ka àkọsílẹ̀ rẹ̀, apá kan ìyàtọ̀ tí o rí ni àkíyèsí fúnra rẹ̀.

Jẹ́ kí ọ̀nà dúró ṣinṣin nínú àwọn ìṣe méjèèjì

Fi ipá mú kí ìlànà kan náà wà nínú àwọn ìpè méjèèjì, àfiwé yóò sì bẹ̀rẹ̀ sí ní ìtumọ̀. Àmì -sT béèrè ìwádìí connect ní kedere, -Pn yọ ìwárí ẹ̀rọ ìpèǹpéjú kúrò, -n yọ ìyédè orúkọ kúrò, àti -p kan ṣoṣo yọ àwọn ìyàtọ̀ àkọsílẹ̀ ibùdó kúrò.

nmap -sT -Pn -n -p 8443 198.51.100.77
sudo nmap -sT -Pn -n -p 8443 198.51.100.77

Pààrọ̀ àdírẹ́sì àti ibùdó pẹ̀lú ẹ̀rọ ìpèǹpéjú tí o ní àṣẹ láti dánwò; ìwọ̀n ìwé àkọsílẹ̀ lókè jẹ́ àpẹẹrẹ, kì í ṣe àfojúsùn. Bí àwọn ìṣe méjèèjì bá wà ní ìbámu báyìí, ìyàtọ̀ àkọ́kọ́ wá láti inú ọ̀nà ìwádìí. Bí wọn kò bá sì ìbámu, ohun mìíràn ń pín ìṣàn, apá tó kàn sì ni ibi tí a ó wò.

Àyíká àkọsílẹ̀ kì í ṣe àmì àṣẹ nìkan

Ìmúṣẹ́ VPN lè pín àwọn àkójọpọ̀ nípa UID, nípa cgroup, tàbí nípa ìlànà tí ó so mọ́ ìlana tí ó ṣí socket. Nígbà náà ìṣàn root àti ìṣàn olùlò máa ń jáde nípasẹ̀ àwọn tábìlì ọ̀nà ọ̀tọ̀ọ̀tọ̀ tàbí wọ́n máa ń kọlu àwọn àkójọ ìlànà ọ̀tọ̀ọ̀tọ̀, kò sì sí ìbáwí ọ̀nà ìwádìí tí ó lè mú wọn bá ara wọn.

Ṣàyẹ̀wò ìlànà, kì í ṣe àṣẹ. Nínú Linux, nftables ń fi meta skuid hàn, iptables sì ń fi ìbámu oníṣe hàn, èyíkéyìí nínú wọn lè rán UID kan sínú òjò ojú, nígbà tí èkejì ṣì ń lo ọ̀nà ti ara àkọ́kọ́.

sudo nft list ruleset | grep -n skuid
sudo iptables-save | grep -n uid-owner
ip rule show
ip route get 198.51.100.77

Jẹ́rìí olùwádìí kí o tó fi àwọn àbájáde wé ara wọn

Kí o tó parí, fi hàn irú olùwádìí tí ó ṣiṣẹ́. Nmap ń pe ìlànà náà ní orúkọ nínú àbájáde tirẹ̀, --reason sì ń fi ẹ̀rí kún u lẹ́yìn ipò kọ̀ọ̀kan, apá yẹn ni ó sì ń sọ bí ìfọwọ́sowọ́pọ̀ bá parí lóòótọ́.

nmap --reason -sT -Pn -n -p 8443 198.51.100.77
sudo nmap --reason -sS -Pn -n -p 8443 198.51.100.77
getcap "$(command -v nmap)"
capsh --print | grep -i net_raw

Àwọn ìṣe méjì tí ń jábọ̀ ipò kan náà fún àwọn ìdí ọ̀tọ̀ọ̀tọ̀ kì í ṣe ìtakò, àwọn ìṣe méjì tí ń jábọ̀ àwọn ipò ọ̀tọ̀ọ̀tọ̀ fún ìdí kan náà sì ń tọ́ka sí ọ̀nà tàbí ìlànà, kì í ṣe ìwádìí. Jẹ́ kí àfojúsùn, ibùdó, ààyè orúkọ àti àkókò wà ní ọ̀kan, lẹ́yìn náà yí àyípadà kan padà ní ẹ̀ẹ̀kan. Ṣíṣe iṣẹ́ gẹ́gẹ́ bí root kì í ṣe àtúnṣe àìbámu ìlànà; àtúnṣe ni láti fi ìlànà tí a fẹ́ hàn nípasẹ̀ oníṣe iṣẹ́ náà.

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