استونل چیه؟ برنامهای که میاد اطلاعات رد و بدل شده رو رمزنگاری میکنه.
اما به تنهایی هیچ کاربردی نداره و همیشه پشت سرش یه برنامه دیگه هست. یه جورایی میشه گفت مثل آپاچی میمونه و نقش گارسونی رو برعهده داره که دم در رستوران (پورت) به گوش ایستاده و همه درخواستها رو میگیره و پاس میده به برنامه پشت سری (سرآشپز) :) و بعد دوباره جواب (غذای دستپخت سرآشپز) رو بعد از اینکه رمزنگاری کرد! به دست مشری میرسونه و بنابراین وسط راه کسی متوجه نوع غذا نمیشه، اینکه پیتزاست و یا ساندویچ دیگه معلوم نیست!
حالا بریم سراغ یکی از برنامههای پشت سری و کاربردی اسکوئید! اسکوئید دو تا نقش مهم داره یکی به عنوان استفاده کش و دیگری پروکسی. حالا توی مورد ما قراره کاربر از طریق استونل درخواست خودش رو به صورت رمز شده بفرسته به سرور، درون سرور استونل درخواست کاربر و مشتری رو هدایت میکنه به سمت اسکوئید و اون هم سایت مورد درخواست کاربر رو باز میکنه روی سروری که دارید، و جواب رو تحویل استونل میده و در نهایت استونل هم جواب رو به صورت رمز شده به سمت کاربر هدایت میکنه :)
حالا که روند کار مشخص شد، میریم سراغ ریزه کاریها
تنظیمات سمت سرور
۱- تنظیمات مربوط به اسکوئید
با فرض اینکه centos نسخه شش دارید به ابتدای فایل تنظیمات اسکوئید خطوط یک تا شش زیر رو اضافه کنید
1 |
vi /etc/squid/squid.conf |
1 2 3 4 5 6 |
auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/squid_passwd auth_param basic children 20 startup=10 idle=1 concurrency=5 auth_param basic realm Squid proxy–caching web server auth_param basic credentialsttl 2 hours acl ncsa_users proxy_auth REQUIRED http_access allow ncsa_users |
خط اول میگه آقای اسکوئید از سیستم احراز هویت ncsa استفاده کن، یوزرنیم و پسورد رو از هم از فایل squid_passwd بخون و چک کن که کاربر یوزر و پسوردش منطبق هست با یوزر و پسوردی که داخل این لیست موجوده؟
خط دوم تعداد پروسههایی رو نشون می ده که در زمان پروسه احراز هویت لازمه و این عدد اگه خیلی کم باشه زمانی که سرعت نت پایینه، مشکلساز میشه چون در سرعتای پایین پروسههای زیادی موقع وارد کردن پسورد باز میشه
خط سوم همون نوشته و آلارمی هست که کاربر هنگام استفاده خواهد دید :) به این صورت که برای اولین استفاده، کادری باز میشه و از کاربر یوزر و پسورد رو میپرسه، که همونجا این پیغام رو خواهد دید Squid proxy-caching web server
خط چهارم باعث میشه اسکوئید هر دو ساعت یوزر و پسورد رو از کاربر بپرسه و اینطوری اگر مثلا کاربری یوزر و پسوردش رو در کافی نت وارد کرده باشه، مشکل چندانی پیش نخواهد اومد.
خط پنجم باعث میشه اسکوئید هر یوزری رو که بدین روش لاگین کرد، یک برچسب ncsa_users بهش بچسبونه و توی خط آخر گفتیم هر کی این برچسب ncsa_users رو داشت اجازه دسترسی به وب رو داشته باشه!
حالا باید به روشی یوزرنیم و پسورد رو به صورت استاندارد و قابل فهمی وارد squid_passwd کنیم. برای اینکار از برنامه htpasswd استفاده میکنیم.
1 |
/usr/local/apache/bin/htpasswd –c /etc/squid/squid_passwd novid |
و برای اینکه برنامه اسکوئید بتونه به محتویات این فایل دسترسی داشته باشه دستور زیر رو بزنید.
1 |
chmod o+r /etc/squid/squid_passwd |
وقتی این دستور رو بزنید، برنامه ازتون پسوردِ کاربر novid رو میپرسه که باید دوبار وارد کنید و در نهایت خروجی در فایل squid_passwd نوشته میشه. و برای یوزرهای بعدی هم دیگه لازم نیست آرگومان سی رو وارد کنید چرا که فایل از نو ساخته میشه!
۲- تنظیمات مربوط به استونل
ابتدا فایل تنظیمات استونل رو با ادیتور دلخواهتون باز کنید.
1 |
vi /etc/stunnel/stunnel.conf |
اگه میبنید خیلی فایل شلوغ پلوقی هست، کل نوشتههای داخلش رو پاک کنید و فقط خط های زیر رو اضافه کنید بهش :)
1 2 3 4 5 6 7 8 9 |
cert = /etc/stunnel/stunnel.pem pid = /var/run/stunnel.pid setuid = root setgid = root output = /var/log/stunnel.log [squid] accept = 4948 connect = 127.0.0.1:3128 |
خط اول داریم کلیدی رو به استونل معرفی میکنیم که با اون کلید عمل رمز کردن اطلاعات رو انجام میده! این کلید رو توی مرحله بعد هم باید بسازیم و آدرس اون هم که مشخصه باید جایی باشه که توی اینجا مشخص کردیم.
خط accept میگه اقای اسکوئید به پورت ۴۹۴۸ گوش بده! و همه درخواستها روی این پورت رو هدایت کنه به پورت ۳۱۲۸ که پورت اسکوئید هست:)
نکته خیلی مهم اینه که کاربر میتونه مستقیم به پورت ۳۱۲۸ و اسکوئيد هم وصل شه! که برای جلوگیری از این اتفاق با فایروال میتونید پورت ۳۱۲۸ رو مسدود کنید.
کلاینت (کاربر) باید پورت ۴۹۴۸ و آیپی سرور رو برای استفاده از استونل داشته باشه، می تونید از پورت ۸۰ نیز استفاده کنید و اینطوری دیگه توی بدترین شرایط دسترسی به نت رو خواهید داشت :)
اما مرحله آخر ساخت کلید، برای اینکار سه تا دستور زیر رو وارد میکنید تا کلید ساخته بشه و بعد هم سر جایی که باید منتقل بشه. میون پروسه ساخت باید کد کشور IR و اسم و نشون و یک سری مشخصات جنرال رو وارد کنید که با استفاده از اونها کلید ساخته میشه.
1 2 3 |
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 |
مجوز کلید رو هم تغییر میدیم تا از دست خرابکاریهای احتمالی در امون باشه
1 |
chmod 0400 /etc/stunnel/stunnel.pem |
اگه همه چیز خوب پیش رفته باشه باید بشه با دو تا دستور زیر سرویسهای اسکوئید و استونل رو سمت سرور اجرا کرد.
1 2 |
stunnel /etc/stunnel/stunnel.conf /etc/init.d/squid restart |
و اما تنظیمات سمت کلاینت (کاربر)
کاربر اگر اپن سوزه باشه کافیه برنامه استونل رو نصب کنه و فایل رو بدین شکل تغییر بده
1 |
vi /etc/stunnel/stunnel.conf |
1 2 3 4 5 6 7 8 9 10 |
client = yes chroot = /var/lib/stunnel/ setuid = stunnel setgid = nogroup pid = /var/run/stunnel.pid [proxy] accept = 127.0.0.1:5050 connect = server_ip:4948 |
توی مرورگر و توی بخش پروکسی و http کاربر باید پورت 127.0.0.1 و پورت 5050 رو وارد کنه. در اینصورت با وارد شدن به هر سایتی، یه کادر باز میشه و ازتون پسورد و یوزرنیم رو میپرسه.
Released under public domain
دیدگاهتان را بنویسید