1. Nastavení tabulek přístupu
a) v /etc/hosts.deny
ALL: ALL # zakázat všechno všem
b) v /etc/hosts.allow povolit přístup přes SSH jen z urcitých adres
sshd: 68.82.82.152, 65.70.123.23
portmap: 68.82.82.152, 65.70.123.23
2. restriktivní FIREWALL iptables
Velmi důležitým nastavením je restriktivní FIREWALL iptables. Zakázat všechno a povolit jen to co je potřeba:
#!/bin/bash
fw="/sbin/iptables"
e0="eth0"
# vycisti pravidla, flush
$fw -F
$fw -X
$fw -t nat -F
$fw -t nat -X
$fw -t mangle -F
$fw -t mangle -X
# vsechno zakazat, OUTPUT povolit
$fw -P INPUT DROP
$fw -P FORWARD DROP
$fw -P OUTPUT ACCEPT
$fw -t nat -P PREROUTING ACCEPT
$fw -t nat -P POSTROUTING ACCEPT
$fw -t nat -P OUTPUT ACCEPT
$fw -t mangle -P PREROUTING ACCEPT
$fw -t mangle -P INPUT ACCEPT
$fw -t mangle -P FORWARD ACCEPT
$fw -t mangle -P OUTPUT ACCEPT
$fw -t mangle -P POSTROUTING ACCEPT
# povolit jen to co potrebuji
$fw -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$fw -A INPUT -i lo -j ACCEPT
# ICMP z IP adres
# Zdenek nova IP
$fw -A INPUT -p ICMP -s 78.65.65.135 -i $e0 --icmp-type 0 -j ACCEPT
$fw -A INPUT -p ICMP -s 78.65.65.135 -i $e0 --icmp-type 3 -j ACCEPT
$fw -A INPUT -p ICMP -s 78.65.65.135 -i $e0 --icmp-type 8 -j ACCEPT
$fw -A INPUT -p ICMP -s 78.65.65.135 -i $e0 --icmp-type 11 -j ACCEPT
# Petr
$fw -A INPUT -p ICMP -s 84.70.127.20 -i $e0 --icmp-type 0 -j ACCEPT
$fw -A INPUT -p ICMP -s 84.70.127.20 -i $e0 --icmp-type 3 -j ACCEPT
$fw -A INPUT -p ICMP -s 84.70.127.20 -i $e0 --icmp-type 8 -j ACCEPT
$fw -A INPUT -p ICMP -s 84.70.127.20 -i $e0 --icmp-type 11 -j ACCEPT
# Superhosting - monitorovani serveru
$fw -A INPUT -p ICMP -s 68.86.104.135 -i $e0 --icmp-type 0 -j ACCEPT
$fw -A INPUT -p ICMP -s 68.86.104.135 -i $e0 --icmp-type 3 -j ACCEPT
$fw -A INPUT -p ICMP -s 68.86.104.135 -i $e0 --icmp-type 8 -j ACCEPT
$fw -A INPUT -p ICMP -s 68.86.104.135 -i $e0 --icmp-type 11 -j ACCEPT
$fw -A INPUT -p ICMP -s 68.86.104.40 -i $e0 --icmp-type 0 -j ACCEPT
$fw -A INPUT -p ICMP -s 68.86.104.40 -i $e0 --icmp-type 3 -j ACCEPT
$fw -A INPUT -p ICMP -s 68.86.104.40 -i $e0 --icmp-type 8 -j ACCEPT
$fw -A INPUT -p ICMP -s 68.86.104.40 -i $e0 --icmp-type 11 -j ACCEPT
# SSH pro SSH vzd. pristup, lokalni sit priv. adresy 192.168.7.0/24 na portu 22
$fw -A INPUT -p tcp -s 78.65.65.135 --dport ssh -j ACCEPT
$fw -A INPUT -p udp -s 78.65.65.135 --dport ssh -j ACCEPT
$fw -A INPUT -p tcp -s 84.70.127.20 --dport ssh -j ACCEPT
$fw -A INPUT -p udp -s 84.70.127.20 --dport ssh -j ACCEPT
# AUTH, tedy IDENT na portu 113
$fw -A INPUT -p tcp --dport 113 -j REJECT
$fw -A INPUT -p udp --dport 113 -j REJECT
# WEB SERVER
# $fw -A INPUT -p tcp --dport www -j ACCEPT
$fw -A INPUT -p tcp --dport https -j ACCEPT
# ulozeni pravidel
/sbin/iptables-save > /etc/iptables/fw_pravidla
# vypis pravidel
$fw -L
Aby bylo nastavení firewallu zachováno i po restartu, tak je třeba do
/etc/network/if-pre-up.d přidat soubor např. firewall, chmodnout na chmod 755 firewall a doplnit do něj tento obsah:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables/fw_pravidla
Aby to nebylo tak jednoduché, tak je dobré ještě filtrovat IPV6.
#!/bin/bash
fw="/sbin/ip6tables"
e0="eth0"
# vycisti pravidla, flush
$fw -F
$fw -X
$fw -t mangle -F
$fw -t mangle -X
# vsechno zakazat, OUTPUT povolit
$fw -P INPUT DROP
$fw -P FORWARD DROP
$fw -P OUTPUT ACCEPT
$fw -t mangle -P PREROUTING ACCEPT
$fw -t mangle -P INPUT ACCEPT
$fw -t mangle -P FORWARD ACCEPT
$fw -t mangle -P OUTPUT ACCEPT
$fw -t mangle -P POSTROUTING ACCEPT
# povolit jen to co potrebuji
$fw -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$fw -A INPUT -i lo -j ACCEPT
# ICMP z IP adres
# SSH pro SSH vzd. pristup, lokalni sit priv. adresy 192.168.7.0/24 na portu 22
#$fw -A INPUT -p tcp -s 78.65.65.135 --dport ssh -j ACCEPT
#$fw -A INPUT -p udp -s 78.65.65.135 --dport ssh -j ACCEPT
#$fw -A INPUT -p tcp -s 84.70.127.20 --dport ssh -j ACCEPT
#$fw -A INPUT -p udp -s 84.70.127.20 --dport ssh -j ACCEPT
# AUTH, tedy IDENT na portu 113
$fw -A INPUT -p tcp --dport 113 -j REJECT
$fw -A INPUT -p udp --dport 113 -j REJECT
# WEB SERVER
$fw -A INPUT -p tcp --dport www -j ACCEPT
$fw -A INPUT -p tcp --dport https -j ACCEPT
# ulozeni pravidel
/sbin/ip6tables-save > /etc/iptables/fw6_pravidla
# vypis pravidel
$fw -L
A do /etc/network/if-pre-up.d zadat další soubor firewall6:
#!/bin/sh
/sbin/ip6tables-restore < /etc/iptables/fw6_pravidla
3. Zakázání SSH přihlášení správce ROOT
To je celkem dost důležité, protože již asi po 2 hodinách od zprovoznění serveru začíná hádání hesel přes SSH automatickými roboty. A účet ROOT existuje vždy, takže stačí uhodnout heslo a systém je útočníka.
Provede se to v /etc/ssh/sshd_config nastavením PermitRootLogin no
4. Zakázání SUDO
Před touto editací je nutno zkontrolovat, zda se root může přihlašovat, popřípadě to nejdříve nastavit a vyzkoušet (např. distribuce UBUNTU to má defaultně zakázané).
Je nutno změnit jeden řádek v /etc/sudoers příkazem visudo. Je potřeba zakomentovat řádek:
#%admin ALL=(ALL) ALL
5. Zabezpečení APACHE2:
a) /etc/apache2/conf.d/security:
b) /etc/apache2/sites-enabled/000-default -> ../sites-available/default
<Directory /var/www/>
AllowOverride None
Options -Indexes +FollowSymLinks -MultiViews -ExecCGI -Includes
Order allow,deny
allow from all
</Directory>
c) PHP nastavení v /etc/php5/apache2/php.ini
Debian nabízí php.ini
určený pro produkční použití v /usr/share/doc/php5/examples/php.ini-recommended.
d) MySQL v /etc/mysql/my.cnf
e) doplnění FQDN
Pro odstranění chybové hlášky při spuštění webserveru příkazem service apache2 start (nebo restart) „apache2: Could not reliably determine the server's fully qualified domain name“ značící, že nebylo nalezeno plně kvalifikované doménové jméno FQDN (Fully Qualified Domain Name).
Máme tři možnosti k odstranění této hlášky:
Vyzkoušet syntaxi příkazem apache2ctl configtest mělo by se zobrazit Syntax OK.
6. vzdálený přístup přes SSH
ssh -l ucet 194.212.60.66
ucet@79.60.30.64's password:
Pak spustit na serveru konzolový multiplexer TMUX a už se to dá pohodlně spravovat.
Pokud potřebujeme spouštět vzdáleně nejakou grafickou aplikaci, tak musí být na serveru spuštěné grafické prostředí a ze vzdálené konzole se příhlašujeme takto:
ssh -X -l ucet 79.60.60.65
ucet@79.60.60.65's password:
Pak lze spouštět na serveru jednotlivé grafické aplikace (pozor, to není vzálená pracovní plocha), např. na DEBIANU se spustí emailový klient THUNDRBIRD takto:
icedove
icedove - poštovní klient
Ovšem je pravidlem, že kvůli výkonu, bezpečnosti a úspoře paměti grafické prostředí na server nepatří.
Chyby (11.1.2016) označené jako CVE-2016–0777 a CVE-2016–0778 v openssl, ochrana proti ukradení privátních klíčů je poměrně snadná – stačí vypnout funkci roaming. Do souboru /etc/ssh/ssh_config stačí připsat volbu:
UseRoaming no
7. Zabránit POODLE útoku na SSLv3
Jako nejlepší obrana proti POODLE je vypnutí podpory SSL3 na webserveru APACHE2.
v /etc/apache2/mods-available/ssl.conf upravit:
# Zapnout pouze bezpečné protokoly: TLS, ale ne SSLv2, SSLv3
SSLProtocol all -SSLv2 -SSLv3
8. Záplaty - aktualizace
Mít systém aktualizovaný patří k základním bezpečnostním prvkům. Použít lze třeba aptitude.
Testy bezpečnosti bank, serverů, prohlížečů
Komentáře
Kdokoliv může přidávat komentáře ke článkům bez registrace. Zadá si libovolnou přezdívku a napíše komentář.
SSL pro weby od 11/2015 zdarma
MS WINDOWS 10, 11 - sběr informací o uživateli
DEBIAN 12 (bookworm) - OS zdarma debian vyšel 10.6.2023
debian - stáhnout nejnovější DEBIAN pro PC
debian edu - debian pro školy a školní prostředí, stažení DEBedu (torrent)
Zranitelnost „ROM-0“ routerů
Předali data tajným službám
Americké bezpečnostní agentuře (NSA) předali data Microsoft, Yahoo, Google, Facebook...
Itálie preferuje open source
Italský parlament schválil zákon, který nařizuje státním institucím pořizovat otevřený software před komerčním. To znamená LINUX místo MS-WINDOWS, LIBRE OFFICE místo MS OFFICE atd.