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. V dřívějším příspěvku jsme vysvětlili, jak zablokovat nebo odblokovat požadavek ping na Ubuntu 20.04. Tento příspěvek bude o tom, jak zablokovat nebo odblokovat požadavky ping na Debian.
Předpoklady
- OS Debian
- Uživatel sudo
Poznámka: Zde vysvětlený postup byl testován na Debianu 10 (Buster) systém.
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 konkrétní počet paketů, použijte ping s -c volba. 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:
- Prostřednictvím parametrů jádra
- Prostřednictvím iptables
Vysvětlíme obě možnosti blokování požadavků ping na systému Debian.
Blokovat nebo odblokovat požadavky 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á povolit všechny požadavky 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:
- Prostřednictvím příkazu „sysctl“
- Prostřednictvím souboru „icmp_echo_ignore_all“
- 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. Následující výstup ukazuje, že ping je v našem systému aktuálně odblokován.
Blokovat 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 je ukázáno v následujícím výstupu.
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
Blokovat nebo odblokovat požadavky ping prostřednictvím souboru icmp_echo_ignore_all (dočasně)
Soubor /proc/sys/net/ipv4/ adresář 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 icmp_echo_ignore_all soubor ve tvaru „0“ až „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’
Blokovat nebo odblokovat požadavky ping prostřednictvím souboru „/etc/sysctl.conf“ (trvale)
Požadavky na ping lze také trvale zablokovat pomocí /etc/sysctl.conf soubor. Chcete-li trvale blokovat požadavky ping, nejprve upravte /etc/sysctl.conf soubor 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 /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 soubor a změňte hodnotu net.ipv4.icmp_echo_ignore_all zpět na 0:
net.ipv4.icmp_echo_ignore_all = 0
Blokovat 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 A volba se používá pro připojení pravidla v iptables a icmp-type 8 se používá pro ICMP echo requests. 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ží „Cílový port nedosažitelný “.
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 DROP možnost v pravidle iptables:
$ sudo iptables -D INPUT -p icmp --icmp-type 8 -j DROP
Ve výše uvedeném příkazu D možnost se používá pro smazání pravidla v iptables a icmp-type 8 se používá pro ICMP echo requests.
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 iptables-persistent balík. 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
Takto můžete zablokovat/odblokovat požadavky ping na váš systém Debian. V tomto příspěvku jste se naučili různé způsoby, jak dočasně nebo trvale blokovat/odblokovat požadavky na ping. Pokud víte o nějakých dalších způsobech blokování/odblokování pingu, které jsme vynechali, rádi bychom je věděli v komentářích níže!