3.5 KiB
3.5 KiB
Security Hardening Checklist
Этот список рассчитан на инфраструктуру из этого репозитория:
- HAProxy как edge reverse proxy;
- Gitea в Docker;
- публичные порты
80,443,2222,25,3389.
Приоритет P0 (сделать в первую очередь)
- Обновить систему:
sudo apt update && sudo apt full-upgrade -y
- Включить автообновления security-пакетов (
unattended-upgrades). - Сменить/усилить пароли админов, включить 2FA в Gitea.
- Проверить
ROOT_URL=https://git.papatramp.ru/вapp.ini. - Убедиться, что TLS-сертификат на HAProxy содержит SAN
git.papatramp.ru. - Ограничить доступ к закрытым сервисам через
allowed_ips.lst.
Приоритет P1 (в течение дня)
- Настроить firewall (UFW):
sudo ./scripts/setup-ufw.sh
- Настроить fail2ban:
sudo apt install -y fail2bansudo cp fail2ban/jail.d/owngit.local /etc/fail2ban/jail.d/owngit.localsudo systemctl enable --now fail2bansudo fail2ban-client status
- Отключить root login по SSH и парольный вход:
- использовать безопасный скрипт:
sudo ./scripts/safe-apply-ssh-hardening.sh
- шаблон конфига:
ssh/sshd_config.d/90-owngit-hardening.conf
- использовать безопасный скрипт:
Приоритет P2 (регулярная эксплуатация)
- Включить ежедневные бэкапы (
systemdtimer изsystemd/). - Раз в месяц делать тестовое восстановление через
scripts/restore-gitea.sh. - Проверять fail2ban:
sudo fail2ban-client status sshd
- Проверять логи HAProxy/Gitea:
- ошибки 4xx/5xx,
- всплески соединений и brute-force.
- Хранить бэкапы вне сервера (NAS/S3/другой хост).
Минимальная проверка после hardening
sudo ufw status verbose
sudo fail2ban-client status
curl -I https://git.papatramp.ru
ssh -T -p 2222 git@git.papatramp.ru
Безопасное применение SSH hardening
chmod +x scripts/safe-apply-ssh-hardening.sh
sudo ./scripts/safe-apply-ssh-hardening.sh
Скрипт:
- делает backup текущих SSH-конфигов;
- устанавливает include-конфиг в
/etc/ssh/sshd_config.d/; - проверяет синтаксис
sshd -t; - перезагружает ssh только при валидной конфигурации.
Опциональный Lockdown профиль
Если нужен строгий доступ только для отдельных пользователей/сетей:
- Отредактируй шаблон:
ssh/sshd_config.d/95-owngit-lockdown.conf.example
- Укажи реальные логины в
AllowUsers. - Применяй только безопасным скриптом:
chmod +x scripts/safe-apply-ssh-lockdown.sh
sudo ./scripts/safe-apply-ssh-lockdown.sh
Что делает скрипт:
- проверяет наличие
AllowUsersв шаблоне; - ставит конфиг в
/etc/ssh/sshd_config.d/95-owngit-lockdown.conf; - валидирует
sshd -t; - делает reload только при валидной конфигурации;
- сохраняет backup предыдущего lockdown-файла.