نحوه نصب و کانفیگ Squid Proxy در اوبونتو ۲۰٫۰۴

نحوه نصب و کانفیگ Squid Proxy در اوبونتو ۲۰٫۰۴

سعیده مهاجری

Squid یک proxy پنهان کامل با پشتیبانی از پروتکل های شبکه معروف مانند HTTP ، HTTPS ، FTP و موارد دیگر است. می تواند با ذخیره درخواستهای مکرر ، فیلتر کردن ترافیک وب و دسترسی به محتوای محدود شده جغرافیایی ، برای بهبود عملکرد سرور وب استفاده شود.در این مقاله نحوه نصب و کانفیگ Squid Proxy در اوبونتو ۲۰٫۰۴ و کانفیگ مرورگرهای وب Firefox و Google Chrome برای استفاده از آن توضیح خواهیم داد.

نصب Squid در اوبونتو :

squid package در مخازن استاندارد اوبونتو ۲۰٫۰۴ موجود است. برای نصب آن ، دستورات زیر را به عنوان sudo user اجرا کنید:

sudo apt updatesudo apt install squid

پس از اتمام نصب ، Squid service به طور خودکار شروع می شود. برای تأیید آن ، وضعیت سرویس را بررسی کنید:

sudo systemctl status squid

خروجی به شکل زیر خواهد بود:

squid.service - Squid Web Proxy Server
     Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago
       Docs: man:squid(8)

کانفیگ Squid :

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

قرار گیرند.

قبل از انجام هرگونه تغییر ، توصیه می شود از فایل کانفیگ اصلی ، back up تهیه کنید:

sudo cp /etc/squid/squid.conf{,.orginal}

برای شروع کانفیگ نمونه squid ، فایل را در ویرایشگر متن خود باز کنید:

sudo nano /etc/squid/squid.conf

به صورت پیش فرض ، squid قرار است از روی پورت ۳۱۲۸ تمام interfaces شبکه سرور پیروی کنید.

اگر می خواهید پورت را تغییر دهید و یک listening interface تنظیم کنید ، line را با http_port شروع کرده و آدرس interface IP و پورت جدید را مشخص کنید. اگر هیچ interface مشخص نشده باشد ، Squid از همه interfaces پیروی میکند .

 Squid normally listens to port 3128
http_port IP_ADDR:PORT

اجرای Squid در همه interfaces  و درگاه پیش فرض برای اکثر کاربران مناسب است.

Squid به شما امکان می دهد چگونگی دسترسی مشتری به منابع وب را با استفاده از Access Control Lists (ACL) کنترل کنید. به طور پیش فرض ، دسترسی فقط از طریق localhost مجاز است.

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

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

۱۹۲٫۱۶۸٫۳۳٫۱
# 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 مهم است. مطمئن شوید که line را قبل از http_access deny all اضافه کرده اید.

دستورالعمل http_access به روشی مشابه قوانین فایروال کار می کند. Squid قوانین را از بالا به پایین می خواند ، و هنگامی که یک rule مطابقت دارد ، rules below پردازش نمی شوند.

هر زمان که در فایل کانفیگ  تغییراتی ایجاد کردید ، برای اعمال تغییرات باید سرویس Squid را مجدداً راه اندازی کنید:

sudo systemctl restart squid

احراز هویت Squid :

اگر محدود کردن دسترسی بر اساس IP برای مورد استفاده شما مفید نیست ، می توانید squid را به گونه ای کانفیگ کنید که برای تأیید اعتبار کاربران از یک back-end استفاده کند. Squid از Samba ، LDAP و HTTP basic  پشتیبانی می کند.

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

برای تولید رمز عبور رمزگذاری شده ، از ابزار openssl استفاده کنید. دستور زیر USERNAME را ضمیمه می کند:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

به عنوان مثال ، برای ایجاد یک کاربر “josh” با رمز عبور “P @ ssvv0rT” ، دستور زیر باید اجرا کنید:

printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6

مرحله بعدی فعال کردن احراز هویت اساسی HTTP است و شامل فایل حاوی اطلاعات کاربری ، کاربر در فایل کانفیگ squid است.

کانفیگ اصلی را باز کرده و موارد زیر را اضافه کنید:

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 جدید به نام تأیید شده هستند ، و آخرین خط برجسته اجازه دسترسی به کاربران تأیید شده را می دهد.

سرویس Squid را مجدداً راه اندازی کنید:

sudo systemctl restart squid

کانفیگ firewall :

برای باز کردن درگاه های Squid ، نمایه UFW “Squid” را فعال کنید:

sudo ufw allow 'Squid'

اگر Squid روی پورت دیگری غیر پیش فرض در حال اجرا است ، به عنوان مثال ۸۸۸۸ ، می توانید در آن پورت با sudo ufw allow 8888 / tcp اجازه ترافیک را بدهید.

کانفیگ مرورگر خود برای استفاده از Proxy :

اکنون که Squid را راه اندازی کرده اید ، آخرین مرحله کانفیگ مرورگر مورد نظر خود برای استفاده از آن است.

Firefox :

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

  1. در گوشه سمت راست بالا ، روی نماد hamburger کلیک کنید تا منوی Firefox باز شود.
  2. روی پیوند ferences Preferences کلیک کنید.
  3. به پایین به قسمت تنظیمات شبکه بروید و روی دکمه Settings کلیک کنید.
  4. یک پنجره جدید باز خواهد شد.
  • دکمه radio کانفیگ Manual proxy را انتخاب کنید.
  • آدرس IP Squid server خود را در قسمت HTTP Host و ۳۱۲۸ را در قسمت Port وارد کنید.
  • کادر استفاده از این proxy سرور را برای همه پروتکل ها انتخاب کنید.
  • برای ذخیره تنظیمات ، روی دکمه OK کلیک کنید.

نحوه نصب و کانفیگ Squid Proxy در اوبونتو 20.04

در این مرحله ، Firefox شما کانفیگ شده است و می توانید از طریق Squid proxy در اینترنت مرور کنید. برای تأیید آن ، google.com را باز کنید ، “What is my IP” را تایپ کنید و باید آدرس IP سرور Squid خود را ببینید.

برای بازگشت به تنظیمات پیش فرض ، به تنظیمات شبکه بروید ، دکمه Use system proxy settings radio را انتخاب کنید و تنظیمات را ذخیره کنید.

چندین plugins وجود دارد که می توانند به شما در تنظیمات Firefox’s proxy مانند FoxyProxy نیز کمک کنند.

Google Chrome :

Google Chrome از تنظیمات پیش فرض proxy سیستم استفاده می کند. به جای تغییر تنظیمات proxy سیستم عامل ، می توانید از یک plugins مانند SwitchyOmega استفاده کنید یا مرورگر وب Chrome را از command line شروع کنید.

برای راه اندازی Chrome با استفاده از نمایه جدید و اتصال به سرور Squid ، از دستور زیر استفاده کنید:

Linux :

/usr/bin/google-chrome \
    --user-data-dir="$HOME/proxy-profile" \
    --proxy-server="http://SQUID_IP:3128"

macOS  :

"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
    --user-data-dir="$HOME/proxy-profile" \
    --proxy-server="http://SQUID_IP:3128"

Windows :

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
    --user-data-dir="%USERPROFILE%\proxy-profile" ^
    --proxy-server="http://SQUID_IP:3128"

در صورت عدم وجود مشخصات ، به صورت خودکار ایجاد می شود. به این ترتیب می توانید همزمان چندین نمونه از Chrome را اجرا کنید.

برای تأیید اینکه سرور proxy به درستی کار می کند ، google.com را باز کنید و “What is my IP” را تایپ کنید. IP نشان داده شده در مرورگر شما باید آدرس IP سرور شما باشد.

جمع بندی :

Squid یکی از محبوب ترین سرورهای proxy است. Squid سرعت وب سرور را بهبود می بخشد و می تواند به شما کمک کند دسترسی کاربر به اینترنت را محدود کنید.ما به شما نحوه نصب و کانفیگ Squid در اوبونتو ۲۰٫۰۴ و راه اندازی مرورگر خود برای استفاده از آن را نشان دادیم.

امیدواریم مطالب مورد پسند بوده باشد.
ما را در شتابان هاست همراهی کنید.

برچسب ها: دستورات لینوکس