Почему firewall-cmd выдает ошибку "ALREADY_ENABLED", но порт не указан при вызове firewall-cmd --list-ports?
Используя CentOS 7, я пытаюсь использовать firewall-cmd --zone=public --add-port=443/tcp --permanent
добавить 443 к моим разрешенным портам. К сожалению это выдает ошибку ALREADY_ENABLED: 443:tcp
, Но когда я использую firewall-cmd --list-ports
он не отображается в списке ("80/ TCP 3000/ TCP 26900/ TCP 26900/ UDP").
Я предполагаю, что проблема вызвана конфликтом между firewall-cmd и iptables. Но я понятия не имею, как отладить это и возможно ли это вообще сделать.
призвание firewall-cmd --list-all
Результаты в следующем списке:
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client
ports: 80/tcp 3000/tcp 26900/tcp 26900/udp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
1 ответ
Команда, которую вы запускаете, влияет на постоянную конфигурацию, а не на текущую конфигурацию. Но вы перечисляете работающую конфигурацию. Вот почему вы их не видите.
Вы можете указать постоянную конфигурацию, чтобы подтвердить, что правило было успешно добавлено.
firewall-cmd --list-all --permanent
Вместо этого вы можете добавить правило в рабочую конфигурацию:
firewall-cmd --zone=public --add-port=443/tcp
Или вы можете перезагрузить текущую конфигурацию из постоянной конфигурации:
firewall-cmd --reload
Также помните, что firewalld определил службы для общих портов, поэтому обычно нет необходимости открывать их по номеру. Например, вместо открытия портов 80/tcp и 443/tcp вы могли бы вместо этого сказать:
firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --add-service=https
Наконец, когда это возможно, лучше изменить правила в работающей конфигурации, убедиться, что они работают, а затем сохранить конфигурацию, а не наоборот. Это позволяет вам вернуться, если что-то пойдет не так, и вы случайно выйдете из системы.
Вы можете сохранить текущую конфигурацию в постоянную, запустив:
firewall-cmd --runtime-to-permanent
(Но некоторые операции работают только с постоянной конфигурацией, например, создание новых зон. Для этого вы должны использовать --permanent
а потом сразу --reload
брандмауэр.)