CSF — програмное обеспечение для автоматической защиты сервера. В случае подозрительной активности программа блокирует IP адрес с которого эта активность поступает.
Для работы с CSF необходим Perl и библиотека Time/HiRes. Если они не установлены — выполняем команду:
sudo apt install libwww-perl
Далее устанавливаем csf. Скачиваем архив:
wget https://download.configserver.com/csf.tgz
Разархивируем архив и перейдем в папку с дистрибутивом:
tar -xzf csf.tgz cd csf
Выполним установку:
sh install.sh
Установка завершена. CSF запущен в тестовом режиме, то есть, программа очищает правила каждый несколько минут (по умолчанию каждые 5 минут).
Далее нужно отредактировать конфигурационный файл:
nano /etc/csf/csf.conf
Отключите тестовый режим. Замените «1» на «0» в строчке:
#lfd will not start while this is enabled TESTING = "1"
В следующей строке Вам нужно перечислить TCP-порты, которые используются для входящих соединений. К пример, если сервер использует SSH — укажите порт 22 и т.д.:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"
Аналогично перечисляем TCP-порты для исходящие подключения.
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"
Так же, разрешаем входящие\исходящие подключения на UDP-порты:
UDP_IN = "20,21,53" UDP_OUT = "20,21,53,113,123"
Если нужно ограничить доступ к настройкам через пользовательский интерфейс (cPanel, Webmin…), используем параметр:
RESTRICT_UI = "1"
Следующий параметр устанавливает количество заблокированных IP-адресов, которые отслеживает CSF.
DENY_IP_LIMIT = "200"
Количество заблокированных IP-адресов, которые отслеживает CSF для временной блокировки:
DENY_TEMP_IP_LIMIT = "100"
Разрешить до 10 новых одновременных соединений на 22 порт и 30 одновременных соединений на 80 порт.
CONNLIMIT = "22;10,80;30"
Указываем E-mail, на который будут отправляться уведомления от lfd-службы:
LF_ALERT_TO = <your@email>
После 3-х неудачных попыток аутентификации по SSH блокировка на час:
LF_SSHD = "3" LF_SSHD_PERM = "3600"
Где, LF_SSHD — количество попыток аутентификации. LF_SSHD_PERM — время в секундах на которое блокирует IP. Если нужно заблокировать навсегда — вместо секунд нужно прописать «1».
Аналогичная защита работает на FTP:
LF_FTPD = "3" LF_FTPD_PERM = "3600"
И на SMTP-аутентификации:
LF_SMTPAUTH = "3" LF_SMTPAUTH_PERM = "3600"
и т.д.
Указываем, чтобы lfd-служба проверяла наличие подозрительных файлов каждые 500 секунд:
LF_DIRWATCH = "300"
Все параметры можно изменить по Вашим требованиям.
Для запуска фаервола используйте команду:
csf -s
Чтобы перезапустить csf с новыми конфигурационными настройками выполняем:
csf -r
Если необходимо запускать CSF при загрузке системы — допишите команду csf -s в конец файла /etc/rc.local
Кроме конфигурационного файла CSF есть еще файлы для работы с IP-адресами:
csf.allow — «белый» список IP. В этот файл стоит добавлять адреса с рабочих и домашних устройств, так как они не будут блокироваться даже при подозрительной активности.
csf.deny — «черный» список IP. В этом хранятся заблокированные адреса. По умолчанию они удаляются через некоторое время файерволом — чтобы они не удалялись нужно в строчке с IP-адресом указать комментарий # do not delete:
123.123.123.123 # do not delete
csf.ignore — список IP, которые будут игнорироваться и проверятся не будут, если только они не прописаны в csf.deny.
Чтобы проверить не заблокирован ли IP используйте команду:
csf -g 123.123.123.123
Чтобы убрать IP из «черного» списка, выполните:
csf -dr 123.123.123.123
Заблокировать IP-адрес на 1 день:
csf -td 123.123.123.123 1 d
Заблокировать IP-адрес на 30 минут:
csf -td 123.123.123.123 1800
Удалить IP-адрес из временно заблокированных:
csf -tr 123.123.123.123
Добавить IP-адрес в белый список на 2 часа:
csf -ta 123.123.123.123 7200
Заблокировать IP-адрес на 1 час для порта 80:
csf -td 123.123.123.123 3600 -p 80
Проверить наличия обновлений csf, но не устанавливать:
csf -c
Проверить наличия обновлений csf и установить если они есть:
csf -u
Удалить и разблокировать все записи из файла /etc/csf/csf.deny:
csf -df
Удалить IP-адреса и белого и черного списка:
csf -tr
Просмотреть список временно заблокированных IP-адресов:
csf -t
Отключить/деактивировать csf и lfd:
csf -x
Включить/активировать csf и lfd:
csf -e
Чтобы просмотреть справку по csf, используем команду:
csf -h