一連のUbuntu 10.04サーバーがあり、各サーバーでufwファイアウォールが有効になっています。ポート22(SSH用)および80(Webサーバーの場合)を許可しました。私の質問は、icmpエコー応答(ping応答)を有効にしようとしているということです。
ICMPの機能は他のプロトコルとは異なります-技術的な意味でIPレベルを下回っています。 Sudo ufw allow 22
と入力することはできますが、Sudo ufw allow icmp
と入力することはできません
ufwでは、コマンドラインインターフェイスコマンドによるicmpルールの指定は許可されていません。 iptables-restoreスタイルファイルであるルールファイルを使用して、ルールセットを調整できます。
ufwは、icmpエコー応答を含む特定のicmpトラフィックをデフォルトで許可します。これは、デフォルトで/etc/ufw/before.rules
ですでに構成されています。
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
ホストがpingに応答しない場合は、このファイルを調べて上記の行が存在することを確認し、それが機能しない場合は、pingホストとそれらの間のファイアウォールを調べます。
Ubuntu 18.04の場合、/ etc/ufw/before.rulesファイルに次のルールが必要です。
# ok icmp codes for INPUT
-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
# ok icmp code for FORWARD
-A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type source-quench -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type time-exceeded -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type parameter-problem -j ACCEPT
-A ufw-before-forward -p icmp --icmp-type echo-request -j ACCEPT
これらは私のデフォルトのファイルにありました。
もちろん、これが本当に問題であることを確認してください。私の問題は、pingしようとしているサーバーが存在するネットワークへのpingの送信をコンピューターがブロックしていることでした。最終的には、すでにインターネット上にあるWebサイトを使用してpingを実行しました(例 https://ping.eu/ping/ )。
これは、pingなどの応答を有効/無効にする方法を説明するヘルプドキュメントです。
/etc/ufw/before.rulesファイルに次を追加します。
# allow outbound icmp
-A ufw-before-output -p icmp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
-A ufw-before-output -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT
ファイルを編集したら、次のコマンドを実行します。
Sudo ufw reload