firewalld & iptables

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

firewalld & iptables

Непрочитанное сообщение Olej » 26 май 2016, 14:44

В Fedora/CentOS/RedHat появился новый инструмент управления файерволом firewalld.

Код: Выделить всё

[olej@dell ~]$ ps -A | grep firewal
  903 ?        00:00:04 firewalld

Код: Выделить всё

[olej@dell ~]$ firewall-cmd -h

Usage: firewall-cmd [OPTIONS...]
...

Код: Выделить всё

[olej@dell ~]$ which firewall-cmd
/usr/bin/firewall-cmd
[olej@dell ~]$ ls /usr/bin/firew*
/usr/bin/firewall-cmd  /usr/bin/firewall-config  /usr/bin/firewall-offline-cmd
Не так легко оказалось найти хотя бы обзорную информацию про firewalld.
И то, зачем он вместо привычного iptables.

Ссылки:

Настраиваем службу FirewallD

Настройка firewalld CentOS 7 с примерами команд

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: firewalld & iptables

Непрочитанное сообщение Olej » 26 май 2016, 14:56

Автор Владимир Драч
Понедельник, 01 Сентябрь 2014 00:00



Начиная с Fedora 17, во всех клонах Red Hat Linux (например в Red Hat Enterprise Linux и CentOS 7) появилась новая служба FirewallD для динамического управления межсетевым экраном с поддержкой доверительных зон сетевых соединений или интерфейсов. Ввиду того, что FirewallD запускается как служба, новые правила можно добавлять без перезапуска, как это было с iptables, то есть без сброса установленного фаервола и установления соединений заново. Изменения в конфигурации могут быть сделаны в любое время, причем применяются мгновенно: сохранять или применять изменения не требуется. Служба FirewallD использует инструментарий iptables (iptables tool) для взаимодействия с фильтром пакетов ядра.

Сравнение

Рассмотрим основные отличия FirewallD и iptables:

Служба iptables хранит конфигурацию в /etc/sysconfig/iptables в то время как FirewallD хранит ее в различных XML-файлах в /usr/lib/firewalld/ и /etc/firewalld/. Интересно заметить, что файл /etc/sysconfig/iptables не будет существовать, если современную систему Linux (например, Red Hat Enterprise Linux) установить с FirewallD по умолчанию.
Для iptables service каждое изменение означало сброс сброс старых правил и чтение всех новых из /etc/sysconfig/iptables, однако для FirewallD не существует понятия «воссоздания» правил; при конфигурации только различия в правилах учитываются и применяются. Таким образом, FirewallD может изменять настройки во время выполнения без потери старых соединений.

Основное сходство: оба iptables и FirewallD используют одинаковый инструментарий iptables (iptables tool).
Избавляемся от FirewallD

Если, являясь сторонником старой школы, мы решили избавиться от FirewallD и вернуться, к iptables, то это вполне возможно даже на CentOS 7:

Код: Выделить всё

# systemctl disable firewalld
# systemctl stop firewalld
# yum install iptables-services
# touch /etc/sysconfig/iptables
# touch /etc/sysconfig/ip6tables
# systemctl start iptables
# systemctl start ip6tables
# systemctl enable iptables
# systemctl enable ip6tables
Если же мы переходим на FirewallD, то разбираемся дальше.
Проверяем, установлены ли нужные пакеты, ставим если нужно

Код: Выделить всё

yum -y install firewalld firewall-config
Поехали!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: firewalld & iptables

Непрочитанное сообщение Olej » 26 май 2016, 14:58

Centos 7, в отличие от CentOS 6, в базе идет с новым брандмауэром - firewalld. Его можно отключить и заменить на старый добрый iptables, но если к этому нет прямых предпосылок, то лучше привыкать к чему-то новому, а не упираться в старое.
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: firewalld & iptables

Непрочитанное сообщение Olej » 29 авг 2016, 17:45

Fedora 23:

В принципе, можно снять firewalld с тем, чтобы пользоваться традиционно, вручную iptables:

Код: Выделить всё

[olej@dell ~]$ service firewalld status
Redirecting to /bin/systemctl status  firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Сб 2016-08-27 12:06:03 EEST; 2 days ago
 Main PID: 950 (firewalld)
   CGroup: /system.slice/firewalld.service
           └─950 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid

авг 27 12:05:42 dell.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
авг 27 12:06:03 dell.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.

Код: Выделить всё

[olej@dell ~]$ sudo service firewalld stop
[sudo] пароль для olej: 
Redirecting to /bin/systemctl stop  firewalld.service
[olej@dell ~]$ service firewalld status
Redirecting to /bin/systemctl status  firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Пн 2016-08-29 17:40:26 EEST; 12s ago
  Process: 950 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 950 (code=exited, status=0/SUCCESS)

авг 27 12:05:42 dell.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
авг 27 12:06:03 dell.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
авг 29 17:40:24 dell.localdomain systemd[1]: Stopping firewalld - dynamic firewall daemon...
авг 29 17:40:26 dell.localdomain systemd[1]: Stopped firewalld - dynamic firewall daemon.

[olej@dell ~]$ sudo systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
Ставлю iptables:

Код: Выделить всё

[olej@dell ~]$ dnf list iptables* 
Последняя проверка окончания срока действия метаданных: 4 days, 19:13:58 назад, Wed Aug 24 22:22:54 2016.
Установленные пакеты
iptables.x86_64                                                              1.4.21-15.fc23                                                     @System
Доступные пакеты
iptables.i686                                                                1.4.21-15.fc23                                                     fedora 
iptables-devel.i686                                                          1.4.21-15.fc23                                                     fedora 
iptables-devel.x86_64                                                        1.4.21-15.fc23                                                     fedora 
iptables-services.x86_64                                                     1.4.21-15.fc23                                                     fedora 
iptables-utils.x86_64                                                        1.4.21-15.fc23                                                     fedora 

[olej@dell ~]$ sudo dnf install iptables-services iptables-utils
Последняя проверка окончания срока действия метаданных: 1:55:09 назад, Mon Aug 29 15:49:58 2016.
Зависимости разрешены.
=======================================================================================================================================================
 Package                                   Архитектура                    Версия                                  Репозиторий                    Размер
=======================================================================================================================================================
Установка:
 iptables-services                         x86_64                         1.4.21-15.fc23                          fedora                          53 k
 iptables-utils                            x86_64                         1.4.21-15.fc23                          fedora                          61 k

Результат операции
=======================================================================================================================================================
Установка  2 Пакеты

Объем загрузки: 114 k
Объем изменений: 62 k
Продолжить? [д/Н]: y
Загрузка пакетов:
(1/2): iptables-services-1.4.21-15.fc23.x86_64.rpm                                                                     216 kB/s |  53 kB     00:00    
(2/2): iptables-utils-1.4.21-15.fc23.x86_64.rpm                                                                        240 kB/s |  61 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------
Общий размер                                                                                                            61 kB/s | 114 kB     00:01     
Проверка транзакции
Проверка транзакции успешно завершена.
Идет проверка транзакции
Тест транзакции проведен успешно
Выполнение транзакции
  Установка    : iptables-utils-1.4.21-15.fc23.x86_64                                                                                              1/2 
  Установка    : iptables-services-1.4.21-15.fc23.x86_64                                                                                           2/2 
  Проверка     : iptables-services-1.4.21-15.fc23.x86_64                                                                                           1/2 
  Проверка     : iptables-utils-1.4.21-15.fc23.x86_64                                                                                              2/2 

Установлено:
  iptables-services.x86_64 1.4.21-15.fc23                                     iptables-utils.x86_64 1.4.21-15.fc23                                    

Выполнено!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: firewalld & iptables

Непрочитанное сообщение Olej » 29 авг 2016, 17:54

Olej писал(а): Ставлю iptables:

Код: Выделить всё

[olej@dell ~]$ sudo systemctl enable iptables
Created symlink from /etc/systemd/system/basic.target.wants/iptables.service to /usr/lib/systemd/system/iptables.service.

[olej@dell ~]$ service iptables status
Redirecting to /bin/systemctl status  iptables.service
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
   Active: inactive (dead)

[olej@dell ~]$ sudo service iptables start
Redirecting to /bin/systemctl start  iptables.service

[olej@dell ~]$ service iptables status
Redirecting to /bin/systemctl status  iptables.service
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
   Active: active (exited) since Пн 2016-08-29 17:48:11 EEST; 7s ago
  Process: 15734 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
 Main PID: 15734 (code=exited, status=0/SUCCESS)

авг 29 17:48:11 dell.localdomain systemd[1]: Starting IPv4 firewall with iptables...
авг 29 17:48:11 dell.localdomain iptables.init[15734]: iptables: Applying firewall rules: [  OK  ]
авг 29 17:48:11 dell.localdomain systemd[1]: Started IPv4 firewall with iptables.

Код: Выделить всё

[olej@dell ~]$ sudo iptables -L -v -n
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  722  168K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    1    29 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
   50  9372 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 805 packets, 143K bytes)
 pkts bytes target     prot opt in     out     source               destination         
А дальше можете добавлять правила в цепочки ipchains привычным старым способом.
А firewalld обратным путём можете всегда сделать.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: firewalld & iptables

Непрочитанное сообщение Olej » 01 апр 2018, 18:08

Olej писал(а): А дальше можете добавлять правила в цепочки ipchains привычным старым способом.
Ещё раз попался на файерволы - убил пол-дня...
Отрабатываю клиентскую пару для реального real-time проекта, нужно оценить латентность UDP-канала. Делаю спец клиента-сервера ... на локальной машине или на виртуальных - работает, по LAN - ни в какую.
Только после:

Код: Выделить всё

[olej@dell ~]$ systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

[olej@dell ~]$ systemctl status iptables
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
   Active: active (exited) since Вс 2018-04-01 14:31:05 EEST; 2h 27min ago
 Main PID: 855 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/iptables.service

апр 01 14:30:58 dell.localdomain systemd[1]: Starting IPv4 firewall with iptables...
апр 01 14:31:03 dell.localdomain iptables.init[855]: iptables: Applying firewall rules: [  OK  ]
апр 01 14:31:05 dell.localdomain systemd[1]: Started IPv4 firewall with iptables.

[olej@dell ~]$ sudo systemctl stop iptables

[olej@dell ~]$ systemctl status iptables
● iptables.service - IPv4 firewall with iptables
   Loaded: loaded (/usr/lib/systemd/system/iptables.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Вс 2018-04-01 16:58:47 EEST; 3s ago
  Process: 6417 ExecStop=/usr/libexec/iptables/iptables.init stop (code=exited, status=0/SUCCESS)
 Main PID: 855 (code=exited, status=0/SUCCESS)

Код: Выделить всё

[olej@dell ~]$ sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
Сервер начал слышать клиента:

Код: Выделить всё

[olej@dell udptest]$ ./udpserv -vvv
прослушивается UDP порт 55555
...........
И клиент оценивает латентность:

Код: Выделить всё

olej@nvidia ~/2018_WORK/own.WORKs/Triol/rdtsc/udptest $ sudo chrt -f 70 ./udpcli -vvv -t 400000 -s 192.168.1.8
server: 192.168.1.8, interval=400000 мкс.
тактовая частота процессора: 3069447611 Hz
для нормального завершения: Ctrl+C!
10127347 ticks
8622192 ticks
9831521 ticks
11734713 ticks
8639741 ticks
9038527 ticks
11953777 ticks
8949355 ticks
9706999 ticks
11706676 ticks
8186066 ticks
результат счёта:
число пульсов = 11
средняя задержка: 9863356 тактов | 3213.40 мкс.
с СКО отклонением = 1304941.03 (13.2%)
Для сравнения ICMP:

Код: Выделить всё

olej@nvidia ~/2018_WORK/own.WORKs/Triol/rdtsc/udptest $ ping 192.168.1.8
PING 192.168.1.8 (192.168.1.8) 56(84) bytes of data.
64 bytes from 192.168.1.8: icmp_seq=1 ttl=64 time=3.44 ms
64 bytes from 192.168.1.8: icmp_seq=2 ttl=64 time=3.12 ms
64 bytes from 192.168.1.8: icmp_seq=3 ttl=64 time=14.1 ms
^C
--- 192.168.1.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 3.125/6.899/14.134/5.117 ms

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 11 гостей