2つのネットワークカードを備えたUbuntuServer12.04があります。
サーバーはゲートウェイとして構成され、プライベートネットワークのDNSとDHCPをホストします。プライベートネットワーク内のコンピューター(たとえば、IPアドレス192.168.10.50)は、インターネットに正常に接続できます。
UFWルールは次のようになります。
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
80 ALLOW Anywhere
443 ALLOW Anywhere
67/udp on eth1 ALLOW 68/udp
53 ALLOW Anywhere
22 ALLOW Anywhere (v6)
80 ALLOW Anywhere (v6)
443 ALLOW Anywhere (v6)
67/udp on eth1 ALLOW 68/udp
53 ALLOW Anywhere (v6)
すべてのインターネットユーザーが私のDNSサーバーに問い合わせることができます。セキュリティ上のリスクがあるため、このようなリクエストはブロックしたいと思います。ファイアウォールをリセットし、ポート80、443、22へのアクセスを許可し、次のように入力して、プライベートネットワーク上のデバイスのみがDNS要求を行うことを許可しました。
Sudo ufw allow in on eth1 to 192.168.10.1 port 53
プライベートネットワークのWindowsコンピューター(IPアドレス192.168.10.50)で次のように入力する場合:
nslookup google.com. 192.168.10.1
次のような応答が返されます。
DNS request timed out.
timeout was 2 seconds.
Server: Unknown
Address: 192.168.10.1
ファイアウォールをリセットし、どこからでもポート53へのアクセスを許可すると、すべてが再び機能します。
Sudo ufw allow 53
192.168.10.1でUFWをどのように設定しますか
UFWでトラフィックをブロックすることに加えて、DNSサーバーでの接続も制限します。 BINDを使用しているとすると、これに似たものがあります。
acl internal {
192.168.10.0/24;
# Add other internal networks here
};
options {
listen-on { 192.168.10.1; };
allow-query { internal; };
};
これを試して
Sudo ufw allow from 192.168.10.0/24 to 192.168.10.1 port 53 proto tcp
Sudo ufw allow from 192.168.10.0/24 to 192.168.10.1 port 53 proto udp
これにより、ローカルプライベートネットワークからのTCPおよびUDPDNS(ポート53)トラフィックが許可されます(私は192.168.10.0/24
、つまり192.168.10.1-255
)そして他のどこにもありません。
最後に、UFWステータスを確認します(run Sudo ufw status
)次の行があります:
To Action From
-- ------ ----
192.168.10.1 53/tcp ALLOW 192.168.10.0/24
192.168.10.1 53/udp ALLOW 192.168.10.0/24
インターフェイスベースのufwルールの場合、以下は、ポート53へのアクセスをブロックします(dns/bindサーバーがポート53で構成されていると仮定) eth1ではない :
Sudo ufw allow all in on eth1 to any port 53 proto tcp
Sudo ufw deny to any port 53
転送DNS要求へのバインドを構成するには、内部で処理されるすべてのゾーンの後で、named.confファイルでこのディレクティブを使用できます。
zone "." {
type forward;
forwarders {
8.8.8.8;
};
}