Назад | Перейти на главную страницу

Настройте Firewalld для SSL на рабочей станции Fedora 29

Я борюсь с firewalld и SSL на рабочей станции Fedora 29. Я получаю отказ в соединении / не могу подключиться к серверу, когда пытаюсь открыть SSL-соединение с nginx.

Если я остановлю firewalld с помощью:

sudo systemctl stop firewalld

Затем я подключаюсь с помощью http и https из удаленной системы и получаю по умолчанию страницу приветствия Nginx.

Если я начну firewalld с

sudo systemctl start firewalld

Затем я могу подключиться по http, но не могу подключиться по https и получаю сообщение об ошибке «Не могу подключиться к серверу». Итак, проблема, похоже, в моей конфигурации firewalld.

Я настроил firewalld для http и https следующим образом:

>sudo firewall-cmd --set-default-zone=public
success
>sudo firewall-cmd --zone=public --add-service=https --permanent
success
>sudo firewall-cmd --zone=public --add-service=http --permanent
success
>sudo firewall-cmd --zone=public --add-masquerade --permanent
success
>sudo firewall-cmd --reload
success

а сейчас:

>sudo firewall-cmd --get-default-zone
public
>sudo firewall-cmd --get-active-zones
public
  interfaces: ens33
>sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources: 
  services: dhcpv6-client http https mdns ssh
  ports: 
  protocols: 
  masquerade: yes
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Это подводит меня к точке, где http работает, но не https, когда включен firewalld.

Я пробовал отключить selinux с помощью:

sudo setenforce 0

но тот же результат - https-соединения отклоняются, когда включен firewalld.

Я также пробовал включить ведение журнала firewalld, но даже на уровне журнала 10, когда все отклонено, я не получаю записи в журнале после запуска firewalld о попытке подключения.

Я подозреваю, что проблема здесь в моем самозаверяющем сертификате SSL, который известен nginx, но не известен firewalld, но я не могу найти ничего, что показывает, как указать firewalld на мой сертификат CA.

Кроме:

sudo systemctl disable firewalld

есть ли предложения, чтобы firewalld принимал мои SSL-соединения?

/ etc / hosts сопоставляет 10.0.0.10 имени хоста; ping'ing имя хоста получает ответ

>ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:2c:b6:0d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.10/24 brd 10.0.0.255 scope global dynamic noprefixroute ens33
       valid_lft 81698sec preferred_lft 81698sec
    inet6 fe80::213b:4f37:7851:a058/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:65:88:ec brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:65:88:ec brd ff:ff:ff:ff:ff:ff

Убрана маскировка с помощью:

>sudo firewall-cmd --zone=public --remove-masquerade --permanent
success
>sudo firewall-cmd --reload
success

Но результат тот же.

>sudo iptables -S
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-N FORWARD_IN_ZONES
-N FORWARD_IN_ZONES_SOURCE
-N FORWARD_OUT_ZONES
-N FORWARD_OUT_ZONES_SOURCE
-N FORWARD_direct
-N FWDI_public
-N FWDI_public_allow
-N FWDI_public_deny
-N FWDI_public_log
-N FWDO_public
-N FWDO_public_allow
-N FWDO_public_deny
-N FWDO_public_log
-N INPUT_ZONES
-N INPUT_ZONES_SOURCE
-N INPUT_direct
-N IN_public
-N IN_public_allow
-N IN_public_deny
-N IN_public_log
-N OUTPUT_direct
-A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -i virbr0 -p udp -m udp --dport 67 -j ACCEPT
-A INPUT -i virbr0 -p tcp -m tcp --dport 67 -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES_SOURCE
-A INPUT -j INPUT_ZONES
-A INPUT -m conntrack --ctstate INVALID -j LOG --log-prefix "STATE_INVALID_DROP: "
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A INPUT -j LOG --log-prefix "FINAL_REJECT: "
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -d 192.168.122.0/24 -o virbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT
-A FORWARD -i virbr0 -o virbr0 -j ACCEPT
-A FORWARD -o virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -i virbr0 -j REJECT --reject-with icmp-port-unreachable
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -j FORWARD_direct
-A FORWARD -j FORWARD_IN_ZONES_SOURCE
-A FORWARD -j FORWARD_IN_ZONES
-A FORWARD -j FORWARD_OUT_ZONES_SOURCE
-A FORWARD -j FORWARD_OUT_ZONES
-A FORWARD -m conntrack --ctstate INVALID -j LOG --log-prefix "STATE_INVALID_DROP: "
-A FORWARD -m conntrack --ctstate INVALID -j DROP
-A FORWARD -j LOG --log-prefix "FINAL_REJECT: "
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -o virbr0 -p udp -m udp --dport 68 -j ACCEPT
-A OUTPUT -j OUTPUT_direct
-A FORWARD_IN_ZONES -i ens33 -g FWDI_public
-A FORWARD_IN_ZONES -g FWDI_public
-A FORWARD_OUT_ZONES -o ens33 -g FWDO_public
-A FORWARD_OUT_ZONES -g FWDO_public
-A FWDI_public -j FWDI_public_log
-A FWDI_public -j FWDI_public_deny
-A FWDI_public -j FWDI_public_allow
-A FWDI_public -p icmp -j ACCEPT
-A FWDO_public -j FWDO_public_log
-A FWDO_public -j FWDO_public_deny
-A FWDO_public -j FWDO_public_allow
-A INPUT_ZONES -i ens33 -g IN_public
-A INPUT_ZONES -g IN_public
-A IN_public -j IN_public_log
-A IN_public -j IN_public_deny
-A IN_public -j IN_public_allow
-A IN_public -p icmp -j ACCEPT
-A IN_public_allow -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT
-A IN_public_allow -d 224.0.0.251/32 -p udp -m udp --dport 5353 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT
-A IN_public_allow -p tcp -m tcp --dport 443 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT
-A IN_public_allow -p tcp -m tcp --dport 80 -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT

Проверка статуса https:

>firewall-cmd --info-service=https
https
    ports: 443/tcp
    protocols: 
    source-ports: 
    modules: 
    destination: 

Я использую WMWare Fusion Professional версии 11.0.3 (12992109) на MacOs Mojave 10.14.4 (18E226). В VMWare для сетевого адаптера Fedora 29 установлено значение «Мостовой (автоматическое определение)».