• ایرانشل
  • وبلاگ
    • مفاهیم امنیت شبکه
    • معرفی راهکارها و سرویس‌های امنیتی
    • آموزش‌‌ راهکارهای امنیت شبکه
    • تهدیدات امنیتی
  • اخبار
  • دوره‌های امنیت
    • مسیرهای شغلی امنیت سایبری

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
ایرانشل
  • ایرانشل
  • وبلاگ
    • مفاهیم امنیت شبکه
    • معرفی راهکارها و سرویس‌های امنیتی
    • آموزش‌‌ راهکارهای امنیت شبکه
    • تهدیدات امنیتی
  • اخبار
  • دوره‌های امنیت
    • مسیرهای شغلی امنیت سایبری
ورود و ثبت نام

وبلاگ

وبلاگ > آموزش‌‌ راهکارهای امنیت شبکه > نحوه نصب و پیکربندی Squid Proxy در Ubuntu 20.04

نحوه نصب و پیکربندی Squid Proxy در Ubuntu 20.04

آموزش‌‌ راهکارهای امنیت شبکه
ارسال شده توسط عزیزه اسعدی
26 نوامبر 2020
2.77k بازدید

پروکسی Squid

Squid یک Proxy chashing تقریبا کامل با امکان پشتیبانی از پروتکل‌های معروف شبکه ازجمله HTTP HTTPS ،FTP می‌باشد. Squid می‌تواند با ذخیره کردن درخواست‌های تکراری، فیلتر کردن ترافیک‌های وب و ایجاد محدودیت جغرافیایی برای دسترسی به محتوای عملکرد وب سرور را بهبود بخشد.

در این آموزش نحوه راه‌ اندازی Squid Proxy بر روی Ubunto 20.04 و پیکربندی مرورگرهای گوگل کروم و فایرفاکس برای استفاده از آن را توضیح می‌دهیم.

نصب Squid در Ubuntu

پکیج Squid به صورت پیشفرض در مخازن Ubunto 20.04 وجود دارد. برای نصب آن کافیست دستورات زیر را اجرا کنیم.

[email protected]:~$ sudo apt update

[email protected]:~$ sudo apt install squid

پس از اتمام نصب، سرویس Squid به طور اتوماتیک فعال می‌شود. برای بررسی وضعیت سرویس آن از دستور زیر استفاده می‌کنیم.

[email protected]:~$ sudo systemctl status squid

Squid Service Status

انجام تنظیمات Squid

تنظیمات سرویس Squid در مسیر etc/squid/squid.conf/ قرار دارد. این فایل شامل توضیحاتی است که چگونگی کارکرد هر تنطیم را توضیح می‌دهد. برای اینکه در بروز رسانی‌های بعدی این تنظیمات بازنویسی نشوند می‌توانیم تنظیمات خود را در فایل‌های جداگانه قرار انجام داده و با استفاده از دستورالعمل “include” در فایل اصلی قرار دهیم.

تهیه Backup از تنظیمات

قبل از هرگونه تغییری پیشنهاد می‌کنیم از فایل اصلی تنطیمات یک back up تهیه کنید.

[email protected]:~$ sudo cp /etc/squid/squid.conf{,.orginal}

برای شروع انجام تنظیمات Squid، فایل تنظیمات را با ویرایشگر متنی باز می‌کنیم.

[email protected]:~$ sudo nano /etc/squid/squid.conf

Squid به صورت پیش فرض از پورت 3128 TCP و تمامی اینترفیس‌های شبکه سرور برای پذیرش ارتباطات وب استفاده می‌کند. برای تغییر پورت و اینترفیسی که Squid از آنها استفاده می‌کند کافیست، خطی که با http_port شروع می‌شود را پیدا و پورت و آدرس IP اینترفیس مورد نظر را اضافه نماییم. اگر در اینجا هیج اینترفیسی مشخص نشده باشد، به صورت پیشفرض Squid به همه اینترفیس‌ها گوش خواهد داد.

http_port IP_ADDR:PORT

اجرای پیش فرض Squid بر روی همه اینترفیس‌ها و پورت 3128 اکثرا برای تعداد زیادی از کاربران مناسب است.

Squid به ما این امکان را می‌دهد تا چگونگی دسترسی کاربران به منابع وب را با استفاده از Access Control Lists کنترل کنیم. به طور پیش فرض دسترسی به منابع وب فقط برای local host مجاز است.

192.168.33.1
All other allowed IPs

اگر همه کلاینت‌هایی که از proxy استفاده می‌کنند، دارای IP استاتیک باشند. ساده‌ترین گزینه برای محدود کردن دسترسی آنها استفاده از ACL می‌باشد. در غیر این صورت می‌توانیم Squid را طوری تنظیم کنیم که برای صدور مجوز برای کلایت‌ها از احراز هویت استفاده کند.

ایجاد فایل ACL مجزا

به جای افزودن آدرس‌های IP به فایل تنظیمات اصلی، می‌توانیم یک فایل اختصاصی برای نگهداری IP‌های مجاز ایجاد کنیم.

[email protected]:~$ sudo nano /etc/squid/allowed_ips.txt

192.168.33.1
All other allowed IPs

پس از اتمام، فایل تنظیمات اصلی را باز می‌کنیم و یک ACL جدید با نام allow_ips ایجادمی‌کنیم. در ادامه و با استفاده از دستور http_access مجوز دسترسی را برای ACL تنظیم می‌کنیم.

…
#acl allowed_ips src “/etc/squid/allowed_ips.txt”
…
#http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
#And finally deny all other access to this proxy
http_access deny all

ترتیب برای دستورات http_access مهم است. بایستی همه مجوزها قبل از خط http_access deny all نوشته شوند.

دستورالعمل http_access در عمل مانند قوانین فایروال می‌کند. یعنی در هنگام چک کرده دستورات، اسکوید آنها را از بالا به پایین می‌خواند و اگر با قانونی منطبق شود، دیگر دستورات زیرین را پردازش نمی‌کند.

بعد ازانجام هرگونه تغییری در فایل تنطیمات، برای اعمال تغییرات بایستی سرویس پروکسی را ریستارت کنیم.

احراز هویت Squid

اگر محدودیت دسترسی بر اساس IP، در برخی سناریوهای استفاده، کاربردی نباشد، می‌توانیم Squid را به گونه‌ای تنظیم کنیم که از یک راهکار back-end برای احراز هویت کاربران استفاده کند. در حال حاضر Squid از مکانیزیم‌های احراز هویت LDAP و http basic auth و Samba پشتیبانی می‌کند.

ما در این راهنما از basic auth که یک روش احراز هویت ساده و مبتنی بر پروتکل HTTP می‌باشد، استفاده می کنیم.

برای ایجاد یک پسورد رمزنگاری شده توصیه می‌شود از ابزار openssl برای این کار استفاده کنیم. دستور زیر نام کاربری و پسورد رمزشده را به فایل /etc/squid/htpasswd اضافه می‌کند.

[email protected]:~$ sudo printf “USERNAME:$(openssl passwd -crypt PASSWORD)\n” | sudo tee -a /etc/squid/htpasswd

برای مثال برای ایجاد کاربر “admin” با رمز عبور “admin” دستور زیر را اجرا می‌کنیم.

[email protected]:~$ sudo printf “admin:$(openssl passwd -crypt admin)\n” | sudo tee -a /etc/squid/htpasswd

Output
admin:pHeV9kKFEV4fU

فعال کردن احراز هویت HTTP Basic Auth

برای فعال سازی HTTP Basic Auth تنظیمات زیر را در فایل اصلی اضافه می‌کنیم.

[email protected]:~$ sudo nano /etc/squid/squid.conf

#…
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED

#…
#http_access allow localnet
http_access allow localhost
http_access allow authenticated
#And finally deny all other access to this proxy
http_access deny all

در سه خط برجسته اول یک ACL جدید به اسم authenticated و خط برجسته آخر یک مجوز دسترسی برای کاربران احراز هویت شده ایجاد می‌کنیم.

برای اعمال تنظیمات، سرویس مربوط به پروکسی را مجدداً ریستارت ‌می‌کنیم.

[email protected]:~$ sudo systemctl restart squid

تنظیمات فایروال

برای باز کردن پورت‌های سرور پروکسی بر روی فایروال کافیست پروفایل Squid را با استفاده از دستور زیر بر روی ufw فعال کنیم.

[email protected]:~$ sudo ufw allow ‘Squid”

اگر Squid از پورت غیر پیش فرض مانند 8888 استفاده کند، می‌توانیم با استفاده از دستور زیر پورت مورد نظر را باز کنیم.

[email protected]:~$ sudo ufw allow 8888/tcp

تنظیمات مرورگر برای استفاده از پراکسی

بعد از نصب Squid آخرین مرحله انجام تنظیمات مورد نیاز بر روی مرورگرهای مختلف برای استفاده از پروکسی می‌باشد.

مرورگر فایرفاکس

مراحل زیر برای windows ،macOS و Linux یکسان است.

  • در گوشه سمت راست بالا، روی آیکون Menu کلیک می‌کنیم.
  • در منوی باز شده option را زده و به قسمت Network می‌رویم.
  • دکمه setting را می زنیم و در پنجره باز شده دکمه تنظیمات دستی پراکسی را انتخاب می‌کنیم.

آدرس IP سرور پروکسی را در قسمت HTTP Host و 3128 را در قسمت Port وارد می‌کنیم و در ادامه چک باکس Use this proxy server for all protocols را می‌زنیم.

Iranshell Proxcy Setting

برای ذخیره تنظیمات، روی دکمه OK کلیک می‌کنیم.

در این مرحله تنطیمات مربوط به پروکسی بر روی فایرفاکس تمام شده است و ما می‌توانیم با استفاده از پروکسی در اینترنت یک چرخی بزنیم. برای اطمینان از عملکرد صحیح پروکسی، در آدرس google.com عبارت “what is my ip” را جستجو می‌کنیم. در اینجا google باید IP سرور پروکسی به عنوان IP ما تشخیص دهد.

برای بازگشت به تنظیمات پیشفرض کافیست از قسمت network setting گزینه Use system proxy settings را انتخاب و تنظیمات را ذخیره کنیم.

افزونه‌های زیادی مانند FoxyProxy وجود دارند که می‌توانند به ما در انجام تنظیمات پروکسی فایرفاکس کمک کنند.

مروگر گوگل کروم

گوگل کروم به صورت پیشفرض از تنظیمات پروکسی سیستم عامل به عنوان تنطیمات پروکسی خود استفاده می‌کند. برای راحتی کار می‌توانیم به جای تغییر تنظیمات پروکسی سیستم عامل از یک افزونه مانند SwitchyOmega یا اجرای مرورگر کروم از خط فرمان تنظیمات مربوط به پروکسی را بر روی آن انجام دهیم.

برای راه ‌اندازی مروگر کروم با استفاده از پروفایل جدید و اتصال به سرور پروکسی، از دستور زیر استفاده می‌کنیم.

دستور قابل اجرا Linux

[email protected]:~$ /usr/bin/google-chrome \
–user-data-dir=”$HOME/proxy-profile” \
–proxy-server=”http://Iranshell:3128″

دستور قابل اجرا در macOS

[email protected]:~$ “/Applications/Google Chrome.app/Contents/MacOS/Google Chrome” \
–user-data-dir=”$HOME/proxy-profile” \
–proxy-server=”http://Iranshell:3128″

دستور قابل اجرا در windows

[email protected]:~$ “C:\Program Files (x86)\Google\Chrome\Application\chrome.exe”^
–user-data-dir=”%USERPROFILE%\proxy-profile”^
–proxy-server=”http://Iranshell:3128″

با اجرای این دستورات پروفایل مربوط به مروگر کروم شامل تنطیمات پروکسی به صورت اتوماتیک ایجاد می‌شود. به این ترتیب می‌توانیم همزمان چندین مروگر کروم با تنظیمات متفاوت اجرا کنیم.

برای تایید اینکه سرور پروکسی به درستی کار می‌کند، به آدرس google.com رفته و عبارت “What is my ip” جستجو می‌کنیم. بایستی IP نشان داده شده در مرورگر آدرس سرور پروکسی باشد.

اشتراک گذاری:
برچسب ها: Squidپروکسی

دیدگاهتان را بنویسید لغو پاسخ

درباره ایرانشل

تیم ایرانشل با این هدف تشکیل شده است‌ تا بتوانند با کمک شما همراهان عزیز اقدامات مثبتی در جهت شفاف‌سازی نیازمندی‌های امنیتی، معرفی سرویس‌ها و راهکارهای امنیتی انجام دهد.

عضویت در خبرنامه

اطلاعات تماس
  • تهران - خیابان شریعتی - بالاتر از پل سیدخندان
  • 09125162976
  • [email protected]
شبکه‌های اجتماعی
کلیه حقوق این وب سایت متعلق به ایرانشل می‌باشد.
جستجو

جستجو با زدن Enter و بستن با زدن ESC