آموزش نصب و پیکربندی Squid Proxy در اوبونتو 18.04
Squid یک پروکسی است که از پروتکل های شبکه محبوب مانند HTTP، HTTPS، FTP و موارد دیگر پشتیبانی می کند. اکثر اسکوئید ها برای بهبود عملکرد وب سرور با استفاده از درخواست های مکرر، فیلتر کردن ترافیک وب و دسترسی به محتوای جغرافیایی محدود استفاده می شود.
این آموزش به شما در فرایند راه اندازی یک Squid Proxy در اوبونتو 18.04 می پردازد.
نصب Squid در اوبونتو
بسته Squid در مخزن پیش فرض اوبونتو 18.04 گنجانده شده است. برای نصب آن دستور زیر را به عنوان sudo user وارد کنید:
sudo apt update
sudo apt install squid
پس از نصب کامل، سرویس Squid به طور خودکار فعال خواهد شد.
برای تأیید اینکه نصب و راه اندازی موفق بوده و سرویس Squid در حال اجرا است، دستور زیر را تایپ کنید که وضعیت سرویس را نشان میدهد:
sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
Loaded: loaded (/etc/init.d/squid; generated)
Active: active (running) since Thu 2019-06-27 11:45:17 UTC
...
پیکربندی Squid
Squid را می توان با ویرایش فایل /etc/squid/squid.conf
پیکربندی کنید. شما همچنین می توانید از فایل های جدا شده با گزینه های پیکربندی استفاده کنید که می تواند با استفاده از دستور “include” شامل شود.
فایل پیکربندی شامل نظراتی است که هر کدام از گزینه های تنظیم را توضیح می دهد.
قبل از هر گونه تغییر، از فایل پیکربندی اولیه پشتیبان گیری کنید:
sudo cp /etc/squid/squid.conf{,.orginal}
برای ویرایش فایل، آن را در ویرایشگر متن خود باز کنید:
sudo nano /etc/squid/squid.conf
به طور پیش فرض، Squid پیکربندی شده است که در پورت3128
در تمام اینترفیس های شبکه فعال باشد.
اگر می خواهید پورت را تغییر دهید ، خط را با http_port
وارد کنید و آدرس IP و پورت جدید را مشخص کنید. اگر هیچ اینترفیسی مشخص نشده باشد، Squid در تمام شبکه ها فعال می شود.
/etc/squid/squid.conf
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
در حال اجرا Squid در تمام اینترفیس ها و در پورت پیش فرض باید برای اکثر کاربران خوب باشد.
گزینه دیگری که جالب است، forwarded_for
است. به طور پیش فرض، آن فعال است، به این معنی است که خارج از جعبه Squid عمل می کند مانند یک پروکسی سازگار RFC و اضافه کردن آدرس IP مشتری در هدر X-Forwarded-For
است. اگر می خواهید تنظیم یک پروکسی transparent
را رد کنید و این دستور را به transparent
تغییر دهید.
/etc/squid/squid.conf
#Default:
# forwarded_for on
در Squid، شما می توانید چگونگی دسترسی مشتریان به منابع وب را با استفاده از فهرست کنترل دسترسی (ACL ها) کنترل کنید.
توجه:
به طور پیش فرض، Squid فقط اجازه دسترسی از localhost را می دهد.
اگر تمام مشتریانی که از پروکسی استفاده می کنند دارای یک آدرس IP ثابت هستند، شما می توانید یک ACL ایجاد کنید که شامل IP های مجاز می شود.
به جای افزودن آدرس های IP در پرونده پیکربندی اصلی، یک فایل اختصاصی اختصاص داده می شود که IP ها را نگه می دارد:
/etc/squid/allowed_ips.txt
192.168.33.1
# All other allowed IPs
پس از انجام باز کردن فایل اصلی پیکربندی و ایجاد یک ACL جدید به نام allowed_ips
(اولین خط برجسته) و اجازه دسترسی به آن ACL با استفاده از دستور http_access
(دومین خط برجسته) را باز کنید:
/etc/squid/squid.conf
# ...
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 قوانین را از بالا به پایین می خواند و هنگامی که یک قاعده مطابق با قوانین نباشد ، پردازش نمی شود.
هر بار که شما تغییرات را در فایل پیکربندی انجام می دهید، باید سرویس Squid را دوباره راه اندازی کنید تا تغییرات اعمال شود:
sudo systemctl restart squid
احراز هویت Squid
در این آموزش، ما Squid را برای استفاده از Auth پایه پیکربندی خواهیم کرد. این یک روش احراز هویت است که در پروتکل HTTP ساخته شده است.
ما از openssl
برای تولید رمزهای عبور استفاده می کنیم و username:password
را به فایل / etc / squid / htpasswd اضافه کنید، با استفاده از دستور tee که در زیر نشان داده شده است:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
بیایید یک کاربر با نام “one3erver” با رمز ” Sz$Zdg69
” ایجاد کنیم:
printf "one3erver:$(openssl passwd -crypt 'Sz$Zdg69')\n" | sudo tee -a /etc/squid/htpasswd
خروجی:
one3erver:RrvgO7NxY86VM
اکنون که کاربر ایجاد می شود گام بعدی، پیکربندی Squid برای فعال کردن احراز هویت پایه HTTP و استفاده از فایل است.
پیکربندی اصلی را باز کنید و موارد زیر را اضافه کنید:
/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
و آخرین خط برجسته شده است اجازه دسترسی به کاربران معتبر.
سرویس Squid را راه اندازی مجدد کنید:
sudo systemctl restart squid
پیکربندی فایروال
فرض کنید شما از UFW
برای مدیریت فایروال استفاده می کنید، باید پورت squid را باز کنید. برای این که پروفایل پروفایل Squid را فعال کنید که شامل قوانین برای پورت های Squid پیش فرض است.
sudo ufw allow 'Squid'
برای تأیید نوع وضعیت:
sudo ufw status
خروجی چیزی شبیه به موارد زیر است:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
Squid ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
Squid (v6) ALLOW Anywhere (v6)
اگر Squid در یک پورت دیگر غیر از پیش فرض اجرا شود، به عنوان مثال، 8888
شما می توانید اجازه عبور ترافیک در آن پورت را باز کنید: sudo ufw allow 8888/tcp
.
نتیجه
شما یاد گرفته اید که چگونه squid را در اوبونتو 18.04 نصب کنید.
Squid یکی از پرطرفدارترین سرورهای ذخیره سازی پروکسی است. این باعث افزایش سرعت وب سرور می شود و می تواند به شما در دسترسی کاربران به اینترنت کمک کند.
اولین نفری باشید که از آموزشها و تخفیفهای ویژه با خبر میشوید 😉
با عضویت در خبرنامه از 80 درصد تخفیف بهره مند شوید
سلام
من با squid یک proxy درست کردم ولی با اینترنت همراه اول نمیشه بهش وصل شد
انگار در اینترنت همراه اول نمیشه به خیلی از پروکسی ها وصل شد
میشه پروکسی سروری درست کرد که با اینترنت همراه اول هم بشه بهش وصل شد؟؟ آیا ؟؟
با سلام خدمتتون
بله این به دلیل محدودیتهای پروتکلی از سمت isp ها هستش
تنها راه استفاده از پروتکلهای ارتباطی دیگه هست این نوع پروکسی اینطور که تست کردید در حال حاضر محدود هست