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


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ář.

Jak používat messenger Signál


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

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.

19.03. 2024 10:36:16
  • Redakční systém MRS
  • 10 nečastějších zranitelností WEBU
  • Esperantoesperanto - univerzální mezinárodní jazyk
  • Kryptografie okolo nás - kniha popisuje využití kryptografie v běžném životě
  • 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í
  • Soudní rozhodnutí - nalezení rozsudků
  • ARES - registr ekonomických subjektů
  • Katastr nemovitostí
  • Broďan - brodské nezávislé zpravodajství

vydělávejte
na burze kryptoměn

23.03. 2024 15:47:51
Návštěvy
Celkem: 292007
Týden: 797
Dnes: 120
  přihlásit poslední změna: 17.09. 2016 17:30:48