# Kor-Elf Shield ### Русский     English

Я больше 10-ти лет использовал ConfigServer Security and Firewall (csf) для защиты своего сервера. Но, к сожалению, в сентябре узнал, что компания, которая поддерживала этот великолепный продукт, закрылась 31 августа 2025 года. CSF написан на языке PERL. И компания выложила все исходные коды в свой репозиторий под лицензией GPLv3. Но я не знаю язык PERL. И мне его тяжело читать. :)

Я решил реализовать своё решение на языке Go Lang. Это не будет полная копия CSF. Просто CSF вдохновило меня сделать, что-то похожее для защиты своего сервера.

***

Требования:

* Запуск от имени root * Linux 5.2+ * nftables * Systemd * journalctl *** ### Сделанно: * Реализована возможность настраивать nftables: * По умолчанию разрешить или блокировать входящий трафик. * По умолчанию разрешить или блокировать исходящий трафик. * Настройка icmp. * Настройка портов. * Настройка белых и чёрных списков IP адресов. * Настройка логирование. * Подружить с docker (частично). * Внедрить настройку уведомлений (пока только e-mail). * Отправлять уведомления при авторизации ssh. * Защита от перебора паролей (brute-force). ### В планах: * Уведомлять, если появится новый пользователь в системе. * Уведомлять, если изменились системные файлы. *** ## Компиляция из исходного кода: 1. git clone https://git.kor-elf.net/kor-elf-shield/kor-elf-shield.git 2. cd kor-elf-shield 3. go build -o kor-elf-shield 4. sudo cp kor-elf-shield /usr/local/bin/kor-elf-shield 5. sudo chmod +x /usr/local/bin/kor-elf-shield 6. sudo cp -r assets/configs /etc/kor-elf-shield 7. sudo cp assets/kor-elf-shield.service /etc/systemd/system/kor-elf-shield.service 8. sudo cp assets/kor-elf-shield.logrotate /etc/logrotate.d/kor-elf-shield 9. Отредактировать нужные параметры в:
/etc/kor-elf-shield/kor-elf-shield.toml
/etc/kor-elf-shield/firewall.toml 10. sudo systemctl daemon-reload 11. sudo systemctl enable kor-elf-shield
Не совместим с ufw, firewalld. Их надо отключить иначе будет конфликт в настройках nftables. Все программы, которые работают с nftables могут конфликтовать с kor-elf-shield. 12. 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

/etc/kor-elf-shield/analyzer.toml - тут находятся настройки для анализатора логов. Информацию можно посмотреть тут: https://shield.kor-elf.net/docs/0.x/analyzer.toml

/etc/kor-elf-shield/notifications.toml - тут находятся настройки для уведомлений. Информацию можно посмотреть тут: https://shield.kor-elf.net/docs/0.x/notifications.toml

/etc/kor-elf-shield/docker.toml - тут находятся настройки, связанные с docker. Информацию можно посмотреть тут: https://shield.kor-elf.net/docs/0.x/docker.toml

/etc/kor-elf-shield/blocklists.toml - тут находятся настройки для получения IP-адресов от разных сервисов, которые надо заблокировать. Информацию можно посмотреть тут: https://shield.kor-elf.net/docs/0.x/blocklists.toml

/etc/kor-elf-shield/geoip.toml - тут находятся настройки для получения данных об IP-адресах. Информацию можно посмотреть тут: https://shield.kor-elf.net/docs/0.x/geoip.toml

***

Программное обеспечение является MIT (см. LICENSE) и использует сторонние библиотеки, которые распространяются на их собственных условиях (см. LICENSE-3RD-PARTY.txt).