https://github.com/kukoboris/ubuntu-security-setup
Скрипт для автоматизированной настройки безопасности и оптимизации серверов Ubuntu
https://github.com/kukoboris/ubuntu-security-setup
bash-script hardening security server-setup ubuntu
Last synced: 8 months ago
JSON representation
Скрипт для автоматизированной настройки безопасности и оптимизации серверов Ubuntu
- Host: GitHub
- URL: https://github.com/kukoboris/ubuntu-security-setup
- Owner: kukoboris
- License: mit
- Created: 2025-03-09T09:54:33.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-06-18T13:26:33.000Z (8 months ago)
- Last Synced: 2025-06-18T14:29:19.822Z (8 months ago)
- Topics: bash-script, hardening, security, server-setup, ubuntu
- Language: Shell
- Homepage:
- Size: 155 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: docs/security-measures-details.md
Awesome Lists containing this project
README
# Ubuntu Security Setup Script
[🇬🇧 English](docs/README.en.md) | [🇷🇺 Русский](README.md)
[](https://opensource.org/licenses/MIT)
Скрипт для автоматизированной настройки безопасности и оптимизации серверов Ubuntu 20.04 и 22.04. Этот инструмент обеспечивает комплексное усиление защиты системы, соответствующее современным стандартам безопасности.
## 🛡️ Функциональность
Скрипт выполняет следующие операции:
1. **Обновление системы**
- Полное обновление пакетов и дистрибутива
- Удаление неиспользуемых пакетов и очистка кэша
2. **Управление пользователями**
- Создание нового пользователя с привилегиями sudo
- Настройка аутентификации по SSH-ключам
- Ограничение доступа root-пользователя
3. **Настройка SSH**
- Изменение стандартного порта SSH
- Отключение входа по паролю
- Запрет доступа для пользователя root
- Настройка дополнительных параметров безопасности SSH
- Создание предупреждающего SSH-баннера
4. **Настройка файрвола (UFW)**
- Установка базовых правил (блокировка входящего трафика)
- Настройка разрешений для SSH и других выбранных сервисов
- Возможность определить дополнительные порты
5. **Защита от брутфорс-атак (fail2ban)**
- Установка и настройка fail2ban
- Создание правил для защиты SSH
- Настройка защиты от сканирования портов
- Конфигурирование правил для веб-серверов (опционально)
6. **Автоматические обновления**
- Установка и настройка unattended-upgrades
- Настройка автоматической очистки пакетов
- Настройка автоматической перезагрузки в определенное время
7. **Ведение логов (rsyslog)**
- Настройка системы журналирования
- Настройка ротации логов
- Настройка информативных сообщений журнала
8. **Установка системных утилит**
- Диагностические инструменты (htop, iotop, iftop)
- Сетевые инструменты (net-tools, curl, wget, nmap, tcpdump)
- Инструменты безопасности (lynis, rkhunter, chkrootkit)
9. **Расширенные меры безопасности**
- Настройка параметров ядра для усиления сетевой безопасности
- Ограничение доступа к критичным файлам
- Настройка политик паролей
- Настройка системы аудита (auditd)
- Настройка AppArmor
- Проверка на наличие руткитов
10. **Аудит безопасности**
- Запуск Lynis для оценки уровня безопасности
- Запуск проверок на руткиты
- Создание отчета о настройках
## ⚙️ Требования
- Ubuntu Server 20.04 LTS или 22.04 LTS
- Права пользователя root
- Интернет-подключение для загрузки пакетов
## 📥 Установка и использование
### Метод 1: Создание файла скрипта и его запуск
1. Создайте файл скрипта:
```bash
sudo nano /usr/local/bin/ubuntu-security-setup.sh
```
2. Скопируйте содержимое скрипта из репозитория в файл.
3. Сделайте скрипт исполняемым:
```bash
sudo chmod +x /usr/local/bin/ubuntu-security-setup.sh
```
4. Запустите скрипт:
```bash
sudo /usr/local/bin/ubuntu-security-setup.sh
```
### Метод 2: Установка непосредственно из репозитория
1. Установите Git, если он еще не установлен:
```bash
sudo apt update
sudo apt install -y git
```
2. Клонируйте репозиторий:
```bash
git clone https://github.com/kukoboris/ubuntu-security-setup.git
```
3. Перейдите в директорию репозитория:
```bash
cd ubuntu-security-setup
```
4. Сделайте скрипт исполняемым:
```bash
chmod +x ubuntu-security-setup.sh
```
5. Запустите скрипт:
```bash
sudo ./ubuntu-security-setup.sh
```
## 🚨 Предупреждения
- **Создайте резервную копию** перед запуском скрипта
- После настройки **доступ по SSH будет возможен только по ключу**
- После выполнения **доступ пользователя root будет ограничен**
- Скрипт **изменит порт SSH** на указанный вами
- После настройки **потребуется перезагрузка сервера**
## 📋 Результаты выполнения
После завершения скрипт создаст информационный файл `/root/security-setup-info.txt` с описанием всех выполненных настроек и рекомендациями по дальнейшему использованию. В файле будет содержаться информация о:
- Новом пользователе с правами администратора
- Измененном порте SSH
- Настроенных службах безопасности
- Рекомендациях по дальнейшему усилению безопасности
- Расположении важных логов для мониторинга
## 📊 Проверка безопасности
После выполнения скрипта рекомендуется проверить уровень безопасности:
```bash
lynis audit system
```
Скрипт автоматически запускает Lynis и показывает индекс защищенности (Hardening Index) в конце выполнения.
## 🔧 Настройки по умолчанию
- Политика паролей: длина не менее 12 символов, обязательно содержание цифр, заглавных и строчных букв, специальных символов
- SSH: аутентификация только по ключам
- Файрвол: блокировка всего входящего трафика, кроме SSH и выбранных вами сервисов
- Fail2ban: блокировка IP на 1 час после 3 неудачных попыток доступа
- Автоматические обновления: ежедневно, с перезагрузкой в 03:00
## 📝 Примечания
- Скрипт разработан и протестирован на Ubuntu 20.04 LTS и 22.04 LTS
- Для других дистрибутивов может потребоваться адаптация
- При возникновении проблем, проверьте логи: `/var/log/auth.log`, `/var/log/syslog`
## 🤝 Вклад в проект
Предложения и улучшения приветствуются! Пожалуйста, создавайте issue или pull request.
## 📜 Лицензия
Этот проект распространяется под лицензией MIT. См. файл LICENSE для дополнительной информации.
## 👤 Автор
- **kukoboris** - [GitHub](https://github.com/kukoboris)
---
⭐️ Если этот проект оказался полезным, поставьте звездочку репозиторию! ⭐️