Kor-Elf Shield
Русский English
ВНИМАНИЕ: Программа на стадии активной разработки и на данный момент NOT PRODUCTION READY
Я больше 10-ти лет использовал ConfigServer Security and Firewall (csf) для защиты своего сервера. Но, к сожалению, в сентябре узнал, что компания, которая поддерживала этот великолепный продукт, закрылась 31 августа 2025 года. CSF написан на языке PERL. И компания выложила все исходные коды в свой репозиторий под лицензией GPLv3. Но я не знаю язык PERL. И мне его тяжело читать. :)
Я решил реализовать своё решение на языке Go Lang. Это не будет полная копия CSF. Просто CSF вдохновило меня сделать, что-то похожее для защиты своего сервера.
Требования:
- Запуск от имени root
- Linux 5.2+
- nftables
- Systemd
Сделанно:
- Реализована возможность настраивать nftables:
- По умолчанию разрешить или блокировать входящий трафик.
- По умолчанию разрешить или блокировать исходящий трафик.
- Настройка icmp.
- Настройка портов.
- Настройка белых и чёрных списков IP адресов.
- Настройка логирование.
- Подружить с docker (частично).
- Внедрить настройку уведомлений (пока только e-mail).
- Отправлять уведомления при авторизации ssh.
В планах:
- Защита от перебора паролей (brute-force).
- Уведомлять, если появится новый пользователь в системе.
- Уведомлять, если изменились системные файлы.
Компиляция из исходного кода:
- git clone https://git.kor-elf.net/kor-elf-shield/kor-elf-shield.git
- cd kor-elf-shield
- go build -o kor-elf-shield
- sudo cp kor-elf-shield /usr/local/bin/kor-elf-shield
- sudo chmod +x /usr/local/bin/kor-elf-shield
- sudo cp -r assets/configs /etc/kor-elf-shield
- sudo cp assets/kor-elf-shield.service /etc/systemd/system/kor-elf-shield.service
- sudo cp assets/kor-elf-shield.logrotate /etc/logrotate.d/kor-elf-shield
- Отредактировать нужные параметры в:
/etc/kor-elf-shield/kor-elf-shield.toml
/etc/kor-elf-shield/firewall.toml - sudo systemctl daemon-reload
- sudo systemctl enable kor-elf-shield
Не совместим с ufw, firewalld. Их надо отключить иначе будет конфликт в настройках nftables. Все программы, которые работают с nftables могут конфликтовать с kor-elf-shield. - sudo systemctl start kor-elf-shield
Скачать скомпилированные готовые версии можно тут: https://git.kor-elf.net/kor-elf-shield/kor-elf-shield/releases.
Внимание: по умолчанию в настройках стоит Тестовый режим, после определённого периода (по умолчанию 5 минут) программа выключается и все правила nftables очищаются. Это нужно для того, чтобы вы могли вначале отладить все правила, а после включить в боевом режиме.
Перед запуском программы рекомендуем ознакомиться с инструкцией по первому запуску.
Настройки:
/etc/kor-elf-shield/kor-elf-shield.toml - тут находятся общие настройки. Информацию можно посмотреть тут: https://shield.kor-elf.net/docs/0.x/kor-elf-shield.toml
/etc/kor-elf-shield/firewall.toml - тут находятся настройки, связанные с nftables. Информацию можно посмотреть тут: https://shield.kor-elf.net/docs/0.x/firewall.toml
Программное обеспечение является MIT (см. LICENSE) и использует сторонние библиотеки, которые распространяются на их собственных условиях (см. LICENSE-3RD-PARTY.txt).