Быстрая настройка LEMP на VPS сервере под Ubuntu 20.04

Категория: Linux

Быстрая настройка LEMP сервера от Hetzner на Ubuntu 20.04 (Linux + Nginx + MySQL + PHP).

На этапе создании нового VPS сервера, сгенерируйте на локалке SSH-ключ и укажите *.pub ключ в форме создания сервера:

ssh-keygen -t rsa -f ~/.ssh/id_rsa_YOUR_SERVER -C "key description" -q -N ""

См. Настройка SSH доступа по RSA ключу.

Меняем дефолтный SSH порт 22 на нестандартный (замените XXXXX на желаемый порт):

sed -Ei 's/#Port 22/Port XXXXX/' /etc/ssh/sshd_config
## Вариант замены любого порта на свой:
## sed -Ei -e '/^#Port [0-9]+$/ s| .*$| XXXXX|' -e 's|^#Port |Port |' /etc/ssh/sshd_config
sudo service ssh restart
sudo reboot

Ставим защиту от брутфорса SSH:

sudo apt install fail2ban
systemctl status fail2ban  ## проверить статус сервиса
fail2ban-client status     ## посмотреть активные "клетки"
## Конфиги:
sudo nano /etc/fail2ban/fail2ban.conf
sudo nano /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.d/defaults-debian.conf

Утилита fail2ban смотрит ssh логи и при превышении неудачных вводов пароля подряд (по умолчанию 5) банит IP на заданное время (по умолчанию 10m).

Как посмотреть неудачные попытки ssh авторизации
grep "Failed password" /var/log/auth.log

Ставим необходимое:

sudo apt install zip unzip

Ставим git и добавляем алиасы:

sudo apt install git -y
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"
git config --global alias.type 'cat-file -t'
git config --global alias.dump 'cat-file -p'

Ставим Nginx:

sudo apt update
sudo apt install nginx -y

Ставим MySQL (нужно будет интерактивно настроить безопасность и парольmysql root):

sudo apt install mysql-server
## Настройка уровня требований к паролям VALIDATE PASSWORD COMPONENT
sudo mysql_secure_installation

# Would you like to setup VALIDATE PASSWORD component? Y
# 0 = LOW, 1 = MEDIUM, 2 = STRONG (Length >= 8, numeric, mixed case, special characters and dictionary file)
# Please set the password for root here << Укажите пароль root
# Remove anonymous users? Y
# Disallow root login remotely? Y
# Remove test database and access to it? Y
# Reload privilege tables now? Y

Ставим PHP:

sudo apt install php-fpm php-mysql -y

См. Настройка пользователя tuner для управления LEMP сервером.

См. Настройка HTTPS для сайта с помощью Lets Encrypt.

См. Установка Composer под Linux.

Опционально, зависимости PHP для Laravel 7:

sudo apt install php7.4-mbstring php7.4-xml -y

Остальное устанавливаем по необходимости.

#vps server, #ubuntu 20.04, #lemp, #fail2ban

категория: Linux