GNU/Linux >> Znalost Linux >  >> Debian

Zvyšte své zabezpečení IPv4 pomocí Fail2Ban a Tinyhoneypot na Debian Jessie

Jedná se o pětiminutové cvičení pro zvýšení zabezpečení na počítači s adresou IPv4. Účelem nastavení popsaného v tomto návodu je na určitou dobu zablokovat skenery portů a škodlivé otvírače portů. Toto cvičení je pouze vyzkoušeno a aplikováno na Debian Jessie. Během cvičení je každý příkaz potvrzen jako root. Je na vás, jak získat root přístup.

Buď su -, sudo, přihlášení do konzole atd...

Pokyny pro líné začátečníky:Když zastupuji výzvu bash, stačí zkopírovat tučnou část textu do svého vlastního.

Složky

  • Software fail2ban je schopen dynamicky zpracovávat vaše pravidla brány firewall a blokovat padouchy.
  • Tinyhoneypot je schopen naslouchat na portu TCP/IP a zaznamenávat podrobnosti o otvírácích.
  • Služba xinetd spustí tinyhoneypot a spravuje jeho naslouchací porty.

Instalujte přísady: (Stačí CopyPaste tučnou část textu )

[email protected]:~# apt-get install tinyhoneypot fail2ban xinetd

Nastavení

Chcete-li, aby SSH naslouchalo na jiném portu, nahraďte konfigurační soubor ssh alternativním portem ssh:

[email protected]:~# sed -i.orig 's/Port 22/Port 2201/m' /etc/ssh/sshd_config

Vaše původní konfigurace /etc/ssh/sshd_config je uložena jako /etc/ssh/sshd_config.orig

Když restartujete svou službu SSH, bude nyní naslouchat na portu 2201 (ne na 22).

[email protected]:~# service ssh restart
[email protected]:~# netstat -lptn | grep ssh
tcp 0 0 0.0.0.0:2201 0.0.0.0:* LISTEN 4313/sshd
tcp6 0 0 :::2201 :::* LISTEN 4313/sshd

Zatím dobrý..

Nakonfigurujte Xinetd tak, aby spustil tinyhoneypot a poslouchal na portu 22 TCP:

[email protected]:~# cp -v /usr/share/doc/tinyhoneypot/examples/xinetd.d/thp-pasv /etc/xinetd.d/

Upravte svůj /etc/xinetd.d/thp-pasv takto:

[email protected]:~# cat /etc/xinetd.d/thp-pasv
# default: on
# description: thp-ftpd calls the generic thpsvcs with param "ftp",
#       resulting in an ftpd emulation.

service thp-pasv
{
        type                    = UNLISTED
        socket_type             = stream
        protocol                = tcp
        port                    = 22
        wait                    = no
        user                    = thpot
        server                  = /usr/sbin/thpot
        server_args             = nullresp
        nice                    = 10
        disable                 = no
        instances               = 1
        per_source              = 1

}

(RE)Spusťte xinetd se svými novými nastaveními a ujistěte se, že naslouchá na portu 22.

[email protected]:~# service xinetd restart
[email protected]:~# netstat -lptn | grep xinetd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 4567/xinetd

Ujistěte se, že to funguje

Otevřete ssh připojení z jiného počítače.

[email protected]:~$ ssh 192.168.88.212

Po chvíli by se nemělo nic stát, přerušte to pomocí [Ctrl + C]

A zkontrolujte položky protokolu na vašem testovacím počítači:

[email protected]:~# cat /var/log/thpot/captures
Feb 29 13:02:10 SID=56D4334221165.nullresp PID=4837 SRC=192.168.88.242 SPT=47187 ET=00:00:11 BYTES=39

V případě, že vše proběhlo v pořádku, měl by být záznam ve vašem záznamu zachycení.

Umožňuje vyladit váš Fail2Ban tak, aby spolupracoval s TinyHoneyPot

[email protected]:~# cd /etc/fail2ban/
[email protected]:/etc/fail2ban# cp -v jail.conf jail.local

Nikdy neupravujte svůj jail.conf!! Vytvořte jeho kopii jako jail.local a provádějte POUZE změny v souboru .local!

Najděte sekci [ssh] ve vašem jail.local a upravte ji v závislosti na [Port 2201] v /etc/ssh/sshd_config

[ssh]

enabled  = true
port     = 2201
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

Značka a vstup do sekce JAIL na jail.local:

Díky tomu bude Fail2Ban číst soubor protokolu tinyhoneypot a získat z něj adresu IPv4, která bude zamítnuta. Doporučuji jej umístit za sekci [ssh]. Je to asi 137. řádek.

[thp-ssh]

enabled  = true
port     = all
filter   = thpot
logpath  = /var/log/thpot/captures
banaction = iptables-allports
maxretry = 1
findtime = 1800
bantime = 99999

Fail2ban by měl mít filtr, aby věděl, co odmítnout. Tam je makro, které nahrazuje adresu IPv4. Vytvořte pro něj filtr:

[email protected]:~# cat /etc/fail2ban/filter.d/thpot.local
[Definition]

failregex = SRC=<HOST>
ignoreregex =

Bylo hotovo!

Jen krátké testování....

[email protected]:~# service fail2ban restart

Něco podobného byste měli vidět na konci /var/log/fail2ban.log

2016-02-29 13:54:06,915 fail2ban.jail   [6102]: INFO    Creating new jail 'thp-ssh'
2016-02-29 13:54:06,915 fail2ban.jail   [6102]: INFO    Jail 'thp-ssh' uses pyinotify
2016-02-29 13:54:06,920 fail2ban.jail   [6102]: INFO    Initiated 'pyinotify' backend
2016-02-29 13:54:06,922 fail2ban.filter [6102]: INFO    Added logfile = /var/log/thpot/captures
2016-02-29 13:54:06,923 fail2ban.filter [6102]: INFO    Set maxRetry = 1
2016-02-29 13:54:06,925 fail2ban.filter [6102]: INFO    Set findtime = 1800
2016-02-29 13:54:06,926 fail2ban.actions[6102]: INFO    Set banTime = 99999
2016-02-29 13:54:06,934 fail2ban.jail   [6102]: INFO    Jail 'ssh' started
2016-02-29 13:54:06,940 fail2ban.jail   [6102]: INFO    Jail 'thp-ssh' started

Své vlastní hodnoty můžete vidět na jail.local a v případě potřeby je doladit.

findtime = 1800
bantime = 99999

Podívejte se na svá aktuální pravidla iptables:

[email protected]:~# iptables-save
# Generated by iptables-save v1.4.21 on Mon Feb 29 14:05:17 2016
*filter
:INPUT ACCEPT [2:64]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-ssh - [0:0]
:fail2ban-thp-ssh - [0:0]
-A INPUT -p tcp -j fail2ban-thp-ssh
-A INPUT -p tcp -m multiport --dports 2201 -j fail2ban-ssh
-A fail2ban-ssh -j RETURN
-A fail2ban-thp-ssh -j RETURN
COMMIT
# Completed on Mon Feb 29 14:05:17 2016

Pojďme zkontrolovat pravidlo odmítnutí z jiného počítače:

[email protected]:~# ssh 192.168.88.212
^C
[email protected]:~# ssh 192.168.88.212
ssh: connect to host 192.168.88.212 port 22: Connection refused

První akce nic neudělá. Útočník to pravděpodobně po chvíli přeruší. Druhá akce bude odmítnuta.

Vaše pravidla iptables by nyní měla vypadat takto:

[email protected]:~# iptables-save
# Generated by iptables-save v1.4.21 on Mon Feb 29 14:10:53 2016
*filter
:INPUT ACCEPT [4:542]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:88]
:fail2ban-ssh - [0:0]
:fail2ban-thp-ssh - [0:0]
-A INPUT -p tcp -j fail2ban-thp-ssh
-A INPUT -p tcp -m multiport --dports 2201 -j fail2ban-ssh
-A fail2ban-ssh -j RETURN
-A fail2ban-thp-ssh -s 192.168.88.242/32 -j REJECT --reject-with icmp-port-unreachable
-A fail2ban-thp-ssh -j RETURN
COMMIT
# Completed on Mon Feb 29 14:10:53 2016

Výsledek je:PC útočníka je ODMÍTNUTO na každém portu.

Postscript

V době psaní tohoto návodu nebyl ani Fail2Ban, ani tinyhoneypot schopen zvládnout IPv6. Pokud si myslíte, že je tento návod užitečný, sdílejte ho! Dejte o tom vědět svým přátelům.


Debian
  1. Zrychlete Apache pomocí mod_pagespeed a Memcached na Debianu 8

  2. Nastavení replikace Master-Master s MySQL na Debian 8 (Jessie)

  3. Jak zlepšit zabezpečení Debian VPS pomocí DenyHosts a Logwatch

  1. Jak chránit váš server pomocí badIPs.com a hlásit IP adresy pomocí Fail2ban na Debianu

  2. Jak nainstalovat WebDAV s Lighttpd na Debian 8 (Jessie)

  3. Zabezpečení Linuxu:Chraňte své systémy pomocí fail2ban

  1. Nainstalujte a nakonfigurujte Fail2ban na Debian 10

  2. Instalace a konfigurace PSAD na Debian 8 (Jessie)

  3. Monitorování serveru pomocí Munin a Monit na Debianu 10