سرویس دهنده اسکوئید یکی از بهترین و پر کاربردترین نرم افزار های موجود در سیستم عامل های لینوکس و یونیکس هستش که به دلیل ویژگی های فنیش و متنوعش در شرکت های ارائه دهنده اینترنت، موسسات و سازمانها جهت کش کردن اطلاعات و یا پراکسی سرور مورد استفاده قرار می گیرد.
من در اینجا قصد آموزش نحوه نصب اسکوئید به عنوان پراکسی سرور به همراه افزونه تشخیص هویت رو دارم.
منظور از پراکسی سرور، به سروری گفته می شود که به منظور انجام اعمال خاصی میان درخواستهای کاربران شبکه و سرورهای مقصد قرار می گیرد.
به بیان دیگه پراکسی سرور قادر به فیلتر کردن محتوا و درخواست های کاربران، ایجاد محدودیت در دسترسی، قابلیت تشخیص هویت برای جلوگیری از ارتباطات ناخواسته و … رو داره و می تونه این کنترل ها رو بر اساس آدرس های IP ، دامنه ها، پروتکل ها و نوع متحوا انجام بده
حالا نوبت به نحوه نصب این سرویس می رسه:
ابتدا برنامه های مورد نیاز جهت کامپایل کردن اسکوئید رو به صورت زیر نصب می کنیم.
1
2
3
4
5
|
yum install -y perl gcc autoconf automake make sudo wget
yum install -y libxml2-devel libcap-devel
yum install -y libtool-ltdl-devel
|
و حالا برنامه اسکویئد رو دانلود می کنیم و از حالت فشرده درش میاریم و واردش فولدرش میشیم. (من در اینجا از برنامه اسکویید 2.6 استیبل استفاده می کنم)
1
2
3
4
5
|
wget http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE23.tar.gz
tar -zxf squid-2.6.STABLE23.tar.gz
cd squid-2.6.STABLE23
|
بعد از اینکه وارد فولدر شدیم با استفاده از دستور زیر که در سایت اسکوئید هست شروع به کانفیگ می کنم و افزونه تشخیص هویت رو به دستورات کانفیگ اضافه می کنم.
1
2
3
4
5
|
./configure --prefix=/usr --includedir=/usr/include --datadir=/usr/share --bindir=/usr/sbin --libexecdir=/usr/lib/squid --localstatedir=/var --sysconfdir=/etc/squid --enable-arp-acl --enable-useragent-log --enable-basic-auth-helpers="squid_radius_auth"
make
make install
|
خوب تا اینجا ما فقط اسکویئد رو نصب کردیم ولی هنوز آماده به کار نیست! و باید یک سری کارهای اضافه بکنیم تا آماده به کار بشه.
اولین کاری که باید بکنیم اینه که Host_name رو تو فایل کانفیگش اعمال کنیم. به صورت زیر:
1
|
nano /etc/squid/squid.conf
|
در همون خط اول متن زیر رو می نویسیم: (بجای your_hostname هاست خودتون رو بنویسید)
1
|
visible_hostname your_hostname
|
با استفاده از دستور زیر یه یوزر ساده برای اسکوئید می سازیم و داخل فایل کانفیگ اضافش می کنیم تا مشکلات دسترسی به فایل هاش برطرف بشه!
1
2
3
4
5
6
7
8
9
10
11
|
Useradd squid
nano /etc/squid/squid.conf
متن زیر رو از
cache_effective_user nobody
به زیر تغییر می دهیم:
cache_effective_user squid
|
برای اینکه بفهمیم مشکل کجاست میتونیم با کمک دستور زیر دیباگش کنیم و مشکلات رو برطرف کنیم.
1
|
squid -NCd1
|
خوب وقتی دستور بالا رو اجرا می کنیم به ارور زیر روبرو می شویم که اسکوئید نمی تواند فایل های کش خودش رو بسازه!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
WARNING: Cannot write log file: /var/logs/cache.log
/var/logs/cache.log: Permission denied
messages will be sent to ‘stderr’.
2015/01/21 04:24:10| WARNING: Closing open FD 2
2015/01/21 04:24:10| Starting Squid Cache version 2.6.STABLE23 for x86_64-unknow
n-linux-gnu…
2015/01/21 04:24:10| Process ID 12223
2015/01/21 04:24:10| With 4096 file descriptors available
2015/01/21 04:24:10| Using epoll for the IO loop
2015/01/21 04:24:10| Performing DNS Tests…
2015/01/21 04:24:10| Successful DNS name lookup tests…
2015/01/21 04:24:10| DNS Socket created at 0.0.0.0, port 59092, FD 5
2015/01/21 04:24:10| Adding nameserver 4.2.2.4 from /etc/resolv.conf
2015/01/21 04:24:10| User-Agent logging is disabled.
FATAL: Cannot open ‘/var/logs/access.log’ for writing.
The parent directory must be writeable by the
user ‘squid’, which is the cache_effective_user
set in squid.conf.
Squid Cache (Version 2.6.STABLE23): Terminated abnormally.
CPU Usage: 0.006 seconds = 0.004 user + 0.002 sys
Maximum Resident Size: 7296 KB
Page faults with physical i/o: 0
Aborted (core dumped)
[root@final squid-2.6.STABLE23]# squid -z
2015/01/21 04:25:10| Creating Swap Directories
FATAL: Failed to make swap directory /var/cache/00: (13) Permission denied
Squid Cache (Version 2.6.STABLE23): Terminated abnormally.
CPU Usage: 0.000 seconds = 0.000 user + 0.000 sys
Maximum Resident Size: 2800 KB
Page faults with physical i/o: 0
|
و به اونها دسترسی داشته باشه برای همین به صورت دستی این فایل ها رو می سازیم و دسترسی آنها رو به یوزر اسکوئید می دهیم:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
nano /var/logs/cache.log
chown -R squid.squid /var/logs/cache.log
chown -R squid.squid /var/cache/
nano /var/logs/access.log
chown -R squid.squid /var/logs/access.log
nano /var/logs/store.log
chown -R squid.squid /var/logs/store.log
|
وقتی تمام این مراحل رو انجام بدیم و دوباره دستور دیباگ کردن رو بزنیم میبینیم که بدون هیچ مشکلی سرویس اسکوئید مون کار می کنه. منتها قبلش دستور زیر رو اجرا کنید تا فایل های کشش ساخته بشه!
1
|
squid -z
|
حالا نوبت اینه که پورت اسکوئید رو تو فایروال اضافه بکنیم: (به صورت پیش فرض پورت 3128 هستش)
1
2
3
4
5
|
nano /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3128 -j ACCEPT
/etc/init.d/iptables restart
|
ما موفق شدیم اسکوئید رو از روی سورس با افزونه تشخیص هویت به درستی کامپایل و نصب کنیم.