Rozdíly

Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.

Odkaz na výstup diff

debian:ssh_autoban [11.07.2015 17:14]
pitriss vytvořeno
debian:ssh_autoban [20.09.2015 11:15] (aktuální)
ritchie doplněny popisy skriptů
Řádek 3: Řádek 3:
 Tento soubor scriptů slouží k blokování spamu na ssh portu. Tento soubor scriptů slouží k blokování spamu na ssh portu.
  
 +
 +===== Cron řádky =====
 +''/etc/crontab''\\ 
 +Skripty se spouštějí každých 5 minut.
 +
 +<file cron crontab>
 +*/5 *   * * *   root    /usr/local/bin/vycuc.sh &> /dev/null
 +*/5 *   * * *   root    /usr/local/bin/banovator.sh &> /dev/null
 +</file>
 +
 +===== Soubory =====
 +
 +
 +==== rc.local ====
 +
 +''/etc/rc.local''\\ 
 +Tento soubor obsahuje iptables pravidla, která sledují komunikaci na portu 22 a po 3 neúspěšných pokusech zablokují zdrojovou IP adresu na 5 minut a zapíšou tuto IP adresu do logu s prefixem ''BLOCKED-SSH:''.
 +
 +<file bash rc.local>
 +##########################################
 +#  Blokování SSH po 3 hitech na 5 minut  #
 +##########################################
 +
 +dev_inet="eth0"
 +
 +# Výjimky které neblokovat
 +iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -s 12.34.56.75 -j ACCEPT # AP
 +
 +# Hlavní blokátor
 +iptables -N SshLogBlock
 +iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -m state --state NEW -m recent --update --seconds 300 --hitcount 3 -j SshLogBlock
 +iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -m state --state NEW -m recent --set
 +iptables -A INPUT -p tcp --destination-port 22 -i $dev_inet -j ACCEPT
 +iptables -A SshLogBlock -j LOG --log-prefix "BLOCKED-SSH: " --log-ip-options
 +iptables -A SshLogBlock -j DROP
 +
 +### END blokování SSH ###
 +</file>
 +
 +==== Banovátor ====
 +
 +''/usr/local/bin/banovator.sh''\\ 
 +Tento soubor nastavuje iptables pravidla tak, aby byly permanentně zablokovány IP adresy z blacklistu v souboru ''/etc/banned-ip''. V tomto seznamu mohou být komentáře volně za IP adresou, skript si s tím poradí.
 +
 +<file bash banovator.sh>
 +#!/bin/bash
 +iptables -D INPUT -j bany 2> /dev/null
 +iptables -F bany
 +iptables -X bany 2> /dev/null
 +iptables -N bany
 +iptables -I INPUT 1 -j bany
 +
 +cat /etc/banned-ip | while read ipka comment; do
 + iptables -A bany -s $ipka -j DROP
 +done
 +</file>
 +
 +==== Nastavení rsyslogu ====
 +
 +''/etc/rsyslog.d/blocked-ssh.conf''\\ 
 +Toto slouží k přesměrování záznamů v logu s prefixem ''BLOCKED-SSH'' do zvláštního souboru, ze kterého potom čerpá PHP stránka z [[debian:ssh_autoban#php_scripty_zobrazujici_pocet_zablokovanych|PHP skriptů]].
 +
 +<file bash blocked-ssh.conf>
 +:msg, contains, "BLOCKED-SSH" -/var/log/blocked-ssh.log
 +& ~
 +</file>
 +
 +<wrap important>Pozor:</wrap> rsyslog v debianu má pravděpodobně výchozí práva u vytvořených souborů <wrap caution>640</wrap>, což znemožňuje čtení logu uživatelem www-data. Proto je nutné upravit direktivu
 +  $FileCreateMode 0640
 +v souboru ''/etc/rsyslog.conf'' na 
 +  $FileCreateMode 0644
 +nebo tuto direktivu přidat na začátek souboru ''/etc/rsyslog.d/blocked-ssh.conf''.
 +==== vycuc.sh ====
 +
 +''/usr/local/bin/vycuc.sh''\\ 
 +Tento skript vypisuje pouze informace týkající se SSH přihlašování z ''/var/log/auth.log'' do ''/tmp/short-auth.log'', slouží to jako podklad pro porovnání s výstupem v logu ''/var/log/blocked-ssh.log'' a je zobrazen na stránce top.php v [[debian:ssh_autoban#php_scripty_zobrazujici_pocet_zablokovanych|PHP skriptech]].
 +
 +<file bash vycuc.sh>
 +#!/bin/bash
 +grep -v pam_unix /var/log/auth.log | grep -v sudo | grep -E [[:digit:]]\.[[:digit:]]\.[[:digit:]]\.[[:digit:]] > /tmp/short-auth.log
 +grep -v pam_unix /var/log/auth.log.1 | grep -v sudo | grep -E [[:digit:]]\.[[:digit:]]\.[[:digit:]]\.[[:digit:]] > /tmp/short-auth-old.log
 +chmod 644 /tmp/short-auth*
 +</file>
 +==== PHP scripty zobrazující počet zablokovaných ====
 +
 +Rozbalit do ''/var/www/'' a poté to je dostupné na adrese ''http://server_address/spameri''. Je k tomu potřeba webserver s nakonfigurovaným php interpreterem, nainstalovaným ''php5'' a ''php5-geoip'' včetně ''geoip-database'' pro výpis země původu spamera.
 +
 +{{:debian:spameri.tar.gz|spameri.tar.gz}}
  
Navigace

Obecné

Vývoj

Naše minetest games

Jiné minetest games

Minecraft

Wurm Unlimited

Ostatní

O této wiki

Tisk/export