اگر یک سرور رسانه ای Plex را اجرا می کنید، ممکن است اتصال شما در برابر هکرها ایمن نباشد. خوشبختانه رفع این مشکل بسیار ساده و ارزان است.
Plex نرم افزار غالبی است که برای خود میزبانی کتابخانه رسانه در ویندوز، مک و لینوکس استفاده می شود. با استفاده از آن، میتوانید به فیلمها، نمایشها و موسیقیهای خود از هر دستگاه و هر مکان دسترسی داشته باشید. اما هزاران کاربر مرتکب اشتباهی می شوند که سرورها و شبکه های آنها را در برابر هکرها آسیب پذیر می کند.
پس مشکل اجرای Plex چیست؟ چگونه می توانید آن را تعمیر کنید؟ چگونه می توانید سرور Plex خود را ایمن تر کنید؟
آیا سرور Plex شما واقعا امن است؟
فرض Plex ساده است. شما یک کتابخانه رسانه ای بزرگ در خانه نگه دارید. یا در رایانه رومیزی، Raspberry Pi یا NAS، و با نرم افزار سرور Plex، می توانید از برنامه های اختصاصی یا مرورگر استفاده کنید تا رسانه ها را به محتوای دلخواه خود برسانید. اگر هزینه های اضافی مانند Plex Pass را پرداخت کنید، حتی می توانید پخش زنده تلویزیونی را تماشا و ضبط کنید و پیشرفت را در دستگاه ها همگام کنید.
برای انجام این کار، دستگاه های موجود در خانه خود را به پورت 32400 در دستگاه میزبان هدایت می کنید. اگر میخواهید در حین بیرون و اطراف رسانه مصرف کنید—مثلاً هنگام سفر در قطار، استراحت یا کار در یک کافیشاپ، یا زمانی که در خانه یک دوست هستید، باید پورت 32400 روتر خود را باز کنید و ترافیک را به همان مسیر هدایت کنید. پورت روی کامپیوتر شما با your.public.ip.address:32400 می توانید از هر کجا به سرور رسانه Plex خود دسترسی داشته باشید. تا اینجا، به همین سادگی.
به طور پیش فرض، ترافیک شبکه به یک آدرس IP فردی رمزگذاری نشده است. و این می تواند یک مشکل اساسی باشد.
چرا اجرای Plex از طریق یک اتصال رمزگذاری نشده خطرناک است؟
با استفاده از یک اتصال رمزگذاری نشده، ترافیک شما در برابر حمله Man-in-the-Middle (MITM) آسیب پذیر است. این بدان معنی است که یک مهاجم می تواند ترافیک شبکه شما را جاسوسی کند، کد ناخواسته را به ترافیک شما تزریق کند، و حتی نام های کاربری و رمز عبور را رهگیری کند.
این وضعیت به دلیل آسیب پذیری های امنیتی در Plex تشدید می شود. اینها مرتباً توسط تیم امنیتی Plex اصلاح میشوند و جزئیات آنها به طور گسترده در اینترنت فاش میشود. متأسفانه، همه کاربران Plex نرم افزار Plex خود را به روز نگه نمی دارند و ممکن است برخی از کاربران سال ها به روز نشده باشند. به عنوان مثال، نسخههای سرور قدیمیتر از 1.18.2، دارای آسیبپذیریهایی هستند که از طریق آن مهاجم میتواند کل سیستم میزبان شما را تحت کنترل درآورد.
مجرمان و سایر اشخاص ذینفع به ابزارهای منبع باز مانند MASSCAN رابرت دیوید گراهام دسترسی دارند که می تواند کل اینترنت را در پنج دقیقه اسکن کند. این امر شناسایی آدرس های IP را که در آن پورت 32400 باز است آسان می کند.
چرا باید از طریق یک نام دامنه با TLS به Plex دسترسی پیدا کنید
اکثر سرورهای اینترنت از طریق دو پورت استاندارد قابل دسترسی هستند: 80 برای ترافیک HTTP رمزگذاری نشده، و 443 برای ترافیک رمزگذاری شده، با استفاده از HTTPS (S اضافی به معنای “امن”) و امنیت لایه حمل و نقل (TLS) که در برابر آن مصون است. حملات MITM اگر در پشت هر یک از این پورتها از سرور Plex استفاده میکنید، ابزار اسکن پورت انبوه آن را برای مهاجمان احتمالی آشکار نمیکند – اگرچه، بدیهی است که HTTPS بهتر است.
اگر ارائه دهنده ای مانند Freenom را انتخاب کنید، نام دامنه ارزان یا حتی رایگان است. و می توانید یک پروکسی معکوس را پیکربندی کنید تا ترافیک وب به سرور Plex شما از پورت 443 عبور کند و پورت 32400 هرگز در معرض دید قرار نگیرد.
یکی از راه های انجام این کار، خرید یک Raspberry Zero W ارزان قیمت 10 دلاری است تا به عنوان یک واسطه عمل کند.
چگونه از Raspberry Pi برای محافظت از سرور Plex خود استفاده کنید
اولین کاری که باید انجام دهید این است که به صفحه تنظیمات پیشرفته DNS ثبت کننده خود مراجعه کنید. تمام رکوردها را حذف کنید و یک رکورد A جدید ایجاد کنید. میزبان را روی “@”، مقدار آدرس IP عمومی خود و TTL را تا حد امکان پایین تنظیم کنید.
اکنون وارد پنل مدیریت روتر خود شوید. پورت های 80 و 443 را باز کنید و هر دو را به آدرس IP محلی Raspberry P i Zero خود فوروارد کنید. پورت 32400 را ببندید.
پس از نصب Raspberry OS، از پوسته امن (SSH) برای ورود به Raspberry Pi خود استفاده کنید.
ssh pi
.pi.local.ip
به روز رسانی و ارتقاء هر بسته نصب شده:
sudo apt update
sudo apt upgrade
سرور آپاچی را نصب کنید:
sudo apt install Apache2
sudo systemctl start apache2
sudo systemctl enable apache2
Certbot را نصب کنید—ابزاری که هم گواهینامه های امنیتی و هم کلیدها را از Let’s Encrypt، سرویسی که گواهی های SSL را تنظیم می کند، واکشی و مدیریت می کند.
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt-get install python3-certbot-apache
دایرکتوری را تغییر دهید و از ویرایشگر متن نانو برای ایجاد یک فایل پیکربندی جدید آپاچی استفاده کنید تا همه درخواستهای نام دامنه جدید خود را به دستگاهی که سرور Plex را میزبانی میکند، ارسال کنید:
sudo nano plex.conf
با یک فایل متنی خالی نمایش داده می شود. موارد زیر را بچسبانید:
<VirtualHost *:80>
ServerName your-domain-name.tld
ProxyPreserveHost On
ProxyPass / http://your.plex.server.local.ip:32400/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
</VirtualHost>
نانو را با Ctrl + O سپس Ctrl + X ذخیره کرده و از آن خارج شوید.
پیکربندی را فعال کرده و آپاچی را مجددا راه اندازی کنید:
sudo a2ensite plex.conf
sudo service apache2 restart
برای گرفتن گواهینامه ها و کلیدهای SSL از Let’s Encrypt، certbot را اجرا کنید:
sudo certbot
آدرس ایمیل خود را در صورت درخواست وارد کنید و با شرایط و ضوابط موافقت کنید، سپس نام دامنه خود را از یک لیست انتخاب کنید و بازگشت را بزنید.
Certbot دوباره گواهینامه ها و کلیدهای امنیتی را از Let’s Encrypt دریافت و مستقر می کند. یک بار دیگر آپاچی را ریستارت کنید.
از Raspberry Pi Zero خود خارج شوید:
exit
سرور Plex شما اکنون از جهان پنهان شده است!
با پیروی از این دستورالعملها، موفق شدهاید پورت 32400 را ببندید و وجود سرور Plex خود را از اسکنرهای پورت پنهان کنید – در حالی که اطمینان میدهید همچنان میتوانید با استفاده از نام دامنه سفارشی خود به آن دسترسی داشته باشید. تمام ترافیک سرور Plex شما با TLS رمزگذاری شده و محافظت میشود، به این معنی که میتوانید آرامش داشته باشید و از آخرین قسمتهای House of The Dragon لذت ببرید بدون اینکه نگران کسی باشید که قصد نفوذ به شبکه شما را دارد.