Автор Тема: Jellyfin reverse proxy with Apache + DNS + SSL  (Прочетена 1353 пъти)

ivanovslavy

  • Напреднали
  • *****
  • Публикации: 58
    • Профил
Jellyfin reverse proxy with Apache + DNS + SSL
« -: Dec 31, 2023, 13:11 »
Здравейте,
Искам да споделя малко опит за така нашумелите напоследък мултимедия сървъри и дано съм полезен на някой от Вас!
Аз имам домашен Jellyfin multimedia server, който е достъпен през интернет и на който са качени филми, музика, лични семейни снимки, книги и други благинки на които мога да се радвам от всяка точка на света, понеже работата ми е свързана с много пътувания и отсъствие от дома. Тук обаче идва проблема с това, че достъпа до сървъра трябва да е с възможно най-високо ниво на сигурност, защото иначе сървъра и цялото инфо може да попадне в ръцете на някой "лош човек". Доста четох по темата и стигнах до извода, че трябва да го вкарам в DNS системата и да изкарам SSL сертификат за него....
Всичко това обаче ми изглеждаше малко сложно имайки се впредвид че Jellyfin работи на порт 8096 а SSL връзката минава през 443 и изисква уеб сървър!
В този ми пост няма да разглеждам инсталиране и конфигуриране нито на Jellyfin нито на който и да е уеб сървър а самата процедура по настройка за доставяне на SSL сертификат на Jellyfin работещ на стандартния си порт 8096. За уеб сървър използвам от години Apache2 и в този случай отново съм прибягнал до него, понеже го познавам и ме кефи, но Вие ако искате използвайте друг такъв. За да работи цялата идея трябва да се създаде ревърс прокси от Апаче кам Джилифин. Операционната система която използвам е Ubuntu Linux Server 22.04 LTS

1. Покупка на домейн име и настройката на DNS records към ай.пи.то на моя мултимедиен сървър
2. Пренасочване на на порт 443 в рутера към вътрешното ай.пи на сървъра - моя интернет доставчик е А1 и съм им благодарен, че са наистина много бързи и ми оказаха съдействие буквално за минути, понеже Аз нямам достъп до настройките на рутера им
3. Позволяване на порт 443 в защитната стена на сървъра
sudo ufw allow 443
4. Активиране на прокси и ревърс прокси за Апаче
sudo a2enmod proxy
sudo a2enmod proxy_http
5. Създаване на конфиг файл във Апаче, като името на домейна ще приемем, че е example.com
sudo nano /etc/apache2/sites-available/example.com.conf
6. Добавяне информацията за DNS във конфигурационният файл на сайта, както и информацията за проксито. Конфигурационният файл трябва да изглежда така:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias http://www.example.com
    ServerAdmin yourmail@gmail.com
    ErrorLog /var/log/apache2/jellyfin-error.log
    CustomLog /var/log/apache2/jellyfin-access.log combined

    ProxyPreserveHost On

    ProxyPass "/embywebsocket" "ws://127.0.0.1:8096/embywebsocket"
        ProxyPassReverse "/embywebsocket" "ws://127.0.0.1:8096/embywebsocket"

    ProxyPass "/" "http://127.0.0.1:8096/"
        ProxyPassReverse "/" "http://127.0.0.1:8096/"
</VirtualHost>

Затворете и запазете фойла!

7. Актиниране на конфигурационният файл
sudo a2ensite example.com.conf
8. Рестартиране на Апаче
 sudo systemctl restart apache2

9. Ако всичко е направино правилно трябва вече да имаме достъп до нашият Jellyfin използвайки домейн името.
Отваряме браузъра и тестваме - http://www.example.com и също example.com
Следва издаване на така нужният ни SSL сертификат:
10. Инсталираме certbot
sudo apt install python3-certbot-apache -y
11. Поискване на сертификат за нашият сайт
sudo certbot -d example.com -d www.еxample.com
Следваме стъпките които трябва да се минат и попълваме коректно всичко което трябва да се попълни и всичко което ни пита кертбота
Ако всичко е ОК на последния ред от процедурата ще ви изпише - Поздравленя!
Тествайте в браузъра отново
12. Автоматично подновяване на сертификата - Мисля, че стандартно сертификатите идват за 3 месеца, но можем да овтоматизираме този процес и кертбота да дава нов такъв всеки мисец. Влезте в:
cd /etc/systemd/system/timers.target.wants
13. Активирайте автоматичното подновяване
sudo systemctl enable certbot.timer

Това е всичко което Аз направих и нещата ми тръгнаха от първия път - изключително доволен съм от резултата. Пожелавам успех на хората които искат да имат читав мултимедиен сървър със активиран SSL и ревърс прокси.

Поздрави Слави!

Edit: Забравих да кажа, че аз използвах Мултимедииния ми сървър известно време без домейн име и SSL, просто за тест и да видя дали въобще ще ми хареса и дали ще ми върши работа. Съответно за достъпа до него бях разрешил порт 8096 в защитната стена, но с тази настройка за Jellyfin ние реално го скриваме зад Апаче сървъра и ивече използваме домейн името за достъп до него. Вече можем да изтрием този порт от ufw и реално пак да си имаме достъп до него чрез example.com. Също в моя случай трябва да звънна на А1 да спрът пренасочването на порта в рутера за максимална сигурност на системата. Все пак това бе и основната идея - max security  ;) ;)
« Последна редакция: Dec 31, 2023, 14:07 от ivanovslavy »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
reverse ssh
Настройка на програми
Agent_SMITH 11 5007 Последна публикация Dec 29, 2005, 17:33
от poisoner
reverse proxy
Настройка на програми
dvanaise 1 2675 Последна публикация Feb 13, 2011, 02:13
от gat3way
SSL Reverse Proxy с Apache
Настройки на софтуер
sstefanov 5 2839 Последна публикация Sep 26, 2011, 20:22
от sstefanov
vhosts на nginx при proxy reverse
Настройка на програми
bILLY 1 1607 Последна публикация Aug 22, 2016, 22:03
от pennywise
Apache2 reverse proxy to Azuracast installed in Docker container
Сървъри
ivanovslavy 2 1024 Последна публикация Jan 04, 2024, 12:28
от ivanovslavy