serwer internetowy w systemie linux

53
Serwer internetowy w systemie Linux Serwer internetowy w systemie Linux - www - www - ftp ftp - ssh - ssh - smtp - smtp - imap - imap - pop3 - pop3

Upload: bm9ib2r5

Post on 13-Jun-2015

10.161 views

Category:

Technology


7 download

DESCRIPTION

Serwer internetowy w systemie Linux.

TRANSCRIPT

Page 1: Serwer internetowy w systemie Linux

Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux

- www- www- ftpftp- ssh- ssh- smtp- smtp- imap- imap- pop3- pop3

Page 2: Serwer internetowy w systemie Linux

Serwer Apache

1. Historia Apache.2. Instalacja.3. Podstawowa konfiguracja.4. Uruchamianie serwera www.5. Bezpieczeństwo.

Page 3: Serwer internetowy w systemie Linux

1. Historia Apache1. Historia Apache

Apache powstał w 1994 rok u na bazie kodu dostępnego na licencji Public Domain serwera http, nad którym prace w owym czasie zarzucono. Społeczność internetowa zajęła się wtedy serwerem , i po zebraniu poprawek (patch) powstał nowy projekt “Apache ”. Główni deweloperzy założyli wtedy organizacje grupy pod ta sam a nazwa. Pierwsza oficjalna wersja 0.6.2 ukazała się w kwietniu 1995r, a wersja 1.0 pierwszego grudnia 1995r. W 1999 roku grupa założyła Apache Software Foundation aby zapewnić projektowi prawne i finansowe zaplecze , oraz sprawować opiekę nad innym i projektami w duch u Open-Source . Aktualnie program jest rozwijany w trzech gałęziach 1.3 , 2.0 oraz 2.2 .

Page 4: Serwer internetowy w systemie Linux

2.Instalacja serwera Apache2.Instalacja serwera Apache

Wszystko zależy od zastosowania, podejścia i dystrybucji!!!

Systemy paczkowe: - rpm: Suse, Mandriva, PLD, RedHat - deb: Debian, Ubuntu, Kubuntu - tgz: Slackware

Instalacja odbywa się za pomocą managerów instalacji, które pomagają

w pobraniu pakietu. Zazwyczaj jednak wystarczy pobrać pakiet a następnie zainstalować go poleceniem z prawami administratora(root’a)

Page 5: Serwer internetowy w systemie Linux

2. Instalacja serwera 2. Instalacja serwera ApacheApache

rpm:rpm -i apache-x.x.x.rpm

deb:apt-get install apache

tgz:intallpkg apache-x.x.x.tgz

Page 6: Serwer internetowy w systemie Linux

2. Instalacja serwera 2. Instalacja serwera ApacheApache

Systemy wykorzystujące porty:

Gentoo:

emerge –av apache

FreeBSD, OpenBSD, NetBSD:

cd /usr/ports/www/apachemake && make install && make clean

lub:make config && make && make install && make clean

Page 7: Serwer internetowy w systemie Linux

2. Instalacja serwera 2. Instalacja serwera ApacheApache

Instalacja ze źródeł:

wget –c –t0 http://ftp.tpnet.pl/vol/d1/apache/httpd/apache_x.x.x.tar.gz tar –zxvf apache_x.x.x.tar.gzcd apache-x.x.x./configure – „nasze prefixy”make make install

Page 8: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

Konfiguracja demona znajduje się w pliku httpd.conf znajdującym

się najczęściej w katalogu:- /etc/httpd- /etc/apache- /usr/local/etc/apache

Plik konfiguracyjny to tekst z wieloma komentarzami. Zawiera mocno

udokumentowane opcje z ustawieniami domyślnymi proponowanymi

przez zespół Apache lub autorów danej dystrybucji.

Page 9: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

Plik konfiguracyjny oprócz zwykłych opcji posiada tak zwane bloki

oznaczone nawiasami trójkątnymi („< >”).Uzależniają działanie w nich zawartych opcji od umiejscowienia plików („<Directory> </Directory>”) , załadowanych

modułów(„<IfModule > </IfModule >” ) oraz innych czynników

zależnych odwykonywanego przez server zapytania.

Page 10: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

Ważniejsze opcje:ServerAdmin adres_pocztowy_administratora

Określenie adresu pocztowego administratora serwera www.

ServerName nazwa_domenowa_serwera Zdefiniowanie nazwy hosta zwracanej klientom podczas pobieraniadanych serwera.

ServerRoot "katalog" Określenie katalogu z plikami używanymi przez httpd, m.in. Plikami błędów i dzienników.

Page 11: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demonaServerType typ

Możliwe wartości typu to standalone (ustawiany gdy httpd

uruchamiany jest samodzielnie i zalecane) lub inetd (gdy serwer

uruchamiany jest za pośrednictwem demona inetd).

Port nr_portu

Numer portu TCP używanego przez serwer (standardowo 80; inne

popularne wartości to 8080 i 8000)

BindAddress adres_IP

Okrela adres używany do komunikacji z serwerem, jeśli posiada on

kilka adresów IP. Wartość adresu * nakazuje serwerowi odpowiadać na żądania kierowane pod dowolny z jego adresów.

Page 12: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

Listen adres:port Określenie adresów i portów, które oprócz domyślnego portu i adresu mają być monitorowane pod kątem pojawienia się żądań www.

MaxClients liczba Maksymalna liczba równocześnie obsługiwanych klientów.

DocumentRoot "katalog„ Katalog z główną stroną serwera.

UserDir katalog Określenie nazwy katalogu w którym każdy z użytkowników systemu może przechowywać swoją stronę domową.

Page 13: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

DirectoryIndex nazwa_pliku Nazwa pliku przesyłanego klientom gdy żądanie nie zawiera nazwy pliku (np. plik o tej nazwie umieszczony w katalogu podanym w DocumentRoot traktowany jest jako strona główna serwera, a w katalogu podanym jako UserDir - jako strona domowa użytkownika.

< Directory "katalog"> ... < /Directory > Określenie dyrektyw odnoszących się do danego katalogu.

< VirtualHost "nazwa_domenowa"> ... < /VirtualHost > określenie nazwy na którą reaguje serwer (musi byc ona nazwą równoważną dla nazwy domenowej serwera, zdefiniowaną na serwerze DNS), oraz dyrektyw odnoszących się do tego serwera.

Page 14: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

Ważniejsze moduły:

mod_env - Ustawianie zmiennych środowiskowych dla skryptów CGI/SSI.

mod_setenvif - Ustawianie zmiennych środowiskowych na podstawie nagłówków HTTP.

mod_mime - Ustalanie typu treści, kodowania.mod_negotiation - Wybieranie treści według nagłówków Accept* HTTP.

mod_alias - Tłumaczenie i przekierowanie adresów URL.mod_userdir - Wybieranie katalogów zasobów według nazwy

użytkownika.mod_dir - Obsługa katalogów i domyślnych plików

katalogowych.mod_autoindex - Automatyczne generowanie indexów

katalogów.

Page 15: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

mod_access - Kontrola dostępu.mod_auth - Uwierzytelnianie HTTP.mod_asis - Nieprzetworzone odpowiedzi HTTP.mod_include - Obsluga Server-Side Includes (SSI).mod_cgi - Obsługa CGI.mod_actions - Skrypty CGI jako wewnętrzne programy obsługi.mod_status - Stan działania serwera.mod_log_config - Rejestrowanie żądań.mod_log_agent - Rejestrowanie nagłówków HTTP Referrer.

Page 16: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

Przykłady:mod_userdir

UserDir public_html

<Directory /home/*/public_html>AllowOverride FileInfo AuthConfig LimitOptions MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec IndexOptions FancyIndexing FoldersFirst NameWidth=*Order deny,allowDeny from all

</Directory>

Page 17: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

Przykłady:mod_alias

Alias /icons/ "/home/httpd/icons/„<Directory "/home/httpd/icons">

Options Indexes MultiViewsAllowOverride None Order allow,denyAllow from all

</Directory>

Page 18: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

Przykładowy config:

ServerRoot "/etc/httpd”LockFile /var/run/httpd/accept.lockPidFile /var/run/httpd.pidTimeout 300KeepAlive OnMaxKeepAliveRequests 100Listen 80#MODULE SECTIONLoadModule auth_dbm_module modules/mod_auth_dbm.so...LoadModule unique_id_module modules/mod_unique_id.so#MODULE SECTION END

Page 19: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demona

User httpdGroup httpd

ServerAdmin [email protected] hct.pwsz.elblag.pl:80DocumentRoot "/home/httpd/html„# Very restrictive set of features. <Directory />

Options MultiViews Indexes IncludesNoExec FollowSymLinksIndexOptions FancyIndexing FoldersFirst NameWidth=*AllowOverride None

</Directory>

Page 20: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demonaAccessFileName .htaccess<Files ~ "^\.ht">

Order allow,denyDeny from all

</Files>HostnameLookups OffErrorLog /var/log/httpd/error_logLogLevel warnAlias /icons/ "/home/httpd/icons/„<Directory "/home/httpd/icons">

Options Indexes MultiViewsAllowOverride NoneOrder allow,denyAllow from all

</Directory>

Page 21: Serwer internetowy w systemie Linux

3. Konfiguracja demona3. Konfiguracja demonaAddIcon /icons/tar.gif .tar…AddIcon /icons/text.gif .txtAddDefaultCharset ISO-8859-2AddIcon /icons/back.gif ..AddIcon /icons/hand.right.gif READMEAddIcon /icons/folder.gif ^^DIRECTORY^^AddIcon /icons/blank.gif ^^BLANKICON^^DefaultIcon /icons/unknown.gif

Page 22: Serwer internetowy w systemie Linux

4. Uruchamianie demona4. Uruchamianie demona

Skrypty startowe:

root~# /etc/init.d/httpd start | stop | restartroot~# /etc/rc.d/rc.httpd start | stop | restartroot~# /usr/local/etc/rc.httpd start | stop | restart

Page 23: Serwer internetowy w systemie Linux

4. Uruchamianie demona4. Uruchamianie demona

Sprawdzanie czy demon działa:root~# telnet localhost 80Trying 127.0.0.1...telnet: Unable to connect to remote host: Connection refusedroot@hct ~# telnet localhost 80Trying 127.0.0.1...Connected to localhost.localdomain.Escape character is '^]'.HELLO<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"><html><head><title>501 Method Not Implemented</title></head><body><h1>Method Not Implemented</h1><p>HELLO to /index.html not supported.<br /></p><hr><address>Apache/2.0.59 (Trustix Secure Linux/Linux) PHP/5.2.0 Resin/3.0.18 Server at <a

href="mailto:[email protected]">hct.pwsz.elblag.pl</a> Port 80</address></body></html>Connection closed by foreign host.

lub~#links http://localhost/

Page 24: Serwer internetowy w systemie Linux

5. Bezpieczeństwo5. Bezpieczeństwo

Co zrobić by serwer był bardziej bezpieczny ?Co zrobić by serwer był bardziej bezpieczny ? Używamy jedynie modułów, które są absolutnie niezbędne do

poprawnego udostępniania stron. Wszelkie moduły oferujące dodatkowe funkcje usuwamy.

Do poprawnego udostępniania statycznych stron potrzebne:

AddModule mod_log_config.c //odpowiada za logowanie żądańAddModule mod_mime.c //zapewnia prawidłowe kodowanie dokumentów, obsługę MIMEAddModule mod_dir.c //obsługuje pliki startowe witryn WWW, tj. index.html, main.html etc.AddModule mod_access.c //dostarcza mechanizmy kontroli dostępu do stron WWW na podst. IP, nazwy domenowej etc.AddModule mod_auth.c //wymagany do implementacji uwierzytelniania dostępu HTTP Basic Auth

Oczywiście każdy wie co jest mu potrzebne i do tej listy może dorzucić

niezbędne moduły (np. do PHP)!!!

Page 25: Serwer internetowy w systemie Linux

5. Bezpieczeństwo5. Bezpieczeństwo Apache w standardowej konfiguracji ma skłonność do

nadmiernego ujawniania informacji o sobie. Wpisując coś w rodzaju [ www ] dostajemy jak na dłoni informację o wersji Apache, systemie (Linux czy Windows), oraz wersji PHP (o ile takowa jest zainstalowana na serwerze).

W pliku httpd.conf zmieniamy dyrektywy UseCanonicalName OffServerSignature Off // ta dyrektywa odpowiada za tą paskudną stopkęHostnameLookups OffServerTokens Prod

Dodatkowo komentujemy ładowanie modułu mod_info (jeśli takowy nie

został wcześniej wyłączony ;) )

Page 26: Serwer internetowy w systemie Linux

5. Bezpieczeństwo5. Bezpieczeństwo

Filtrowanie dostępu do servera za pomocą firewall’a. Używanie SSL’a do połączeń z serverem. Instalacja serwera www w środowisku jail. Wykrywanie prób ataków/włamań (np. Snort ) oraz blokowanie

adresów IP z których były przeprowadzone. Honeypot – symulacja dodatkowych maszyn (maszyny virtualne) w

celu zmylenia przeciwnika przed atakiem na prawdziwa maszyne. Monitorowanie i analiza logów

Page 27: Serwer internetowy w systemie Linux

Serwer FTPSerwer FTP

1. Co to jest FTP.2. Dlaczego vsftpd.3. Podstawowa konfiguracja.4. Uruchamianie.

Page 28: Serwer internetowy w systemie Linux

1. Co to jest FTP1. Co to jest FTP

FTP (File Transfer Protocol, ang. protokół transmisji plików) jest protokołemtypu klient-serwer, który umożliwia przesyłanie plików z i na serwer poprzezsieć TCP/IP. Protokół ten jest zdefiniowany przez IETF w RFC 959 FTP jest protokołem 8-bitowym, dlatego nie wymaga specjalnego kodowaniadanych na postać 7-bitową, tak jak ma to miejsce w przypadku pocztyelektronicznej.Do komunikacji wykorzystywane są dwa połączenia TCP. Jedno z nich jestpołączeniem kontrolnym za pomocą którego przesyłane są np. polecenia doserwera, drugie natomiast służy do transmisji danych m.in. plików. FTP działaw dwóch trybach: aktywnym i pasywnym, w zależności od tego, w jakim jesttrybie, używa innych portów do komunikacji.

Page 29: Serwer internetowy w systemie Linux

1. Co to jest FTP1. Co to jest FTP

Jeżeli FTP pracuje w trybie aktywnym, korzysta z portów: 21 dla poleceń(połączenie to jest zestawiane przez klienta) oraz 20 do przesyłu danych.Połączenie nawiązywane jest wówczas przez serwer. Jeżeli FTP pracuje wtrybie pasywnym wykorzystuje port 21 do poleceń i port o numerze > 1024

do transmisji danych, gdzie obydwa połączenia zestawiane są przez klienta.

Możliwe jest zainstalowanie wielu serwerów FTP za jednym i tym samemrouterem. Warunkiem jest rozdzielenie portów przez router dla każdego

serwera.

Page 30: Serwer internetowy w systemie Linux

2. Dlaczego vsftpd?2. Dlaczego vsftpd?

VSFTPd jest darmowym (BSD), bezpiecznym, wysokiej jakości, spełniającym

wszelkie standardy serwerem FTP. Bardzo dobrze sprawdza się zarówno dla

użytku domowego jak i dla wszelkiego rodzaju organizacji czy dużych firm.

Jest bardzo przyjazny dla administratorów (obsługuje m.in. język polski) i

dobrze współpracuje z wieloma różnymi usługami (m.in. LDAP czy SQL).

Dzięki integracji z biblioteka OpenSSL zapewnia użytkownikom pełnapoufność i integralność danych.

Page 31: Serwer internetowy w systemie Linux

2. Dlaczego vsftpd?2. Dlaczego vsftpd?

Zalety vsftpd:• bezpieczeństwo: głównym założeniem projektu było/jest

bezpieczeństwo.• wydajność: w porównaniu z wuftpd jest w stanie obsłużyć

przeszło dwa razy więcej klientów.• szybkość: transfer jest większy, niż w przypadku innych serwerów.• bezpieczeństwo: nie znaleziono na niego krytycznych bugów.• bezpieczeństwo: zaczyna być dołączany jako standardowy serwer

FTPdo coraz większej ilości systemów (np. EnGarde Linux, United Linux).

• lista referencyjna: ftp.redhat.com, ftp.suse.com, ftp.debian.org,ftp.gnu.org, ftp.gnome.org, ftp.openbsd.org, ftp.gimp.org i wiele innych

Page 32: Serwer internetowy w systemie Linux

3. Konfiguracja vsftpd?3. Konfiguracja vsftpd?Format, w jakim są zapisywane opcje konfiguracyjne wygląda

następująco: opcja=wartość

--- vsftpd.conf --- # Ustawiamy tutaj, z poziomu jakiego użytkownika ma być uruchamiany naszserwer: nopriv_user=ftp # Uruchomienie serwera w trybie standalone. Jeśli chcemy aby nasz vsftpd był # uruchamiany w trybie inetd, rezygnujemy z tej opcji, ponieważ domyślnie jest # ona ustawiona na "NO":listen=YES # Definiujemy, tutaj na jakim porcie ma nasłuchiwać serwer (domyślnie jest to

port 21):listen_port=21 # Zabronienie logowania anonimowych użytkowników: anonymous_enable=NO

Page 33: Serwer internetowy w systemie Linux

3. Konfiguracja vsftpd?3. Konfiguracja vsftpd?# Zezwolenie logowania dla lokalnych użytkownikówlocal_enable=YES# Pozwolenie do zapisu we własnym kataloguwrite_enable=YES# Umask (022 jest używany przez większość serwerów ftp) local_umask=022 # Włączenie logowania xferlog_enable=YES # ścieżka do pliku z logamixferlog_file=/var/log/xferlog.log # Logi w formacie xferlog (jest wykorzystywany m.in. przez wu-ftpd)xferlog_std_format=YES # Maksymalna liczba połączonych użytkownikówmax_clients=5# Maksymalna liczba użytkowników mogących się połączyć z tego samego

adresu IP max_per_ip=2

Page 34: Serwer internetowy w systemie Linux

3. Konfiguracja vsftpd?3. Konfiguracja vsftpd?

# Banner, który będzie wyświetlany przy każdym połączeniu z serweremftpd_banner=Prywatny serwer FTP - Powered by: vsftpd# Userzy nie mogą wychodzić poza swój katalog domowychroot_local_user=YES# Ustawiamy katalog dla chroot'a:secure_chroot_dir=/var/chroot/vsftpd# Lista użytkowników, którzy mogą wychodzić poza swój katalog domowy, # musisz utworzyć ten plik. # np: touch

/var/chroot/vsftpd/vsftpd.chroot_list # Dodanie użytkownika odbywa się poprzez dopisanie nazwy usera do

tego pliku. # np: echo "tomek" >> /var/chroot/vsftpd/vsftpd.chroot_list chroot_list_enable=YES

chroot_list_file=/var/chroot/vsftpd/vsftpd.chroot_list --- end of vsftpd.conf ---

Page 35: Serwer internetowy w systemie Linux

3. Uruchamianie vsftpd?3. Uruchamianie vsftpd?

Serwer typu standalone:root~# /etc/init.d/vsftpd start | stop | restartroot~# /etc/rc.d/vsftpd start | stop | restartroot~# /usr/local/etc/rc.d/vsftpd start | stop | restart

Serwer wykorzystujacy inet.d, xinet.droot~# kill –HUP ‘cat /var/run/inetd.pid’root~# /etc/init.d/inetd restart

Page 36: Serwer internetowy w systemie Linux

SSHSSH

1. Co to jest SSH.2. Podstawowa konfiguracja.3. Uruchamianie.4. Zastosowanie

Page 37: Serwer internetowy w systemie Linux

1. Co to jest SSH?1. Co to jest SSH?

SSH (ang. secure shell) to standard protokołów komunikacyjnych używanych w sieciach komputerowych TCP -IP, w architekturze klient-serwer. W ścisłym znaczeniu SSH to tylko następca protokołu telnet, służącego do terminalowego łączenia się ze zdalnym komputerem. SSH różni się od telnetu tym, że transfer wszelkich danych jest zaszyfrowany, oraz możliwe jest rozpoznawanie użytkownika na wiele różnych sposobów. W szerszym znaczeniu SSH to wspólna nazwa dla całej rodziny protokołów, nie tylko terminalowych, lecz także służących do przesyłania plików (SCP, SFTP), zdalnej kontroli zasobów, tunelowania i wielu innych zastosowań. Wspólną cechą wszystkich tych protokołów jest identyczna z ssh technika szyfrowania danych i rozpoznawania użytkownika. Obecnie protokoły z rodziny SSH praktycznie wyparły wszystkie inne "bezpieczne" protokoły takie jak np: Rlogin i RSH.

Page 38: Serwer internetowy w systemie Linux

1. Co to jest SSH?1. Co to jest SSH?

Najczęściej współcześnie stosowany sposób szyfrowania to AES, choć nadal część

serwerów używa szyfrowania Blowfish i technik z rodziny DES.Rozpoznawanie użytkownika może się opierać na tradycyjnym pytaniu o hasło,

klucz(RSA lub DSA) lub z użyciem protokołu Kerberos. Protokoły z rodziny SSH korzystają zwyczajowo z portu 22 protokołu TCP,

choć wwielu zastosowaniach celowo stosuje się port o innym numerze w celu

zwiększeniabezpieczeństwa serwera. Sama rodzina SSH znajduje się w warstwie aplikacji

modeluOSI, ale do połączenia korzysta z protokołu TCP.

Page 39: Serwer internetowy w systemie Linux

1. Co to jest SSH?1. Co to jest SSH?

Zasada działania:

Page 40: Serwer internetowy w systemie Linux

2. Konfiguracja SSH?2. Konfiguracja SSH?Serwer SSH w systemach Linux konfiguruje się poprzez plik sshd_conf któryprzeważnie znajduje się w katalogu /etc/ssh/ i tylko użytkownik root może gomodyfikować. Jeśli SSH było instalowane ze źródeł to położenie pliku może być winnym miejscu. Wybrane funkcje i parametry:PermitRootLogin (yes, no) - Zezwala na logowanie się użytkownika rootProtocol (1,2) - Rodzaj wersji protokołu SSHPort 3334 - Nr portu na którym nasłuchuje serwer SSHRhostsAuthentication (yes, no) - Określa czy SSH ignoruje

$HOME/.ssh/known_hosts użytkownika IgnoreUserKnownHosts (no, yes)PasswordAuthentication (yes, no)PermitEmptyPasswords (no, yes) PrintMotd (yes, no) - Określa czy SSH wyświetlda informacje z pliku /etc/motd kiedy

użytkownik się logujePrintLastLog (yes, no) - Określa czy pokazywać ostatni czas logowania użytkownikaKeepAlive (yes, no) - Określa czy system wysyła pakiet TCP 'keepalive' do klienta wcelu stwierdzenia jego aktywnościUseLogin (yes, no) Compression (yes, no) - Czy dopuszczalna jest kompresja przesyłanych danychMaxStartups 10 - Liczba niepowodzeń logowania przed rozłączeniem z serweremBanner /some/path - ścieżka do pliku z informacjami wyświetlanymi po zalogowaniu

Page 41: Serwer internetowy w systemie Linux

3. Uruchamianie SSH3. Uruchamianie SSH

root~# /etc/init.d/sshd start | stop | restartroot~# /etc/rc.d/rc.sshd start | stop | restartroot~# /usr/local/etc/rc.d/sshd start | stop | restart

Page 42: Serwer internetowy w systemie Linux

4. Zastosowanie SSH4. Zastosowanie SSH

Protokół SSH może być wykorzystywany do: • Pracy na zdalnej maszynie • Korzystania ze zdalnych baz danych • Konfigurowania odległego serwera lub routera • Korzystania z poczty e-mail • Eksploatacji serwera WWW

Page 43: Serwer internetowy w systemie Linux

SMTPSMTPSMTP (ang. Simple Mail Transfer Protocol) - protokół komunikacyjny opisujący

sposóbprzekazywania poczty elektronicznejw internecie.SMTP to względnie prosty, tekstowy protokół, w którym określa się co najmniej jednegoodbiorcę wiadomości (wwiększości przypadków weryfikowane jest jego istnienie), anastępnie przekazuje treść wiadomości. Łatwo przetestować serwer SMTP przy użyciuprogramu telnet.SMTP zaczęło być szeroko używane we wczesnych latach osiemdziesiątychdwudziestego wieku. W tamtym okresie było to uzupełnienie UUCP, który lepiejsprawdzał się przy przekazywaniu poczty między maszynami posiadającymi jedynieokresowe połączenie. SMTP natomiast lepiej działa, gdy zarówno maszyna nadająca jakodbierająca są na stałe przyłączone do sieci.

Jednym z pierwszych (jeśli nie pierwszym) z programów do przesyłania poczty, wktórym zastosowano SMTP był sendmail. Wroku 2001 istniało przynajmniej 50(pięćdziesiąt) programów implementujących SMTP jako klient (nadawca) lub serwer(odbiorca wiadomości). Niektóre inne popularne programy serwerów SMTP to exim,Postfix, Qmail Bernsteina, GroupWise firmy Novell i Microsoft Exchange.

Page 44: Serwer internetowy w systemie Linux

SMTPSMTPProtokół ten nie radził sobie dobrze z plikami binarnymi, ponieważ stworzony był woparciu o czysty tekst ASCII.W celu kodowania plików binarnych do przesyłu przez SMTP stworzono standardytakie jak MIME. W dzisiejszych czasach większość serwerów SMTP obsługujerozszerzenie 8BITMIME pozwalające przesyłać pliki binarne równie łatwo jak tekst.

SMTP nie pozwala na pobieranie wiadomości ze zdalnego serwera. Do tego celu służą

POP3 lub IMAP.

Jednym z ograniczeń pierwotnego SMTP jest brak mechanizmu weryfikacji nadawcy, co ułatwia rozpowszechnianie niepożądanych treści poprzez pocztęelektroniczną (wirusy, spam). Żeby temu zaradzić stworzono rozszerzenie SMTP-AUTH, które jednak jest tylko częściowym rozwiązaniem problemu – ograniczaWykorzystanie serwera wymagającego autoryzacji do zwielokratniania poczty. Nadalnie istnieje metoda, dzięki której odbiorca autoryzowałby nadawcę - nadawca może "udawać„ serwer i wysłać dowolny komunikat do dowolnego odbiorcy.

Page 45: Serwer internetowy w systemie Linux

SMTPSMTPPOSTFIX jako przykład serwera smtp.

Pliki konfiguracyjne programu Postfix umieszczone są w katalogu /etc/postfix.Najważniejszym plikiem jest main.cf. Kolejnymi plikami, o których warto wspomnieć, są pliki sample-...... Zawierają

one wskazówki o tym, jak zmieniać poszczególne opcje działania postfixa.

Podstawowa konfiguracja:W pliku /etc/postfix/main.cf ustawiamy / zmieniamy:

myhostname = naszhostname.pl mydestination = $myhostname

Uruchamianie:# postfix start

Przeladowywanie konfiguracji:#postfix reload

Page 46: Serwer internetowy w systemie Linux

POP3POP3

Post Office Protocol version 3 (POP3) to protokół internetowy z warstwy aplikacji

pozwalający na odbiór poczty elektronicznej ze zdalnego serwera do lokalnegokomputera poprzez połączenie TCP/IP. Ogromna większość współczesnychinternautów korzysta z POP3 do odbioru poczty

Wcześniejsze wersje protokołu POP czyli, POP (czasami nazywany POP1), POP2 zostały

całkowicie zastąpione przez POP3. Zwykle jeżeli ktoś mówi o protokole POP ma namyśli jego wersję 3.

Protokół POP3 powstał dla użytkowników, którzy nie są cały czas obecniw Internecie.

Jeżeli ktoś łączy się z siecią tylko na chwilę, to poczta nie może dotrzeć do niegoprotokołem SMTP.Wtakiej sytuacjiw sieci istnieje specjalny serwer, który przez

SMTPodbiera przychodzącą pocztę i ustawia ją w kolejce.

Page 47: Serwer internetowy w systemie Linux

POP3POP3

Kiedy użytkownik połączy się z siecią, to korzystając z POP3 może pobrać czekające naniego listy do lokalnego komputera. Jednak protokół ten ma wiele ograniczeń:• połączenie trwa tylko, jeżeli użytkownik pobiera pocztę i nie może pozostać

uśpione,• do jednej skrzynki może podłączyć się tylko jeden klient równocześnie,• każdy list musi być pobierany razem z załącznikami i żadnej jego części nie

można w łatwy sposób pominąć• wszystkie odbierane listy trafiają do jednej skrzynki, nie da się utworzyć ich kilku,• serwer POP3 nie potrafi sam przeszukiwać czekającychw kolejce listów.

Wysyłanie listów zawsze opiera się na protokole SMTP. Komunikacja POP3 może zostaćzaszyfrowana z wykorzystaniem protokołu SSL. Jest to o tyle istotne, że w POP3 hasłoprzesyłane jest otwartym tekstem, o ile nie korzysta się z opcjonalnej komendy

protokołuPOP3, APOP.

Protokół POP3, podobnie, jak inne protokoły internetowe (np. SMTP, HTTP) jestprotokołem tekstowym, czyli w odróżnieniu od protokołu binarnego, czytelnym dlaczłowieka.

Page 48: Serwer internetowy w systemie Linux

POP3POP3Daemon pop3 na przykładzie popa3d

Program popa3d jest produktem autorstwa Solar designera – jest serwerem

usługi POP3 stworzoną z myśla o prostocie i bezpieczeństwie.Oprogramowanie to wykorzystuje między innymi separację

przywilejów, co wznaczący sposób podnosi poziom  bezpieczeństwa usługi, zmniejszając

ilośćkodu wykonywanego z uprawnieniami root’a.

Uruchaminie demona:

W pliku /etc/init.d umieszczamy linie:

pop3    stream  tcp     nowait  root    /usr/bin/pop3d  popa3d

Uruchamiamy przez przeładowanie inet.droot#~ killall –HUP inted

Page 49: Serwer internetowy w systemie Linux

IMAPIMAP

IMAP4 (Internet Message Access Protocol) to internetowy protokół pocztowy zaprojektowany jako następca POP3.W przeciwieństwie do POP3, który umożliwia jedynie pobieranie i kasowanie poczty, IMAP pozwala na zarządzanie wieloma folderami pocztowymi oraz pobieranie ioperowanie na listach znajdujących się na zdalnym serwerze

Powodem, dla którego IMAP się nie przyjął, z pewnością NIE JEST czas połączenia zserwerem. W rzeczywistości protokół ten jest polecany dla użytkowników modemów,którzy nie muszą przez godzinę ściągać całej poczty po to tylko, by się przekonać,

żewiększość maili ich nie interesuje lub zawiera ogromne załączniki.IMAP pozwala na ściągnięcie nagłówków wiadomości i wybranie, które z wiadomościchcemy ściągnąć na komputer lokalny. Zdecydowanie zmniejsza to czas połączenia

oraz eliminuje konieczność wchodzenia bezpośrednio na stronę w celu usunięcia

wiadomościo zbyt dużym rozmiarze.

Page 50: Serwer internetowy w systemie Linux

IMAPIMAPUruchamianie demona IMAP na przykładzie pakietu courier-

imap

Konfiguracja pakietu courier-imap, nie należy do najtrudniejszych .

Edytujemy plik /etc/courier-imap/imapd

i ustawiamy:

ADDRESS=127.0.0.1PORT=143MAILDIR=.maildirMAILDIRPATH=.maildir

To wszystko. Uruchamiamy demona:

root#~` /etc/init.d/courier-imapd start

Page 51: Serwer internetowy w systemie Linux

Zagrożenia serwerów Zagrożenia serwerów pocztowychpocztowych

Otwarty przekaźnik (tzw. Open Relay) – serwer którego oprogramowanie do wysyłania poczty nie jest zabezpieczone przed rozsyłaniem poczty (zazwyczaj spamu) przez osoby niepowołane

Spam przychodzący – niechciane przesyłki, które trafiają do odbiorców na naszym serwerze, a ich zródłem są Open Relay’e oraz komputery zombie

Wirusy i robaki – ich źródłem mogą być zewnętrzni nadawcy, jak i użytkownicy naszego serwera, należy sprawdzać ruch w obu kierunkach

Page 52: Serwer internetowy w systemie Linux

Jak sobie z nimi radzic ?Jak sobie z nimi radzic ?

Otwarte przekaźniki (Open Relay) :- Odpowiednio skonfigurowane listy kontroli dostępu- Uruchomienie autoryzacji SMTP-AUTH

Spam przychodzący:- Odpowiednio skonfigurowane listy kontroli dostępu- Automatyczne sprawdzanie adresu na listach blokujących

(RBL, DNSBL) szeroko dostępnych w internecie- Uruchomienie filtra antyspamowego współpracującego z

serwerem pocztowym

Wirusy i robaki:- Uruchomienia skanera poczty, który jest pośrednikiem

pomiędzy serwerem pocztowym a programem antywirusowym

- Zainfekowana poczta trafia do kwarantanny albo jest usuwana

Page 53: Serwer internetowy w systemie Linux

PYTANIA ???