@Desead

Правильно или нет я настраиваю VPS для django?

Беру VPS на reg.ru и провожу с ним нижеописанные манипуляции. Так как сам не очень силён в этом всём, то насобирал всё необходимое из разных статей. На данный момент у меня всё работает, но интересует вопрос правильно или нет я всё делаю и что в итоге у меня с безопасностью, нет ли особых проблем.

вот мои действия:

1. Обновляемся:
apt update && apt upgrade -y

2. Меняем root пароль
passwd

3. Создаём нового пользователя и добавляем его в sudo
adduser NewUserName
usermod -aG sudo NewUserName
входим новым пользователем

4. Ставим нужное ПО
sudo apt install mc htop git nginx
sudo apt install python3-pip python3-venv python3-dev libpq-dev
sudo apt install postgresql postgresql-contrib curl

5. Создаём SSH ключ и копируем его на сервер.
Создание ключа: ssh-keygen -t rsa -b 4096
Загрузка ключа на сервер: ssh-copy-id -i ~/.ssh/keyname.pub NewUserName@iphost

6. Настройки SSH доступа.
sudo nano /etc/ssh/sshd_config.d/myssh.conf

Port 59043
Protocol 2
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
PermitEmptyPasswords no
PubkeyAuthentication yes
UseDNS yes
MaxAuthTries 3
# Задание пользователей и групп, которым разрешен доступ по SSH
# AllowGroups Group1, Group2, Group3
#AllowUsers NewUserName, root
LoginGraceTime 30
ClientAliveInterval 200
ClientAliveCountMax 3
TCPKeepAlive no
AddressFamily inet
IgnoreRhosts yes
HostbasedAuthentication no
LogLevel INFO
StrictModes yes
UsePrivilegeSeparation yes

7. Защищаем shared-память
sudo nano /etc/fstab
В конец файла добавьте строку:
tmpfs /run/shm tmpfs defaults,noexec,nosuid 0 0

8. Настройка firewall ufw
sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 59043/tcp
sudo ufw allow 443/tcp
sudo ufw allow 80/tcp
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

9. Автоматические обновления безопасности
sudo apt install unattended-upgrades
sudo nano /etc/apt/apt.conf.d/10periodic

Обновите этот файл следующим образом:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Отредактируйте файл следующим образом:
Unattended-Upgrade::Allowed-Origins {
"Ubuntu lucid-security";
//"Ubuntu lucid-updates";
};

10. Меняем права
=======================================
chmod 705 /home/NewUserName
chmod 700 /home/NewUserName/.ssh
chmod 400 /home/NewUserName/.ssh/authorized_keys
chown NewUserName:NewUserName /home/NewUserName -R

Вот с этим пунктом, только что выяснил совершенно случайно, что есть некая беда с правами, так как через некоторое время не могу зайти сам на свои сервера. Сижу разбираюсь и все сервера переустанавливаю.

После этого выкатываю проект на django.
Всё ли я делаю первоночально правильно, нет ли чего лишнего или глупого или может ещё что то надо добавить?
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
@bacon
Вопрос же больше не про django, а про настройку веб-сервера, так тут пофиг django или еще что-то. Ну или лучше разделить на части, одна общая, вторая это условия для запуска django (причем поставил кучу всего, а про wsgi сервер забыл). Плюс, я например, репы для ngixn и postgresql с их офсайтов беру. Да и у всех свои нюансы и предпочтения
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы