ولې tcpdump د IPsec روښانه متن یوازې په یوه لوري ښیې
دا نه ورته والی د نیولو د نقطې یوه پایله ده، نه مات شوی ځواب لار۔ دلته وګورئ چې په Linux IPsec ګیټوې کې د دننه او بهر ترافیک چېرې ولټوئ۔
تاسو د یوه Linux IPsec ګیټوې بهرني انټرفیس کې tcpdump چلوئ او په یو وخت کې دوه شیان وینئ: راتلونکي ESP فریمونه او، سمدلاسه وروسته له دوی، ډیکریپټ شوي دننه پاکټونه۔ د وتلو په لوري یوازې ESP ښکاري۔ طبیعي پایله دا ده چې ځوابونه نه لیږل کیږي یا IPsec یو لوري کوډ کوي او بل هیروي۔ دواړه سم نه دي۔
هغه څه چې تاسو یې ګورئ د نیولو نقطه ده۔ کرنل وتونکي پاکټونه بدلوي مخکې له دې چې د وسیلې لېږد لار هغوی پاکټ ساکټ ته وسپاري، نو ساکټ هېڅکله وتونکې دنننې بڼه نه ویني۔ د ننوتلو پر مهال پاکټ لومړی د ESP په توګه نیول کیږي او ډیکپسول شوې کاپي هغه وخت ښکاري چې بیا سټیک ته ننوځي۔ ورته ترافیک، دوه بېلې کتنې کړکۍ۔
د نیولو نقطه ټاکي چې تاسو څه وینئ
په عادي انټرفیس کې AF_PACKET ساکټ د وسیلې طبقې ته نږدې کېني۔ هغه پاکټونه چې کوربه پرېږدي لومړی د IPsec د وتلو پروسس څخه تېریږي، کوم چې دننه TCP برخه ESP یا UDP-4500 ډیټاګرام ته بدلوي، او بیا هغې طبقې ته رسي۔ راتلونکي پاکټونه هغه وخت چې له تار څخه راځي، لا هم کوډ شوي، ساکټ ته کاپي کیږي، او ډیکریپټ شوې پایله وروسته ښکاري کله چې سټیک هغه په سیمه ییز ډول سپاري یا بلې خوا ته لیږي۔
دا ترتیب نه ورته والی په بشپړه توګه تشریح کوي۔ دا د لوري، پالیسي یا د اپلیکیشن د چلند په اړه ثبوت نه دی، او داسې ګڼل یې خلک د هغه ځواب شاته منډې وهي چې ټول وخت سم لیږل شوی و۔ دا یو له هغو لږو شبکې معماوو څخه دی چې بې نظمي شبکه نه، وسیله جوړوي۔
فلټر له هغې طبقې سره سم کړئ چې منظور یې لرئ
د tcp port 443 په څېر څرګندونه دننه TCP اړیکه ټاکي۔ د وتلو په لوري هغه اړیکه تر هغه دمه چې ساکټ څخه پوښتنه کیږي لا دمخه ESP شوې ده، نو فلټر له هېڅ شي سره نه ځي۔ که غواړئ خوندي ترافیک وشمېرئ، پرځای یې د بهرنې بڼې له مخې فلټر کړئ: د خام ESP لپاره پروتوکول 50، یا کله چې NAT تېرېدل کارول کیږي د UDP پورټ 4500۔ دواړه فلټرونه د پاکټونو داسې شمېر ورکوي چې د دوو خواوو ترمنځ پرتله کېدای شي، او معمولاً د شمېرلو دلیل هم همدا وي۔ له دوی څخه هیڅ یو نه وایي چې دنننې غوښتنې ته ځواب ورکړل شو که نه۔
د UDP 4500 شمېر د ESP پاکټونو شمېر مه ګڼئ۔ IKE هم هغه پورټ د NAT-T ژوندي ساتلو پیغامونو او د کوډ شوي تبادلې لپاره کاروي، نو شمېر هغه ترافیک هم لري چې هغه معلومات نه دي چې تاسو یې اندازه کول غوښتل۔ په UDP 500 باندې لومړنۍ IKE تبادله خپل فلټر ته اړتیا لري که پوښتنه همدا وي۔ هغه شمېر چې کنټرول ترافیک له معلوماتو سره ګډوي هر اټکل د بینډوېډ په نامعلومه اندازه غلط کوي۔ جلا شمېرنې جلا پوښتنو ته ځواب وایي۔
فلټر د هغې پوښتنې ترڅنګ ولیکئ چې ځواب یې ورکوي۔ «څومره ESP له بکس څخه ووت» او «آیا د وېب غوښتنه له بکس څخه ووتله» د بېلو فلټرونو سره بېلې اندازهې دي، او یوه نیونه دواړه نه شي فیصله کولی۔ پرته له دې یادښت، دوه کسان به داسې شمېرې پرتله کړي چې هېڅکله یې یو شی نه دی شمېرلی۔
د بدلون مخکې کتنه وکړئ، نه وروسته
که تاسو ته د وتلو روښانه متن لیدل اړین وي، د کتنې نقطه وړاندې، د IPsec د وتلو پروسس څخه مخکې یې کړئ۔ NFLOG تاسو ته د Netfilter یو کړنګ ورکوي چېرې چې یو قاعده کولی شي ټاکل شوي پاکټونه د کارن ځای ساکټ ته کاپي کړي، کوم چې tcpdump لوستلای شي۔ strongSwan د ترافیک د تخلیې لارښود همدا تګلاره په همدې دلیل مستند کوي۔
د پالیسي سمون قاعده یوازې هغه ترافیک ته محدودوي چې د تونل داخلېدو په حال کې دی۔ -m policy --pol ipsec --dir out هماغه شی دی چې قاعده ځانګړې کوي، پرځای د دې چې هره هغه پاکټ ولیکل شي چې بکس یې لیږي۔ بیا د لاګ ګروپ په محدودې نیونې سره ولولئ: لږ شمېر سنیپشاټونه او د اندازې حد د دې مخه نیسي چې تشخیص د ترافیک آرشیف شي۔ محدوده نیونه هم اسانه ده چې یو بیاکتونکي ته وسپارل شي، پرته له دې چې نامربوطه بار ځان سره کش کړئ۔ شمېر مخکې له پیل ټاکئ، نه وروسته له دې چې وګورئ څومره راغی۔
iptables -I OUTPUT 1 -d 10.83.0.44/32 -p tcp --dport 8443 -m policy --pol ipsec --dir out -j NFLOG --nflog-group 5
tcpdump -ni nflog:5 -s 128 -c 20 'host 10.83.0.44 and tcp port 8443'د بهیر سره سم کړنګ وټاکئ۔ OUTPUT هغه ترافیک پوښي چې ګیټوې پخپله جوړوي؛ د LAN کارن څخه تېرېدل پرځای یې د FORWARD زنځیر څخه تېریږي، او په OUTPUT باندې قاعده به هېڅکله هغه ونه ویني۔ پورتنۍ پته او پورټ د تصویب شوې ازموینې منزل لپاره ځای نیوونکي دي۔
کتنه څه ثبوي
NFLOG د لاګ کولو هدف دی، نه د منلو پرېکړه۔ هغه پاکټ چې هلته ښکاري ښیي چې کړنګ ته رسېدلی او له قاعدې سره سمون لري۔ دا نه ښیي چې وروسته فلټر هغه ته اجازه ورکړه، وسیله هغه ولیږه، یا بل لوري څه ترلاسه کړل۔
تش لاګ هم هماغسې مبهم دی۔ د قاعدې د پاکټونو شمېرونکی وګورئ، لوری تایید کړئ، تایید کړئ چې بهیر واقعاً له یوې IPsec پالیسي سره سمون درلود، او منزل تایید کړئ۔ یوازې په دواړو خواوو کې سمون لرونکی شمېرونکی کتنه پایلې ته اړوي۔ بیا د هماغې کنټرول شوې هڅې لپاره په دواړو خواوو کې د امنیتي ټولنې شمېرونکي پرتله کړئ، ځکه چې SA شمېرونکي د دې معتبره ریکارډ دی چې څه ساتل شوي او لیږل شوي۔
یو بل تله: «روښانه متن» په دې زمینه کې د IPsec د کوډ کولو طبقې څخه بهر مانا لري۔ دننه HTTPS ناسته لا هم خپل TLS لري۔ د ډیکپسول شوي پاکټ نیول د اپلیکیشن TLS نه خلاصوي، او هلته د لوستلو وړ HTTP لیدل دا مانا لري چې اپلیکیشن له سره HTTPS نه کاراوه۔
پاک کړئ او دواړه سرونه پرتله کړئ
کټ مټ هغه قاعده چې تاسو دننه کړې وه، د هغې د مالک له مخې، سمدلاسه وروسته له دې چې کتنه پای ته ورسېده لرې کړئ۔ د لاګ کولو قاعده پاتې کول په هر سمون لرونکي پاکټ CPU لګښت کوي او په خاموشۍ د معلوماتو د ساتنې ستونزه جوړوي۔ د هغه زنځیر د تشولو پرځای چې ستاسو نه دی، قاعده د -D سره تکرار کړئ او ړنګه یې کړئ۔
iptables -D OUTPUT -d 10.83.0.44/32 -p tcp --dport 8443 -m policy --pol ipsec --dir out -j NFLOG --nflog-group 5که ځای پرځای کول د کارن ځای IPsec، XFRM انټرفیس یا د سختو وسایلو آفلود کاروي، د کتنې نقطې خوځیږي او دا لارښوونه کېدای شي هېڅ ونه کارېږي۔ د libipsec سره د دننه ترافیک د کتنې مستنده ځای TUN وسیله ده۔ لومړی لار وټاکئ، بیا هغه نقطه وټاکئ چې پوښتنې ته ځواب وایي، او تمه وکړئ چې دواړه لوري یوازې هغه وخت بېل ښکاري چې تاسو د بدلون ناسم لوري ته ګورئ۔