Быстрая настройка LEMP на VPS сервере под Ubuntu 20.04
Быстрая настройка 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