Pingは、ICMPエコー要求とエコー応答メッセージを使用してインターネットプロトコルネットワーク上のシステムの可用性を確認するために使用されるネットワークユーティリティです。ただし、一部のネットワーク管理者は、何らかの理由でpingをセキュリティの問題と見なしているため、pingをブロックすることを好みます。以前の投稿では、Ubuntu20.04でping要求をブロックまたはブロック解除する方法について説明しました。この投稿では、Debianでpingリクエストをブロックまたはブロック解除する方法について説明します。
前提条件
- Debian OS
- Sudoユーザー
注: ここで説明する手順は、 Debian 10(バスター)でテストされています。 システム。
DebianでのPingリクエストのブロックまたはブロック解除
Pingは、ターゲットシステムに向けてICMPエコー要求を送信してから、ICMPエコー応答を取得します。 Linux OSでは、IPアドレスにpingを実行すると、Ctrl+Cを押して停止するまでICMPパケットを送信し続けます。特定の数のパケットを送信するには、 -cでpingを使用します オプション。たとえば、3つのICMPパケットを送信するには、次のコマンドを使用できます。
$ ping -c 3 <ip-address or hostname>
Debianシステムへのping要求をブロックするには、次の2つのオプションがあります。
- カーネルパラメータを介して
- iptablesを介して
Debianシステムでping要求をブロックするための両方のオプションについて説明します。
カーネルパラメータを介してPingリクエストをブロックまたはブロック解除する
カーネルパラメータnet.ipv4.icmp_echo_ignore_allを変更することで、ping要求をブロック/ブロック解除できます。 。このパラメーターは、システムがping要求に応答するかどうかを制御します。カーネルパラメータのデフォルト値net.ipv4.icmp_echo_ignore_all は「0」です これは、すべてのping要求を許可することを意味します。 このカーネルパラメータの値を変更することで、システムにping要求をブロックさせることができます。
カーネルパラメータを変更するには、次の3つの方法があります。
- 「sysctl」コマンドを使用
- 「icmp_echo_ignore_all」ファイルを介して
- 「/etc/sysctl.conf」ファイルを介して
システムが現在ping要求をブロックしているか許可しているかを確認するには、ターミナルで次のコマンドを発行します。
$ sudo sysctl -ar ‘icmp_echo’
「icmp_echo_ignore_all」の値が「0」に等しい場合は、pingがブロックされていないことを意味し、値「1」は、pingがブロックされていないことを意味します。次の出力は、pingが現在システムでブロック解除されていることを示しています。
「sysctl」コマンドを使用してPing要求をブロックまたはブロック解除します(一時的に)
システムへのping要求を一時的にブロックする必要がある場合は、次のようにsysctlコマンドを使用できます。
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1
上記のコマンドを実行した後、マシンはそれに着信するping要求のブロックを開始します。これで、別のシステムがシステムにpingを実行しようとしても、次の出力に示すように応答がありません。
ただし、前述のとおり、この変更は一時的なものです。システムを再起動するとすぐに、カーネルパラメータ値が元の値に戻り、pingのブロックが再び解除されます。
次のコマンドを使用してpingのブロックを解除することもできます:
$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=0
icmp_echo_ignore_allファイルを介したPingリクエストのブロックまたはブロック解除(一時的に)
/ proc / sys / net / ipv4 / ディレクトリにはファイルが含まれていますicmp_echo_ignore_all これは、システムがping要求に応答するかどうかを制御します。
pingリクエストをブロックするには、 icmp_echo_ignore_allの値を変更する必要があります ファイル形式「0」から「1」。これは、次のコマンドを使用して実行できます。
$ sudo sh -c ‘echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all’
ただし、この変更は一時的なものです。システムを再起動するとすぐに、カーネルパラメータ値が元の値に戻り、pingのブロックが再び解除されます。
次のコマンドを使用してpingのブロックを解除することもできます:
$ sudo sh -c ‘echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all’
「/etc/sysctl.conf」ファイルを介してPingリクエストをブロックまたはブロック解除します(永続的に)
/etc/sysctl.conf を使用して、ping要求を永続的にブロックすることもできます。 ファイル。 ping要求を永続的にブロックするには、最初に /etc/sysctl.confを編集します 次のコマンドを使用してファイルを作成します:
$ sudo nano /etc/sysctl.conf
編集したファイルに、次の行を追加します。
net.ipv4.icmp_echo_ignore_all = 1
次に、 /etc/sysctl.confを保存して閉じます ファイルを作成し、次のコマンドを実行して変更を適用します。
$ sysctl -p
pingのブロックを解除するには、 /etc/sysctl.confを編集します ファイルを作成し、 net.ipv4.icmp_echo_ignore_allの値を変更します 0に戻る:
net.ipv4.icmp_echo_ignore_all = 0
iptablesを使用してPingリクエストをブロックまたはブロック解除する(永続的に)
Iptablesは、一連のルールに基づいてトラフィックを許可/ブロックするLinuxのコマンドラインユーティリティです。 Debianディストリビューションには、デフォルトでiptablesユーティリティが含まれています。ただし、システムにこのユーティリティがない場合は、次のようにインストールできます。
$ sudo apt-get install iptables
次に、ターミナルで次のコマンドを発行して、ping要求をブロックします。
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j REJECT
上記のコマンドで、 A オプションは、iptablesおよび icmp-type 8にルールを追加するために使用されます ICMPエコー要求に使用されます。 このコマンドは、システムへのすべての着信pingをブロックするために、ファイアウォールにルールを追加します。このルールを追加すると、システムはそれに着信するすべてのping要求を拒否します。これで、別のシステムがシステムにpingを実行しようとすると、「宛先ポートに到達できません」を受け取ります。 」メッセージ。
送信側ユーザーに宛先ポート到達不能メッセージを表示させたくない場合は、次のように上記のコマンドでREJECTの代わりにDROPを使用してください :
$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROP
これで、ユーザーがシステムにpingを実行しても、応答は返されません。
pingのブロックを解除するには、次のコマンドを使用します。
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j REJECT
または、 DROP を使用した場合は、以下のコマンド iptablesルールのオプション:
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j DROP
上記のコマンドで、 D オプションは、iptablesおよび icmp-type 8のルールを削除するために使用されます ICMPエコー要求に使用されます。
iptablesのルールを一覧表示するには、次のコマンドを使用します。
$ sudo iptables -L
上記で追加したiptablesルールは、システムの再起動後も存続しません。再起動後も存続させるには、 iptables-persistentをインストールする必要があります パッケージ。次のコマンドを実行してインストールします。
$ sudo apt install iptables-persistent
iptablesで追加または削除する各ルールの後で、次のコマンドを実行して、再起動後もこれらのルールを永続化します。
$ sudo netfilter-persistent save
$ sudo netfilter-persistent reload
これは、Debianシステムへのping要求をブロック/ブロック解除する方法です。この投稿では、ping要求を一時的または永続的にブロック/ブロック解除するさまざまな方法を学びました。見逃したpingをブロック/ブロック解除する他の方法をご存知の場合は、以下のコメントでお知らせください。