Как мне установить и использовать CSF Firewall на RHEL / CentOS 8 ?
Первое, что вы должны сделать после установки сервера RHEL / CentOS 8, – это настроить брандмауэр и защитить сервер от любых форм злонамеренного доступа.
Самым популярным сервисом межсетевого экрана, используемым в системах на основе RHEL, является Firewalld.
ConfigServer Security & Firewall (CSF) – это мощный межсетевой экран с открытым исходным кодом Stateful Packet Inspection (SPI), приложение для входа / обнаружения вторжений и безопасности для серверов Linux.
- Особенности CSF
- Установка CSF Firewall на RHEL / CentOS 8
- Сконфигурируйте и запустите CSF на RHEL / CentOS 8
- Примеры использования CSF
- Удалить IP / подсеть из черного списка.
- Разрешить IP-адрес на брандмауэре.
- Блокировать определенные страны
- Просмотреть порты, прослушивающие соединения.
- Доступ к веб-интерфейсу CSF
- Получите доступ к брандмауэру CSF через настроенный порт.
Особенности CSF
Вот основные функции ConfigServer Security & Firewall.
- Простой скрипт SPI iptables firewall
- Процесс-демон, который проверяет ошибки аутентификации при входе в систему для openSSH, сбоев Mod_security, htpasswd, ftp, imap и т.д.
- Блокировка соединения
- Защита пакетов BOGON
- Просмотр каталогов и файлов
- SYN Защита от флуда
- IDS (система обнаружения вторжений) – последняя строка обнаружения предупреждает вас об изменениях в двоичных файлах системы и приложений
- Отслеживание и блокировка сканирования портов
- Обнаружение флудинга портов – для каждого IP-адреса, для обнаружения затопления подключения к порту и смягчения, чтобы помочь блокировать атаки DOS
- Интеграция пользовательского интерфейса с Cpanel, Webmin и DirectAdmin
- Распознавание атаки при распределенном входе
- Поддержка IPv6 с ip6tables
- Интегрированный интерфейс – для использования конфигурации csf не требуется отдельная панель управления или Apache
- Интегрирован с брандмауэром CloudFlare
- И многое другое
Установка CSF Firewall на RHEL / CentOS 8
Если в системе не запущены критически важные приложения, вы можете обновить установленные пакеты и выполнить перезагрузку.
sudo dnf -y update
Когда закончите, установите Perl.
sudo dnf -y install @perl
Проверьте версию Perl.
$ perl -v This is perl 5, version 26, subversion 2 (v5.26.2) built for x86_64-linux-thread-multi (with 52 registered patches, see perl -V for more detail) Copyright 1987-2018, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
CSF устанавливается с использованием скрипта автоматизации.
Загрузите его с помощью команды curl.
curl -SL https://download.configserver.com/csf.tgz | tar -xzf -
Перейдите в созданную папку – csf:
cd csf
Запустите установщик.
sudo sh install.sh
Посмотрите пример выходных данных ниже.
Тестовая установка
$ sudo 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 xt_connlimit…OK Testing ipt_owner/xt_owner…OK Testing iptable_nat/ipt_REDIRECT…OK Testing iptable_nat/ipt_DNAT…OK RESULT: csf should function on this server
Сконфигурируйте и запустите CSF на RHEL / CentOS 8
Теперь у нас установлен CSF в RHEL / CentOS 8.
Основной файл конфигурации – /etc/csf/csf.conf.
Измените этот файл, чтобы настроить правила и политики брандмауэра.
Смотрите разделы ниже о разрешенных портах TCP и UDP.
Отключить тестирование.
sudo perl -pi -w -e "s/TESTING = \"1\"/TESTING = \"0\"/" /etc/csf/csf.conf
Игнорировать IP-адреса в списке разрешений.
sudo perl -pi -w -e "s/IGNORE_ALLOW = \"0\"/IGNORE_ALLOW = \"1\"/" /etc/csf/csf.conf
Установщик добавит служебные файлы systemd.
Вы можете запустить его, выполнив:
sudo systemctl enable --now csf
Подтвердите статус сервиса.
$ sudo systemctl status csf ● csf.service - ConfigServer Firewall & Security - csf Loaded: loaded (/usr/lib/systemd/system/csf.service; enabled; vendor preset: disabled) Active: active (exited) since Sun 2019-03-17 09:10:19 EAT; 10h ago Main PID: 783 (code=exited, status=0/SUCCESS) Tasks: 0 (limit: 11510) Memory: 0B CGroup: /system.slice/csf.service Mar 17 09:10:19 rhel8.local csf[783]: ACCEPT all opt in * out lo ::/0 -> ::/0 Mar 17 09:10:19 rhel8.local csf[783]: LOGDROPOUT all opt in * out !lo ::/0 -> ::/0 Mar 17 09:10:19 rhel8.local csf[783]: LOGDROPIN all opt in !lo out * ::/0 -> ::/0 Mar 17 09:10:19 rhel8.local csf[783]: csf: FASTSTART loading DNS (IPv4) Mar 17 09:10:19 rhel8.local csf[783]: csf: FASTSTART loading DNS (IPv6) Mar 17 09:10:19 rhel8.local csf[783]: LOCALOUTPUT all opt -- in * out !lo 0.0.0.0/0 -> 0.0.0.0/0 Mar 17 09:10:19 rhel8.local csf[783]: LOCALINPUT all opt -- in !lo out * 0.0.0.0/0 -> 0.0.0.0/0 Mar 17 09:10:19 rhel8.local csf[783]: LOCALOUTPUT all opt in * out !lo ::/0 -> ::/0 Mar 17 09:10:19 rhel8.local csf[783]: LOCALINPUT all opt in !lo out * ::/0 -> ::/0 Mar 17 09:10:19 rhel8.local systemd[1]: Started ConfigServer Firewall & Security - csf.
Примеры использования CSF
Блокировать IP или подсеть
sudo csf -d 192.168.0.20 sudo csf -d 192.168.0.0/24
Образец вывода:
Adding 192.168.0.20 to csf.deny and iptables DROP… DROP all opt -- in !lo out * 192.168.0.20 -> 0.0.0.0/0 LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.0.20
Удалить IP / подсеть из черного списка.
$ sudo csf -dr 192.168.0.20 Removing rule… DROP all opt -- in !lo out * 192.168.0.20 -> 0.0.0.0/0 LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.0.20
Разрешить IP-адрес на брандмауэре.
$ sudo csf -a 192.168.15.15 Adding 192.168.15.15 to csf.allow and iptables ACCEPT… ACCEPT all opt -- in !lo out * 192.168.15.15 -> 0.0.0.0/0 ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.15.15
Блокировать определенные страны
Отредактируйте строку CC_DENY
# Each option is a comma separated list of CC's, e.g. "US,GB,DE" CC_DENY = "" CC_ALLOW = ""
Просмотреть порты, прослушивающие соединения.
$ sudo csf -p
Ports listening for external connections and the executables running behind them:
Port/Proto Open Conn PID/User Command Line Executable
22/tcp 4/6 4 (789/root) /usr/sbin/sshd -D -oCiphers=aes256-g... /usr/sbin/sshd
80/tcp 4/6 - (2580/root) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
80/tcp 4/6 - (2583/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
80/tcp 4/6 - (2584/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
80/tcp 4/6 - (2585/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
80/tcp 4/6 - (2804/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
443/tcp 4/6 - (2580/root) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
443/tcp 4/6 - (2583/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
443/tcp 4/6 - (2584/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
443/tcp 4/6 - (2585/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
443/tcp 4/6 - (2804/apache) /usr/sbin/httpd -DFOREGROUND /usr/sbin/httpd
3306/tcp -/- - (2474/mysql) /usr/libexec/mysqld --basedir=/usr /usr/libexec/mysqld
68/udp -/- - (761/root) /usr/sbin/NetworkManager --no-daemon /usr/sbin/NetworkManager
161/udp -/- - (3129/root) /usr/sbin/snmpd -LS0-6d -f /usr/sbin/snmpd
323/udp -/- - (768/chrony) /usr/sbin/chronyd /usr/sbin/chronyd
Отправить письмо, когда пользователь входит в систему через SSH
LF_SSH_EMAIL_ALERT = "1"
Установить оповещения по электронной почте
LF_ALERT_TO = "alerts@example.com"
Отправляйте себе электронные письма о проверках безопасности.
csf -m myemail@example.com
Доступ к веб-интерфейсу CSF
CSF имеет встроенный веб-интерфейс, который можно использовать для настройки.
Включите пользовательский интерфейс в файле /etc/csf/csf.conf.
UI = "1"
Вы также можете установить пользовательские значения для:
# Set this to the port that want to bind this service to UI_PORT = "6666" # Leave blank to bind to all IP addresses on the server UI_IP = "" UI_USER = "admin" UI_PASS = "StrongAdminPassword"
Затем добавьте IP-адреса в белый список.
sudo echo "YOUR_IP_ADDRESS" >> /etc/csf/ui/ui.allow
Запустите или перезапустите сервис lfd
$ sudo systemctl enable --now lfd $ systemctl status lfd ● lfd.service - ConfigServer Firewall & Security - lfd Loaded: loaded (/usr/lib/systemd/system/lfd.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2019-03-17 20:05:10 EAT; 33s ago Process: 21213 ExecStart=/usr/sbin/lfd (code=exited, status=0/SUCCESS) Main PID: 21226 (lfd - sleeping) Tasks: 1 (limit: 11510) Memory: 392.1M CGroup: /system.slice/lfd.service └─21226 lfd - sleeping > Mar 17 20:05:10 rhel8.local systemd[1]: Starting ConfigServer Firewall & Security - lfd… Mar 17 20:05:10 rhel8.local systemd[1]: Started ConfigServer Firewall & Security - lfd.
Получите доступ к брандмауэру CSF через настроенный порт.