Инсталиране и конфигуриране на LAMP сървър на Debian 10 (Buster) с Firewall и Fail2ban

В тази статия ще покажа как да инсталирате LAMP (Linux, Apache, MariaDB, PHP) сървър на Debian 10 (Buster). Също така ще направя едни от най-важните и основни неща за да защитим нашия сървър. Идеята на статията е да бъде кратка и систематизирана. Предвидена е за средно напреднали и напреднали с Linux-а.  

 

Обновяване на repository и софтуерните пакети:

apt update
apt dist-upgrade

Инсталиране на помощни пакети, ако не са инсталирани преди това: 

apt install sudo
sudo apt install htop mc curl net-tools

Влизаме като root:

su -

 

 

Препоръчително е добавим админ user-a към Sudoers. Това става със следната команда:

usermod -aG sudo YOUR_USER

 

След като приключи инсталирането на помощните пакети вече може да започнем със инсталацията на Apache2.

Инсталиране на Apache2:

sudo apt install apache2 apache2-utils

 

Сега трябва да имаме работещ Apache сървър. Може да проверим статуса му като изпълним следната команда:

systemctl status apache2

Също така може да отворим следния адрес: http://IP-то-на-сървъра. Трябва да видим страницата по подразбиране на Apache.

Активираме най-използваните модули за Apache2:

sudo a2enmod rewrite ssl headers http2 vhost_alias

Препоръчително е да спрем 'directory listing' и да позволим 'AllowOverride'. Отваряме конфиг файла:

nano /etc/apache2/apache2.conf

Намираме <Directory /var/www/> и го променяме на:

<Directory /var/www/>
        Options -Indexes +FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

 

 

 

 

С това приключи инсталирането на Apache2.

 

Инсталиране на MariaDB (MySQL server)

 

Изпълняваме следната команда:

sudo apt install mariadb-server mariadb-client

След като завърши инсталацията ще изпълним скрипта за secure installation:

sudo mysql_secure_installation

Следваме стъпките на скрипта:

  • слагаме парола на root акаунта;
  • премахваме анонимния акаунт;
  • Забраняваме remote логина с root акаунта;
  • премахваме test базата;

 

Сега ще създадем акаунт с пълни права за MySQL. Първо трябва да се свържем с MySQL:

mysql -u root -p

Въвеждаме root паролата.

След което изпълняваме следните заявки:

CREATE USER 'user'@'%' IDENTIFIED BY 'userpass';
GRANT ALL ON *.* TO 'user'@'%' WITH GRANT OPTION;

 

 

 

Инсталиране на PHP:

Изпълняваме следната команда: 

sudo apt install php libapache2-mod-php php-mysql

С това инсталацията на PHP е готова. Обаче много от WEB приложенията се нуждаят от допълнителни разширения. С тази команда ще инсталираме едни от най-известните PHP extentions:

apt-get install php-apcu php-zip php-dev php-curl php-cli php-imagick php-geoip php-mbstring php-gd php-bcmath php-memcached memcached

 

 

Рестартираме Apache2:

sudo systemctl restart apache2

 

Настройки по сигурността:

Следа една кратка и важна стъпка - настройките по сигурността. Има доста неща които може да се правят свързани със сигурността. Тук ще посоча най-общите от тях. 

Инсталиране на firewall (ufw), ако не е инсталиран:

apt install ufw

ufw allow ssh
ufw allow http
ufw allow https
ufw allow mysql

ufw enable

 

 

Инсталиране на fail2ban:

apt install fail2ban

Сега трябва да активираме някои Action Jails:

Отваряме jail.local файла:

nano /etc/fail2ban/jail.local

Поставяме следните редова:

[mysqld-auth]
enabled = true

 

 

По този начин активираме автоматичното блокиране на поредни неуспешни опити за вход в MySQL сървъра от едно и също IP.

Коментари