ファイアウォールなしでFedoraを実行すると、libvirt dnsmasqはネットワークに公開されますか?

ファイアウォールなしでFedoraを実行すると、libvirt dnsmasqはネットワークに公開されますか?

Ubuntuについて良い言葉があります:オープンポートなし基本インストールから。 Fedoraを含む他のLinuxオペレーティングシステムも同様に見えます。ファイアウォールポリシーを設定するのは面倒かもしれないので、これは良いデフォルトです。

Ubuntuは特にDHCPクライアント(必須)とmDNSを免除します。 (区別するファイアウォール領域がないため、mDNSを有効にしておくのが最善です。Poetteringは、avahi-daemonを安全にするためにいくつかのタスクを追加したと思います。)

したがって、Fedora をシャットダウンして、firewalld仮想マシンのブリッジ/ルーティングされたネットワークを使用できます。除外 - このdnsmasqポートはどうですか?外部ネットワークに公開されますか?

sudo ss -nultp  # List TCP and UDP listening sockets
Netid    State     Recv-Q    Send-Q                           Local Address:Port        Peer Address:Port                                                                                                                 
udp      UNCONN    0         0                                    127.0.0.1:323              0.0.0.0:*        users:(("chronyd",pid=1249,fd=5))                                                                           
udp      UNCONN    0         0                                      0.0.0.0:41662            0.0.0.0:*        users:(("avahi-daemon",pid=1216,fd=14))                                                                     
udp      UNCONN    0         0                                      0.0.0.0:5353             0.0.0.0:*        users:(("avahi-daemon",pid=1216,fd=12))                                                                     
udp      UNCONN    0         0                                192.168.122.1:53               0.0.0.0:*        users:(("dnsmasq",pid=2011,fd=5))                                                                           
udp      UNCONN    0         0                               0.0.0.0%virbr0:67               0.0.0.0:*        users:(("dnsmasq",pid=2011,fd=3))                                                                           
udp      UNCONN    0         0                                      0.0.0.0:68               0.0.0.0:*        users:(("dhclient",pid=2354,fd=6))                                                                          
udp      UNCONN    0         0                                      0.0.0.0:68               0.0.0.0:*        users:(("dhclient",pid=2184,fd=6))                                                                          
udp      UNCONN    0         0                                        [::1]:323                 [::]:*        users:(("chronyd",pid=1249,fd=6))                                                                           
udp      UNCONN    0         0            [fe80::f3a:8415:60b9:e56b]%wlp2s0:546                 [::]:*        users:(("dhclient",pid=2373,fd=5))                                                                          
udp      UNCONN    0         0             [fe80::7e73:7a0c:e16f:a0d4]%eno1:546                 [::]:*        users:(("dhclient",pid=2242,fd=5))                                                                          
udp      UNCONN    0         0                                         [::]:5353                [::]:*        users:(("avahi-daemon",pid=1216,fd=13))                                                                     
udp      UNCONN    0         0                                         [::]:48210               [::]:*        users:(("avahi-daemon",pid=1216,fd=15))                                                                     
tcp      LISTEN    0         32                               192.168.122.1:53               0.0.0.0:*        users:(("dnsmasq",pid=2011,fd=6))                                                                           
tcp      LISTEN    0         5                                    127.0.0.1:631              0.0.0.0:*        users:(("cupsd",pid=4225,fd=6))                                                                             
tcp      LISTEN    0         5                                        [::1]:631                 [::]:*        users:(("cupsd",pid=4225,fd=5))

答え1

2012年11月23日午後12時50分に、Gene Czarcinskiは次のように書きました。

Libvirt は、dnsmasq インスタンスがサポートする仮想ネットワークインターフェイスのアドレスに対して発生しなかったポート 53 クエリに dnsmasq が応答するセキュリティ関連の問題を解決するために、ボンドインターフェイスの使用からボンドダイナミクスの使用に変更しています。

ビューにはps -ax|grep dnsmasq設定ファイルを使用しているようです/var/lib/libvirt/dnsmasq/default.conf

## dnsmasq conf file created by libvirt
strict-order
pid-file=/var/run/libvirt/network/default.pid
except-interface=lo
bind-dynamic
interface=virbr0
#...

bind-dynamicだから彼らは実際にから引っ越しましたbind-interfacessrc/network.cdnsmasqも参照してください。

--bind-interfacesの唯一のアクセス制御は、私たちが聞いているアドレスです。通常、内部インターフェイスのアドレスがRFC1918 ...の場合を除き、クエリを許可しない外部インターフェイスを介して到着する内部インターフェイスアドレスへのクエリを回避する方法はありません。

修正は、実際に到達インターフェイスもチェックする --bind-dynamic を使用することです。プラットフォームがそれをサポートしないと難しいです。

標準のIPv6 APIは到着インターフェイスの確認をサポートし、常にこれを行います。

DHCPソケット(ポート67)は最終的に特定のインターフェイスにバインドされます。したがって、DHCPについては心配する必要はなく、DNS(ポート53)だけを心配するだけです。

(dnsmasqは1つのDHCPソケットのみを使用します。すべてのアドレスを受信しますが、インターフェイスが1つしかない場合はそのインターフェイスのバインディングを使用できます。SO_BINDTODEVICEなぜ1つのDHCPソケットを使用するのか説明しないでください。)奇妙です。

2番目のシステムでdnsmasqをテストします。

$ ip route add 192.168.124.1 via $FEDORA_IP
$ sudo nmap -A -F 192.168.124.1

Starting Nmap 6.47 ( http://nmap.org ) at 2016-01-18 16:11 GMT

Nmap scan report for 192.168.124.1
Host is up (0.0023s latency).
Not shown: 98 closed ports
PORT   STATE SERVICE    VERSION
22/tcp open  ssh        OpenSSH 7.1 (protocol 2.0)
|_ssh-hostkey: ERROR: Script execution failed (use -d to debug)
53/tcp open  tcpwrapped
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.11 - 3.14
Network Distance: 1 hop

TRACEROUTE (using port 8888/tcp)
HOP RTT     ADDRESS
1   0.80 ms 192.168.124.1

OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 23.42 seconds

これにより、開いているTCPポートが表示されます。しかし、「tcpwrapped」のように応答します。つまりvirbr0、別のインターフェイスを介して接続すると、データをdnsmasq読み取らずに接続が閉じられます。したがって、送信するデータは重要ではありません。たとえば、従来のバッファオーバーフローは利用できません。

関連情報