Bezpečnost webserverů

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:

  1. buď editací hlavního konfiguračního souboru APACHE2 /etc/apache2/apache2.conf:
    Na konec stačí přidat ServerName mojedomena.cz
  2. nebo přidat do /etc/hosts řádek:
    127.0.1.1 mojedomena.cz
  3. echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn

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čů

SSL pro weby od 11/2015 zdarma


MS WINDOWS 10 - sběr informací o uživateli


DEBIAN 9 Stretch - OS zdarma debian vyšel 17.6.2017

debian 9

debian 9 - stáhnout pro PC


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.

01.07. 2017 19:50:10
  • Redakční systém MRS
  • 10 nečastějších zranitelností WEBU
  • Esperantoesperanto - univerzální mezinárodní jazyk
  • SMS zdarma - posílání SMS zdarma
  • proč LINUX
  • základy LINUXU
  • Software na úřadech - jeho otevřené alternativy
  • Řekněte sbohem Microsoftu
  • Rychlost připojení - změřte si svoji rychlost
  • SEO servis
  • Jak psát web
  • Zákony - občanský, autorský, obchodní zákoník atd.
  • Infosoud - nalezení stání a průběhu jednání
  • ARES - registr ekonomických subjektů
  • Katastr nemovitostí
  • Broďan - brodské nezávislé zpravodajství
01.09. 2016 10:53:48
Návštěvy
Celkem: 155606
Týden: 558
Dnes: 52
Květná 1843, Uherský Brod  přihlásit poslední změna: 17.09. 2016 17:30:48