استفاده از IPTables لایه هفتم برای هدایت پورت برنامه
دوستان عزیز سلام ، من دارم یک برنامه برای وصل شدن به SFTP Server با C# مینویسم ( وصل شدن به پورت ۲۲ ) ، خب از هر برنامه ای میشه به پورت ۲۲ یا همون SSH وصل شد ( Filezilla , Winscp , putty and etc.... ) حالا من میخوام رو سرور تنظیماتی انجام بدم که فقط اتصال به این پورت از طریق برنامه ای که من نوشتم انجام بشه !! جستجو کردم و به این نتیجه رسیدم که لایه هفتم iptables بر روی نرم افزارها محدودیت ایجاد میکنه ، ممنون میشم دوستانی که اطلاعات تو این زمینه دارن منو برای رسیدن به هدفم کمک کنند ، مرسی
2 پاسخ
سلام
خدمت دوستان عرض کنم که ip tables ماژول های مختلفی داره که با استفاده از ماژول استرینگ میتوانیم بعضی مانورها رو روی لایه هفت بدیم مثل کانتنت فیلترینگ توی میکروتیک
مثال
- iptables -A INPUT -m string --string 'xyz' -j DROP
- iptables -A OUTPUT -m string --string 'xyz' -j DROP
که عبارت xyz رو توی بستهها برامون فیلتر میکنه
دوست عزیز IPTABLES یک فایروال لایه سومی هست و با لایه هفتم کار نمی کنه اما کاری که می کنه این هست که میتونه پورت ها رو هدایت کنه یا Port Forwarding داشته باشه ، پیشنهاد می کنم برای اینکه یک نرم افزار خاص رو در iptables تعریف کنید اول برای نرم افزارتون برای امنیت بیشتر یک پورت خاص تعریف کنید و این پورت خاص رو روی iptables به سمت پورت 22 سرور مورد نظر هدایت کنید ، به این کار Port Redirection میگن که Syntax اش به شکل زیر هست :
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $srcPortNumber -j REDIRECT --to-port $dstPortNumbe
در Rule بالا می تونید مثلا کاری کنید که نرم افزار شما روی پورت 4444 کار کنه که میشه srcPortNumber و هدایت بشه به سمت 22 که میشه dstPortNumber در نهایت Rule شما چیزی شبیه به زیر میشه :
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport $4444 -j REDIRECT --to-port $22
ITPRO باشید