GNU/Linux >> Znalost Linux >  >> Linux

Jak zlepšit zabezpečení SSH na Ubuntu 18.04

Služba SSH je hlavním přístupovým bodem k vašemu cloudovému serveru a zároveň jednou ze služeb nejvíce vystavených útokům. Tato příručka vám pomůže zlepšit zabezpečení služby díky různým trikům a technikám.

Změna naslouchacího portu

Výchozí port pro naslouchání připojení SSH je 22:změna tohoto nastavení umožní cloudovou službu a zvýší bezpečnost připojení.

Abyste se vyhnuli interferenci s jinými existujícími službami na počítači, je dobrou praxí zkontrolovat, které porty jsou aktuálně používány, pomocí příkazu netstat:

$ netstat -n -l
    
Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address State
tcp        0 0 127.0.0.1:3306          0.0.0.0:* LISTEN
tcp        0 0 127.0.0.53:53           0.0.0.0:* LISTEN
tcp        0 0 0.0.0.0:22              0.0.0.0:* LISTEN
tcp6       0 0 :::80                   :::* LISTEN
tcp6       0 0 :::22                   :::* LISTEN
udp        0 0 127.0.0.53:53           0.0.0.0:*

Prostřednictvím parametru -l předaného do netstat vynutí tisk všech připojení, která jsou ve stavu LISTEN. V tomto příkladu jsou použity následující porty:

  • služba MySQL 3306

  • 22 SSH

  • 80 Apache2 / HTTP

  • 53 DNS

Chcete-li změnit porty, jednoduše upravte konfigurační soubor v /etc/ssh/sshd_config, odkomentujte direktivu Port:

#Port 22

Potom nastavte novou hodnotu, možná vysokou, abyste zabránili jejímu zachycení jakýmkoli softwarem pro automatické skenování portů (například 2200, 5574, 1022):

Port 5574

Chcete-li použít změnu, nahrajte službu prostřednictvím:

$ sudo service sshd reload

. Udržujte připojení naživu pomocí opětovného načtení takovým způsobem, abyste opravili jakoukoli chybu a zkontrolovali jakýkoli nový přístup s jiným klientem SSH

Jakmile se změna použije, připojte se k serveru a zadejte nový port. Pokud například používáte klienta SSH z příkazového řádku:

$ ssh [email protected]<SERVER.IP> -p 5574

Použití klíčů pro ověření

Široce používaný pro své zabezpečení je přístup pomocí RSA klíčů alternativou k přihlašování pomocí hesla. Při tomto typu ověřování klient generuje soukromý klíč a související veřejný klíč, který je nainstalován na počítači serveru, aby bylo možné klienta jednoznačně ověřit. .

Pro instalaci veřejného klíče by klient měl nejprve vygenerovat pár klíčů pomocí příkazu ssh-keygen:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file where to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

Před pokračováním v generování se ssh-keygen zeptá na volitelnou přístupovou frázi, kterou lze použít k ověření. V tomto příkladu byl pro usnadnění přístupu následující soubor ponechán prázdný.

Po dokončení software uloží dva soubory do určeného :

  • id_rsa:soukromý klíč klienta, který nelze s nikým sdílet.

  • id_rsa.pub:veřejný klíč ke sdílení .

Chcete-li připravit prostředí serveru, vytvořte soubor s názvem author_keys ve složce .ssh v uživatelské složce, kterou budete používat pro přihlášení:

$ sudo mkdir ~/.ssh
$ sudo touch ~/.ssh/authorized_keys
$ sudo chmod 600 ~/.ssh/authorized_keys

Ujistěte se, že soubor má oprávnění jako výše .

Potom pokračujte vložením veřejného klíče dříve připraveného klientským počítačem:

$ sudo nano ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoTzd9RnqT0yioQG1klsLEK/VG9myo7CQ47aRXu7hnPit6Lgw5kAjC7vzNWYLTy2oIlsrVI7R/tvWmVNISGkWDp9U3fONbSLp+vgBKDzRUVAIqP/AIJ2THanyZxj2b8XU/4s2uzGoTLSR3ViX0JU6zTc+IkaBp1o3W3OolvO15E10/VYJCKN3TkxPsSSGE3QReXnCcnIZYAnrPf9f1DPP1Lo+VUCIzZ7IzcZajAWQ53hC71mTYNHkUgIlWxpRyEhnsRfmqEfUSFbTwpNEarv7vGlK686C4xVxlVfKbqlNa3/g2Vrae4ArVBM958JPZ6aa+7KDZfH5TDgPPtlFCIGkd [email protected]

Uložte soubor a znovu načtěte službu SSH:

$ sudo service sshd reload

V tomto okamžiku by měl být možný přístup k serveru bez vyžadování jakéhokoli hesla:

$ ssh [email protected]<SERVER.IP>

Pokud vše funguje správně, zakažte přístup pomocí hesla ze serveru úpravou souboru / etc / ssh / sshd_config s následujícími parametry:

ChallengeResponseAuthentication no
    PasswordAuthentication no

Nezapomeňte, že můžete přidat další veřejné klíče tak, že je jednoduše uložíte na konec souboru ~ / .ssh / author_keys souboru v počítači serveru.

Omezení doby dostupnosti služby

Strategií pro omezení nežádoucího přístupu a útoků hrubou silou je zkrátit dobu dostupnosti služby SSH. Pokud jste si jisti, že se v určitou dobu (například od 23:00 do 08:00 následujícího dne) k serveru nepotřebujete připojovat, nastavte automatický plán blokování portu připojení.

K tomu použijte výchozí firewall s názvem iptables, ale než budete pokračovat v konfiguraci, nezapomeňte, že iptables ze své podstaty neukládá zadanou konfiguraci.

Pro rychlejší uložení a načtení konfigurace použijte balíček iptables-persistent, který znovu načte konfiguraci uloženou při startu systému.

Pak pokračujte v instalaci balíčku:

$ sudo apt-get install iptables-persistent

Po dokončení instalace zadejte „řetězec“ pro zablokování služby SSH:

$ sudo iptables -N chain-ssh
$ sudo iptables -A INPUT -p tcp --dport 22 -j chain-ssh

Tímto způsobem projdou všechna připojení určená pro port 22 (pokud vaše služba SSH používá jiný port, změňte tuto hodnotu) nově vytvořeným řetězcem „chain-ssh“.

Uložte aktuální konfiguraci (kterou načte iptables-persistent) pomocí příkazu:

$ sudo iptables-save > /etc/iptables/rules.v4

Potom vytvořte časový plán pro zadání a odstranění pravidla v řetězci úpravou crontab následovně:

$ sudo crontab -e
    
# m h  dom mon dow   command
0 23   * * *   iptables -A chain-ssh -j DROP
0 8    * * *   iptables -F chain-ssh

Jak vidíte, s první operací je přidáno pravidlo DROP spojení ve 23:00, zatímco druhá operace vyprázdní řetězec v 08:00, aby se služba obnovila.

Uložte soubor pro použití změn.


Linux
  1. Jak vygenerovat pár klíčů SSH (s příklady)

  2. Jak nastavit klíče SSH

  3. Jak nastavit klíče SSH na Ubuntu 16.04

  1. Jak povolit SSH na Ubuntu 18.04

  2. Jak nastavit SSH přihlášení bez hesla

  3. Jak nastavit klíče SSH na Ubuntu 18.04

  1. Jak nastavit přihlášení k SSH bez hesla

  2. Jak vygenerovat klíč SSH ve Windows 10

  3. Jak nastavit klíče SSH na Ubuntu 18.04