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-interfaces
。src/network.c
dnsmasqも参照してください。
--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
読み取らずに接続が閉じられます。したがって、送信するデータは重要ではありません。たとえば、従来のバッファオーバーフローは利用できません。