Описание настроек для CSF+LFD
Основной конфигурационный файл – /etc/csf/csf.conf:
Опция | Действие | Рекомендуемое значение | Комментарий |
GENERIC | cPanel или нет сервер | Зависит от панели | Инсталлер сам определяет тип сервера, трогать этот параметр не стоит |
TESTING | Надо ли очищать правила firewall’а | 0 | После настройки фаирволла его следует ставить на 0, иначе фаирволлне имеет смысла |
TESTING_INTERVAL | Период очистки firewall’а | 5 | Не имеет значения при выключенном «TESTING» |
AUTO_UPDATES | Следует ли автоматически обновлять firewall | 1 | Для безопасности включаем |
ETH_DEVICE | Устройства фильтрации | (пусто) | Будем фильтровать все устройства. В некоторых случаях можетпонадобиться фильтровать только один порт или устройство |
ETH_DEVICE_SKIP | Устройства нефильтрации | (пусто) | Будем фильтровать все устройства. В некоторых случаях можетпонадобиться фильтровать только один порт или устройство |
TCP_IN | Порты входящих TCP-соединений | 20, 21, 22, 25, 53, 80, 110, 143, 443 | csf работает по принципу «запрещено все,что не разрешено». Это список разрешенных портов внешних соединений. Приустановке csf показывал список прослушиваемыхпортов, рекомендуется установить его как значение |
TCP_OUT | Порты исходящих TCP-соединений | 20, 21, 22, 25, 37, 43, 53, 80, 110, 113, 443, 587, 873, 953, 2087,2089 | То же самое, но для исходящих. Таких сервисов должно хватить. |
UDP_IN | Порты входящих UDP-соединений | 20, 21, 53, 953 | Рекомендуется так же установить на то, что показывал инсталлер csf |
UDP_OUT | Порты исходящих UDP-соединений | 20, 21, 53, 113, 123,873, 953, 6277 | То же самое, но для исходящих. Таких сервисов должно хватить. |
ICMP_IN | Разрешить ли входящий пинг | 1 | Чаще всего ничего опасного он не несет. Но при некоторых типах DDoS требуется отключение |
ICMP_IN_RATE | Количество входящих «Пингов» с одного ip-адреса | 1/s | Больше одного в секунду не требуется для проверки «пинга» |
ICMP_OUT | Разрешить ли исходящий пинг | 1 | Обычно ни чем не мешает. Так же требуется для использованияtraxeroute. |
ICMP_OUT_RATE | Количество исходящих «Пингов» на один ip-адреса | 1/s | Больше одного в секунду для проверки доступности хоста не требуется. |
SMTP_BLOCK | Нужно ли блокировать попытки отправки почты напрямую на сторонниесервера | 1 | Нужно для того, чтобы не работали всякие спамилки типа DirectMail. Может не работать на некоторых vps. |
SMTP_ALLOWLOCAL | Разрешить ли пользователям соединяться с локальным SMTP-сервером напрямую | 0 | Большинству скриптов не требуется. Пускай пользуются mail() |
MONOLITHIC_KERNEL | Тип ядра | 0 | В большинстве случаев – 0. Если VPS илисобрано с монолитным ядром – то 1. |
DROP | Что делать с «плохим» пакетом | DROP | Просто не отвечать. Можно поставить «REJECT» -тогда в ответе будет пакет с ошибкой. |
DROP_LOGGING | Логгировать ли подключения на заблокированные порты | 1 | Требуется для работы модуля определения сканирования портов. |
DROP_IP_LOGGING | Логгировать ли подключения от заблокированных ip | 0 | При атаках уронит сервер syslog’ом, еслипоставить 1. Кроме того, практической ценности не несет. |
DROP_ONLYRES | Логгировать только заблокированные подключения на порты ниже 1023 | 0 | Если Вам интересны только основные сервисы для защиты – можновключить |
DROP_NOLOG | Порты, подключения на которые не надо логгировать | 67, 68, 111, 113, 135:139, 445, 513, 520 | Сюда забиваются порты, заблокированные специально |
PACKET_FILTER | Надо ли отвергать неправильные пакеты | 1 | Неправильные пакеты – дошедшие не полностью или не ожидаемые вданный момент |
DROP_PF_LOGGING | Надо ли логгировать заблокированные неправильные пакеты | 0 | Не имеет смысла |
SYNFLOOD | Защита от так называемого SYN-флуда.Заключается в лимитировании количество пакетов с опр.ip-адреса | 1 | SYN-атаки уже устарели, но все еще бывают.В случае сильной SYN-атаки возможно заметноеподвисание. |
SYNFLOOD_RATE | Сколько коннектов в секунду разрешать с одного ip-ареса | 5/s | Больше 5 пакетов в секунду нормальному пользователю не нужно |
VERBOSE | Показывать ли вывод iptables при действиях | 0 | Ставить в 1 только если что-то не работает |
SYSLOG | Логгировать ли блокировки в syslog | 0 | Блокировки уже логгируются в /var/log/lfd.log, при большом количестве блокировок syslog будет нагружать сервер |
DYNDNS | Время обновления при динамическом Ip | 0 | Динамический ип на сервере.. о_О |
RELAYHOSTS | Позволять ли пользователям, авторизировавшимся наpop3 отправлять письма по smtp безавторизации | 0 | В этом нет смысла, но может создать потенциальную дыру безопасности |
DENY_IP_LIMIT | Максимальное количество заблокированных ip | 500 | При DDoS’е скорее всего придется увеличитьв 10-15 раз |
DENY_TEMP_IP_LIMIT | Максимальное количество временно заблокированныхip | 100 | При работе csf есть два режима блокировки- временный, блокирующий на определенное время или до рестарта, ипостоянный, блокирующий навсегда |
LF_PERMBLOCK | Возможность перехода временных блоков в постоянные | 1 | Для большей безопасности это убдет полезно |
LF_PERMBLOCK_INTERVAL | Количество секунд, в течении которых должно бытьn временных блокировок | 86400 | Сутки |
LF_PERMBLOCK_COUNT | Количество временных блокировок для перехода в постоянные | 4 | 4 блока в сутки – это много |
LF_NETBLOCK | Блокировать ли проблемные сети | 1 | Проблемная сеть – сеть, из которой заблокировано несколькоip-адресов |
LF_NETBLOCK_INTERVAL | Количество секунд, в течении которых должно бытьn блокировок из данной сети | 86400 | Сутки |
LF_NETBLOCK_COUNT | Количество блокировок для блокировки всей сети | 8 | Если одна тридцать вторая сети настроена недружелюбно – то ничегохорошего от оставшейся ждать не придется |
LF_NETBLOCK_CLASS | Что считать сетью | C | Показывает 1 C-класс (255 адресов,x.y.z.*) |
GLOBAL_ALLOW | Глобальный список разрешенных ip | (пусто) | Может быть полезно при кластеринге.. Не будем заострять внимание,так как csf ставим только на один сервер |
GLOBAL_DENY | Глобальный список запрещенных ip | (пусто) | Может быть полезно при кластеринге.. Не будем заострять внимание,так как csf ставим только на один сервер |
GLOBAL_IGNORE | Глобальный список игнорируемых ip | (пусто) | Может быть полезно при кластеринге.. Не будем заострять внимание,так как csf ставим только на один сервер |
LF_GLOBAL | Интервал обновления списков | (пусто) | Может быть полезно при кластеринге.. Не будем заострять внимание,так как csf ставим только на один сервер |
LF_DAEMON | Нужен ли демон отслеживания блокировок ip | 1 | Конечно, нужен |
LF_TRIGGER | Глобальное количество максимальных неверных попыток | 0 | Для каждого сервиса мы будем указывать свое значение, поэтомуглобальное не трогаем |
LF_TRIGGER_PERM | Блокировать ip вечно за нарушенные попытки(глобально) | 14400 | Блокировать на 4 часа, для всех ошибок |
LF_SELECT | Блокировать только сервис, в который бил неудачный вход | 1 | Пользователю может быть надо воспользоваться другим сервисом, а еслион недоброжелатель – то и на них получит бан |
LF_SSHD | Количество неправильных попыток входа на sshдля бана | 3 | Администратор может ошибиться 2 раза при вводе пароля, третийнепростителен |
LF_FTPD | Количество неправильных попыток по ftp | 5 | Рекомендуемое значение, в большинстве случаев дальше 5 попыток идетне рассеянность а брутфорс |
LF_SMTPAUTH | Количество неправильных попыток по smtp | 5 | Рекомендуемое значение, в большинстве случаев дальше 5 попыток идетне рассеянность а брутфорс |
LF_POP3 | Количество неправильных попыток по pop3 | 5 | Рекомендуемое значение, в большинстве случаев дальше 5 попыток идетне рассеянность а брутфорс |
LF_IMAPD | Количество неправильных попыток по IMAP | 5 | Рекомендуемое значение, в большинстве случаев дальше 5 попыток идетне рассеянность а брутфорс |
LF_HTACCESS | Количество неправильных попыток авторизации черезhtaccess/htpasswd | 10 | Тут можно поставить 10, так как пароли могут тестировать, илиошибиться при вводе и долго нажимать enterпосле этого |
LF_MODSEC | Количество уведомлений mod_security дляблокировки | 20 | Если ip пытается систематически взломатьскрипт то его надо забанить. Значение ставим 20, так как известны левыесрабатывания модуля. Использовать только при установленномmod_security к apache. |
LF_CPANEL | Количество неправильных попыток авторизации вcpanel/whm | 5 | Рекомендуемое значение, в большинстве случаев дальше 5 попыток идетне рассеянность а брутфорс |
LF_SUHOSIN | Количество уведомлений suhoshin дляблокировки | 20 | Если ip пытается систематически взломатьскрипт то его надо забанить. Значение ставим 20, так как известны левыесрабатывания модуля. Использовать только при установленномsuhoshin patch к php. |
LF_SSHD_PERM, LF_FTPD_PERM, LF_SMTPAUTH_PERM, LF_POP3D_PERM, | Блокировать ip вечно за нарушенные попытки | Не имеет значения | Так как мы уже установили LF_TRIGGER_PERM |
LF_CSF | Проверять ли, запущен ли csf | 1 | В противном случае, если csf будетвыключен, блокировки не будут иметь смысла |
LF_SSH_EMAIL_ALERT | Отправлять ли письмо, если кто-то вошел по ssh | 1 | Чаще всего поможет выявить нарушителя в случае проблем |
LF_SU_EMAIL_ALERT | Отправлять ли письмо, если кто-то выполнил «su» | 1 | Поможет найти того, кто сломал сервер |
LF_SCRIPT_ALERT | Искать ли скрипты, систематически отправляющие почту | 1 | Поможет поймать спамеров. Для этого должно быть включенодополнительное логгирование. |
LF_SCRIPT_LIMIT | Сколько писем должен отправить скрипт, чтобы добавить его вподозрительные | 300 | Сейчас редко встречаются проекты, которым надо отсылать больше 300писем |
LF_SCRIPT_PERM | Блокировать ли подозрительный скрипт | 0 | Лучше каждый случай проверять руками. Но, с другой стороны, длябольшей защиты можно поставить блокировку. |
LF_DIRWATCH | Время проверки временных папок на скрипты | 1800 | Проверка каждые полчаса |
LF_DIRWATCH_DISABLE | Удалять ли тот файл | 1 | Да. При 0 будет просто отправлено письмо |
LF_DIRWATCH_FILE | Проверка определенной папки на изменения | 0 | В большинстве случаев нет необходиомости использовать |
LF_FLUSH | Когда заново пересылать уведомления о подозрительных скриптах,файлах | 3600 | Каждый час – оптимальное значение |
LF_INTEGRITY | Как часто проверять системные файлы | 7200 | Раз в 2 часа будет проверяться md5()основных системный файлов и будет уведомление по почте в случае егосмены |
LF_EXPLOIT | Как часто пытаться искать сплоиты на сервере | 300 | Каждые 10 минут. В текущей версии (в.3.28) поддерживается только»Random JS Toolkit» |
LF_EXPLOIT_CHECK | На какие сплоиты нужно делать проверку | JS,SUPERUSER | Проверять «Random JS Toolkit» и процессы, запущенные из подroot |
LF_INTERVAL | За сколько секунд должно быть выполено количество неверных попытокдля бана | 300 | Больше 10 попыток за 10 минут – бан |
LF_PARSE | Как часто парсить лог | 10 | Каждые 10 секунд. Значение меньше может повысить нагрузку на сервер. |
LF_EMAIL_ALERT, LT_EMAIL_ALERT | Отправлять ли письмо при блокировке Ip | 1 | Администратор должен знать, что блокируется |
LT_POP3D | Блокировать ip в случае более н соединенийс поп3-сервером в чес | 60 | Почтовые клиенты не позволяют проверять письма чаще раза в минуту,значит большее – уже ненормально |
LT_IMAPD | Блокировать ip в случае более н соединенийс имап-сервером в чес | 60 | Почтовые клиенты не позволяют проверять письма чаще раза в минуту,значит большее – уже ненормально |
RT_RELAY_ALERT | Отправлять ли письмо, если достигнут лимит приходящей почты | 1 | да |
RT_RELAY_LIMIT | Сам лимит, писем в час | 150 | |
RT_RELAY_BLOCK | Блокировать ли при превышении | 1 | |
RT_AUTHRELAY_ALERT | Отправлять ли письмо, если достингут лимит отправляемой юзерами,вошедшими стандратно, почты | 1 | |
RT_AUTHRELAY_LIMIT | Сам лимит, писем в час | 100 | |
RT_AUTHRELAY_BLOCK | Блокировать ли при превышении | 1 | |
RT_POPRELAY_ALERT | Отправлять ли письмо, если достигнут лимит отправляемой юзерами,вошедшими через pop3, почты | 1 | |
RT_POPRELAY_LIMIT | Сам лимит, писем в час | 100 | |
RT_POPRELAY_BLOCK | Блокировать ли при превышении | 1 | |
RT_LOCALRELAY_ALERT | Отправлять ли письмо, если достигнут лимит отправляемой серверомпочты | 1 | |
RT_LOCALRELAY_LIMIT | Сам лимит, писем в час | 100 | |
RT_LOCALRELAY_BLOCK | Блокировать ли при превышении | 1 | |
LF_DSHIELD | Блокировать ли проблемные ip, отмеченныеDSHIELD, и раз в сколько секунд обновлятьсписок | 86400 | Блокировать, обновлять раз в сутки |
LF_DSHIELD_URL | Адрес списка DSHIELD | http://feeds.dshield.org/block.txt | |
LF_SPAMHAUS | Блокировать ли проблемные ip, отмеченныеSPAMHAUS, и раз в сколько секунд обновлятьсписок | 86400 | Блокировать, обновлять раз в сутки |
LF_SPAMHAUS_URL | Адрес списка SPAMHAUS | http://www.spamhaus.org/drop/drop.lasso | |
LF_BOGON | Блокировать ли внутренниеip, отмеченные BOGON,и раз в сколько секунд обновлять список | 0 | Не рекомендуется, так как некоторые ДЦ используют внутренние сетиименно с такой адресацией |
LF_BOGON_URL | Адрес списка BOGON | (пусто) | |
CT_LIMIT | Максимально количество одновременных подключений одногоIP к серверу | 60 | Больше 60 подключений – либо DoS атака,либо какие-то дамперы сайтов, перегружающие сервер |
CT_INTERVAL | Время между проверками одновременных подключений сip | 120 | Две минуты не перегрузят сервер и позволят оперативно реагировать |
CT_EMAIL_ALERT | Отправлять ли письмо на e-mail послеблокировки | 1 | Да, надо знать, что блокируетсяCT_PERMANENT |
CT_PERMANENT | Вечно ли банить тех, у кого привышен лимит подключений | 0 | Нет, временно |
CT_BLOCK_TIME | Время блокировки | 14400 | 4 часа |
CT_SKIP_TIME_WAIT | Надо ли считать соединения в состоянии TIME_WAITкак соединения | 0 | Очень часто именно такие используются при DDoS-атаках |
CT_STATES | Соединения с каким статусом считать соединениями | (пусто) | Все |
PT_LIMIT | Сколько должен прожить процесс, прежде чем на него обратит внимаениеProcess Tracker | 60 | Чаще всего запрещено выполнение php-и cgi-скриптов больше минуты. Поэтому,процессы, выполняющиеся меньше минуты, не считаем |
PT_INTERVAL | Как часть проверять запущенные процессы | 60 | Раз в минуту |
PT_SKIP_HTTP | Проверять ли процессы, запущенные из httpd | 1 | Для большей безопасности – да. Но если у клиентов большое количестводолговыполняющихся скриптов, например, кешорование, то лучше отключить |
PT_USERPROC | Следует ли следить за процессами пользователей | 1 | Да, нельзя разрешать пользователям запускать лишние процессы |
PT_USERTIME | Сколько времени может максимум работать один процесс | 1880 | 30 минут |
PT_USERMEM | Сколько памяти может максимально использовать один процесс | 128 | Столько хватает под большинство задач |
PT_USERKILL | Стоит ли убивать процесс, привысивший лимиты | 1 | Да. Если 0, то будет просто послано письмо |
PT_LOAD | Раз в сколько секунд надо проверять load averageсервера | 30 | Операция не ресурсоемкая, тем не менее, полезно знать о скачкахla |
PT_LOAD_AVG | За сколько минут брать la | 1 | Просмотр la за последнюю минуту даетнаиболее актуальную статистику по текущей нагрузке. Возможны значения:1, 5, 15 |
PT_LOAD_LEVEL | Какой уровень считать критическим | 5 | На нормальном неоверселенном сервере выше 5 не поднимается |
PT_LOAD_SKIP | Через сколько секунд повторять письмо | 600 | Отсылать каждые 10 минут |
PT_LOAD_ACTION | Что делать при критическом la | (пусто) | Возможно, нужно написать скрипт, который будет рестартитьhttpd,mysql и этим снижать ла. Но этонеэффективный способ, так как бороться надо не с эффектом а с причиной |
PS_INTERVAL | Как часто просматривать логи для борьбы со сканированием портов | 300 | Раз в 5 минут |
PS_LIMIT | Сколько портов надо «просканировать», чтобы быть заблокированным | 30 | |
PS_PORTS | Какие порты считать сканируемыми | 0:65535 | все |
PS_PERMANENT | Вечно ли блокировать сканирующий ip | 1 | да |
PS_BLOCK_TIME | На сколько времени блокировать | не имеет значения | Так как указана постоянная блокировка |
PS_EMAIL_ALERT | Отправлять ли письмо о сканировании портов | 1 | да |
PT_SMTP | Должна следить за соединениями на внешний 25 порт. Но директивойSMTP_BLOCK мы уже запретили их. Кроме того, на данный момент функция -бета и потребляет много ресурсов | 0 | Отключено |
OS settings, Log files | Пути к бинарникам и логам, определаются автоматом при установке | не трогать |