-
Notifications
You must be signed in to change notification settings - Fork 0
Infrastructure
Vladislav Kuznecov edited this page Aug 25, 2021
·
1 revision
Я ещё не такой крутой, чтобы создавать полноценный скрипт на каком-нибудь Puppet, так что вот шпаргалка по настройке нового VDS:
-
useradd -m dusic
- добавление нового пользователя -
sudo passwd dusic
- установка пароля -
usermod -aG sudo dusic
- выдача расширенных прав
-
nano /etc/ssh/sshd_config
- конфигурация SSH- Переопределить опцию
Port
. Например, на 2232 - Разрешить авторизацию по паролю:
AllowUsers dusic
- Переопределить опцию
-
sudo ufw allow 2232/tcp
- открытие порта в фаерволе -
sudo ufw enable
- включение фаервола -
sudo ufw reload
- перезагрузка фаервола -
sudo service sshd restart
- перезагрузка SSH сервера - На этом моменте следует переоткрыть сессию SSH на новом порту через нового пользователя
-
chsh -s /bin/bash
- иногда требуется явно выставить командную оболочку -
sudo ufw deny 22/tcp
- закрытие старого SSH порта -
sudo ufw reload
- перезагрузка фаервола -
sudo ufw status verbose
- можно посмотреть статус фаервола
-
mkdir ~/.ssh
- создание директории -
touch ~/.ssh/authorized_keys
- создание файла с доверенными клиентами
Локально:
-
cat ~/.ssh/id_rsa.pub | ssh dusic@$IP -p $PORT 'cat >> ~/.ssh/authorized_keys'
- добавление ключа на сервер. На месте$IP
и$PORT
IP и порт (вау)
Теперь можно локально зайти на сервер как крутой: ssh dusic@$IP -p $PORT
А ещё можно локально настроить ~/.ssh/config
и быть вообще крутым: ssh dusic-app-1
sudo apt install fail2ban
- Конфигурация
sudo vim /etc/fail2ban/jail.local
[ssh]
enabled = true
port = 2232
logpath = /var/log/auth.log
maxretry = 6
sudo service fail2ban restart
-
sudo tail -n 1000 /var/log/fail2ban.log
- лог
-
sudo apt install libsodium-dev
- шифрование в Discord
Этот шаг должен быть уже не нужен, учитывая, что репозиторий теперь публичный
-
ssh-keygen -t rsa -b 4096 -C "your@mail.ru" && cat ~/.ssh/id_rsa.pub
- SSH ключ сервера, его надо добавить в настройки репозитория Github
-
vim /etc/systemd/system/dusic-cluster.service
:
[Unit]
Description=Dusic cluster
After=network.target
[Service]
Type=simple
User=dusic
WorkingDirectory=/home/dusic/dusic-client/current
ExecStart=/home/dusic/dusic-client/current/bin/cluster -c /home/dusic/dusic-client/current/config/cluster/production/app_1.yml
ExecStop=/bin/kill -INT $MAINPID
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=dusic-cluster
Restart=always
[Install]
WantedBy=multi-user.target
-
sudo systemctl daemon-reload
- перезагрузка списка демонов - Разрешить манипуляции с сервисом без sudo, добавив
/etc/sudoers.d/dusic
:
dusic ALL=(ALL) NOPASSWD: /bin/systemctl start dusic-cluster
dusic ALL=(ALL) NOPASSWD: /bin/systemctl stop dusic-cluster
dusic ALL=(ALL) NOPASSWD: /bin/systemctl restart dusic-cluster
dusic ALL=(ALL) NOPASSWD: /bin/systemctl try-restart dusic-cluster
-
systemctl status dusic-cluster
- статус -
sudo systemctl restart dusic-cluster
- перезагрузка -
journalctl -u dusic-cluster-f
- логи
- В случае проблем с памятью (утечки, например), можно задать регулярные перезагрузки через
crontab -e
:
30 5 * * * sudo /bin/systemctl try-restart dusic-cluster