Sababta liisaska FTP ay ugu hakadaan gadaal marinka VPN ee sameeya NAT
Gelitaanka iyo PWD way guulaystaan, halka LIST iyo RETR ay joogsadaan marka NAT uu dib u qoro oo keliya cinwaannada. Eeg halka uu kaalmeeyaha FTP ku noqon karo iyo sida loo hagaajiyo habka dadban.
Gelitaanku wuu shaqeeyaa, PWD wuu shaqeeyaa, ka dibna LIST wuu hakadaa ilaa macmiilku ka quusto ama uu u gudbo hab kale oo xogta. Kala qaybintan ayaa calaamadda: isku xirka kontoroolka ee dekedda 21 wuu caafimaad qabaa, halka isku xirka xogta laga dhisayo cinwaan ama deked aan dhinaca kale gaari karin. Gadaal marinka VPN ee sidoo kale sameeya NAT, dembiilaha caadiga ah waa amarka FTP oo xamuulkiisu sheegayo cinwaan tunnel sida 10.8.0.6. Turjumaadda cinwaannada marnaba ma taabto qiimahaas.
Waxa soo socdaa waa halka qiimahaas uu ka yimaado, iyo sanduuqa loo ogol yahay inuu beddelo.
Waxa jabaa waa xamuulka, ma aha tunnelka
FTP waxa uu dhigtaa barta ugu dambeysa ee xogta gudaha qulqulka kontoroolka. Habka firfircoon macmiilku waxa uu diraa PORT isaga oo wata cinwaankiisa iyo dekeddiisa, serverkuna dib u wacaa lammaanahaas. Habka dadban serverku waxa uu ku jawaabaa 227 isaga oo wata lammaane, macmiilkuna wuxuu wacaa taas beddelkeeda.
Labada qaabba waxay qaadaan isla nooca hadal: ku xir cinwaankan, dekeddan. Qalabka dib u qora oo keliya cinwaannada IP iyo TCP waxa uu hadalka uga tago sida uu yahay, sidaas darteed dhinac ayaa sii wada inuu isku dayo inuu gaaro cinwaan ku jira oo keliya dhinaca kale ee tunnel. Isku xirka xogta wuu hakadaa ka dib marka isku xirka kontoroolka horey loogu dhawaaqay mid caafimaad qaba.
Saddex hab, saddex xamuul
Shaxda hoose waxay tusinaysaa dhinaca la sheegayo inuu waco, iyo waxa NAT ee dib u qora oo keliya cinwaannada uu sameyn karo arrintaas.
Cinwaanka ugu dambeeya u akhri sida waxa ugu horreeya ee guuldaraysta. Habka firfircoon serverka ayaa wacaya cinwaan gaar ah, habka dadban macmiilka, FTPS-na xamuulkiisu waa qoraal sir ah oo sanduuqa dhexe wax ka yar ayuu ku shaqeeyaa.
| Mode | Value in the control stream | Who dials whom | Header-only NAT leaves |
|---|---|---|---|
| Active (PORT) | client address and port | server dials the client | a server dialing an unreachable tunnel address |
| Passive (227) | server address and port | client dials the server | a client dialing an address it cannot route to |
| FTPS | the same values, inside TLS | as above | ciphertext, so no rewrite happens at all |
Kaalmeeyaha dhig meesha turjumaaddu ka dhacdo
Linux waxa dib u qora xamuulka sameeya kaalmeeyaha nf_conntrack_ftp. Waxa uu ilaaliyaa isku xirka kontoroolka, waxa uu bartaa dekedda la wada hadlay, waxa uu sameeyaa filasho qulqulka xogta, sanduuqa NAT-na waxa uu dib u qoraa cinwaanka iyo dekedda gudaha xamuulka. Waxa uu ku caawiyaa oo keliya qalabka turjuma cinwaanka macmiilka. In lagu raro macmiilka, ama router kaliya u gudbiya qulqulka, waxba kama beddelo kulanka.
Saddexdan amarro waxay tusinayaan haddii modulku jiro, haddii uu ku xiran yahay, iyo haddii filasho jirto inta kulan furan yahay:
modprobe nf_conntrack_ftp
lsmod | grep nf_conntrack_ftp
conntrack -L expect | grep ftp
Modulka rariddiisu ma aha isla mid la xirid. Kernel-yada laga bilaabo 4.7 waxay la yimaadaan net.netfilter.nf_conntrack_helper=0, sidaas darteed kaalmeeyahu waxa uu sugayaa sharci cad, tusaale ahaan iptables -t raw -A PREROUTING -p tcp --dport 21 -j CT --helper ftp. Haddii liiska filashadu madhan yahay inta wareejin la isku dayayo, waxa la hubinayaa isku xirka, ee ma aha modulka.
Habka dadban: u sheeg serverka waxa uu ku dhawaaqo
Habka dadban way fududahay in laga dhigo mid go'an sababtoo ah serverka waxa loo sheegi karaa waxa uu geliyo jawaabta 227. vsftpd waxaas waa pasv_address, oo la socda pasv_min_port iyo pasv_max_port; ProFTPD waxa uu isticmaalaa MasqueradeAddress iyo PassivePorts. Kuwaas marka hore dhig, sababtoo ah cinwaan si sax ah loo dhawaaqay waxa uu meesha ka saarayaa baahida in wax dib loo qoro dhinacaas.
Ka dib u ogolow iyada oo sax ah xadkaas dekedda inuu maro marinka, tusaale ahaan -A FORWARD -i tun0 -p tcp --dport 30000:30100 -j ACCEPT, si sharcigu uu u dhigma waxa serverku dhawaaqayo.
Labada goobo waa inay isku raacaan. Server lagu yidhi dhawaaq 30000-30100 halka marinku ogolaado 40000-40100 waxa uu ku guuldaraystaa si ugu yar faa'iido: wada hadalka kontoroolku wuu caafimaad u eg yahay oo isku xir kasta oo xogta ah wuu dhintaa. Isbarbar dhig tirooyinka ka hor inta aad wax kale xalliso.
Laba calaamad guuldarro, iyo waxa FTPS meesha ka saaro
Ku hakashada LIST waxay tilmaantaa isku xirka xogta ugu horreeya ee kulanka, halkaas oo dib u qora cinwaanka iyo filashada labaduba ay tahay inay shaqeeyaan. Ku hakashada RETR ka dib LIST shaqeeya waxay tilmaantaa wareejinta lafteeda, taas oo ah xadka dadban ama MTU tunnelka. Calaamaddaas labaad ma aha dhibaato xamuul, goobaha kaalmeeyahana ma hagaajin karaan.
FTP oo TLS dul socda waxa uu meesha ka saaraa xamuulka kaalmeeyahu akhriyo. Sanduuqa dhexe ma dib u qori karo qiimaha PORT ama PASV uu furi karin, sidaas darteed waxa hadhay wakiil TLS dhammeeya, server ku dhawaaqa cinwaan la gaari karo xad xaddidan gudihiis, ama borotokool wareejin kale.
Nidaam gaaban oo hubin
Ka shaqee calaamadda adigoo u baxaya banaanka. Xaqiiji in LIST guuldaraysan karo halka PWD guulaysto, qabso cinwaanka gudaha xamuulka PORT ama 227, oo weyddii qalabka turjuma cinwaankaas. Kaalmeeyaha halkaas ku xir, la soco liiska filashada inta hal wareejin ah, ka dib hagaaji habka dadban ee serverka oo xadka ku milicso sharciga marinka.
Guuldarada jidka xogta ka sooc midka wareejinta badan, sababtoo ah waxay kuu horseedaan goobo kala duwan.