GNU/Linux >> Znalost Linux >  >> Debian

Blokovat nebo odblokovat požadavek ping na Debian 10 - Jak provést tento úkol?

Ping je síťový nástroj používaný ke kontrole dostupnosti systému v síti internetového protokolu pomocí ICMP echo request a echo response zpráv.

Někteří správci sítě však preferují blokování pingu, protože to z nějakých důvodů považují za bezpečnostní problém.

Zde v LinuxAPT, jako součást našich služeb správy serveru, pravidelně pomáháme našim zákazníkům provádět dotazy související s Debianem.

V této souvislosti se podíváme na to, jak zablokovat nebo odblokovat požadavky ping na Debianu.

Dříve jsme vysvětlili, jak zablokovat nebo odblokovat požadavek ping na Ubuntu 20.04.


Jak blokovat nebo odblokovat požadavky na ping v Debianu?

Ping odešle ICMP echo požadavek do cílového systému a poté obdrží ICMP echo odpověď.

V OS Linux, když odešlete příkaz ping na IP adresu, pokračuje v odesílání paketů ICMP, dokud jej nezastavíte stisknutím Ctrl+C.

Chcete-li odeslat určitý počet paketů, použijte volbu ping s -c.

Chcete-li například odeslat 3 pakety ICMP, můžete použít následující příkaz:

$ ping -c 3 <ip-address or hostname>

Chcete-li blokovat požadavky ping na systém Debian, existují následující dvě možnosti:

i. Prostřednictvím parametrů jádra

ii. Prostřednictvím iptables


Nyní se podívejme na obě možnosti blokování požadavků ping na systému Debian.


Jak blokovat nebo odblokovat požadavky na ping prostřednictvím parametrů jádra?

Požadavky na ping lze zablokovat/odblokovat úpravou parametru jádra net.ipv4.icmp_echo_ignore_all.

Tento parametr řídí, zda má systém reagovat na požadavky ping nebo ne.

Výchozí hodnota parametru jádra net.ipv4.icmp_echo_ignore_all je "0", což znamená povolení všech požadavků na ping.

Úpravou hodnoty tohoto parametru jádra můžete přimět systém, aby blokoval požadavky ping.


Existují tři různé způsoby, jak upravit parametry jádra:

i. Prostřednictvím příkazu "sysctl"

ii. Prostřednictvím souboru "icmp_echo_ignore_all"

iii. Prostřednictvím souboru "/etc/sysctl.conf"


Chcete-li zjistit, zda systém aktuálně blokuje nebo povoluje požadavky ping, zadejte v Terminálu následující příkaz:

$ sudo sysctl -ar 'icmp_echo'

Hodnota "icmp_echo_ignore_all" se rovná "0" znamená, že ping je odblokován, zatímco hodnota "1" znamená, že ping je odblokován.


Jak zablokovat nebo odblokovat požadavky ping pomocí příkazu "sysctl" (dočasně)?

Pokud potřebujete dočasně zablokovat požadavky ping na váš systém, můžete použít příkaz sysctl takto:

$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=1

Po spuštění výše uvedeného příkazu stroj začne blokovat požadavky na ping, které na něj přicházejí.

Pokud se nyní jiný systém pokusí pingnout váš systém, neuvidí žádnou odpověď.

Jak však již bylo řečeno, tato změna bude dočasná.

Jakmile restartujete systém, hodnota parametru jádra se vrátí na původní hodnotu a ping bude znovu odblokován.

Ping můžete také odblokovat pomocí níže uvedeného příkazu:

$ sudo sysctl -w net.ipv4.icmp_echo_ignore_all=0


Jak zablokovat nebo odblokovat požadavky ping prostřednictvím souboru icmp_echo_ignore_all (dočasně)?

Adresář /proc/sys/net/ipv4/ obsahuje soubor icmp_echo_ignore_all, který řídí, zda má systém reagovat na požadavky ping nebo ne.

Chcete-li blokovat požadavky ping, budete muset změnit hodnotu v souboru icmp_echo_ignore_all ve tvaru "0" na "1".

Můžete to udělat pomocí níže uvedeného příkazu:

$ sudo sh -c 'echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all'

Tato změna však bude dočasná.

Jakmile restartujete systém, hodnota parametru jádra se vrátí na původní hodnotu a ping bude znovu odblokován.

Ping můžete také odblokovat pomocí níže uvedeného příkazu:

$ sudo sh -c 'echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all'


Jak zablokovat nebo odblokovat požadavky ping prostřednictvím souboru "/etc/sysctl.conf" (trvale)?

Požadavky na ping lze také trvale zablokovat pomocí souboru /etc/sysctl.conf. Chcete-li trvale blokovat požadavky ping, nejprve upravte soubor /etc/sysctl.conf pomocí následujícího příkazu:

$ sudo nano /etc/sysctl.conf

Nyní do upraveného souboru přidejte následující řádek:

net.ipv4.icmp_echo_ignore_all = 1

Nyní uložte a zavřete soubor /etc/sysctl.conf a spusťte následující příkaz pro použití změn:

$ sysctl -p

Chcete-li ping odblokovat, upravte soubor /etc/sysctl.conf a změňte hodnotu net.ipv4.icmp_echo_ignore_all zpět na 0:

net.ipv4.icmp_echo_ignore_all = 0


Jak zablokovat nebo odblokovat požadavky ping pomocí iptables (trvale)?

Iptables je nástroj příkazového řádku v Linuxu, který povoluje/blokuje provoz na základě sady pravidel. Distribuce Debian standardně obsahuje nástroj iptables.

Pokud však váš systém tento nástroj nemá, můžete jej nainstalovat následovně:

$ sudo apt-get install iptables

Nyní zadejte níže uvedený příkaz v Terminálu pro blokování požadavků ping:

$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j REJECT

Ve výše uvedeném příkazu se volba A používá pro připojení pravidla v iptables a icmp-type 8 se používá pro požadavky ICMP echo.

Tento příkaz přidá pravidlo do brány firewall, aby se zablokovaly všechny příchozí pingy do vašeho systému. Po přidání tohoto pravidla systém odmítne všechny příchozí požadavky na ping.

Pokud se nyní jiný systém pokusí pingnout váš systém, obdrží zprávu „Destination Port Unreachable“.


Pokud nechcete, aby odesílající uživatel viděl zprávu Destination Port Unreachable, použijte ve výše uvedeném příkazu DROP namísto REJECT:

$ sudo iptables -A INPUT -p icmp --icmp-type 8 -j DROP

Pokud nyní uživatel pingne na váš systém, neobdrží žádnou odpověď.


Chcete-li odblokovat ping, použijte níže uvedený příkaz:

$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j REJECT

Nebo níže uvedený příkaz, pokud jste použili možnost DROP v pravidle iptables:

$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j DROP

Ve výše uvedeném příkazu se volba D používá pro smazání pravidla v iptables a icmp-type 8 se používá pro požadavky ICMP echo.


Chcete-li zobrazit seznam pravidel ve svých iptables, použijte následující příkaz:

$ sudo iptables -L

Pravidla iptables, která jsme přidali výše, nepřežijí restart systému.

Aby přežily restart, budete muset nainstalovat balíček iptables-persistent.

Spusťte následující příkaz a nainstalujte jej:

$ sudo apt install iptables-persistent

Po každém pravidle, které přidáte nebo odstraníte v iptables, spusťte následující příkazy, aby tato pravidla po restartu trvala:

$ sudo netfilter-persistent save
$ sudo netfilter-persistent reload



Debian
  1. Použijte příkaz SED k vyhledání a nahrazení řetězce v souborech – Jak provést tento úkol na Ubuntu?

  2. Přidat a odebrat uživatele na Ubuntu 20.04 – Jak provést tento úkol?

  3. Seznam nainstalovaných balíčků v Ubuntu 20.04 – Jak provést tento úkol?

  1. Jak nainstalovat Debian 10 (Buster)

  2. Jak zablokovat nebo odblokovat požadavky ping na Ubuntu Server 20.04 LTS?

  3. Debian – Jak blokovat Non-free s předvolbami Apt?

  1. Jak změnit název hostitele v Debianu 10

  2. Jak provést instalaci chroot Debianu

  3. Jak nainstalovat R na Debian 9