Этот скрипт предназначен для управления белым списком IP-адресов с помощью iptables во время соревнований Red Team vs Blue Team.
- ✅ Постоянные IP-адреса (45.67.230.62 и 109.225.41.64) - нельзя удалить
- ✅ Поддержка одиночных IP-адресов и подсетей (CIDR)
- ✅ Автоматическое создание и управление цепочкой iptables
- ✅ Резервное копирование и восстановление конфигурации
- ✅ Детальное логирование всех действий
- ✅ Интерактивный и командный режимы работы
- ✅ Валидация IP-адресов
- ✅ Цветной вывод для удобства
# 1. Делаем скрипт исполняемым
chmod +x /home/akuma/Desktop/projects/kibers/st16/firewall/whitelist_admin.sh
# 2. Копируем systemd service (опционально)
sudo cp /home/akuma/Desktop/projects/kibers/st16/firewall/whitelist-firewall.service /etc/systemd/system/
# 3. Первый запуск и инициализация
sudo /home/akuma/Desktop/projects/kibers/st16/firewall/whitelist_admin.sh load
# 4. Включаем автозагрузку при перезагрузке (опционально)
sudo systemctl enable whitelist-firewall.service
sudo systemctl start whitelist-firewall.servicesudo ./whitelist_admin.sh show# Добавить одиночный IP
sudo ./whitelist_admin.sh add 192.168.1.100
# Добавить подсеть
sudo ./whitelist_admin.sh add 10.0.0.0/24
# Добавить IP атакующей команды
sudo ./whitelist_admin.sh add 203.0.113.50sudo ./whitelist_admin.sh remove 192.168.1.100sudo ./whitelist_admin.sh loadsudo ./whitelist_admin.sh statsДля удобного управления можно использовать интерактивное меню:
sudo ./whitelist_admin.sh interactivesudo ./whitelist_admin.sh backupsudo ./whitelist_admin.sh restore# 1. Инициализация системы
sudo ./whitelist_admin.sh load
# 2. Добавление известных IP организаторов
sudo ./whitelist_admin.sh add 203.0.113.0/24
# 3. Создание резервной копии начальной конфигурации
sudo ./whitelist_admin.sh backup# Добавление IP участника Red Team для тестирования
sudo ./whitelist_admin.sh add 198.51.100.25
# Быстрый просмотр текущего статуса
sudo ./whitelist_admin.sh show
# Просмотр статистики и логов
sudo ./whitelist_admin.sh stats# Создание резервной копии текущего состояния
sudo ./whitelist_admin.sh backup
# Блокировка подозрительной подсети
sudo ./whitelist_admin.sh remove 198.51.100.0/24
# Перезагрузка правил
sudo ./whitelist_admin.sh load- Конфигурация whitelist:
/etc/firewall/whitelist.conf - Логи:
/var/log/whitelist_admin.log - Резервные копии:
/etc/firewall/whitelist_backup_YYYYMMDD_HHMMSS.conf
Скрипт создает отдельную цепочку WHITELIST_INPUT в таблице filter, что позволяет:
- Изолированно управлять правилами whitelist
- Не конфликтовать с другими правилами iptables
- Легко очищать и перезагружать правила
Следующие IP-адреса всегда имеют доступ и не могут быть удалены:
45.67.230.62109.225.41.64
Все действия логируются в файл /var/log/whitelist_admin.log с временными метками:
# Просмотр последних действий
sudo tail -f /var/log/whitelist_admin.log
# Просмотр логов за сегодня
sudo grep "$(date '+%Y-%m-%d')" /var/log/whitelist_admin.logsudo iptables -L WHITELIST_INPUT -n --line-numbers# С разрешенного IP
ssh user@your_server
# Проверка логов подключений
sudo tail /var/log/auth.log# Создать файл со списком IP
cat > ips_to_add.txt << EOF
192.168.1.10
192.168.1.11
10.0.1.0/24
EOF
# Добавить все IP из файла
while read ip; do
sudo ./whitelist_admin.sh add "$ip"
done < ips_to_add.txt
# Загрузить обновленную конфигурацию
sudo ./whitelist_admin.sh load-
Проверьте, что постоянные IP добавлены:
sudo ./whitelist_admin.sh show
-
Проверьте правила iptables:
sudo iptables -L WHITELIST_INPUT -v -n
-
Проверьте логи:
sudo tail -n 50 /var/log/whitelist_admin.log
Если потеряли доступ к серверу:
- Получите физический/консольный доступ
- Очистите правила:
sudo ./whitelist_admin.sh flush - Или отключите службу:
sudo systemctl stop whitelist-firewall.service
- Скрипт требует права root для выполнения
- Все конфигурационные файлы имеют ограниченные права доступа (600)
- Постоянные IP-адреса защищены от случайного удаления
- Все действия логируются для аудита
- Ubuntu/Debian Linux
- iptables
- bash 4.0+
- Права root (sudo)
Скрипт готов к использованию в соревнованиях Red Team vs Blue Team!