Bezpieczna konfiguracja serwera linuksowego

Podobne dokumenty
Bezpieczeństwo systemów informatycznych

Programowanie sieciowe

Instalacja postgresa wersja step by step. 1. Dla nowego systemu, na którym nie było wcześniej instalowanych postgresów

Niezbędne narzędzia. Przed rozpoczęciem pracy z PHP należy zainstalować odpowiednie narzędzia: środowisko PHP serwer WWW serwer baz danych MySQL

Instalacja i konfiguracja serwera telnet.

Apache. Apache serwer WWW

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla

Puk, puk! Kto tam? Eeeee... Spadaj!

Moduł Replikacji. Instrukcja użytkownika

Tworzenie maszyny wirtualnej

Instalacja i konfiguracja serwera SSH.

Apache serwer WWW. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Bezpieczeństwo systemu GNU/Linux - podstawy. Robert Jaroszuk <zim@iq.pl>

Router programowy z firewallem oparty o iptables

Apache serwer WWW (część 2) Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

4. Podstawowa konfiguracja

Tomasz Greszata - Koszalin

KARTA KURSU. Administracja serwerami WWW

Zarządzanie bezpieczeństwem w sieciach

T: Zabezpieczenie dostępu do komputera.

Sieci komputerowe Wykład dla studentów Informatyki Stosowanej studia niestacjonarne

Wstęp. Modele rejestrowania zdarzeń systemu

Dokumentacja instalacyjna i konfiguracyjna Aplikacja ADR. Wersja dokumentu 1.0. Strona 1/9

iptables -F -t nat iptables -X -t nat iptables -F -t filter iptables -X -t filter echo "1" > /proc/sys/net/ipv4/ip_forward

T: Konfiguracja interfejsu sieciowego. Odwzorowanie nazwy na adres.

MONITOROWANIE WINDOWS Z NETCRUNCHEM 7 P A G E 1

W poprzednim odcinku poznaliśmy: W poprzednim odcinku, cd.: W dzisiejszym odcinku. Apache serwer WWW (część 2)

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Udostępnianie zasobów Gentoo Linux systemom Microsoft Windows 7 za wykorzystaniem ku temu serwera plików i drukarek SAMBA.

Bezpieczeństwo Systemów Telekomunikacyjnych 2014 / 2015 Bezpieczeństwo aplikacji sieciowych, Ataki (D)DoS Prowadzący: Jarosław Białas

Witaj, jeżeli przegladasz ten plik oznacza że chcesz stworzyć własnego masterka. No cóż koniec bełkotania bierzmy się za zrobienie mastera!

MikroTik Serwer OpenVPN

Zadanie OUTSIDE /24. dmz. outside /24. security- level /16

Administrator systemu Linux program kursu. Wstęp. Część I Szybki wstęp do Linuksa. Część II Praca w środowisku tekstowym

11. Autoryzacja użytkowników

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Bezpieczeństwo w M875

Najprostsza odpowiedź, jaka przychodzi mi do głowy to, z powodu bezpieczeństwa.

Oprogramowanie OpenVPN jest oprogramowaniem darmowym, które można pobrać ze strony:

Drobne błędy w portalach WWW

Administracja bazami danych. dr inż. Grzegorz Michalski

Uwierzytelnianie użytkowników sieci bezprzewodowej z wykorzystaniem serwera Radius (Windows 2008)

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Laboratorium nr 6 VPN i PKI

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

Laboratorium 3.4.2: Zarządzanie serwerem WWW

CREATE USER

Instalacja i konfiguracja serwera DHCP.

ZALECENIA DLA MIGRACJI NS-BSD V8 => V9

Usługi sieciowe systemu Linux

Konfiguracja vsftpd ( Very Secure FTP Server )

Migracja Comarch ERP Altum Business Intelligence do wersji

Dokumentacja fillup - MS SQL

Zabawy z PHP em. Błażej Miga, Jaroslaw Sajko, PCSS blazej.miga@man.poznan.pl jaroslaw.sajko@man.poznan.pl

Tryb pracy urządzenia jest wyświetlany wewnątrz trójkątnych nawiasów, oto kilka oznaczeń:

Linux -- u mnie działa!

Procedura konfiguracji programu Outlook Express z wykorzystaniem protokołu POP3

Wdrażanie i zarządzanie serwerami zabezpieczającymi Koncepcja ochrony sieci komputerowej

Win Admin Replikator Instrukcja Obsługi

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

Iptables informacje ogólne

Instalacja NOD32 Remote Administrator

Zarządzanie systemami informatycznymi. Zarządzanie serwerem httpd: Apache

ZADANIE.09 Syslog, SNMP (Syslog, SNMP) 1,5h

Ko n f i gura cja p ra cy V ISO z bazą SQL S e rve r

Typy tabel serwera MySQL

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Jak skonfigurować bezpieczną sieć bezprzewodową w oparciu o serwer RADIUS i urządzenia ZyXEL wspierające standard 802.1x?

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

# ip addr add dev eth1 $ sudo ip addr add dev eth1 Uwaga: Ustawienia te zostaną utracone po restarcie systemu

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat zapory sieciowej (firewall) oraz oprogramowania iptables.

Pracownia internetowa w szkole ZASTOSOWANIA

PHP: bazy danych, SQL, AJAX i JSON

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Migracja Business Intelligence do wersji

Przełączanie i Trasowanie w Sieciach Komputerowych

Pomoc: konfiguracja PPPoE

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

Bazy Danych. Ćwiczenie 1: Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front

Wskazówki dla osób, które będą uruchamiały Wirtualny Serwer Egzaminacyjny w pracowni komputerowej pracującej pod kontrolą serwera SBS

Instrukcje dotyczące funkcji zarządzania pasmem w urządzeniach serii ZyWALL.

PROFESJONALNE SYSTEMY BEZPIECZEŃSTWA

Firewall bez adresu IP

R o g e r A c c e s s C o n t r o l S y s t e m 5

KONFIGURACJA USŁUGI ZSIMED NA SERWERZE ZDALNYM

Wprowadzenie do Active Directory. Udostępnianie katalogów

Administrowanie sieciami komputerowymi

Instrukcja instalacji Control Expert 3.0

Serwer SMB. Udostępnienie zasobów systemowych w sieci. Jakub Stasiński, Jędrzej Chruściel, Michał Wojciechowski

Przebieg instalacji NKP

Sieciowa instalacja Sekafi 3 SQL

Win Admin Replikator Instrukcja Obsługi

Zalecana instalacja i konfiguracja Microsoft SQL Server 2016 Express Edition dla oprogramowania Wonderware

instrukcja INSTALACJI APi_proxy

Instalacja i konfiguracja rouera ASMAX AR 904u. Neostrada, Netia

Zabbix -Monitoring IT bez taśmy klejącej. Paweł Tomala Barcamp 15 czerwca 2015

Transkrypt:

Bezpieczna konfiguracja serwera linuksowego (na przykładzie hostingu na Ubuntu/Debianie) Tomasz Nowak tomasz.nowak@adres.pl AKAICamp #6: Security Poznań, 2015-01-21

Aktualizacja pakietów z błędami bezpieczeństwa Ubuntu: Welcome to Ubuntu 14.04.1 LTS Documentation: https://help.ubuntu.com/ 15 packages can be updated. 0 updates are security updates. apt-get update && apt-get upgrade /etc/sources.list deb http://security.debian.org/ testing/updates main contrib non-free /var/spool/cron/crontabs/root: apt-get update -qq Nakładka byobu pokazuje ostrzeżenia o oczekujących aktualizacjach 2015-01-21 AKAICamp #6: Security 2

Konta lokalne Usuwać konta tymczasowe Hasła generować, np. pwgen 12 -y Skonfigurować moduł spr. siły haseł: libpam-passwdqc Silne skróty kryptograficzne mechanizmu shadow (wtedy wyciek backupu /etc nie da dostępu) /etc/pam.d/common-password password [...] pam_unix.so obscure sha512 rounds=20000 /etc/shadow root:$6$rounds=20000$xi34htvy$mjg..:15643:0:99999:7::: Poblokować dostępy do usług lokalnych (np. stworzyć pliki /etc/cron.allow, /etc/at.allow) Ustawić minimalne uprawnienia dla wszelkich plików i katalogów Poprawić UMASK (np. z 022 na 077): pam_umask lub ~/.bashrc Używać mechanizmu sudo (zamiast konta root ) 2015-01-21 AKAICamp #6: Security 3

Rzut oka na listę usług sieciowych # netstat -tulnp (TCP, UDP, listening, numeric, PIDs) Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 633/sshd tcp6 0 0 :::22 :::* LISTEN 633/sshd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1352/apache2 tcp6 0 0 :::80 :::* LISTEN 1352/apache2 tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 1332/dnsmasq tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 21463/cupsd tcp 0 0 10.8.0.22:11224 0.0.0.0:* LISTEN 7252/java tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1459/postgres udp 0 0 0.0.0.0:38753 0.0.0.0:* 1216/avahi-daemon: udp 0 0 0.0.0.0:56511 0.0.0.0:* 28055/dhclient udp 0 0 0.0.0.0:44861 0.0.0.0:* 16841/openvpn Wyłączyć usługi niepotrzebne na serwerze, usługi konfigurujące serwer z zewnątrz Uwaga na usługi na interfejsach: 0.0.0.0 / :: IPv6?... Wyłączyć lub pamiętać o ip6tables 2015-01-21 AKAICamp #6: Security 4

# ps faxu Rzut oka na listę procesów postgres 1459 sty08 0:05 /usr/lib/postgresql/8.4/bin/postgres -D /var/lib/postgresql/8.4/main -c config_file=/etc/postgresql/8.4/main/postgresql.conf dnsmasq 1332 sty08 0:06 /usr/sbin/dnsmasq --keep-in-foreground --enable-dbus -x /var/run/dnsmasq/dnsmasq.pid -u dnsmasq -r /var/run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,19036,8,2,49a root 1195 sty08 0:01 /usr/sbin/cron -f daemon 1196 sty08 0:00 /usr/sbin/atd -f redis 1245 sty08 11:04 /usr/bin/redis-server 127.0.0.1:6379 root 24764 19:57 0:00 /usr/sbin/apache2 -k start www-data 24768 19:57 0:00 \_ /usr/sbin/apache2 -k start www-data 24769 19:57 0:00 \_ /usr/sbin/apache2 -k start root 1189 sty08 0:00 /usr/lib/bluetooth/bluetoothd root 1326 sty08 0:01 /usr/sbin/cups-browsed root 1327 sty08 0:13 /usr/sbin/rsyslogd -n Zgodność z przeznaczeniem serwera: niepotrzebne procesy wyłączamy Ważne: cmdline i ścieżki do plików konfiguracyjnych Kształt drzewa procesów zależności 2015-01-21 AKAICamp #6: Security 5

Konfiguracja SSH /etc/default/ssh (plik wczytywany z /etc/init.d/ssh zmienna SSHD_OPTS) /etc/ssh/sshd_config (ścieżka wkompilowana) AddressFamily inet # tzn. tylko IPv4 ListenAddress 10.0.5.1 # sieć wewn. Port 45279 PermitRootLogin no # albo without-passwo StrictModes yes # spr.upr. ~/.ssh/authorized_keys PermitEmptyPasswords no 2015-01-21 AKAICamp #6: Security 6

PostgreSQL: Role Based Access Control Poziomy obiektów w PostgreSQL: Instance Database Schema Table/View/... Role dostępne są na poziomie instance i opisują uprawnienia ( privileges ) do obiektów na niższych poziomach; mają przypisane hasło Przykłady uprawnień: CONNECT, CREATE, SELECT, INSERT, UPDATE, DELETE Role mają też przypisane ustawienia (dostępna pamięć itp.) SELECT * FROM pg_settings where context='user'; Role jako grupy: GRANT group_role TO role1,... ; 2015-01-21 AKAICamp #6: Security 7

PostgreSQL RBAC: zalecenia Oddzielna rola z CONNECT dla każdej aplikac Jako właściciele obiektów (bazy, tabele,...): role nie pracujące (SELECT/INSERT/...) na danych w tych obiektach Nie przypisywać bezpośrednio uprawnień do obiektów rolom używanym do logowania. Role odpowiadające wzorcom zapytań ( access roles ) zastosować na zasadzie grupy 2015-01-21 AKAICamp #6: Security 8

PostgreSQL: Host Based Access Control Wpisy w pliku /etc/postgresql/8.4/main/pg_hba.conf: # local DATABASE USER METHOD [OPTIONS] # host DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] # hostssl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] # hostnossl DATABASE USER CIDR-ADDRESS METHOD [OPTIONS] local all postgres ident host all all 127.0.0.1/32 md5 Zalecenia usunąć wpisy z METHOD=trust używać wpisów hostssl oddzielne wpisy dla każdego serwera aplikacji (ew. podsieci) tylko dla wybranych ról, tylko dla wybranych baz dostęp przez sieć: METHOD=md5 (nie password ) na końcu pliku wpisać all all 0.0.0.0/0 REJECT 2015-01-21 AKAICamp #6: Security 9

Konfiguracja Apache HTTP Server Wyłączyć nieużywane moduły: a2dismod Zainstalować i włączyć moduł mod-security /etc/apache2/apache2.conf Wyłączyć listowanie katalogów <Directory /var/www/html> Options -Indexes </Directory> Ukryć wersję z nagłówka i błędów: ServerSignature Off ServerTokens Prod Dodatkowe ustawienia: Options -FollowSymLinks -Includes -ExecCGI 2015-01-21 AKAICamp #6: Security 10

Konfiguracja PHP Uwaga na pliki z kodem źródłowym, które użytkownik mógłby pobrać, np. header.inc AddHandler application/x-httpd-php.inc (apache:.htaccess) umieścić powyżej katalogu web root Próby ukrycia technologii expose_php = Off # w /etc/php5/apache2/php.ini zmienić PHPSESSID: session.name (php.ini) lub session_name(...) mod-rewrite: obciąć rozszerzenie skryptów php.ini: Uzupełnić disable_functions : shell_exec, system, exec, link,... display_errors = Off allow_url_fopen = Off allow_url_include = Off file_uploads = Off session.cookie_httponly = 1 2015-01-21 AKAICamp #6: Security 11

SSL /etc/apache2/mods-available/ssl.conf SSLProtocol all -SSLv3 #TLSv1, TLSv1.1, TLSv1 SSLCipherSuite HIGH:!aNULL:!MD5:!RC4 PostgreSQL: konfiguracja systemowa `openssl version -d` ( /usr/lib/ssl/ ) 2015-01-21 AKAICamp #6: Security 12

Centralny serwer logów Zwykle używany jest rsyslog: /etc/rsyslog.{conf,d/*} Reguła na serwerach wysyłających: *.* @192.168.1.1:514 Reguła na serwerze odbierającym: $ModLoad imudp $UDPServerRun 514 $template FILENAME,"/var/log/%fromhost-ip%/syslog.log" *.*?FILENAME 2015-01-21 AKAICamp #6: Security 13

Zapora sieciowa iptables Reguły blokowania połączeń przychodzących, polityka DROP nie wpuszczać połączeń SSH z innych kontynentó Reguły blokowania połączeń wychodzących, polityka DROP, ale wypuścić ruch do: serwerów z aktualizacjami serwera NTP serwera zbierającego logi Jeśli są interfejsy IPv6, to również ip6tables! 2015-01-21 AKAICamp #6: Security 14

fail2ban Monitoruje logi usług oraz systemu i blokuje atakujące adresy IP (używając iptables) W komplecie z filtrami logów dla wielu standardowych usług i akcjami do wykonania 2015-01-21 AKAICamp #6: Security 15

Przydatne narzędzia nmap -p- 192.168.0.x Qualys SSL Test https://www.ssllabs.com/ssltest/ WordPress: http://wpscan.org SMTP: http://mxtoolbox.com 2015-01-21 AKAICamp #6: Security 16