У меня есть компьютер с CentOS 7, который изначально использует iptables
в качестве инструмента настройки брандмауэра.
На компьютере есть док-контейнер, который прослушивает порт 10079
.
я хочу использовать брандмауэр
заменить iptables
.
Обе брандмауэр
и iptables
работать вне контейнера докеров. Я не запускаю их внутри контейнера.
Итак, я запускаю следующие команды
$ systemctl остановить iptables
# отключить iptables, чтобы он не запускался при следующей перезагрузке системы.
$ systemctl отключить iptables
$ systemctl запустить firewalld
$ systemctl включить firewalld
$ firewall-cmd --list-services
dhcpv6-клиент ssh
Как видно из вывода брандмауэр-cmd --список-служб
команда, у меня есть только ssh
, и dhcpv6-клиент
услуги включены.
Однако одна вещь, которая мне кажется странной, это то, что я все еще могу получить доступ к серверу через порт 10079
.
Я думал, что правила цепей iptables
станет недействительным после запуска systemctl остановить iptables
команда.
Но я был неправ.Потому что я все еще могу получить доступ к службе на компьютере через порт 10079.
Почему я все еще могу получить доступ к порту 10079
после бега systemctl остановить iptables
команда?
Вот статус iptables
и брандмауэр
$ systemctl статус iptables
✓ iptables.service — межсетевой экран IPv4 с iptables
Загружено: загружено (/usr/lib/systemd/system/iptables.service; отключено; настройка поставщика: отключена)
Активен: неактивен (мертв) с пятницы 18 июня 2021 г., 16:56:38 CST; 47 минут назад
Процесс: 18324 ExecStop=/usr/libexec/iptables/iptables.init stop (code=exited, status=0/SUCCESS)
Процесс: 18220 ExecStart=/usr/libexec/iptables/iptables.init start (code=exited, status=0/SUCCESS)
Основной PID: 18220 (код=выход, статус=0/УСПЕХ)
18 июня, 16:56:22 foo.my-company.com systemd[1]: запуск брандмауэра IPv4 с помощью iptables...
18 июня, 16:56:22 foo.my-company.com iptables.init[18220]: iptables: Применение правил брандмауэра: [ OK ]
18 июня, 16:56:22 foo.my-company.com systemd[1]: запущен брандмауэр IPv4 с iptables.
18 июня, 16:56:38 foo.my-company.com systemd[1]: остановка брандмауэра IPv4 с помощью iptables...
18 июня 16:56:38 foo.my-company.com iptables.init[18324]: iptables: установка цепочек для политики ПРИНЯТЬ: nat mangle security raw fil... OK ]
18 июня, 16:56:38 foo.my-company.com iptables.init[18324]: iptables: Сброс правил брандмауэра: [ OK ]
18 июня, 16:56:38 foo.my-company.com systemd[1]: брандмауэр IPv4 остановлен с помощью iptables.
Подсказка: некоторые строки были выделены эллипсами, используйте -l, чтобы показать их полностью.
$ systemctl статус firewalld
✓ firewalld.service — firewalld — демон динамического брандмауэра
Загружено: загружено (/usr/lib/systemd/system/firewalld.service; включено; предустановка поставщика: включена)
Активно: активно (работает) с пятницы 18.06.2021 16:56:38 CST; 48 минут назад
Документы: man:firewalld(1)
Основной PID: 18325 (брандмауэр)
Задачи: 2
Память: 26.0M
CГруппа: /system.slice/firewalld.service
ââ18325 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
18 июня, 16:56:38 foo.my-company.com systemd[1]: запуск firewalld — динамического демона брандмауэра...
18 июня, 16:56:38 foo.my-company.com systemd[1]: запущен firewalld — демон динамического брандмауэра.
18 июня, 16:56:39 foo.my-company.com firewalld[18325]: ПРЕДУПРЕЖДЕНИЕ. Включен параметр AllowZoneDrifting. Сейчас это считается небезопасным.
18 июня, 16:56:39 foo.my-company.com firewalld[18325]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-e06022...ain?).
18 июня, 16:56:39 foo.my-company.com firewalld[18325]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-ee12e0...ain?).
18 июня, 16:56:39 foo.my-company.com firewalld[18325]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-37072d...ain?).
18 июня, 16:56:39 foo.my-company.com firewalld[18325]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -...ain?).
18 июня, 16:56:39 foo.my-company.com firewalld[18325]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-95db75...ain?).
18 июня, 16:56:39 foo.my-company.com firewalld[18325]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-d77a44...ain?).
18 июня, 16:56:40 foo.my-company.com firewalld[18325]: ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -...ain?).
Подсказка: некоторые строки были выделены эллипсами, используйте -l, чтобы показать их полностью.
Похоже на то брандмауэр
запускается правильно и iptables
был отключен.
Вот содержание /var/журнал/брандмауэр
при перезагрузке моего компьютера сейчас:
2021-06-18 22:13:19 ПРЕДУПРЕЖДЕНИЕ. Включен параметр AllowZoneDrifting. Это считается небезопасным параметром конфигурации. Он будет удален в будущем выпуске. Пожалуйста, рассмотрите возможность его отключения сейчас.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D PREROUTING -m addrtype --dst-type LOCAL -j DOCKER' не удалось: iptables v1.4.21: не удалось не загружать цель `DOCKER': нет такого файла или каталога
Попробуйте `iptables -h' или 'iptables --help' для получения дополнительной информации.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D OUTPUT -m addrtype --dst-type ЛОКАЛЬНО! --dst 127.0.0.0/8 -j DOCKER' не удалось: iptables v1.4.21: не удалось загрузить цель `DOCKER': нет такого файла или каталога
Попробуйте `iptables -h' или 'iptables --help' для получения дополнительной информации.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D OUTPUT -m addrtype --dst-type LOCAL -j DOCKER' не удалось: iptables v1.4.21: не удалось не загружать цель `DOCKER': нет такого файла или каталога
Попробуйте `iptables -h' или 'iptables --help' для получения дополнительной информации.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D PREROUTING' не удалось: iptables: неверное правило (существует ли соответствующее правило в этой цепочке?).
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D OUTPUT' не удалось: iptables: неверное правило (существует ли соответствующее правило в этой цепочке?).
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -F DOCKER' не удалось: iptables: нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -X DOCKER' не удалось: iptables: Нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -F DOCKER' не удалось: iptables: Нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER' не удалось: iptables: Нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -F DOCKER-ISOLATION-STAGE-1' не удалось: iptables: Нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER-ISOLATION-STAGE-1' не удалось: iptables: Нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -F DOCKER-ISOLATION-STAGE-2' не удалось: iptables: нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER-ISOLATION-STAGE-2' не удалось: iptables: Нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -F DOCKER-ISOLATION' не удалось: iptables: нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER-ISOLATION' не удалось: iptables: Нет цепочки/цели/совпадения по этому имени.
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-ee12e0b3bd4b -o br-ee12e0b3bd4b -j DROP' не удалось: iptables: неверное правило (сопоставляется правило существует в этой цепочке?).
2021-06-18 22:13:21 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-37072db2b0a2 -o br-37072db2b0a2 -j DROP' не удалось: iptables: неверное правило (сопоставляется правило существует в этой цепочке?).
2021-06-18 22:13:22 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-95db758dd575 -o br-95db758dd575 -j DROP' не удалось: iptables: неверное правило (сопоставляется правило существует в этой цепочке?).
2021-06-18 22:13:22 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker0 -j DROP' не удалось: iptables: неверное правило (существует ли соответствующее правило в этом цепь?).
2021-06-18 22:13:22 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-d77a4470f1ee -o br-d77a4470f1ee -j DROP' не удалось: iptables: неверное правило (сопоставляется правило существует в этой цепочке?).
2021-06-18 22:13:22 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i br-e06022f15557 -o br-e06022f15557 -j DROP' не удалось: iptables: неверное правило (сопоставляется правило существует в этой цепочке?).
2021-06-18 22:13:22 ПРЕДУПРЕЖДЕНИЕ: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker0 -j DROP' не удалось: iptables: неверное правило (существует ли соответствующее правило в этом цепь?).
Содержимое журнала содержит много предупреждений о докере. Возможно, эта проблема как-то связана с докером.
Вот мои текущие настройки iptables.
$ iptables -L -n
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
INPUT_direct все -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES_SOURCE все -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate НЕДЕЙСТВИТЕЛЬНО
REJECT all -- 0.0.0.0/0 0.0.0.0/0
Цепочка FORWARD (политика DROP)
целевая защита выбор источника назначения
DOCKER-USER все -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-1 все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ДОКЕР все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ДОКЕР все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ДОКЕР все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ДОКЕР все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ДОКЕР все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ДОКЕР все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate СВЯЗАННО, УСТАНОВЛЕНО
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_direct все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES_SOURCE все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES_SOURCE все -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0 ctstate НЕДЕЙСТВИТЕЛЬНО
REJECT all -- 0.0.0.0/0 0.0.0.0/0
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
ПРИНЯТЬ все -- 0.0.0.0/0 0.0.0.0/0
OUTPUT_direct все -- 0.0.0.0/0 0.0.0.0/0
Сеть DOCKER (6 наименований)
целевая защита выбор источника назначения
ПРИНЯТЬ tcp -- 0.0.0.0/0 172.21.0.2 tcp dpt:443
ПРИНЯТЬ tcp -- 0.0.0.0/0 192.168.208.2 tcp dpt:8005
ПРИНЯТЬ tcp -- 0.0.0.0/0 172.29.0.3 tcp dpt:8080
ПРИНЯТЬ tcp -- 0.0.0.0/0 172.20.0.3 tcp dpt:5432
ПРИНЯТЬ tcp -- 0.0.0.0/0 172.21.0.3 tcp dpt:5432
ПРИНЯТЬ tcp -- 0.0.0.0/0 172.20.0.4 tcp dpt:80
ПРИНЯТЬ tcp -- 0.0.0.0/0 172.21.0.4 tcp dpt:9000
ПРИНЯТЬ tcp -- 0.0.0.0/0 172.20.0.4 tcp dpt:22
Сеть DOCKER-ISOLATION-STAGE-1 (1 ссылка)
целевая защита выбор источника назначения
DOCKER-ISOLATION-STAGE-2 все -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-2 все -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-2 все -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-2 все -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-2 все -- 0.0.0.0/0 0.0.0.0/0
DOCKER-ISOLATION-STAGE-2 все -- 0.0.0.0/0 0.0.0.0/0
ВОЗВРАТ все -- 0.0.0.0/0 0.0.0.0/0
Сеть DOCKER-ISOLATION-STAGE-2 (6 наименований)
целевая защита выбор источника назначения
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0
УДАЛИТЬ все -- 0.0.0.0/0 0.0.0.0/0
ВОЗВРАТ все -- 0.0.0.0/0 0.0.0.0/0
Сеть DOCKER-USER (1 ссылка)
целевая защита выбор источника назначения
ВОЗВРАТ все -- 0.0.0.0/0 0.0.0.0/0
Сеть FORWARD_IN_ZONES (1 ссылка)
целевая защита выбор источника назначения
FWDI_public все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
FWDI_public все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
Сеть FORWARD_IN_ZONES_SOURCE (1 ссылка)
целевая защита выбор источника назначения
Сеть FORWARD_OUT_ZONES (1 ссылка)
целевая защита выбор источника назначения
FWDO_public все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
FWDO_public все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
Сеть FORWARD_OUT_ZONES_SOURCE (1 ссылка)
целевая защита выбор источника назначения
Сеть FORWARD_direct (1 ссылка)
целевая защита выбор источника назначения
Сеть FWDI_public (2 ссылки)
целевая защита выбор источника назначения
FWDI_public_log все -- 0.0.0.0/0 0.0.0.0/0
FWDI_public_deny все -- 0.0.0.0/0 0.0.0.0/0
FWDI_public_allow все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ icmp -- 0.0.0.0/0 0.0.0.0/0
Сеть FWDI_public_allow (1 упоминание)
целевая защита выбор источника назначения
Цепочка FWDI_public_deny (1 упоминание)
целевая защита выбор источника назначения
Цепочка FWDI_public_log (1 ссылка)
целевая защита выбор источника назначения
Сеть FWDO_public (2 ссылки)
целевая защита выбор источника назначения
FWDO_public_log все -- 0.0.0.0/0 0.0.0.0/0
FWDO_public_deny все -- 0.0.0.0/0 0.0.0.0/0
FWDO_public_allow все -- 0.0.0.0/0 0.0.0.0/0
Сеть FWDO_public_allow (1 упоминание)
целевая защита выбор источника назначения
Цепочка FWDO_public_deny (1 ссылка)
целевая защита выбор источника назначения
Цепочка FWDO_public_log (1 ссылка)
целевая защита выбор источника назначения
Сеть INPUT_ZONES (1 ссылка)
целевая защита выбор источника назначения
IN_public все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
IN_public все -- 0.0.0.0/0 0.0.0.0/0 [перейти]
Сеть INPUT_ZONES_SOURCE (1 ссылка)
целевая защита выбор источника назначения
Сеть INPUT_direct (1 ссылка)
целевая защита выбор источника назначения
Сеть IN_public (2 ссылки)
целевая защита выбор источника назначения
IN_public_log все -- 0.0.0.0/0 0.0.0.0/0
IN_public_deny все -- 0.0.0.0/0 0.0.0.0/0
IN_public_allow все -- 0.0.0.0/0 0.0.0.0/0
ПРИНЯТЬ icmp -- 0.0.0.0/0 0.0.0.0/0
Сеть IN_public_allow (1 упоминание)
целевая защита выбор источника назначения
ПРИНЯТЬ tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate НОВЫЙ, НЕОТСЛЕЖЕННЫЙ
Цепочка IN_public_deny (1 упоминание)
целевая защита выбор источника назначения
Цепочка IN_public_log (1 упоминание)
целевая защита выбор источника назначения
Сеть OUTPUT_direct (1 ссылка)
целевая защита выбор источника назначения