احراز هویت (Authentication) در سرویس دهنده اسکوئید (squid)
امروز میخواهیم در رابطه با احراز هویت کاربران در سرویس دهنده Squid که باعث کنترل بهتر کاربران میشود صحبت کنیم. برای این منظور راهکارهای زیادی وجود دارد که ما در اینجا به دو مقوله احراز هویت معمولی خود Squid و احراز هویت به وسیله Radius سرورها می پردازیم.
احراز هویت به وسیله دیتابیس داخلی خود Squid
اولین نکته ای که باید در نظر بگیریم اینکه تمام این کارها با استفاده از acl ها انجام میشود. ابتدا بررسی میکنیم که آیا ماژول ncsa_auth را هنگام نصب Squid فعال کردهایم یا نه. اگر ماژول را فعال کرده باشیم به صورت طبیعی باید در مسیر /usr/local/squid/bin/ncsa_auth باشد و در غیر این صورت باید Squid را از نو کامپایل و نصب کنیم و ماژول مربوطه را فعال کنیم. بعد از انجام مراحل بالا و اطمینان از فعال بودن ماژول ncsa_auth خط زیر را به فایل تنظیمات Squid که در مسیر نصب Squid قرار دارد اضافه می کنیم.
auth_param basic program /usr/local/squid/bin/ncsa_auth /usr/local/squid/etc/passwd
توضیح اینکه در این خط ما به Squid میگوییم که احراز هویت را به صورت پایهای با استفاده از ماژول ncsa_auth فعال کن و برای پیدا کردن کاربران مجاز به فایل passwd مراجعه کن.
بعد از اضافه کردن خط کلیدی زیر نوبت به تعریف های مربوط به نحوه رفتار با کاربران احراز هویت شده میشود که طبق توصیههای خود تولید کننده Squid از موارد زیر استفاده می کنیم.
auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off authenticate_ttl 1 hour authenticate_ip_ttl 2 seconds acl ncsa_auth proxy_auth REQUIRED
بعد از انجام مراحل بالا نوبت به تعریف کاربران می رسد برای این منظور ابتدا فایل passwd را با استفاده از دستور زیر می سازیم
touch /usr/local/squid/etc/passwd
بعد از ساختن فایل passwd نوبت به تعریف کاربران با استفاده از دستور htpasswd می رسید. برای این منظور به ترتیب زیر عمل می کنیم.
htpasswd /usr/local/squid/etc/passwd user1
توصیح اینکه ما به htpasswd می گوییم در مسیر /usr/local/squid/etc/passwd یک کاربر با نام user1 بسازد. بعد از اجرای دستور بالا سیستم از شما برای کاربر user1 یک کلمه عبور درخواست می کند که شما باید آن را وارد کنید.
احراز هویت به وسیله radius سرور
برای این منظور ما از Freeradius استفاده می کنیم که مقاله نصب آن را در همین سایت می توانید ببینید. بعد از نصب freeradius نوبت به تنظیمات Squid میشود که به صورت زیر عمل می کنیم.
ابتدا باید توجه داشته باشید که برای این منظور ماژول squid_radius_auth باید فعال باشد برای اینکه ببینیم این ماژول قبلاً فعال شده به مسیر/usr/local/libexec/squid/ میرویم و بررسی می کنیم و اگر نصب نبود Squid را مجدد کامپایل می کنیم و ماژول squid_radius_auth را فعال می کنیم. بعد از انجام این مراحل خط زیر را به فایل squid.conf اضافه می کنیم.
/usr/ports/www/squid_radius_auth
auth_param basic program /usr/local/libexec/squid/squid_radius_authh -f /usr/local/squid/etc/squid_rad_auth.conf
توضیح اینکه در خط بالا ما به Squid می گوییم که برای احراز هویت با Radius سرور از ماژول squid_radius_auth استفاده کند و برای ارتباط با Radius سرور از اطلاعات فایل squid_rad_auth.conf در مسیر مربوطه استفاده کند.
server 123.123.123.123 # Radius Server IP or Hostname secret your_secret_here
بعد از اضافه کردن خط کلیدی و تنظیم فایل squid_rad_auth.conf نوبت به تعاریف مربوط به نحوه رفتار با کاربران احراز هویت شده میشود که طبق توصیههای خود تولید کننده Squid از موارد زیر استفاده می کنیم.
auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off authenticate_ttl 1 hour authenticate_ip_ttl 2 seconds acl radius-auth proxy_auth REQUIRED
http_access allow ncsa_auth http_access allow radius-auth
مرحله آخر
بعد از تعریف کاربران و تنظیمات Squid نوبت راه اندازی مجدد Squid با یکی از دستورات زیر میشود.
service squid restart /usr/local/etc/rc.d/squid restart
در صورتی که همه مراحل را به درستی انجام داده باشید از این به بعد Squid شما برای سرویس دهی به کاربرانش درخواست احراز هویت می کند.