Безпека веб-серверів, Cloud-платформ.
Надійний захист від атак відмова в обслуговуванні
Комплексний захист електронних ресурсів.
Пошук та видалення вірусів на веб-сайтах.
Захист та рішення безпеки для сайтів на WordPress.
Пентест сайтів і веб-додатків.
Безпека веб-серверів, Cloud-платформ.
Надійний захист від атак відмова в обслуговуванні
Комплексний захист електронних ресурсів.
Пошук та видалення вірусів на веб-сайтах.
Захист та рішення безпеки для сайтів на WordPress.
Пентест сайтів і веб-додатків.
Безпека веб-серверів, Cloud-платформ.
Надійний захист від атак відмова в обслуговуванні
Комплексний захист електронних ресурсів.
Пошук та видалення вірусів на веб-сайтах.
Захист та рішення безпеки для сайтів на WordPress.
Пентест сайтів і веб-додатків.
Безпека веб-серверів, Cloud-платформ.
Надійний захист від атак відмова в обслуговуванні
Комплексний захист електронних ресурсів.
Пошук та видалення вірусів на веб-сайтах.
Захист та рішення безпеки для сайтів на WordPress.
Пентест сайтів і веб-додатків.
Все частіше OpenLiteSpeed зустрічається в конфігурації сайтів в інтернеті. Все більше адміністраторів і веб-девелоперів віддають перевагу саме цьому веб-серверу. А відтак є потреба зосередити свою увагу на правильному встановленні та налаштуванні OpenLiteSpeed. У цьому мануалі ми розберемо покрокову інструкцію як це зробити.
OpenLiteSpeed – це безкоштовне програмне забезпечення з відкритим кодом OpenSource для керування VPS-сервером, створене компанією LiteSpeed Technologies на базі пропрієтарної технології LiteSpeed Web Server (LSWS). OpenLiteSpeed є покращеним варіантом Apache та підтримує усі його функції, а також новітні протоколи і стандарти, такі як: HTTP/2, HTTP/3, SPDY, QUIC. Станом на вересень 2024 року займає 4 сходинку у світі за популярністю серед веб-серверів. Існує також комерційна версія LiteSpeed Enterprise з повною підтримкою синтаксису Apache. Веб-сервер сумісний з багатьма хостинг-панелями (cPanel, DirectAdmin, CyberPanel, Plesk), має численні інтеграції на хмарних платформах (AWS, GCP, Azure, DigiralOcean, Alibaba etc.).
Завдяки ефективній технології кешування LiteSpeed Cache, веб-сервер витримує високі навантаження та досягає продуктивності при мінімальному споживанні системних ресурсів:
Інші переваги OpenLiteSpeed:
Недоліки:
Загалом, проєкт OpenLiteSpeed знаходиться в процесі постійного розвитку та становлення, і в перспективі буде ще не раз оновлюватися, дороблятися і покращуватися.
Встановлювати будемо на чистому VPS-сервері під управлінням ОС Ubuntu (20.04/22.04).
Найперше необхідно оновитись:
sudo apt-get update && apt-get upgrade -y
Тепер перезавантажитись:
reboot
Також я б порадив відключити режим безпеки SELinux, незважаючи на те, що він є дуже потужним інструментом безпеки. Однак, він може на певному рівні конфліктувати з OpenLiteSpeed, блокуючи певні операції. Це може створити додаткові незручності і буде вимагати додаткового налаштування. Якщо сервер використовується для розміщення веб-сайтів, то можна не хвилюватися – функції SELinux візьме на себе OpenLiteSpeed. Перевірити статус SELinux можна командою:
sudo sestatus
Щоб відключити, треба додати SELINUX=disabled
в файл nano /etc/selinux/config
.
Переходимо до встановлення OLS:
sudo wget -O - http://rpms.litespeedtech.com/debian/enable_lst_debian_repo.sh | sudo bash
apt-get install openlitespeed
Перевіряємо статус OpenLiteSpeed:
systemctl status openlitespeed netstat -plntu netstat -pl | grep lsphp
Встановлюємо PHP і усі необхідні модулі:
apt-get install lsphp74 lsphp74-common lsphp74-curl lsphp74-imagick lsphp74-memcached lsphp74-imap lsphp74-json lsphp74-intl lsphp74-mysql lsphp74-opcache lsphp74-opcache lsphp74-redis
ln -sf /home/lsphp74/bin/lsphp /home/fcgi-bin/lsphp5
Тепер встановлюємо систему управління базами даних MySQL — MariaDB:
sudo apt install mariadb-client mariadb-server -y
systemctl start mariadb systemctl enable mariadb systemctl status mariadb
Проводимо інсталяцію параметрів безпеки MySQL:
mysql_secure_installation Set a root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Встановлюємо доступ root до бази даних тільки за паролем:
mysql -u root -p select User, Password, Host from mysql.user; exit mysql -u root mysql SET PASSWORD FOR root@localhost=PASSWORD('ваш_пароль'); FLUSH PRIVILEGES; exit
Тепер необхідно встановити логін і пароль для входу в панель управління OpenLiteSpeed сервером:
cd /home/admin/misc/ sh admpass.sh
Можна заходити в адмінку: https://ip_address:7080
WebAdmin Console – це панель керування веб-сервером LiteSpeed. Дуже зручна і компактна в адмініструванні. Містить усі конфігурації електронних ресурсів, які працюють на сервері. З точки зору безпеки перше, що потрібно зробити – це захистити і обмежити публічний доступ до неї.
Для цього необхідно авторизуватися і перейти в WebAdmin Settings -> General -> Access Control. В поле Allowed List необхідно додати список дозволених IP-адрес або IP-діапазон, а в поле Denied List вказати символ *:
Також, якщо ви хочете перевести адмін-панель на захищений HTTPS-протокол і прив’язати домен (підключений до проксі Cloudflare), треба змінити стандартний порт панелі OpenLiteSpeed.
Для цього необхідно:
/home/admin/conf/admin_config.conf
systemctl restart lsws
Наступний крок — встановити CSF Firewall:
wget http://download.configserver.com/csf.tgz tar -xvzf csf.tgz cd csf bash install.sh perl /usr/local/csf/bin/csftest.pl
Готово. Тепер треба вилучити зайві мережеві порти та внести бажані в конфігурацію CSF і перезапустити фаєрвол, щоби правила вступили в силу:
nano /etc/csf/csf.conf csf -r
Якщо ви хочете зробити доступним той чи інший порт лише для конкретних IP, необхідно внести в файл дозволів CSF /etc/csf/csf.allow
наступний рядок, до прикладу: tcp|in|d=8090|s=XXX.XXX.XXX.0/24
Щоб внести IP-адресу до чорного списку (бан на рівні серверного firewall), необхідно відкрити файл /etc/csf/csf.deny
та просто її туди додати. Після чого обов’язково оновити правила: csf -r
.
Інші корисні команди:
sudo csf -x
– повністю вимикає CSF Firewall;sudo csf -e
– вмикає CSF Firewall.По-замовчуванню, в панелі WebAdmin для веб-сайтів працює порт 8088. Так бути не повинно. Треба додати 80 (HTTP) і 443 (HTTPS) порти. Переходимо в меню Listeners, тиснемо Add й додаємо обох почергово, Default можна видалити:
Час додати перший віртуальний хост, тобто веб-сайт. Домен повинен бути попередньо направлений на сервер. Для цього необхідно перейти в панелі реєстратора домена в DNS-зону і додати A записи для @ та www й направити їх на IP-адресу сервера.
Тепер треба створити домашню директорію сайту на сервері, де будуть зберігатися усі файли та папки сайту:
cd /home mkdir example.com cd example.com mkdir {public_html,logs}
Повертаємося в OLS-панель і переходимо в меню VirtualHost, де клацаємо Add й додаємо новий сайт:
/home/example.com
;$SERVER_ROOT/conf/vhosts/example.com/vhost.conf
;Решту налаштувань можна залишити без змін. Натисніть на іконку “Save” для збереження налаштувань. Якщо з’явиться попередження, що файлу vhost.conf не існує – натисніть на напис, який з’явиться “CLICK TO CREATE” та знову збережіть.
Як створити користувача для режиму DocRoot UID? Необхідно виконати послідовно наступні дії:
sudo useradd -r -d /home/example.com -s /usr/sbin/nologin username
grep username /etc/group
sudo usermod -aG username nobody
groups nobody
sudo chown -R username:username /home/example.com
ls -ld /home/example.com
sudo chmod -R 750 /home/example.com
sudo find /home/example.com/public_html -type d -exec chmod 755 {} \;
sudo find /home/example.com/public_html -type f -exec chmod 644 {} \;
systemctl restart lsws
Створені користувача та групу треба вписати в поля suEXEC User і suEXEC Group (див. вище).
Тепер переходимо до VirtualHost -> General, де треба заповнити конфігураційні дані віртуального хоста:
$VH_ROOT/public_html
;$VH_DOMAIN
;www.$VH_DOMAIN
;Решта налаштувань залишити без змін або встановити за потребою.
Нижче, в блоці Index Files вказати файли індексу – index.php, index.html:
Ще нижче, у блоці Custom Error Pages можна вказати власні сторінки для кодів відповіді сервера, наприклад 404, 403 і т.д. Просто вказуємо розташування html файлів цих сторінок. З точки зору кібербезпеки це добре, тому що на стандартних сторінках помилок розкривається повна назва сервера.
Далі необхідно знову перейти в меню Listeners -> Listener Default, а потім Listeners -> Listener SSL і в блоці Virtual Host Mappings додати домен сайту з www і без, відділивши комою:
Тепер переходимо в налаштування Virtual Host -> Rewrite, де необхідно увімкнути правила перезапису Rewrite і автоматичне підвантаження правил з .htaccess сайту. Опцію Log Level можна залишити без змін, вона відповідає за деталізованість логів і вступає в дію тільки тоді, коли в Error Logs встановлений рівень INFO:
Ще одним обов’язковим пунктом є вкладка Virtual Host -> Context. З її допомогою можна керувати доменом, встановити правила для домену, наприклад редиректи, обмеження доступу до файлів і директорій, HTTP Security Headers тощо. Необхідно натиснути Add і додати конфігурацію Static:
Приклад використання правил Context для захисту файлів WordPress:
Щоб веб-сайт запрацював на захищеному HTTPS-протоколі необхідно встановити SSL-сертифікат. Якщо домен обслуговується в DNS CloudFlare, можна згенерувати “вічні” сертифікати CloudFlare SSL для Origin Server, перенести їх на VPS-сервер і вказати їх розташування в OpenLiteSpeed.
Для цього необхідно авторизуватися в панелі керування Cloudflare, перейти в розділ сайту і відкрити меню SSL/TLS -> Origin Server -> Create Certificate. Далі відкриється вікно Origin Server, де необхідно задати налаштування генерації сертифікату. Все залишаємо без змін, але в полі Hostnames вказуємо домен сайту для якого потрібен SSL, наприклад example.com, www.example.com:
Отримані PEM-сертифікати копіюємо і зберігаємо на сервері в файлах:
/usr/local/lsws/conf/cert/example.com/privkey.pem /usr/local/lsws/conf/cert/example.com/cert.pem
Права власності на директорію з сертифікатами повинні належати службовій групі lsadm:nobody
з доступом 0750
:
sudo chmod -R 0750 /usr/local/lsws/conf/cert/example.com/privkey.pem sudo chown -R lsadm:nobody /usr/local/lsws/conf/cert/example.com/cert.pem
Тепер заходимо в OLS WebAdmin панель, в Virtual Host -> SSL й вказуємо розташування цих сертифікатів для Private Key File і Certificate File відповідно:
Підказка: Рекомендується зробити резервні копії сертифікатів і зберегти на локальному комп’ютері в зашифрованій папці. У разі чого, ви зможете швидко їх перевстановити.
На вкладці Listener HTTPS > SSL необхідно додатково виставити деякі налаштування SSL:
Альтернативний варіант отримання SSL — з допомогою серверної утиліти Certbot від LetsEncrypt.
Необхідно попередньо створити додаткову папку в кореневій директорії сайту /.well-known/acme-challenge
(з правами власності користувача:групи 0755), створити новий Static у вкладці Context й вказати повний шлях до неї, наприклад /home/example.com/public_html/.well-known/acme-challenge
:
Після цього перевірити чи доступна ця директорія у браузері, наприклад додавши в неї тестовий файл test.txt. Якщо файл відкривається, значить все налаштовано правильно і Certbot зможе згенерувати сертифікат.
Тепер перейдемо до безпосередньої генерації. У командному рядку на сервері виконуємо:
sudo certbot certonly --webroot -w /path/to/your/webroot -d example.com --rsa-key-size 4096 -n --agree-tos -m email@webmaster.com
Сертифікат повинен успішно згенеруватися. Ви отримаєте 2 файли: privkey.pem та fullchain.pem. Аналогічно потрібно вказати шляхи до їх розташування в панелі OLS.
Цей спосіб генерації SSL від LetsEncrypt можна використовувати і для поштових доменів.
Якщо усі вищеперелічені дії виконано коректно, на головному екрані панелі WebAdmin, на лістингу доменів, статус вашого сайту буде в статусі Running:
Щоб контролювати роботу сайту і виявляти помилки, необхідно включити системні журнали (логи) сайту. Переходимо на наступну вкладку Log.
В блоці Virtual Host Log (логи помилок) вказуємо наступні дані:
$VH_ROOT/logs/error.log
;Тепер переходимо нижче до блоку Access Log (логи відвідувань), тиснемо + і аналогічно заповнюємо усі поля:
$VH_ROOT/logs/access.log
;"%h %l %u %t \"%r\" %>s %b"
;$VH_ROOT/logs/bytes.log
OpenLiteSpeed підтримує функцію веб-сервера Apache – htpasswd, що дозволяє обмежити доступ до будь-яких файлів та папок веб-сайту через HTTP-авторизацію. Це дуже важлива опція в контексті захисту від зламу і несанкціонованого доступу.
Отже, для того щоб застосувати htpasswd необхідно перейти в меню Virtual Host -> Security і в блоці Realm List натиснути + та додати нову конфігурацію Password File Realm Definition:
$SERVER_ROOT/conf/vhosts/$VH_NAME/htpasswd
;$SERVER_ROOT/conf/vhosts/$VH_NAME/htgroup
;Натисніть Save. Система запропонує вам створити неіснуючі файли, натисніть CLICK TO CREATE.
Тепер в блоці Realm з’явиться нова конфігурація:
Треба перейти в неї клікнувши по назві і далі в блоці “Password File Realm Definition” клікнути по $SERVER_ROOT/conf/vhosts/$VH_NAME/htpasswd
та додати дані авторизації для доступу через httpasswd:
Зберігаємо.
Тепер необхідно перейти в Context, відкрити Static прикріплений до кореневої директорії сайту / і заповнити такі поля:
Зберегти і перезвантажити OpenLiteSpeed натиснувши в панелі на кнопку в правому верхньому куті екрану “Graceful Restart” або виконавши у командному рядку systemctl restart lsws
.
Резервний варіант як налаштувати htpasswd. У деяких випадках автоматично налаштувати HTTP-авторизацію через веб-інтерфейс OpenLiteSpeed не вдається – при введенні даних форма не спрацьовує, тоді необхідно зробити це на сервері вручну:
#Генеруємо httpasswd, система попросить задати пароль для вказаного користувача sudo htpasswd -c /usr/local/lsws/conf/vhosts/example.com/.htpasswd userlogin #Налаштовуємо необхідні права доступу chmod -R 0750 /usr/local/lsws/conf/vhosts/example.com chown -R lsadm:nobody /usr/local/lsws/conf/vhosts/example.com
Тепер переходимо знову в панель керування OpenLiteSpeed, в Virtual Host -> Security і додаємо новий Realm – вказуємо розташування файлу httpasswd в полі User DB Location, решта полів залишаємо пустими і зберігаємо. Додатково створювати користувача не треба (ви вже його створили).
Тепер аналогічно перейти в Virtual Host -> Context і повторити операцію як в інструкції вище. Авторизація має запрацювати.
Розробники регулярно випускають нові релізи веб-сервера OpenLiteSpeed з додаванням нових функцій та виправленням старих. Слідкувати за ними можна на офіційному сайті в розділі OpenSpeed Release Log.
Поточна версія веб-сервера виводиться в панелі адміністрування WebAdmin Console в верхньому лівому куті поруч з логотипом:
Для того щоб оновити OpenLiteSpeed до останньої версії, необхідно у командному рядку на сервері з облікового запису root
виконати:
wget https://raw.githubusercontent.com/litespeedtech/openlitespeed/master/dist/admin/misc/lsup.sh chmod +x lsup.sh ./lsup.sh
Оновлення автоматичне і не має вплинути жодним чином на поточну конфігурацію сервера. Детальніше в офіційні документації OpenLiteSpeed>>
ПОДІЛИТИСЬ У СОЦМЕРЕЖАХ:
Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!