اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

آموزش نصب و راه اندازی HTTPS ( یا گواهینامه SSL Certificate) به منظور امن کردن صفحه Login در PhpMyAdmin

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    آموزش نصب و راه اندازی HTTPS ( یا گواهینامه SSL Certificate) به منظور امن کردن صفحه Login در PhpMyAdmin

    برای معرفی این ترفند بیایید ترافیک HTTP را بین یک ماشین کلاینت و سرور دبیان sniff کنیم در حالیکه سهوا در login به PhpMyAdmin با استفاده از یوزر و پسورد root دیتابیس و به اشتباه لاگین کردیم ( مطابق با پست قبلی ما درباره تغییر و امن کردن لینک صفحه لاگین phpmyadminn )

    همانطور که در ترفند قبل گفتیم اگر نمیخواهید که user و password تان افشاء شود این کار را انجام ندهید. برای شروع sniff کردن ترافیک دستور زیر را اجرا کنید.
    کد PHP:
    # tcpdump port http -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --line-buffered -B20 
    مدت زمان زیادی طول نخواهد کشید که username و password ارسال شده از طریق کابل و به فرمت plain text تشخیص داده شود. شما میتوانید این مورد را در خروجی کوتاه دستور tcpdump در تصویر زیر مشاهده کنید.

    لطفا دقت کنید که ما بخش پسورد root را با رنگ آبی مخفی کردیم.

    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Sniffing-HTTP-Traffic-linux-zone-org-forums.png مشاهده: 1 حجم: 12.1 کیلو بایت

    برای جلوگیری از این مورد باید صفحه لاگین را با یک certificate امن کنید برای این منظور پکیج mode_ssl را روی توزیع های برپایه centos نصب کنید.
    کد PHP:
    # yum install mod_ssl 
    اگر چه ما از نام و مسیرهای دبیان / اوبونتو استفاده میکنیم، اما مراحل یکسانی برای centos و redhat نیز میتوان استفاده کرد تنها کافیست دستورات و مسیرهای زیر را با موارد مشابه در centos جابجا کنید.

    یک دایرکتوری برای ذخیره کردن key و certificate ایجاد کنید.
    کد PHP:
    # mkdir /etc/apache2/ssl    [On Debian/Ubuntu based systems]
    # mkdir /etc/httpd/ssl      [On CentOS based systems] 
    اکنون key و certificate را ایجاد میکنیم.
    کد PHP:
    ----------- On Debian/Ubuntu based systems -----------
    # openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/
    apache2/ssl/apache.crt

    ----------- On CentOS based systems -----------
    # openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/
    httpd/ssl/apache.crt 
    نمونه خروجی :
    کد PHP:
    ........................+++
    .....................................................+++
    writing new private key to '/etc/httpd/ssl/apache.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request
    .
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If 
    you enter '.'the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:IN
    State 
    or Province Name (full name) []:mohammad
    Locality Name 
    (egcity) [Default City]:Tehran
    Organization Name 
    (egcompany) [Default Company Ltd]:LinuxZone
    Organizational Unit Name 
    (egsection) []:LinuxZone
    Common Name 
    (egyour name or your server's hostname) []:LinuxZone
    Email Address []:admin@linux-zone.com 
    سپس key و certificate را بررسی میکنیم.
    کد PHP:
    # cd /etc/apache2/ssl/   [On Debian/Ubuntu based systems]
    # cd /etc/httpd/ssl/     [On CentOS based systems]
    # ls -l

    total 8
    -rw-r--r--. 1 root root 1424 Sep  7 15:19 apache.crt
    -rw-r--r--. 1 root root 1704 Sep  7 15:19 apache.key 
    در سیستم های دبیان / اوبونتو مطمئن شوید که apache روی پورت 443 برای سایت پیش فرض (/etc/apache2/sites-available/000-default.conf) در حال listen باشد و سه خط مربوط به ssh را درون قسمت Virtual Host اضافه کنید.
    کد PHP:
    SSLEngine on
    SSLCertificateFile 
    /etc/apache2/ssl/apache.crt
    SSLCertificateKeyFile 
    /etc/apache2/ssl/apache.key 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Enable-SSL-on-Virtualhost-linux-zone-org-forums.png مشاهده: 1 حجم: 5.7 کیلو بایت

    درتوزیع های بر پایه centos باید apache را برای listen کردن روی پورت 443 کانفیگ کنید و قسمت listen را در فایل /etc/httpd/conf/httpd.conf پیدا کنید و خطوط بالا را زیر آن اضافه کنید.
    کد PHP:
    SSLEngine on
    SSLCertificateFile 
    /etc/httpd/ssl/apache.crt
    SSLCertificateKeyFile 
    /etc/httpd/ssl/apache.key 
    تغییرات را ذخیره کنید، ماژول ssh apache را روی توزیع های دبیان / اوبونتو load کنید (در centos این ماژول به صورت خودکار زمانیکه شما پکیج mode_ssl را نصب میکنید load میشود)
    کد PHP:
    # a2enmod ssl 
    در اینجا phpmyadmin را مجبور به استفاده از ssl کنید و مطمئن شوید که خط زیر در فایل /etc/phpmyadmin/config.inc.php یا /etc/phpMyAdmin/config.inc.php موجود باشد.
    کد PHP:
    $cfg['ForceSSL'] = true
    سپس وب سرور را restart کنید.
    کد PHP:
    # systemctl restart apache2   [On Debian/Ubuntu based systems]
    # systemctl restart httpd     [On Debian/Ubuntu based systems] 
    در مرحله بعد مرورگر را باز کنید و لینک https://<ip address>/my را همانند زیر وارد کنید. ( آموزش نحوه تغییر url پیش فرض phpmyadmin )

    نکته : لطفا دقت کنید که صفحه زیر تنها میگوید که کانکشن شما امن نیست زیر ما از یک certificate ریجیستر نشده و self-signed استفاده کردیم. روی advanced کلیک و برای مورد امنیتی confirm را کلیک نمایید.

    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Enable-PhpMyAdmin-HTTPS-linux-zone-org-forums.png مشاهده: 1 حجم: 13.0 کیلو بایت

    بعد از تایید مورد امنیتی بالا و قبل از لاگین کردن بیایید ترافیک های http و https را sniff کنیم :
    کد PHP:
    # tcpdump port http or port https -l -A | egrep -i 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user ' --line-buffered -B20 
    سپس با user و password قبلی لاگین کنید همانطور که میبینید sniffer تنها یکسری حروف نامفهوم و شکسته و درهم را با تمام تلاش خودش capture خواهد کرد.

    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Sniffing-HTTP-and-HTTPS-Traffic-linux-zone-org-forums.png مشاهده: 1 حجم: 17.6 کیلو بایت

    در مقاله بعد ما نحوه محدود کردن دسترسی phpmyadmin با استفاده از username و password را آموزش خواهیم داد.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-09-2021, 03:25 PM.
    Instagram : https://www.instagram.com/iranlinuxforum

    Voip Trainer - Asterisk - Elastix - Agi Programming- NewRock

    Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
    Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
    Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
    LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

    Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X