GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat a nakonfigurovat Denyhost v Centos 7 Linux

DenyHosts je open source software vyvinutý v jazyce Python Philem Schwartzem. Je určen především ke sledování a analýze protokolů SSH serveru na neplatné pokusy o přihlášení, útoky založené na slovníku a útoky hrubou silou tím, že zablokuje původní IP adresy tím, že je přidá do souboru /etc/hosts.deny na serveru, a tím zabrání IP adresu z dalších pokusů o přihlášení.

Díky své jednoduchosti a možnosti ručně konfigurovat pravidla je široce používán jako alternativa k Fail2ban, jehož použití a konfigurace je o něco složitější.

V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat DenyHosts na vašem serveru CentOS 7.

Přečtěte si také:Jak používat Fail2ban/Client na CentOS 7

Předpoklady

Než přistoupíme k instalaci, musíme se ujistit, že náš systém splňuje všechny softwarové požadavky pro kompilaci a instalaci aplikace. A také by měl být nakonfigurován se statickou IP adresou. Software DenyHosts závisí na "ipaddr" Modul Python. V prvním kroku aktualizujte svá systémová úložiště a softwarové balíčky včetně modulu python vydáním níže uvedených příkazů.

#yum update
#yum install python-ipaddr -y

1. Instalace DenyHosts z úložiště Epel

Tento balíček musíme nainstalovat pomocí úložiště Epel, k instalaci použijte následující příkaz.

#yum install epel-release
#yum install denyhosts -y

Konfigurace Denyhosts

Po instalaci Denyhosts musíte přidat svou IP do seznamu povolených IP, abyste se ujistili, že vaše vlastní IP adresa je na seznamu povolených, takže nikdy nebudete uzamčeni.

# cat /etc/hosts.allow
#
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 37.217.142.41
sshd: 37.217.142.42
sshd: 37.217.142.43
sshd: 37.217.142.44

Dále musíte zablokovat všechny požadované IP adresy, které chcete blokovat. Můžeme potvrdit, že naše IP adresa také není na černé listině.

# cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 78.189.206.37
sshd: 121.14.27.58
sshd: 1.246.228.161
sshd: 103.89.89.47
sshd: 116.29.148.2
# DenyHosts: Tue Jan 9 10:16:15 2018 | sshd: 222.186.174.81
sshd: 222.186.174.81
# DenyHosts: Tue Jan 9 10:40:46 2018 | sshd: 217.61.20.181
sshd: 217.61.20.181
# DenyHosts: Tue Jan 9 13:15:53 2018 | sshd: 112.86.117.182
sshd: 112.86.117.182

Povolení služby DenyHosts

Jakmile ji nakonfigurujeme podle potřeby, můžeme povolit a spustit naši službu DenyHosts pomocí příkazů níže:

# systemctl enable denyhosts
# systemctl start denyhosts

# systemctl status denyhosts
● denyhosts.service - SYSV: Activates/Deactivates the
Loaded: loaded (/etc/rc.d/init.d/denyhosts; bad; vendor preset: disabled)
Active: active (running) since Wed 2018-01-10 06:47:54 UTC; 3h 57min ago
Docs: man:systemd-sysv-generator(8)
Process: 30660 ExecStart=/etc/rc.d/init.d/denyhosts start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/denyhosts.service
└─30665 python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf

Jan 10 06:47:54 li226-12.members.linode.com systemd[1]: Starting SYSV: Activates/Deactivates the...
Jan 10 06:47:54 li226-12.members.linode.com denyhosts[30660]: starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf
Jan 10 06:47:54 li226-12.members.linode.com systemd[1]: Started SYSV: Activates/Deactivates the.

Konfigurace e-mailových upozornění v DenyHosts

Můžeme nastavit e-mailová upozornění na podezřelá přihlášení a omezené hostitele provedením změn v konfiguračním souboru DenyHosts. Svou e-mailovou adresu můžete přidat do proměnné ADMIN_EMAIL v konfiguračním souboru /etc/denyhosts.conf přijímat e-mailová upozornění na podezřelá přihlášení. Do proměnné můžete přidat libovolný počet e-mailových adres, stačí je oddělit čárkami. Zde jsem přidal svou e-mailovou adresu [email protected], abych mě upozornil na jakékoli útoky.

Po provedení jakýchkoli změn v konfiguračních souborech musíte restartovat službu DenyHosts.

Odstranění zakázaných IP adres

Můžete sledovat protokoly ssh denyhosts, abyste viděli, kolik útočníků a hackerů se pokouší získat přístup k vašemu serveru. K zobrazení protokolů v reálném čase můžete použít následující příkaz.

# tail -f /var/log/secure
Jan 10 10:56:43 li226-12 sshd[2096]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:57:08 li226-12 sshd[2102]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:57:43 li226-12 sshd[2113]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:59:17 li226-12 sshd[2133]: refused connect from 222.186.43.6 (222.186.43.6)

Je evidentní, že se náš server pokouší odmítnout připojení z IP 222.186.43.6 z těchto logů. Podívejme se na kroky k odstranění této IP z černé listiny.

Musíme zkontrolovat tuto položku IP v souboru /etc/hosts.deny a všechny ty vlastní soubory pro odmítnutí vytvořené pomocí denyhosts. Záznam IP můžeme odstranit ze všech, jak je uvedeno níže:

# nano /etc/hosts.deny
# nano /var/lib/denyhosts/hosts
# nano /var/lib/denyhosts/hosts-restricted
# nano /var/lib/denyhosts/hosts-root
# nano /var/lib/denyhosts/hosts-valid
# nano /var/lib/denyhosts/users-hosts

Všiml jsem si této položky v mém souboru hosts.deny.

# DenyHosts: Wed Jan 10 03:40:07 2018 | sshd: 222.186.43.6
sshd: 222.186.43.6

Odstranil jsem tento záznam a restartoval službu denyhosts, abych potvrdil její fungování!

2. Instalace z Github Repo a Source Distribution

Můžeme si stáhnout úložiště Github nebo stáhnout nejnovější zdrojovou distribuci DenyHosts a zkompilovat ji z těchto zdrojových balíčků. Podívejme se, jak nainstaluji denyhosts z Github Repo.

#yum install git
# git clone https://github.com/denyhosts/denyhosts
Cloning into 'denyhosts'...
remote: Counting objects: 1353, done.
remote: Total 1353 (delta 0), reused 0 (delta 0), pack-reused 1353
Receiving objects: 100% (1353/1353), 263.93 KiB | 0 bytes/s, done.
Resolving deltas: 100% (899/899), done.

Po stažení souborů z Github jej musíme nainstalovat. Můžete jej nainstalovat zadáním tohoto příkazu ze složky denyhosts, jak je uvedeno níže:

#cd denyhosts
#python setup.py install

Tím se nainstalují moduly DenyHosts do adresáře site-packages pythonu.

Podobně ze zdrojové distribuce si můžete stáhnout nejnovější Denyhosts a nainstalovat je, jak je vysvětleno výše. Zbývající kroky konfigurace jsou v obou těchto případech stejné.

Konfigurace Denyhosts

Po instalaci můžete zkopírovat ukázkový konfigurační soubor denyhosts.conf vytvořený v instalační složce, která obsahuje většinu možných nastavení pro /etc folder . Konfigurační soubor obsahuje různá nastavení spolu s jejich popisem, které by vám měly pomoci rychle nakonfigurovat DenyHosts. Po úpravě konfiguračního souboru jej uložte.

# cp -rp denyhosts.conf /etc/

Dále musíme zkopírovat ukázku daemon-control.dist skript jako takový do daemon-control a upravte doporučenou část podle umístění vašeho konfiguračního souboru.

#cp daemon-control-dist daemon-control
#chmod 700 daemon-control

Nyní můžeme upravit soubor daemon-control. Tuto sekci byste měli upravit pouze v horní části, jak je uvedeno níže. Tuto sekci jsem upravil jako své konfigurační cesty.

##############################################

###############################################
#### Upravte je, aby vyhovovaly vaší konfiguraci ####
##############################################

DENYHOSTS_BIN ="/usr/bin/denyhosts.py"
DENYHOSTS_LOCK ="/var/run/denyhosts.pid"
DENYHOSTS_CFG ="/etc/denyhosts.conf"

PYTHON_BIN ="/usr/bin/env python"

########################################

Tyto výchozí hodnoty by měly být rozumné pro mnoho systémů. Doporučuji vám však upravit tato nastavení tak, aby odpovídala vašemu konkrétnímu systému. Jakmile upravíte konfiguraci a soubory ovládání démona, ujistěte se, že jste omezili provádění skriptu ovládání démona na root.

Ruční spuštění DenyHosts

Poté, co nastavíte Denyhosts tak, aby se spouštěl jako démon pomocí našeho skriptu pro ovládání démona, můžete jej odtud spustit ručně pouhým spuštěním tohoto příkazu z instalační složky.

# ./daemon-control start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf

Můžete se podívat na protokol démona (/var/log/denyhosts) abyste zajistili, že DenyHosts běží úspěšně. Veškeré problémy a dotazy týkající se tohoto softwaru naleznete na tomto odkazu FAQ.

Kromě toho můžete DenyHosts spustit ručně, a to tak, že jej spustíte z příkazového řádku pomocí Pythonu, stejně jako tento, přičemž zmíníte běžné parametry, jako je umístění binárního souboru a konfigurační soubor.

# python /usr/bin/denyhosts.py --config /etc/denyhosts.conf --daemon
# ps aux | grep denyhosts
root 25650 0.0 1.0 216116 10740 ? S 09:44 0:00 python /usr/bin/denyhosts.py --config /etc/denyhosts.conf --daemon
root 25656 0.0 0.2 112668 2200 pts/0 S+ 09:44 0:00 grep --color=auto denyhosts

Výše uvedený příkaz spustí DenyHosts a spustí jej na pozadí.

Automatické spouštění Denyhosts

Můžeme nastavit cronjobs tak, aby se Denyhosts spouštěly automaticky při spuštění. Nebo můžeme vytvořit symbolický odkaz z /etc/init.d jak je uvedeno níže:

# cd /etc/init.d
# ln -s /root/denyhosts/daemon-control denyhosts
# ll | grep denyhosts
lrwxrwxrwx 1 root root 30 Jan 10 04:48 denyhosts -> /root/denyhosts/daemon-control

Nyní můžeme tuto službu spravovat z normálního systemctl příkaz.

# systemctl enable denyhosts
denyhosts.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig denyhosts on

# systemctl start denyhosts
# systemctl status denyhosts
● denyhosts.service - SYSV: Activates/Deactivates the
Loaded: loaded (/etc/rc.d/init.d/denyhosts; bad; vendor preset: disabled)
Active: active (exited) since Thu 2018-01-11 09:57:53 UTC; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 25876 ExecStart=/etc/rc.d/init.d/denyhosts start (code=exited, status=0/SUCCESS)

Koneckonců

V tomto článku jsem diskutoval o tom, jak nainstalovat a nakonfigurovat DenyHosts na našem serveru CentOS 7. Tento nástroj lze snadno nakonfigurovat a také podporuje upozornění e-mailem, SMTP a syslog. Tato aplikace je vynikajícím řešením pro obranu útoků na server SSH, jako jsou útoky založené na slovníku a útoky hrubou silou. Doufám, že tento článek je pro vás užitečný. Uveřejněte prosím své cenné komentáře a návrhy.


Cent OS
  1. Jak nainstalovat a nakonfigurovat docker v Rocky Linux/Centos 8

  2. Jak nainstalovat a nakonfigurovat Ansible na Rocky Linux/CentOS 8

  3. Jak nainstalovat a nakonfigurovat Mono na Rocky Linux 8 a CentOS 8

  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak nainstalovat a nakonfigurovat R na RHEL 8 / CentOS 8 Linux System

  3. Jak nainstalovat a nakonfigurovat Redis na CentOS 7

  1. Jak nainstalovat a nakonfigurovat GitLab na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Redmine na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Redis na CentOS 8