web-dev-qa-db-ja.com

Fedora 25ワークステーション:firewalldを開いた、sshできません

最近、自分のコンピューターの1つにFedora 25(ワークステーション)をインストールしました。これはRHスタイルのディストリビューションでの私の最初の経験です-私は以前はDebianベースのシステムのみを使用し、それらのシステムではufwを使用してファイアウォールを構成しました。なぜfirewalldを機能させることができないのか説明するのに完全に途方に暮れています。

着信接続用に次のポートへのアクセスのみを許可しようとしています:22/tcp(SSH)、3306/tcp(mysql)

デフォルトゾーンをパブリックに設定し、ネットワークインターフェイスを手動でパブリックゾーンに設定しました。 SSHおよびmysqlサービスをパブリックゾーンに追加しました。これはランタイムファイアウォールの変更に影響するはずでしたが、運がありませんでした。私のコンピューターは、SSH接続を確立しようとするすべての試みを拒否しています。私のIPのnmapは次のように表示されます。

Nmap scan report for 192.168.1.241
Host is up (0.000014s latency).
Not shown: 998 closed ports
PORT     STATE SERVICE
111/tcp  open  rpcbind
3306/tcp open  mysql

ランタイムファイアウォールに変更を加えて、設定を永続的にしようとしました。どちらも開いているポートに変更を加えていません。私が何をしても(許可されたサービスとしてmysqlを削除することを含む)、nmapスキャンの出力は何も変わりません。 (はい、永続的な変更を加えた後、firewalldを再起動しています)。

私が理解していることから、firewalldはufwに似たiptablesの単なるラッパーですが、ufwでファイアウォールを構成する際に問題が発生したことは一度もありません。これは私を困惑させます。私はあなたが提供できるどんな助けにも感謝します。ありがとう。

私の設定を表示するためのいくつかのコマンドからの出力:

$ firewall-cmd --get-default-zone
public



$ firewall-cmd --get-zone-of-interface=enp0s25
public


$ cat /etc/firewalld/zones/public.xml 
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="mysql" />
</zone>


$ cat /usr/lib/firewalld/services/ssh.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>


$ cat /usr/lib/firewalld/services/mysql.xml 
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>MySQL</short>
  <description>MySQL Database Server</description>
  <port protocol="tcp" port="3306"/>
</service>


$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s25 
HWADDR=<removed>
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
DNS1=8.8.8.8
DNS2=8.8.4.4
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s25
UUID=<removed>
ONBOOT=yes
AUTOCONNECT_PRIORITY=-999
ZONE=public
IPADDR=192.168.1.241
PREFIX=24
GATEWAY=192.168.1.1
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes


$ 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 DROP
-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 DROP
-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 enp0s25 -g FWDI_public
-A FORWARD_IN_ZONES -g FWDI_public
-A FORWARD_OUT_ZONES -o enp0s25 -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 enp0s25 -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 -j ACCEPT
-A IN_public_allow -p tcp -m tcp --dport 3306 -m conntrack --ctstate NEW -j ACCEPT
1
Coop

ファイアウォールは正常に見え、問題はないようです。

ワークステーションにSSHで接続できない理由は、Fedoraワークステーションのインストールではデフォルトでsshデーモンが無効になっているためです。 (これは、すべてsshが有効になっているサーバー、クラウド、およびアトミックとは対照的です。)

この問題を解決するには、sshデーモンをインストールして明示的に有効にする必要があります。

dnf -y install openssh-server
systemctl enable sshd
systemctl start sshd
1
Michael Hampton