اصولاً به دلایل متفاوتی که برخی از آنها را در ذیل مطرح میکنیم هکرها نیازمند تا از یک/چند سیستم قربانی(victim) استفاده نمایند:
-
حملات توزیع شده
-
عدم شناسایی حمله کنننده
-
داشتن یک مسیر درست از نظر routing ولی ناشناس
-
داشتن ترافیک بالا
-
بعد از اتمام هر کاری در سیستم target ، مثلاً انواع شناسایی، نیاز دارند تغییر مبدأ بدهند. پس نیازمندند که کلی سیستم قربانی داشته باشند.
با توجه به دلایل کوتاه شده و خلاصه بالا، یک هکر در اینترنت به دنبال Open Proxy یا Open Traffic میگردد تا آنها را قربانی نماید. این کار را در ۲۴ ساعت با روبات انجام می دهند.
مضرات داشتن یک Open Proxy:
-
IP شما در black list قرار میگیرد.
-
شما شریک هکر قرار میگیرید.
-
شما به عنوان مجرم تحت پیگرد قانونی قرار میگیرید.
-
و در آخر وجدان…!
فرض بر این است که شما یک squid دارید که یک Authentication را میخواهید بر روی آن برپا کنیم.
Squid از Authentication های زیر حمایت میکند:
-
NCSA
-
LDAP
-
MSNT
-
PAM
-
SMB
-
getpwam
-
SASL
-
NTLM
در این مطلب به راهاندازی NCSA میپردازیم. پس بدین منظور اقدامها زیر را انجام میدهیم:
نکته: درواقع برای Squid یک HTTP Authentication نصب میکنیم که در این پروتکل حمایت میشود.
نکته: به دلیل اینکه از Squid نسخه ۳ استفاده میکنیم، مسیرهای موجود شامل squid3 میباشند. اگر از squid 2 استفاده مینمایید، باید از همان squid خالی استفاده نمایید.
۱. تست NCSA
این خیلی مهم است که squid شما ncsa را حمایت کند. بدین منظور در هر دو سیستم RedHat-Base و Debian-Base باید از دستورات ذیل استفاده نمایید:
1 |
#dpkg -L squid3 | grep ncsa_auth |
یا
1 |
#dpkg -L squid3 | grep ncsa_auth |
نتیجه باید چنین باشد:
1 2 |
/usr/lib/squid3/basic_ncsa_auth /usr/share/man/man8/basic_ncsa_auth.8.gz |
۲. ایجاد passwdfile
برای اینکار نیاز به فرمان htpasswd داریم. در سیستمهای RedHat-Base در بسته httpd-utils و در سیستمهای Debian-Base در بسته apache2-utils وجود دارد:
1 |
#yum install httpd-utils |
یا
1 |
#apt-get install apache2-utils |
نکته: فرض بر این است که squid نصب است.
1 2 3 4 |
#htpasswd -c /etc/squid3/passwd mohsen New password: Re-type new password: Adding password for user mohsen |
نکته: نگران نوع encryption آن نباشید، به طور پیشفرض از MD5 استفاده مینماید.
حال permission آن را به صورت زیر تغییر دهید:
1 |
#chmod o+r /etc/squid3/passwd |
۳. پیکربندی squid.conf
نکته: اگر میخواهید یک config فایل را بدون خطوط comment و blank line ها بخوانید میتوانید از خط زیر استفاده نمایید:
1 |
#cat /etc/squid3/squid.conf |grep -v ^# |grep -v ^$ |
در grep اول هرچه comment بود ریخته شد و در grep دوم هرچه blank line بود را از بین بردیم.
در ابتدا خطوط زیر را به squid.conf اضافه میکنیم:
1 2 3 4 5 |
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwd auth_param basic children 5 auth_param basic realm Don't Close , I'm attacker auth_param basic credentialsttl 2 hours auth_param basic casesensitive off |
بررسی خطوط مذکور:
-
در خط اول نوع Authentication با مسیر lib آن و فایل passwd آن مشخص گردید.
-
در این خط پراسسهایی که احرازهویت را spawn میکنند مشخص میشوند.
-
در این خط یک پیغام برای کاربر ست میشود.
-
در این خط ماکسیمم تایمی که برای کار یک کاربر ست میشود را میتوان تغییر داد که بر روی ۲ ساعت گذاشتیم.
-
این گزینه فقط برروی نام کاربری کار میکند و هیچگونه ربطی به کلمه عبور ندارد.
۳. ACL های مرتبط:
باید دو خط ACL زیر را اضافه/تغییر داد:
1 2 |
acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users |
بررسی ACL ها :
-
خط اول کاربران ncsa_users را با ماژول proxy_auth که به آن میگوییم مورد نیاز است.
-
در خط بعد به همه آنان مجوز استفاده میدهیم.
اگر به عکس زیر دقت کنید، خواهید دید بعد از همه چیز برای وصل شدن به سرور چنین چیزی برای شما به نمایش درخواهد آمد:
نکته: اگر دقت کنید به localhost:81 وصل شدهام، زیرا در ابتدا به صورت یک proxy به یک برنامه داخلی وصل میشوم و سپس آن مرا به squid وصل میکند.