سلام
پس از مدت ها با آموزشی دیگه در خدمت شما هستیم. در این اموزش قصد داریم ابتدا سرویس Squid رو در سرور کانفیگ کنیم و سپس به وسیله اون سرویس های STunnel و Zebeede(Tunnel Plus) رو در سرور راه اندازی کنیم.
سرور استفاده شده در این اموزش: CentOS 6.6 با معماری ۶۴بیت میباشد. با توجه به کاربرد بیشتر نسخه ۶۴بیتی ، این اموزش تنها برای این معماری تهیه شده است.
مرحله صفر) نصب پیشنیازها:
دستورات زیر را واردکنید:
1 2 3 4 5 |
yum update -y yum install make gcc -y yum groupinstall "Development Tools" -y yum install crypt* -y yum install libgcrypt* -y |
مرحله اول) نصب Squid:
دستور زیر را وارد کنید:
1 |
yum install squid -y |
خب به همین سادگی! البته به صورت دستی نیز امکان نصب وجود دارد اما بخاطر راحتتر بودن این روش اموزش داده میشود.
مرحله دوم) نصب squid_radius_auth به منظور رادویس و تایید هویت به وسیله سیستم های اکانتینگ(IBSng و …)
دستورات زیر را وارد کنید:
1 2 3 4 5 6 |
cd wget http://cloudha.ir/blog/CC/squid/squid_radius_auth-1.10.tar.gz tar -zxvf squid_radius_auth-1.10.tar.gz cd squid_radius_auth-1.10 make make install |
اکنون پکیج squid_radius_auth در سرور شما باید بدون مشکل نصب شده باشد.دستور زیر را وارد کنید:
1 |
nano /usr/local/squid/etc/squid_radius_auth.conf |
در فایل بالا بجای sunclone.cistron.nl ادرس سرور رادیوس(IBSng) و بجای testje سکرت secret IBSng رو وارد و سپس تغییرات رو ذخیره کنید.
سپس دستور زیر را واردکنید:
1 |
nano /etc/squid/squid.conf |
و خطوط زیر را به اون اضافه و سیو کنید:
1 2 3 4 5 6 7 8 |
auth_param basic program /usr/local/squid/libexec/squid_radius_auth -f /usr/local/squid/etc/squid_radius_auth.conf auth_param basic children 5 auth_param basic realm DarkLoveProxyAccess auth_param basic credentialsttl 2 hours auth_param basic casesensitive on acl AuthUsers proxy_auth REQUIRED http_access allow AuthUsers http_port 444 |
سپس:
1 2 |
service squid restart chkconfig squid on |
اکنون نصب squid به پایان رسید.
جهت نصب سرویس Tunnel plus دستورات زیر را به ترتیب وارد کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
wget http://www.winton.org.uk/zebedee/blowfish-0.9.5a.tar.gz wget http://www.winton.org.uk/zebedee/zlib-1.2.3.tar.gz wget http://www.winton.org.uk/zebedee/bzip2-1.0.3.tar.gz tar -zxvf blowfish-0.9.5a.tar.gz tar -zxvf zlib-1.2.3.tar.gz tar -zxvf bzip2-1.0.3.tar.gz cd blowfish-0.9.5a make cd cd zlib-1.2.3 make cd cd bzip2-1.0.3 make |
1 2 3 4 |
wget http://liquidtelecom.dl.sourceforge.net/project/zebedee/zebedee-src/2.5.3/zebedee-2.5.3.tar.gz tar -zxvf zebedee-2.5.3.tar.gz cd zebedee-2.5.3 make OS=linux |
1 |
nano config.zbd |
سپس خطوط زیر را به ان اضافه کنید:
1 2 3 4 5 6 7 |
detached true server true serverport 11965 idletimeout 120 compression 0 minkeylength 0 checksumlevel 0 |
سپس با دستور زیر سرویس را اجرا کنید:
1 |
./zebedee -f config.zbd |
درصورتی که پس از وارد کردن دستور بالا ،خروجی به شما داده شد؛ قسمتی از مراحل را اشتباه انجام داده اید.
تنظیمات به پایان رسید.جهت نصب سرویس stunnel نیز دستورات زیر را وارد کنید:
1 2 3 |
yum reinstall openssl -y yum install stunnel nano /etc/stunnel/stunnel.conf |
سپس محتویات زیر را در ان کپی وسیو کنید:
1 2 3 4 5 6 7 8 |
cert = /etc/stunnel/stunnel.pem pid = /var/run/stunnel.pid setuid = root setgid = root output = /var/log/stunnel.log [squid] accept = 8080 connect = 127.0.0.1:444 |
سپس دستورات زیر را وارد کنید:
1 2 3 4 |
openssl genrsa -out privkey.pem 2048 openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095 cat privkey.pem cacert.pem >> /etc/stunnel/stunnel.pem chmod 0400 /etc/stunnel/stunnel.pem |
و با دو دستور زیر سرویس stunnel رو start و سرویس squid رو restart میکنیم:
1 2 |
stunnel /etc/stunnel/stunnel.conf service squid restart |
برای اینکه سرویس های فوق که راه اندازی کرده اید موقع reboot سرور به صورت اتوماتیک اجرا شود میبایست دو دستور زیر را
1 2 |
./root/zebedee*/zebedee -f config.zbd stunnel /etc/stunnel/stunnel.conf |
در انتهای فایل زیر قرار دهید:
1 |
nano /etc/rc.local |
جهت اتصال نیز برای اتصال به سرویس tunnelplus از پورت ۴۴۴ و جهت اتصال به stunnel از پورت ۸۰۸۰ استفاده کنید.
موفق باشید.
سلام
ممنونم که این آموزش قرار دادین مشکلی که من دارم داخل proxy checker که نیگاه میکنم با پیغام خطای زیر مواجه میشم.
[۰۷:۰۷] Testing Started.
Proxy Server
Address: ********:۳۱۲۸
Protocol: HTTPS
Authentication: Basic
Username: test
[۰۷:۰۷] Starting: Test 1: Connection to the Proxy Server
[۰۷:۰۷] IP Address: **********
[۰۷:۰۷] Connection established
[۰۷:۰۷] Test passed.
[۰۷:۰۷] Starting: Test 2: Connection through the Proxy Server
[۰۷:۳۷] Error : authorization on the proxy server failed.
Please make sure that the username and password are correct.
The error may also indicate that the proxy server requires NTLM authorization.
The proxy server reply header is:
HTTP/1.0 407 Proxy Authentication Required
Server: squid/3.1.10
Mime-Version: 1.0
Date: Fri, 01 May 2015 20:40:18 GMT
Content-Type: text/html
Content-Length: 3223
X-Squid-Error: ERR_CACHE_ACCESS_DENIED 0
Vary: Accept-Language
Content-Language: en
Proxy-Authenticate: Basic realm=”DarkLoveProxyAccess”
X-Cache: MISS from starport.localdomain
X-Cache-Lookup: NONE from starport.localdomain:444
Via: 1.0 starport.localdomain (squid/3.1.10)
Connection: keep-alive
[۰۷:۳۷] Test failed.
[۰۷:۳۷] Testing Finished.
در مرحله اول به سرور وصل میشم و پیغام Test passed میزنه.
در مرحله بعد که میخواد authorization انجام بده پیغام خطا میده.
در قسمت لاگ های IBSng هم که نیگاه میکنم پیغام Wrong password میده.
یوزر / پسورد رو اشتباه وارد کنید.
tanzimate iptables ro ham begid base in servicaaaa
man squido config mikonam nemitonam behehs vasl sham fekr konam base iptables bashe
نیازی به تنظیمات فایروال ندارد با این حال میتوانید پورت های استفاده شده در squid را در سرور باز کنید.
همچنین درصورتی که متصل نمیشود لاگ های proxyfire را بررسی نمایید
./root/zebedee-2.5.3/zebedee -f /root/zebedee-2.5.3/config.zbd
روی سنت او اس ۶ ۶۴بیت اکانتینگ مشکل داره و اگر دوتا یوزر مختلف همزمان به سرور وصل بشن کلی ارور میده.
راهی برای این موضوع هست؟
روی ۳۲ بیت من تست کردم این مشکل وجود نداشت.
سرور به اشتباه کانفیگ میکنید(squid) .تنظیمات squid.conf رو بررسی کنید
ما از معماری ۶۴بیت استفاده میکنیم و بدون مشکل کارمیکند
سلام
یکدنیا تشکر
من اس تانل رو نصب کردم ولی فقط سایتهای https رو میتونم باز کنم و سایتهای معمولی باز نمیشه
در سرورتون dns های دیتاسنتر رو ست کنید و سپس سرور رو ریبوت بدید.تنظیمات dns centos: /etc/resolv.conf
بسیار ممنون از آموزشهای خوبتون
و وقتی که میذارید . بنده مطالب زیادی یاد گرفتم.
DNS رو تنظیم کردم که پیشفرض سرور بود و دو تا هم اضافه کردم
که چهارتا ۸ و ۴٫۲٫۲٫۴ ولی همچنان فقط سایتهای https باز میشه
که مس دود هم هستند ولی سایتهای عادی باز نمیشه و خطای زیر رو میگیرم
Could not connect through proxy 127.0.0.1:8080 – Proxy server cannot establish a connection with the target, status code 403
تنظیمات هم دقیقا از روی دستوری که در سایت هست رفتم . اسکویید رو نصب کردم و اس تانل . tunnel+ رو هم نصب کردم بازم فقط سایتهای HTTPS باز میشه .
یه سوال دیگه : اگه بخوام به IBSng کاری نداشته باشم و ۱ یوزر روی سرور
بتونه فقط لاگین کنه چکار باید بکنم ؟ و یوزر دیگه ای نتونه کانکت بشه . یعنی بشه
سرور تک یوزره .
پیشاپیش یکدنیا تشکر بابت وقت و مطالب خوبتون .
ممنون
مشکل از DNS نبود
http_access allow CONNECT !SSL_ports روی deny تنظیم شده بود
که سایتهای عادی هم باز میشه الان .
یه اشکال دیگه هم دارم … هر یوزر و پسوردی بزنم سایتهایی که https هستن رو باز میکنه ولی معمولی رو خیر
و نمیدونم چرا هر یوزری باشه فرقی نمیکنه . در قسمت ادرس سرور رادیوس . آی پی خود سرور رو که روش IBSng نصب هست دادم ولی نشد
شما به صورت دستی بوسیله proxyfire به سرور متصل بشید و سپس لاگ ها رو بررسی کنید ببنید ارور مربوط به چی هست.
وقتی که با هر یوزر بشه وصل شد به این معنی هست که رادیوس رو به اشتباه وارد کردید و یا در ibsng تنظیمات charge,ras رو بدرستی انجام ندادید.
برای مثال اگر شما در فایل رادیوس squid یعنی /usr/local/squid/etc ادرس ای پی ۱۲۷٫۰٫۰٫۳ رو وارد کردید در ibsng نیز همین ای پی رو وارد کنید.
سلام
با تشکر از آموزشتون
من اسکوئید رو نصب کردم وبعد از تایپ دستور service squid start پیغام failed رو میده چکار کنم ؟
در ضمن من روی وی پی اس centos6.6 پیاده کردم .
احتمالا مشکل از پورت هست بررسی کنید پورتی که درsquid.conf وارد شده باز باشه.همینطور لاگ ها رو میتونید در ادرس /var/log/squid ببینید مشکل از چی هست
سلام
ممنون از پاسختون
مشکل از start نشدن iptable بود که با دستور service iptables start مشکل حل شد .
سلام
من میخواستم بدون استفاده از ibsng از طریق خود squid یوزر تعریف کنم بعد از پیاده کردن دستورات لازم باز squid l من start نشد واین error رو میده
fatel: auth-parm basik program /user/bin/squid/ncsa-auth: (2) no such file or directory
میتونید کمکم منید ؟
البته این error مربوط به این خط از دستور می باشد :
#This line defines the file holding the authentication details and also the program to check those details
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/password
سلام
میشه بدون نصب ibsng هم یوزر تعریف کرد؟
اگر میشه چه تغییراتی باید داد؟
بله میشود اما ما تست نکردیم
سلام
میشه بدون نصب ibsng هم یوزر تعریف کرد؟
چه تغییراتی باید صورت بگیره؟
با تشکر
در کنار open vpn و cisco میشه این رو هم نصب کرد ؟
bale
از چه برنامه هایی برای اتصال به سرور از طریق این پروتوکل باید استفاده کرد؟
proxyfire
آقا http میزارم چورت ۴۴۴ این ارور را میده
[۲۷:۰۳] Testing Started.
Proxy Server
Address: ۸۷٫۲۳۶٫۲۱۴٫۲۱:۴۴۴
Protocol: HTTPS
Authentication: Basic
Username: tt
[۲۷:۰۳] Starting: Test 1: Connection to the Proxy Server
[۲۷:۰۳] IP Address: 87.236.214.21
[۲۷:۰۳] Connection established
[۲۷:۰۳] Test passed.
[۲۷:۰۳] Starting: Test 2: Connection through the Proxy Server
Error: the proxy server (Squid) is not configured to allow SSL tunnel to port 80.
To fix the problem please find and comment the following line in the Squid
configuration file (squid.conf):
http_access deny CONNECT !SSL_ports
The proxy server reply header is:
HTTP/1.0 403 Forbidden
Server: squid/3.1.23
Mime-Version: 1.0
Date: Sat, 29 Aug 2015 20:59:34 GMT
Content-Type: text/html
Content-Length: 3124
X-Squid-Error: ERR_ACCESS_DENIED 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from localhost.localdomain
X-Cache-Lookup: NONE from localhost.localdomain:3128
Via: 1.0 localhost.localdomain (squid/3.1.23)
Connection: keep-alive
[۲۷:۰۳] Test failed.
[۲۷:۰۳] Testing Finished.
پورت ۸۰۸۰ این ارور را میده
[۳۷:۵۶] Testing Started.
Proxy Server
Address: ۸۷٫۲۳۶٫۲۱۴٫۲۱:۸۰۸۰
Protocol: HTTPS
Authentication: Basic
Username: tt
[۳۷:۵۶] Starting: Test 1: Connection to the Proxy Server
[۳۷:۵۶] IP Address: 87.236.214.21
[۳۷:۵۶] Connection established
[۳۷:۵۶] Test passed.
[۳۷:۵۶] Starting: Test 2: Connection through the Proxy Server
[۳۷:۵۶] Error : connection to the proxy server was closed unexpectedly.
Please make sure that the proxy server protocol and address are correct.
[۳۷:۵۶] Test failed.
[۳۷:۵۶] Testing Finished.
شما http_port رو ۴۴۴ قرار بدید و سپس service squid restart برای مطمئن شدن دستور زیر رو وارد کنید اگر نشون داد پورت در حال استفاده توسط squid هست درست انجام دادید در غیراینصورت اشتباه:
lsof -i :444
در حال استفاده هست ولی همون مشکل قبلی رو داره
آفا این ارور هنوز هست
Error: the proxy server (Squid) is not configured to allow SSL tunnel to port 80.
To fix the problem please find and comment the following line in the Squid
configuration file (squid.conf):
چیکارش کنم؟؟
در فایل /etc/squid/squid.conf و یا در فایل کانفیگ stunnel در /etc/stunnel/stunnel.conf شما از پورت ۸۰ استفاده کردید که این پورت توسط سایر سرویس ها(معمولا apache) مورد استفاده هست بنابراین این پورت رو به پورت دیگر و باز تغییر دهید مثلا ۵۵۵ یا ۸۰۸۰ یا ….
میشه فایل /etc/squid/squid.conf خودتون را آپلود کنید ؟
http://up.vbiran.ir/uploads/24173144150856941541_sq.zip
میشه یه نمونه کامل از فایل/etc/squid/squid.conf بزارین چون بعضی از خطوطش مشکوکه
nano config.zbd باید در پوشه zebedee-2.5.3 انجام بشه و دستور ./zebedee config.zbd همونجا انجام بشه ؟ چون در غیر این صورت واسه من ارور میده
بله
میشه در مورد ارور زیر را هنمایی کنید؟
بعد از زدن دستورmake OS=linux به مشکل میخورم.
make OS=linux64 رو هم امتحان کردم!!!
با تشکر
gcc -pthread -Wall -O3 -DHAVE_PTHREADS -I. -I../blowfish-0.9.5a -I../zlib-1.2.3 -I../bzip2-1.0.3 -c -o zebedee.o zebedee.c
zebedee.c: In function ‘makeListener’:
zebedee.c:2462: warning: pointer targets in passing argument 3 of ‘getsockname’ differ in signedness
/usr/include/sys/socket.h:119: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
zebedee.c: In function ‘acceptConnection’:
zebedee.c:2624: warning: pointer targets in passing argument 3 of ‘accept’ differ in signedness
/usr/include/sys/socket.h:214: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
zebedee.c: In function ‘socketIsUsable’:
zebedee.c:2734: warning: pointer targets in passing argument 3 of ‘getpeername’ differ in signedness
/usr/include/sys/socket.h:133: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
zebedee.c: In function ‘checkPeerForSocket’:
zebedee.c:4669: warning: pointer targets in passing argument 3 of ‘getpeername’ differ in signedness
/usr/include/sys/socket.h:133: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
zebedee.c: In function ‘spawnHandler’:
zebedee.c:4884: warning: pointer targets in passing argument 3 of ‘getsockname’ differ in signedness
/usr/include/sys/socket.h:119: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
zebedee.c: In function ‘clientListener’:
zebedee.c:5289: warning: pointer targets in passing argument 6 of ‘recvfrom’ differ in signedness
/usr/include/sys/socket.h:166: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
zebedee.c:5354: warning: pointer targets in passing argument 3 of ‘accept’ differ in signedness
/usr/include/sys/socket.h:214: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
zebedee.c: In function ‘serverListener’:
zebedee.c:6106: warning: pointer targets in passing argument 3 of ‘accept’ differ in signedness
/usr/include/sys/socket.h:214: note: expected ‘socklen_t * __restrict__’ but argument is of type ‘int *’
zebedee.c: In function ‘main’:
zebedee.c:8065: warning: unused variable ‘serviceArgs’
gcc -pthread -Wall -O3 -DHAVE_PTHREADS -I. -I../blowfish-0.9.5a -I../zlib-1.2.3 -I../bzip2-1.0.3 -c -o sha_func.o sha_func.c
gcc -pthread -Wall -O3 -DHAVE_PTHREADS -I. -I../blowfish-0.9.5a -I../zlib-1.2.3 -I../bzip2-1.0.3 -c -o huge.o huge.c
gcc -pthread -Wall -O3 -DHAVE_PTHREADS -I. -I../blowfish-0.9.5a -I../zlib-1.2.3 -I../bzip2-1.0.3 -o zebedee zebedee.o sha_func.o huge.o ../blowfish-0.9.5a/libblowfish.a ../zlib-1.2.3/libz.a ../bzip2-1.0.3/libbz2.a -lpthread
gcc: ../zlib-1.2.3/libz.a: No such file or directory
gcc: ../bzip2-1.0.3/libbz2.a: No such file or directory
make: *** [zebedee] Error 1
[root@onlineservers zebedee-2.5.3]# make OS=linux64
gcc -pthread -m64 -Wall -O3 -DHAVE_PTHREADS -I. -I../blowfish-0.9.5a -I../zlib-1.2.3 -I../bzip2-1.0.3 -o zebedee zebedee.o sha_func.o huge.o ../blowfish-0.9.5a/libblowfish.a ../zlib-1.2.3/libz.a ../bzip2-1.0.3/libbz2.a -lpthread
gcc: ../zlib-1.2.3/libz.a: No such file or directory
gcc: ../bzip2-1.0.3/libbz2.a: No such file or directory
make: *** [zebedee] Error 1
پیشنیاز ها مثل gcc به درستی نصب نشده است