Подготовка к установки CSF
Непосредственно перед началом установки файрвола CSF нам нужно будет установить libwww-perl так как он необходим для корректной работы CSF.
Ubuntu / Debian
apt install libwww-perl
CentOS / RedHat / Alma
yum install perl-libwww-perl
Установка CSF
После установки недостающего пакета мы можем приступать к непосредственной установки ConfigServer Security and Firewall.
Перейдем в папку /usr/src и загрузим архив csf
cd /usr/src
wget https://download.configserver.com/csf.tgz
Распакуем архив с CSF
tar xzf csf.tgz
cd csf
Установим CSF
sh install.sh
По завершению установки необходимо запустить проверку работоспособности csf
perl /usr/local/csf/bin/csftest.pl
Если все установилось корректно вы увидите примерно следующее сообщение
Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
RESULT: csf should function on this server
Настройка CSF
После успешной установки нам необходимо отключить файрвол firewalld в системе и настроить CSF.
Для отключения firewalld выполняем следующие команды
systemctl stop firewalld
systemctl disable firewalld
Переводим режим работы CSF из тестового в «боевой» режим. Отредактируем файл /etc/csf/csf.conf и заменим TESTING = «1« на 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"
# Allow incoming UDP ports
UDP_IN = "20,21,53"
# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "20,21,53,113,123"
После внесения всех правок, сохраняем файл конфигурации и добавляем сервис CSF в автозагрузку
systemctl restart {csf,lfd}
systemctl enable {csf,lfd}
Основные команды CSF
Остановить CSF
csf -f
Перезапустить CSF
csf -r
Деактивировать CSF
csf -x
Активировать CSF
сsf -e
Отобразить все правила CSF для IPv4 адресов
csf -l
Отобразить все правила CSF для IPv6 адресов
csf -l6
Разрешить соединения с определенного IP адреса
csf -a 192.168.100.1
Заблокировать определенный IP адрес
Удалить IP адрес из списка разрешенных и списка заблокированных можно следующими командами
csf -ar 192.168.100.1
csf -dr 192.168.100.1
Поиск IP адреса в правилах файрвола CSF
csf -g 192.168.100.1
Блокировка доступа по странам
Заблокировать доступ либо предоставить доступ к серверу для пользователей из определенной страны можно добавив символьный код страны в конфигурацию CSF в переменные CC_DENY и CC_ALLOW
CC_DENY = "BZ,CN,US"
CC_ALLOW = "ID,PH,FR"
Настройка уведомлений о срабатывании блокировки в CSF
Для того чтобы получать уведомления о срабатывании правила блокировки нужна активировать данную опцию в главном конфигурационном файле /etc/csf/csf.conf . Необходимо найти переменную EMAIL_ALERT и привести ее вид к EMAIL_ALERT = «1»
Уведомление о подключении к серверу по SSH
Чтобы получать уведомления о подключении к серверу по SSH, а также при использовании команды su, необходимо активировать переменные LF_SSH_EMAIL_ALERT и LF_SU_EMAIL_ALERT.
LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"
Уведомления будут приходить на почтовый адрес указанный в переменной LF_ALERT_TO
Удаление CSF
Если вам нужно будет удалить CSF из системы то для того чтобы это сделать достаточно запустить скрипт деинсталяции
sh /etc/csf/uninstall.sh