با استونل، تونل امن بسازید

استونل چیه؟ برنامه‌ای که میاد اطلاعات رد و بدل شده رو رمزنگاری میکنه.
اما به تنهایی هیچ کاربردی نداره و همیشه پشت سرش یه برنامه دیگه هست. یه جورایی میشه گفت مثل آپاچی می‌مونه و نقش گارسونی رو برعهده داره که دم در رستوران (پورت) به گوش ایستاده و همه درخواست‌ها رو می‌گیره و پاس میده به برنامه پشت سری (سرآشپز) :) و بعد دوباره جواب  (غذای دستپخت سرآشپز) رو بعد از اینکه رمزنگاری کرد!  به دست مشری می‌رسونه و بنابراین وسط راه کسی متوجه نوع غذا نمی‌شه، اینکه پیتزاست و یا ساندویچ دیگه معلوم نیست!

stunnel

حالا بریم سراغ یکی از  برنامه‌های پشت سری و کاربردی اسکوئید! اسکوئید دو تا نقش مهم داره یکی به عنوان استفاده کش و دیگری پروکسی. حالا توی مورد ما قراره کاربر از طریق استونل درخواست خودش رو به صورت رمز شده بفرسته به سرور، درون سرور استونل درخواست کاربر و مشتری رو هدایت می‌کنه به سمت اسکوئید و اون هم  سایت مورد درخواست کاربر رو باز میکنه روی سروری که دارید، و جواب رو تحویل استونل می‌ده و در نهایت استونل هم جواب رو به صورت رمز شده به سمت کاربر هدایت می‌کنه :)

حالا که روند کار مشخص شد، می‌ریم سراغ ریزه کاری‌ها

تنظیمات سمت سرور

۱- تنظیمات مربوط به اسکوئید

با فرض اینکه centos نسخه شش دارید به ابتدای فایل تنظیمات اسکوئید خطوط یک تا شش زیر رو اضافه کنید

خط اول می‌گه آقای اسکوئید از سیستم احراز هویت ncsa استفاده کن، یوزرنیم‌ و پسورد رو از هم از فایل squid_passwd بخون و چک کن که کاربر یوزر و پسوردش منطبق هست با یوزر و پسوردی که داخل این لیست موجوده؟

خط دوم تعداد پروسه‌هایی رو نشون می ده که در زمان پروسه احراز هویت لازمه  و این عدد اگه خیلی کم باشه زمانی که سرعت نت پایینه، مشکل‌ساز می‌شه چون در سرعتای پایین  پروسه‌های زیادی موقع وارد کردن پسورد باز میشه

خط سوم همون نوشته و آلارمی هست که کاربر هنگام استفاده خواهد دید :) به این صورت که برای اولین استفاده، کادری باز میشه و از کاربر یوزر و پسورد رو می‌پرسه، که همونجا این پیغام رو خواهد دید Squid proxy-caching web server

خط چهارم باعث میشه اسکوئید هر دو ساعت یوزر و پسورد رو از کاربر بپرسه و اینطوری اگر مثلا کاربری یوزر و پسوردش رو در کافی نت وارد کرده باشه، مشکل چندانی پیش نخواهد اومد.

خط پنجم باعث می‌شه اسکوئید هر یوزری رو که بدین روش لاگین کرد، یک برچسب ncsa_users بهش بچسبونه و توی خط آخر گفتیم هر کی  این برچسب ncsa_users رو داشت اجازه دسترسی به وب رو داشته باشه!

حالا باید به روشی یوزرنیم و پسورد رو به صورت استاندارد و قابل فهمی وارد squid_passwd کنیم. برای اینکار از برنامه htpasswd استفاده می‌کنیم.

و برای اینکه برنامه اسکوئید بتونه به محتویات این فایل دسترسی داشته باشه دستور زیر رو بزنید.

وقتی این دستور رو بزنید، برنامه ازتون پسوردِ کاربر novid رو می‌پرسه که باید دوبار وارد کنید و در نهایت خروجی در فایل squid_passwd نوشته می‌شه. و برای یوزرهای بعدی هم دیگه لازم نیست آرگومان سی رو وارد کنید چرا که فایل از نو ساخته می‌شه!

۲- تنظیمات مربوط به استونل

ابتدا فایل تنظیمات استونل رو با ادیتور دلخواهتون باز کنید.

اگه می‌بنید خیلی فایل شلوغ پلوقی هست، کل نوشته‌های داخلش رو  پاک کنید و فقط خط های زیر رو اضافه کنید بهش :)

خط اول داریم کلیدی رو به استونل معرفی می‌کنیم که با اون کلید عمل رمز کردن اطلاعات رو انجام می‌ده! این کلید رو توی مرحله بعد هم باید بسازیم و آدرس اون هم که مشخصه باید جایی باشه که توی اینجا مشخص کردیم.

خط accept میگه اقای اسکوئید به پورت ۴۹۴۸ گوش بده! و همه درخواست‌ها روی این پورت رو هدایت کنه به پورت ۳۱۲۸ که پورت اسکوئید هست:)

نکته خیلی مهم اینه که کاربر می‌تونه مستقیم به پورت ۳۱۲۸ و اسکوئيد هم وصل شه! که برای جلوگیری از این اتفاق با فایروال می‌تونید پورت ۳۱۲۸ رو مسدود کنید.

کلاینت (کاربر) باید پورت ۴۹۴۸ و آی‌پی سرور رو برای استفاده از استونل داشته باشه، می تونید از پورت ۸۰ نیز  استفاده کنید و اینطوری دیگه توی بدترین شرایط دسترسی به نت رو خواهید داشت :)

اما مرحله آخر  ساخت کلید، برای اینکار سه تا  دستور زیر رو وارد می‌کنید تا  کلید ساخته بشه و بعد هم سر جایی که باید منتقل بشه. میون پروسه ساخت  باید کد کشور IR و اسم و نشون و یک سری مشخصات جنرال رو وارد کنید که با استفاده از اونها کلید ساخته می‌شه.

مجوز کلید رو هم تغییر می‌دیم تا از دست خرابکاری‌های احتمالی در امون باشه

اگه همه چیز خوب پیش رفته باشه باید بشه با دو تا دستور زیر سرویس‌های اسکوئید و استونل رو سمت سرور اجرا کرد.

و اما تنظیمات سمت کلاینت (کاربر)

کاربر اگر اپن سوزه باشه کافیه برنامه استونل رو نصب کنه و فایل رو بدین شکل تغییر بده

توی مرورگر و توی بخش پروکسی و http  کاربر باید پورت 127.0.0.1 و پورت 5050 رو وارد کنه. در اینصورت با وارد شدن به هر سایتی، یه کادر باز میشه و ازتون پسورد و یوزرنیم رو می‌پرسه.

Released under public domain

دیدگاه‌ها

13 پاسخ به “با استونل، تونل امن بسازید”

  1. فرود نیم‌رخ

    راه سادهتر برای اینکه نشه از بیرون به squid وصل شد اینه که بری و بهش بگی فقط روی ۱۲۷.۰.۰.۱ گوش وایسا.
    چون stunnel روی همین آدرس کار میکنه مشکلی براش پیش نمیاد.

    یعنی بری و آدرس ۳۱۲۸ خالی رو تبدیل این :
    127.0.0.1:3128

    1. نوید نیم‌رخ
      نوید

      اره فرود جان این هم میشه اما جالبه برای من یه پیغام خطایی میده :) نمی دونم یه خورده انگولک کاری داره فکر کنم

  2. نرمولک نیم‌رخ

    میگما نوید کاربر های ویندوز چی جوری میتونن وصل بشن؟ یا مثلا با اندروید؟ میشه آیا؟

    1. نوید نیم‌رخ
      نوید

      برای ویندوز که سایتش بری برنامه داره، راحت می‌تونه وصل شه، دقیقا مشابه همین اپن سوزه شاید ساده تر حتی وصل میشن به سمت سرور :)
      من رو آیپد راهش انداختم حتما اندروید هم میشه :ی احتمال داره حتی از استور و ایناش بتونی برنامه اماده پیدا کنی:ی

  3. ارمان نیم‌رخ
    ارمان

    کلایت ویندوزیشو چه جوری میشه تنظیم کرد؟

  4. ارمان نیم‌رخ
    ارمان

    داشتن که داره و دیدم چه جوری میشه راحش انداخت تنظیمات فایل کلانتش باید چه جوری باشه با همین تنظیمات سرور بالا؟ گواهی ها و.کلید رو باید کجا گذاشت توی کدوم فولدر
    درضمن توی لینوکس دیگه گواهی وکلید رو نیازی نیست توی کلاینت هم قرار داده شه؟

    1. نوید نیم‌رخ
      نوید

      برای ویندوز اینطوری تنظیم کنی حله :ی

      client = yes
      [proxy]
      accept = 127.0.0.1:5050
      connect = server_ip:4948

  5. ارمان نیم‌رخ
    ارمان

    حل نیست میشه یاهو ایدی چیزی بدی من نمیتونم این روش رو ران کنم کمک میخوام

    1. نوید نیم‌رخ
      نوید

      همینجا مشکل رو بگید ببینم چطوریه :) خودم ویندوز ندارم که تست کنم، شاید این روزا مشکل دار شده همه چی کار نکنه که طبیعیه

  6. phoenixi نیم‌رخ
    phoenixi

    سلام و ممنون از سايت خوبتون
    در ابتدا نوشته بوديد كه:
    خط دوم تعداد پروسه‌هایی رو نشون می ده که در زمان پروسه احراز هویت لازمه و این عدد اگه خیلی کم باشه زمانی که سرعت نت پایینه، مشکل‌ساز می‌شه چون در سرعتای پایین پروسه‌های زیادی موقع وارد کردن پسورد باز میشه!!!
    auth_param basic children 20 startup=10 idle=1 concurrency=5

    حالا سوال بنده اين هست كه سرعت فعلي هم شامل اين مورد ميشه؟
    و اينكه چه تغييراتي بايد ايجاد بشه در خط دوم با توجه به اين نوع سرعت؟

    1. Reith نیم‌رخ
      Reith

      حتماً لازم نیست Authentication رو سمت Squid انجام بدید. برای هر کاربر یک گواهی‌نامه امنیتی صادر کنید و سمت Stunnel چک کنید. (verify = 3 و لیست گواهی‌نامه‌ها در CAfile)

  7. حامد سپهر نیم‌رخ

    ممنون از این آموزش. من یه سرور با centos5 دارم که میخوام روش http پروکسی نصب کنم. نمیخوام پسورد هم داشته باشه. فقط میخوام ای پی و پورت رو به مرورگر بدم و بهش وصل بشه. امکانش هست راهنمایی کنین؟ الآن چند روزه دارم میگردم اما روش سالمی که کار کنه نیافتم :((

  8. mahmood نیم‌رخ

    سلام . من یه سرور گرفتم گفتم روش تونل نصب هست ولی هرکار کردم نفهمیدم از کجا باید یوزر بسازم لطفا راهنمایی کنید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *