ConfigServer & Security Firewall (CSF) - это продвинутый брандмауэр с открытым исходным кодом для Linux-систем, который предоставляет множество полезных функций, таких как защита входа в систему, проверка эксплойтов, защита от "пинга смерти" и многое другое, в дополнение к обычным функциям брандмауэра. Кроме того, он легко интегрируется с популярными веб-панелями управления, такими как cPanel, Webmin, Vesta CP, CyberPanel, DirectAdmin. Он также работает на широком спектре систем Linux. В этой статье мы узнаем, как установить CSF в CentOS и Ubuntu.
Как установить CSF в CentOS и Ubuntu
Обратите внимание, что для установки CSF в любой системе Linux необходимы пакеты Perl и libwww. Они доступны по умолчанию во всех системах Linux, поэтому никаких действий не требуется. Но если вы получаете ошибку с предложением установить зависимости, то вы можете исправить это с помощью следующих команд.
1 | yum install perl-libwww-perl.noarch perl-LWP-Protocol-https.noarch perl-GDGraph perl-Math-BigInt.noarch |
1 | apt-get install libwww-perl liblwp-protocol-https-perl libgd-graph-perl |
1. Скачайте CSF
Откройте терминал и выполните следующую команду для загрузки пакета CSF с помощью команды wget.
1 | cd /usr/src |
1 | wget https://download.configserver.com/csf.tgz |
2. Распакуйте CSF Tarball
Выполните следующую команду для извлечения tarball CSF.
1 | tar xzf csf.tgz |
1 | cd csf |
3. Запустите сценарий установки CSF
В извлеченной папке находится сценарий установки, который автоматически проверяет, установлены ли все зависимости, создает необходимые структуры каталогов, определяет открытые порты и выводит сообщение о перезапуске csf и lfd по завершении установки.
1 | sh install.sh |
1 | perl /usr/local/csf/bin/csftest.pl |
Вот типичный вывод, который вы увидите.
4. Отключение брандмауэра и настройка CSF
Чтобы настроить CSF, необходимо отключить firewalld. Это можно сделать с помощью следующих команд.
1 2 | systemctl stop firewalld systemctl disable firewalld |
Затем откройте файл конфигурации CSF в текстовом редакторе.
1 | nano /etc/csf/csf.conf |
Вы увидите следующий вид вывода. Измените TESTING="1″ на TESTING="0″, укажите открытые порты для входящих и исходящих соединений в виде списка значений переменных TCP_IN и TCP_OUT, разделенных запятыми.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # Testing flag - enables a CRON job that clears iptables incase of # configuration problems when you start csf. This should be enabled until you # are sure that the firewall works - i.e. incase you get locked out of your # server! Then do remember to set it to 0 and restart csf when you're sure # everything is OK. Stopping csf will remove the line from /etc/crontab # # lfd will not start while this is enabled TESTING = "0" # Allow incoming TCP ports TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995" # Allow outgoing TCP ports TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995" |
5. Перезапуск и тестирование CSF
Выполните следующие команды для перезапуска и тестирования CSF.
1 2 | systemctl restart {csf,lfd} systemctl enable {csf,lfd} |
1 2 | systemctl is-active {csf,lfd} csf -v |
6. Настройка правил брандмауэра
Вы можете просмотреть правила CSF с помощью следующей команды.
1 | csf -l |
Кроме того, вы можете остановить или перезагрузить брандмауэр с помощью следующих команд.
1 2 | csf -f # остановить csf csf -r # перезагрузить csf |
Теперь давайте рассмотрим некоторые общие случаи использования конфигурации CSF. Вот команда для разрешения входящего соединения с определенного IP-адреса.
1 | csf -a [ip_address] |
Вот пример разрешения входящих соединений с IP-адреса 12.34.56.78.
1 | csf -a 12.34.56.78 |
Вот команда для запрета входящего соединения с определенного IP-адреса.
1 | csf -d [ip_address] |
Вот пример запрета входящих соединений с IP-адреса 12.34.56.78.
1 | csf -d 12.34.56.78 |
Если вы хотите удалить вышеуказанные правила брандмауэра, вы можете сделать это с помощью опции -r, в дополнение к опциям -a или -d, которые вы использовали для определения правил ранее.
1 2 | csf -ar 12.34.56.78 csf -dr 12.34.56.78 |
CSF также позволяет ограничить количество подключений к каждому порту в соответствии с вашими требованиями. Например, чтобы разрешить только 2 соединения к порту 22 и 10 соединений к порту 80, откройте файл конфигурации CSF /etc/csf/csf.conf в текстовом редакторе и добавьте следующую строку для определения переменной CONNLIMIT.
1 | CONNLIMIT = "22;2,80;10" |
Сохраните и закройте файл. Перезагрузите CSF, чтобы применить изменения. Вы также можете включить оповещения по электронной почте о попытках вторжения в брандмауэр. Для этого откройте файл конфигурации в текстовом редакторе.
1 | nano /etc/csf/csf.conf |
Добавьте в него следующие строки. В основном, вам нужно установить значение переменных, содержащих 'EMAIL_ALERT', на "1".
1 2 | LF_SSH_EMAIL_ALERT = "1" LF_SU_EMAIL_ALERT = "1" |
Приведенная выше настройка будет отправлять уведомления по электронной почте при каждом успешном входе в систему через SSH или переключении учетной записи с помощью команды su.
Также в переменной LF_ALERT_TO укажите адрес электронной почты, на который будет отправляться оповещение.
1 |
Существует несколько конфигурационных файлов для различных типов настройки.
- csf.conf : Основной конфигурационный файл для управления CSF.
- csf.allow : Список разрешенных IP и CIDR адресов на брандмауэре.
- csf.deny : Список запрещенных IP- и CIDR-адресов на брандмауэре.
- csf.ignore : Список игнорируемых IP- и CIDR-адресов на брандмауэре.
- csf.*ignore : Список различных файлов игнорирования пользователей, IP-адресов.
Деинсталляция брандмауэра CSF
Вы также можете удалить брандмауэр CSF с помощью его сценария удаления.
1 | /etc/csf/uninstall.sh |
Приведенная выше команда полностью удалит CSF со всеми файлами и папками.
Заключение
В этой статье мы узнали, как установить и настроить правила брандмауэра CSF в CentOS и Ubuntu Linux.