Настройка новой виртуальной машины
Время от времени поднимаю виртуальные машины на убунту для своих проектов или экспериментов. Первое что я настраиваю — безопасность. Раньше у меня не было единого чек-листа и приходилось каждый раз гуглить. Поэтому решил сделать такой список и оставить у себя в блоге, чтобы обращаться к нему по мере необходимости.
Чеклист
- Создать нового пользователя вместо root.
- Настроить доступ по ssh ключам.
- Отключить доступ по паролю для ssh.
- Отключить доступ для root через ssh.
- Заблокировать все порты в ufw, кроме 80, 22 и 443.
- (необязательно) Поменять ssh порт с 22 любой другой
Terminal
# Создаем нового пользователя и добавляем в группу sudo.
adduser bstefaniuk
usermod -aG sudo bstefaniuk
# Копируем свой публичный ключ для нового пользователя.
ssh-copy-id bstefaniuk@vps-ip
# Отключаем доступ по паролю и root для ssh.
nano /etc/ssh/sshd_config
## Установить значения:
PasswordAuthentication no
PermitRootLogin no
## Перезапустить службу
systemctl restart ssh
# Настройка ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow 80
ufw allow 433
ufw enable
## Проверяем что все ОК
ufw status
В будущем хочу написать ansible-playbook скрипт, который будет все настраивать сам.
Хороший мануал по ufw
Генератор конфигураций nginx
Deployment: настраиваем пользователей