4Debian.Info - Портал русскогоязычного сообщества Debian Карта сайта Контакты

Меню

Репозитории Debian

Скачать Debian

Установка Debian - Видео



Авторизация:

Новые статьи

Статьи в RSS

Новые комментарии

Новые уроки

Уроки в RSS


Вернутся к списку статей

Debian. Фаервол (Firewall) CSF+LFD -Установка и настройка.

У каждого администратора или даже простого пользователя имеющего выделенный IP адрес для выхода в интернет (бывает нужно и в закрытой сети себя обезопасить), рано или поздно в Debian (Linux) встает вопрос о том, что необходимо использовать в работе фаервол (Firewall), который позволит нам не только защитить наши порты от посторонних глаз но и позволит разгрузить канал интернета.


Debian - DirectAdmin - CSF+LFD
ConfigServer Firewall (csf) - представляет из себя многофункциональный функциональный фаервол (Firewall), работающий на базе iptables (утилита командной строки, которая является стандартным интерфейсом управления работой межсетевого экрана (брандмауэра) netfilter). Легко интегрируется в распространенные панели управления хостингом (например: cPanel, DirectAdmin и Webmin) - имеет удобный интерфейс для настройки.

Кроме управления ограничением доступа к программному обеспечению по сети, при правильной настройке CSF легко способен справится с любым видом DOS атак и даже средним DDOS, главное понимать, что наша цель - закрыть все, и открыть то, что нужно.

В комплекте с CSF идет Login Failure Daemon (lfd) - скрипты анализирующие логи для выявления скрытых атак, например если злоумышленник проводит несколько неудачных попыток брута (подбора паролей) используя промежутки времени, при которых фаервол (Firewall) не способен сам выявить такие нарушения.


Установка CSF+LFD в Debian (Linux) Через панель управления хостингом установить CSF+LFD, думаю у Вас не составит труда, для установки фаервола (Firewall) CSF+LFD в Debian (Linux) необходимо выполнить следующие команды:
bash:
  1. rm -fv csf.tgz
  2. wget http://www.configserver.com/free/csf.tgz
  3. tar -xzf csf.tgz
  4. cd csf
  5. sh install.sh


Для того, чтоб убедится, что все работает как задумано, рекомендую проверить с помощью тестового скрипта написанного на perl:
bash:
  1. perl /etc/csf/csftest.pl
Если Вы НЕ будете наблюдать FATAL errors - значит установка прошла успешно.

Все файлы настроек фаервола (Firewall) CSF+LFD в Debian хранятся по адресу: /etc/csf/*

Главный файл настроек, в основном с которым Вам придется иметь дело - это /etc/csf/csf.conf.

После изменения файлов настроек CSF+LFD в Debian, необходимо перезапустить фаервола (Firewall):
bash:
  1. /etc/init.d/csf restart

Так же хочу выложить описание настроек фаервола (Firewall) CSF+LFD:

Опция Действие Рекомендуемое значение Комментарий
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 Пути к бинарникам и логам, определаются автоматом при установке не трогать :)

Комментарии: Debian. Фаервол (Firewall) CSF+LFD -Установка и настройка.

2015.04.10 12:00 otipykuvo Ссылка

Здравствуйте.

Мне нужно открыть 465 порт для рассылок через внешний SMTP сервер. У меня работает CSF поверх iptables на Debin 7. Получается нужно отредактировать /etc/csf/csf.conf и затем сделать рестарт CSF? Если да, то какие переменные там мне нужно изменить TCP_IN и TCP_OUT? Приведите пожалуйста пример

Только авторизованные пользователи могут оставлять комментарии!

Авторизация или Быстрая регистрация



Яндекс.Метрика
4Debian.Info
При полной или частичной перепечатке текстов статей и публикаций гиперссылка на www.4debian.info обязательна. | "4Debian.Info" | © 2017