Prezentacja_ format PowerPoint - Stanpol

Document Sample
Prezentacja_ format PowerPoint - Stanpol Powered By Docstoc
					                                                      1
Wprowadzenie

   Lata 92 i 93 – Linux wzbogacił się o protokół
    TCP/IP i środowisko graficzne (X Window),
    mógł zastąpić w stacjach roboczych Unixa. Wiele
    małych firm zajęło się rozwojem i dystrybucją
    Linuxa, pojawiły się grupy użytkowników
   Pierwsze poważne zastosowania – jako serwery
    plików, poczty, baz danych ...
                                                         2
Wprowadzenie

   Sprawdzone wielokrotnie w rzeczywistych
    warunkach, stabilne i wydajne usługi sieciowe:
telnet, ftp, tftp, ssh, http, w3cache, sql, DNS, dhcp,
   smtp, pop, imap, drukarek, faksów, plików,
   kerberos, radius, tacacs, ldap ....
   kontroler domeny NT, Active Directory
   routing, pasywna lub dynamiczna tablica
    routingu,
                                                        3
Inetd, xinetd

   Każdy komputer działający w sieci TCP posiada
    własny, unikalny adres (adresy IP).
   Program realizujący usługę sieciową po
    uruchomieniu staje się procesem. Aby z jego usług
    skorzystać, zaadresować trzeba komputer i proces
    w nim.
   Do zaadresowania komputera służy adres IP
   Do zaadresowania procesu służy numer portu
                                                  4
Inetd, xinetd

   Numery portów 0 – 65535
   Porty < 1024 zarezerwowane dla
    uprzywilejowanych procesów
   Porty > 5000 zarezerwowane dla serwerów bez
    przywilejów
   Definicje tych zakresów w
    /usr/include/netinet/in.h
                                                     5
Inetd, xinetd
   Aby połączyć się z usługą trzeba znać adres IP
    hosta i port procesu.
   Standaryzacją numerów portów zajmuje się IANA
    (Internet Assigned Numbers Authority)‫‏‬
   http://www.iana.org/assignments/port-numbers
   Porty według IANA:
   Well Known Ports 0 – 1023
   Registered Ports 1024 – 49151
   Dynamic and/or Private Ports 49152 - 65535
                                                   6
    Inetd, xinetd

   Dla Well Known Ports i Registered Ports IANA
    przydzieliła usługom standardowe porty, na
    przykład:
   telnet          23/tcp   Telnet
   telnet          23/udp   Telnet
   sscan       3853/tcp SONY scanning protocol
   sscan       3853/udp SONY scanning protocol
                                                       7
Inetd, xinetd

   Zbiór /etc/services  służy do translacji numerów
    portów na nazwy i odwrotnie, jest odpowiednikiem
    dla portów zbioru /etc/hosts
   Przykładowy fragment:
    ftp-data   20/tcp
ftp            21/tcp
domain         53/tcp           nameserver
domain         53/udp           nameserver
                                                                8
    Inetd, xinetd
   Proces oferujący usługi musi cały czas oczekiwać na
    żądanie od klienta
   Jeśli żądania realizacji usługi zdarzają się rzadko,
    niepotrzebnie marnowane są zasoby serwera
   Superdaemon inetd (xinetd) oczekuje na żądania klientów i
    po ich nadejściu uruchamia właściwy proces do jego
    obsłużenia
   Użycie xinetd zmniejsza użycie zasobów serwera, ale
    wydłuża czas obsługi żądania
   Niektóre serwery, na przykład vsftpd, mogą działać jako
    samodzielny daemon lub przez xinetd
                                                    9
    Inetd, xinetd

   Procesy nasłuchujące na portach wyświetlić możemy
    poleceniem:
    netstat -alpn
   Z opcją 'n' numery portów zostaną przed
    wyświetleniem zamienione na odpowiadające im
    nazwy (ze zbioru /etc/services):
   tcp    0    0   *:ssh    *:* LISTEN 635/sshd
   tcp    0    0   *:telnet *:* LISTEN 647/xinetd
                                                       10
 Inetd, xinetd
 Inetd jest starszą, prostszą wersją xinetd.


   Xinetd oferuje większe bezpieczeństwo systemu
   Konfiguracja xinetd w pliku /etc/xinetd.conf:
defaults
{
     instances                   =   60
     log_type                    =   SYSLOG authpriv
     log_on_success              =   HOST PID
     log_on_failure              =   HOST
     cps                         =   25 30
}

includedir /etc/xinetd.d
cps – connections per second (max/timeout)‫‏‬
                                                 11
 Inetd, xinetd
 Kartoteka /etc/xinetd.d zawiera zbiory

  konfiguracyjne poszczególnych programów, np.
  /etc/xinetd.d/telnet:
service telnet
{
        disable = no
        flags              =   REUSE
        socket_type        =   stream
        wait               =   no
        user               =   root
        server             =
 /usr/sbin/in.telnetd
        log_on_failure     += USERID
}
                                             12
 Inetd, xinetd
Format wpisów w zbiorach konfiguracyjnych:
atrybut operator_przypisania wartosc,
 wartosc ..


Operatory
= zwykłe przypisanie
+= dodaj wartość do istniejącej
-= usuń wartość z listy istniejących
Inetd, xinetd                                     13

Ważniejsze atrybuty:
disable - “yes” lub “no” czy usługa ma być aktywna
user (group) – z jakim UID (GID) uruchomić proces
instances – liczba równocześnie aktywnych serwerów
server – jaki program uruchomić do obsługi
server_args – parametry przekazywane do serwera
no_access – z jakich adresów IP usługa niedostępna
bind lub interface – na jakich interfejsach usługa ma
być dostępna
access_times hh:mm-hh:mm – w jakich godzinach
usługa dostępna
Inetd, xinetd                                   14

Instalacja xinetd – pakiet rpm xinetd
uruchamianie/zatrzymywanie:

 /etc/initd.d/xinetd start (stop)‫‏‬
sygnały:

SIGHUP – odczytuje konfigurację, zatrzymuje/uruchamia
zgodnie z nią serwery
SIGQUIT – zatrzymuje xinetd
SIGTERM – zatrzymuje serwery i kończy działanie
SIGUSR1 – dump wewnętrznego stanu do
/var/run/xinetd.dump
Serwer DNS                                                 15

 Komputery używają adresów IP
 Ludziom łatwiej zapamiętać nazwy, niż adresy

 Konieczna zamiana adresów IP na nazwy i odwrotnie

 Dawniej, kiedy sieci były małe, wystarczył prosty zbiór

  zawierający pary adres – nazwa (/etc/hosts)‫‏‬
 Wraz ze wzrostem sieci konieczne stało się zbudowanie

  rozproszonego systemu zamiany nazw, powstał DNS (Domain
  Name System)‫‏‬
 Pierwotnie dość prosty, obecnie opisywany przez 114 RFC,

  umożliwia szyfrowanie, dynamiczną rejestrację, delegację części
  opisu domeny odwrotnej, znaki narodowe w nazwach ...
Serwer DNS   16
 Serwer DNS                              17


Rejestr domen narodowych prowadzi IANA
...
.es – Spain
.et – Ethiopia
.eu – European Union
.fi – Finland
.fj – Fiji
....
.to – Tonga
.tp – East Timor
.tr – Turkey
.tt – Trinidad and Tobago
.tv – Tuvalu
.tw – Taiwan
....
 Serwer DNS                                                           18


Rejestr domen Top-level prowadzi IANA (obecnie 20 domen):
# The .aero domain is reserved for members of the air-transport industry
and is sponsored by Société Internationale de Télécommunications
Aéronautiques (SITA).
# The .asia domain is restricted to the Pan-Asia and Asia Pacific community
and is operated by DotAsia Organisation.
# The .biz domain is restricted to businesses and is operated by NeuLevel,
Inc.
# The .cat domain is reserved for the Catalan linguistic and cultural
community and is sponsored by Fundació puntCat
# The .com domain is operated by VeriSign Global Registry Services.
........
Serwer DNS   19
Serwer DNS   20
Serwer DNS                                                   21



 Każda domena musi mieć jeden (tylko jeden) nameserwer
  główny (primary) i co najmniej jeden zapasowy
  (secondary)‫‏‬
 Oryginalny opis domeny jest w bazie primary dns

 Secondary dns pobierają kopie opisu strefy z primary dns

 Forwarding dns – o strefy, których nie zna pyta inny

  nameserwer (bo np. nie ma połączenia z internetem)‫‏‬
 Caching dns – nie jest primary ani secondary dla żadnej

  strefy, odpowiada tym, co ma w cache
Serwer DNS                                            22

 Najpopularniejszy, nie tylko w Linuxie, Berkeley
  Internet Name Domain BIND.
 Powstał w University of California at Berkeley, do

  wersji 4.8.3 rozwijany w tym uniwersytecie, następnie
  przejęta przez DEC
 Obecnie rozwijany przez ISC (Internet Systems

  Consortium), niekomercyjną organizację
 Wersja 4 nie jest obecnie rozwijana ani zalecana, została

  zastąpiona wersją 8 (najnowsza – 8.4.7. EOL
  27.08.2007)‫‏‬
Równolegle rozwijana jest wersja 9 (najnowsza - 9.5.0)‫‏‬
Serwer DNS                                   23




BIND to:

Serwer DNS – named
Biblioteka DNS Resolver

Narzędzia do zarządzania i testowania DNS

bind-chroot
  Serwer DNS                                           24


Konfiguracja bind w /etc/named.conf
Opisuje strefy, które obsługuje, reguły logowania, serwery
dns z którymi wymienia dane o strefach, reguły dostępu,
klucze, lokalizację zbiorów z danymi itp.:
options {
        listen-on port 53 { 127.0.0.1; };
        listen-on port 53 { 192.168.0.100; };
        directory       "/var/named";
        notify no;
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file
"/var/named/data/named_mem_stats.txt";
//      allow-query     { localhost; };
};
logging {};
 Serwer DNS                                 25


key "rndc-key" {
        algorithm hmac-md5;
        secret "qQDqBoBMX94AjIdCo/B5iA==";
 };
controls {
   inet 127.0.0.1 port 953
   allow { 172.24.1.40; } keys { "rndc-key"; };
   allow { 127.0.0.1; } keys { "rndc-key"; };
 };
 Serwer DNS                    26


zone "." {
        type hint;
        file "named.ca";
};
zone "0.0.127.in-addr.arpa"{
        type master;
        file "named.local";
};
 Serwer DNS                      27

zone "0.168.192.in-addr.arpa"{
        type master;
        file "P/168.192.rev";
       };
zone "24.172.in-addr.arpa"{
        type master;
        file "P/24.172.rev";
       };
zone "huta.com.pl"{
        type slave;
        file "S/huta";
        masters{
               194.204.159.1;
               };
      };
 Serwer DNS                                                 28

Zbiory z opisem stref zawierają rekordy RR (resource record) w
postaci:

<name>      [<ttl>]      [<class>]       <type>      <data>

Poszczególne pola oddzielone przez spacje lub <tab>
name – nazwa domeny. Jeśli pusta, to taka, jak w poprzednim
rekordzie
ttl – Time To Live. Jak długo inne serwery mogą odpowiadać
rekordem z cache. Jeśli puste, to ttl z SOA
class – IN – internet (DNS był projektowany jako niezależny
od protokołu)‫‏‬
type – typ rekordu RR
data – dane zależne od typu RR
 Serwer DNS                                        29




Linie dłuższe niż jeden wiersz umieszczamy w ()‫‏‬
* - wildcard character
; - początek komentarza
@- domyślna domena
 Serwer DNS                                30

SOA   (Start Of Authority)‫‏‬

<name> [<ttl>] [<class>] SOA <origin> <person>
(
                      <serial>
                      <refresh>
                      <retry>
                      <expire>
                      <minimum> )‫‏‬
@ IN SOA dns.pl.    hostmaster.dns.pl.(
             2005022502 ; serial
                  10800 ; refresh
                   3600 ; retry
                3600000 ; expire
                   1800 ; default_ttl
                        )‫‏‬
 Serwer DNS                                              31

class – IN- internet (HS -hesiod, CH – Chaos – historyczne
  protokoły MIT)‫‏‬
origin - Primary nameserver domeny. Zakończony kropką.
person – Adres e-mail administratora, znak @ zastąpiony
  przez kropkę
serial – numer generacji zbioru
refresh – czas po jakim secondary sprawdzi aktualność baz
retry – czas co jaki secondary ponawia próby połączenia z
  primary
expire - czas ważności danych w cache secondary
minimum -domyślne TTL dla BIND 4 i 8, czas
  przechowywania w pamięci negatywnej odpowiedzi
  NAME ERROR = NXDOMAIN dla BIND 9
 Serwer DNS                                        32

NS   (Name Server)‫‏‬

<domain> [<ttl>] [<class>] NS <server>


COM.     NS      SRI-NIC.ARPA.
         NS      C.ISI.EDU.

Kolejność wpisania rekordów NS nie ma znaczenia.
RFC1033 mówi, że nie ma gwarancji zachowania
kolejności RR. Serwery primary i secondary będą
równoprawne.
    Serwer DNS                                      33

A    (Address)‫‏‬

<host>     [<ttl>] [<class>]     A    <address>


SRI-NIC.ARPA.               A        10.0.0.51


Dla każdego adresu powinien istnieć jeden adres A
 Serwer DNS                                    34



CNAME ( Canonical Name)‫‏‬

<nickname>    [<ttl>] [<class>]    CNAME   <host>

NIC.ARPA.        CNAME     SRI-NIC.ARPA.
 Serwer DNS                                  35



HINFO (Host Info)‫‏‬

<host> [<ttl>] [<class>] HINFO <hardw>   <softw>



SRI-NIC.ARPA.           HINFO   DEC-2060 TOPS20
UCBARPA.Berkeley.EDU.   HINFO   VAX-11/780 UNIX
 Serwer DNS                                        36



MX (Mail Exchanger)‫‏‬

<name> [<ttl>] [<class>] MX <preference> <host>

Preference   to priorytet MX, 0 – najwyższy

BAZ.FOO.COM.     MX       10        PO1.FOO.COM.
                 MX       20        PO2.FOO.COM.
                 MX       30        PO3.FOO.COM.
 Serwer DNS                                         37



PTR

<special-name>     [<ttl>] [<class>] PTR <name>
Używane głównie w bazach opisujących domenę
in-addr.arpa. Powinny wskazywać oficjalne nazwy, a nie
aliasy

51.0.0.10.IN-ADDR.ARPA.      PTR    SRI-NIC.ARPA.
73.0.0.26.IN-ADDR.ARPA.      PTR    SRI-NIC.ARPA.
 Serwer DNS                                        38

rndc   – program do zarządzania serwerem

Komunikuje się przez tcp, wysyłając polecenia podpisane
elektronicznie (HMAC-MD5)‫‏‬

Klucz generowany programem rndc-confgen
(dawniej rndc-conf):
rndc-confgen -a

tworzy zbiór /etc/rndc.key. Klucz można przepisać do
/etc/named/conf i /etc/rndc.conf
 Serwer DNS                                         39

Polecenia rndc:
reload – przeładuj zbiory konfiguracyjne i strefy
reload strefa – przeładuj strefę
stats – zapisz statystyki do zbioru
querylog – włącz/wyłącz logowanie pytań
dumpdb – zapisz zawartość cache do zbioru
named_dump.db
trace – podnieś o jeden poziom debugging
notrace – wyłącz debugging
flush – wyczyść cache
status – wyświetl status serwera
  Serwer DNS                                     40

Instalacja bind – pakiety rpm:

bind – serwer
bind-libs – biblioteki
bind-utils – narzędzia:
    host, nslookup, dig – do odpytywania dns
    nsupdate – do dynamicznego dopisywania RR
bind-chroot – chroot dla bind
bind-sdb – zewnętrzna baza danych (LDAP, PostgreSQL
itp.)‫‏‬
Uruchamianie - /etc/rc.d/init.d/named start
    Serwer DHCP                                               41



 DHCP - (Dynamic Host Configuration Protocol) – protokół
  dostarczania parametrów konfiguracyjnych komputerom w sieci
  IP
 Trzy sposoby przydzielania adresów:

automatyczny – przydziela stały adres IP
dynamiczny – przydziela adres na skończony okres czasu
ręczny – przydziela adres zdefiniowany przez administratora
 Przed przydzieleniem adresu serwer sprawdza, czy nie jest użyty,

  wysyła ping
 Serwer DHCP                                        42



DHCPDISCOVER   – broadcast (MAC) klienta, wyszukanie
  serwerów
DHCPOFFER – odpowiedź serwera z propozycją adresu –
  unicast, jeśli to możliwe, albo broadcast (adres
  broadcast klienta lub 255.255.255.255)‫‏‬
DHCPREQUEST – broadcast klienta (zawiera adres serwera,
  którego oferta została wybrana)‫‏‬
DHCPACK (DHCPNAK) – potwierdzenie (brak potwierdzenia)
  przez serwer przydzielenia adresu.
DHCPRELEASE – zwolnienie adresu przez klienta
 Serwer DHCP                                   43



Typowa wymiana ramek:
DHCPDISCOVER from 00:0b:6a:1d:bc:0b via eth0

DHCPOFFER on 172.24.3.213 to 00:0b:6a:1d:bc:0b
via eth0

DHCPREQUEST for 172.24.3.213 (192.168.0.40)
from 00:0b:6a:1d:bc:0b via eth0

DHCPACK on 172.24.3.213 to 00:0b:6a:1d:bc:0b
via eth0
    Serwer DHCP                                    44


ISP DHCPD

Konfiguracja w /etc/dhcpd.conf
Zmiany w zbiorze konfiguracyjnym wymagają

zatrzymania i uruchomienia serwera
Przydzielone adresy w /var/lib/dhcp/dhcpd.leases

Nowe przydziały dopisywane są na końcu

dhcpd.leases
Okresowo dhcpd tworzy nowy zbiór dhcpd.leases z
zawartości cache, zmieniając nazwę starego na
dhcpd.leases~
 Serwer DHCP                                 45

authoritative;
ddns-update-style none;
shared-network akuku {

subnet 172.24.0.0 netmask 255.255.0.0 {
  default-lease-time 72000;
  max-lease-time 144000;
  option subnet-mask 255.255.0.0;
  option domain-name-servers 172.30.0.200;
  option domain-name-servers 172.24.1.40;
  option routers 172.24.1.250;
  option broadcast-address 172.24.255.255;
  range 172.24.2.1 172.24.2.254;
  option domain-name "akuku.org";
                                         }
                           }
 Serwer DHCP                                      46

group {
 use-host-decl-names on;

host pc001 {
         hardware ethernet 0:b:6a:35:6f:79;
         fixed-address 172.24.3.1;
             }
host pc002 {
         hardware ethernet 0:b:6a:4b:a8:98;
         fixed-address 172.24.3.2;
         option routers 172.24.1.249;
             }
      }
use-host-decl-names on – przypisz użytkownikowi
nazwę hosta, równoważne:
option host-name "pc002";
 Serwer DHCP                                         47

W dhcpd.leases zapisywane są informacje w formie:
lease 172.24.2.250 {
  starts 3 2004/06/30 11:24:39;
  ends 4 2004/07/01 07:24:39;
  tstp 4 2004/07/01 07:24:39;
  binding state free;
  hardware ethernet 00:04:e2:23:7b:8d;
  uid "\001\000\004\342#{\215";
  client-hostname "kadry";
}
tstp – czas wygaśnięcia dzierżawy wysłany do klienta
uid – opcjonalny identyfikator wysłany przez klienta –
001 to ethernet, dalej adres MAC
    Serwer Telnet                                           48
   Implementuje protokół TELNET opisany w 30 RFC,
    podstawowe - RFC854
   Korzysta z protokołu TCP, domyślny port 23
   Architektura klient-serwer
   Klient i serwer mogą negocjować opcje połączenia
   Dla serwera klient jest wirtualnym terminalem sieciowym
    (Network Virtual Terminal, NVT) posiadającym klawiaturę i
    ekran. Rodzaj terminala jest nieistotny
   Serwer telnet każdemu połączeniu przydziela pseudoterminal
    /dev/pts/n (urządzenia te są dynamicznie tworzone i
    usuwane) i uruchamia proces login, przekazując mu komunikację
    z NVT
    Serwer Telnet                                         49




   W Linuxie serwer telnet uruchamiany jest przez xinetd,
    /usr/sbin/in.telnetd
    Komunikat powitalny w /etc/issue.net
   Kontrola dostępu poprzez tcpd z konfiguracją w
    /etc/hosts.allow, /etc/hosts.deny i xinetd z
    konfiguracją w /etc/xinetd.d/telnet
   Może obsługiwać autentyfikację, choć jest to rzadko
    używane
    Serwer FTP                                                  50

   Obsługuje protokół FTP (File Transport Protocol) opisany w
    RFC959 i siedmiu innych
   Przeznaczony do przesyłania plików pomiędzy komputerami
   Połączenie sterujące (control connection) i połączenie do
    przesyłania danych (data connection)‫‏‬
   Control connection służy do przesyłania poleceń, wykorzystuje
    telnet
   Korzysta z protokołu TCP, control connection z portu 21, data
    connection z portu 20
   Data connection otwierane jest przez serwer do portu 20 klienta.
     Serwer FTP                                                51

   W linuxie serwer ftp to vsftpd
   Instalowany z pakietu vsftpd
   Może być uruchamiany jako samodzielny daemon (domyślnie)
    albo z xinetd
   Konfiguracja w zbiorze /etc/vsftpd/vsftpd.conf
   W zbiorze /etc/vsftpd/ftpusers lista użytkowników,
    którym nie wolno korzystać z ftp (używane przez pam)‫‏‬
   W zbiorze /etc/vsftpd/user_list lista użytkowników,
    którym wolno/nie wolno korzystać z ftp, zależnie od ustawienia
    userlist_deny w vsftpd.conf
   Log w /var/log/xferlog lub vsftpd.log (wybór w
    vsftpd.conf). Można przełączyć na syslog
    Serwer FTP                 52

   Przykładowy vsftpd.conf:
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES

pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
    Serwer TFTP                                      53




   TFTP – Trivial File Transfer Protocol, RFC1350
   Używany do zdalnego bootowania, zapisywania
    konfiguracji
   Nie wymaga autentyfikacji
   Korzysta z UDP
    Serwer TFTP                                         54

 Instalowany z pakietu rpm tftp-server
 Uruchamiany z xinetd (/etc/xinetd.d/tftp) lub jako

  samodzielny serwer: in.tftpd -l
 Domyślnie pozwala czytać tylko zbiory z prawem odczytu dla

  wszystkich. Opcja -p pozwala na odczyt zbiorów z prawem do
  odczytu dla UID z jakim działa serwer
 Domyślnie pozwala pisać do istniejących zbiorów z prawem

  zapisu dla wszystkich. Prawo tworzenia nowych zbiorów –
  opcja -c
Powinien działać z UID użytkownika o niskich przywilejach
  (domyślnie 'nobody”. UID można zmienić w
  /etc/xinetd.d/tftp lub opcją -u
    Serwer SSH                                        55

   Daemon sshd i klient ssh zapewniają szyfrowane rlogin
    i rsh.
   Uruchamiany z /etc/rc.d/init.d/sshd
   Może być uruchamiany z xinetd, ale przy każdym
    połączeniu będzie opóźnienie spowodowane
    generowaniem klucza
   Dla każdego połączenia uruchamia nowy proces sshd,
    który obsługuje wymianę kluczy, szyfrowanie,
    autentyfikację, wymianę danych i wykonywanie
    poleceń
   Obsługuje SSH v1 i SSH v2.
    Serwer SSH                                       56


 Instalowany z pakietów rpm:
openssh – protokół ssh
openssh-server – serwer
openssh-clients – programy klienckie – scp, slogin, ssh,
  sftp
 Konfiguracja – opcje przy uruchamianiu (mają wyższy

  priorytet), lub zbiór /etc/ssh/sshd_config
 Konfiguracja klienta to opcje przy uruchomieniu, zbiór

  $HOME/ssh/config i /etc/ssh/ssh_config
 Domyślnie słucha na porcie 22
 Serwer SSH                                         57




Ważniejsze opcje przy uruchomieniu
-d – włącz debugging (kolejne d – podnieś poziom,
 maksymalnie 3)‫‏‬
-e – wyświetlaj na ekran zamiast do log
-i – uruchamiaj się z xinetd
-p – słuchaj na innym porcie niż 22
-D – działaj w foreground
   Serwer SMTP sendmail                              58

 Sendmail jest serwerem poczty protokołu smtp.

  Odpowiada za przyjmowanie i wysyłanie poczty (MTA
  – Mail Transfer Agent)‫‏‬
 Pierwsza wersja powstała w 1997 roku (BSD 4.1,

  program delivermail)‫‏‬
 Nie służy do tworzenia wiadomości, służą do tego MUA

  (Mail User Agent) (mail, pine)
 Odebrane przesyłki dostarcza do lokalnych skrzynek

  pocztowych. Dostarczanie poczty do programów
  klienckich w innych komputerach zapewniają daemony
  pop/imap (dovecot)‫‏‬
   Serwer SMTP sendmail                 59

 Instalacja – rpm:

sendmail
sendmail-cf
sendmail-doc
Dodatkowo – m4 (macro preprocesor)‫‏‬
 Obecnie wersja 8.13.4

 Zbiory konfiguracyjne, dokumentacja

/etc/aliases
/etc/mail/
/usr/share/sendmail-cf
/usr/share/doc/sendmail
    Serwer SMTP sendmail                         60


 Właściwy daemon słucha na porcie 25.
 Poczta do wysłania umieszczana w kolejce w

    /var/spool/mqueue
   Odbierana poczta dostarczana do zbiorów w
    /var/spool/mail
 Zbiór konfiguracyjny /etc/mail/sendmail.cf
 Zbiór sendmail.cf tworzony ze zbioru sendmail.mc

  poleceniem make -C /etc/mail
    Serwer SMTP sendmail                            61


   Program MUA, np. pine aby wysłać pocztę uruchamia
    /usr/sbin/sendmail
 Tak uruchomiony sendmail działa jako
  użytkownik:grupa smmsp:smmsp
 Odbiera pocztę, umieszcza ją w kolejce w kartotece

  /var/spool/clientmqueue i kontaktuje się z serwerem
  słuchającym na porcie 25 localhost
 Używa konfiguracji w /etc/mail/submit.cf,

  tworzonej na podstawie /etc/mail/submit.mc
 Serwer SMTP sendmail                               62



sendmail.mc
 Komentarze zaczynające się od # zostaną przeniesione

  przez m4 do sendmail.cf jako komentarze.
 Komentarze które mają pozostać tylko w sendmail.mc:

divert(-1) komentarz divert(0) pomija blok tekstu
dnl komentarz - pomija tekst do znaku nowej linii
  włącznie
    Serwer SMTP sendmail                                 63

 Wzorcowy sendmail.mc w dystrybucjach RedHat daje po
  kompilacji typową poprawną konfigurację.
 Jeśli wymiana poczty z internetem wymaga serwera

  pośredniczącego, należy odkomentować i uzupełnić:
dnl define(`SMART_HOST',`smtp.your.provider')‫‏‬
 należy uzupełnić interfejsy, na których sendmail ma słuchać:

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,
  Name=MTA')dnl
 Zabezpieczenie przed spamem:

FEATURE(`dnsbl')dnl – sprawdzaj nadawcę w Realtime
  Blackhole List
dnl FEATURE(`accept_unresolvable_domains')dnl
 Serwer SMTP sendmail                             64

Masquerading:

MASQUERADE_AS(`firma.com.pl')dnl

Nie tylko nagłówek maila, ale też skąd wysłano:
FEATURE(masquerade_envelope)dnl

Masquerading domen podrzędnych:
FEATURE(masquerade_entire_domain)dnl

Które domeny podlegają masquerading:
MASQUERADE_DOMAIN(biuro.lokalnie)dnl
 Serwer SMTP sendmail                                   65

Relaying:
FEATURE(access_db) zezwala lub zabrania dostępu z
 wybranych domen (hostów) zdefiniowanych w
 /etc/mail/access:

 From:cyberspammer.com    ERROR:"550 We don't accept
 mail                                      from
 spammers"
 From:okay.cyberspammer.com   OK
 Connect:sendmail.org     RELAY
 To:sendmail.org          RELAY
 Connect:128.32           RELAY


Czytana jest access.db, trzeba ją utworzyć poleceniem
 make all
 procmail                                             66

Po nadejściu maila uruchamiany jest procmail
Czyta list z stdin aż do EOF, oddziela nagłówek od treści
 i szuka zbioru $HOME/.procmailrc
Jeśli go nie znajdzie, przesyła list do standardowej
 skrzynki, jeśli znajdzie, wykonuje reguły w nim zawarte
Przed wykonaniem reguł w $HOME/.procmailrc
 wykonuje reguły z /etc/procmailrc
/etc/procmailrc jest wykonywane z prawami root!
 Procmail - .procmailrc                             67




Dwa rodzaje reguł, wykonywanych sekwencyjnie:
 reguły dostarczania poczty – po ich napotkaniu

  wykonywanie .procmailrc się kończy
 reguły nie związane z dostarczaniem poczty – są

  wykonywane i wykonywanie .procmailrc jest
  kontynuowane
Akceptuje zmienne środowiskowe, można tworzyć
  własne
  Procmail - .procmailrc                             68




Komentarze – linie zaczynające się od #
reguły – linie zaczynające się od : , mają format:

:0 [flagi]
<zero lub więcej warunków, każdy w
 osobnej linii>
<jedna linia polecenia>
  Procmail - .procmailrc                             69




Flagi:
H – przeszukaj nagłówek
B- przeszukaj treść
D – rozróżniaj duże i małe litery (domyślnie nie są
 rozróżniane)‫‏‬
c – utwórz kopię (carbon copy), w regułach dostarczania
 poczty
  Procmail - .procmailrc                               70




Linia polecenia
! forward na wskazany adres
| uruchom wskazany program
linie ujęte w { } (po nawiasie co najmniej jedna spacja,
  tabulacja lub nowa linia) odnoszą się do poprzedniego
  warunku
  Procmail - .procmailrc                              71




Prześlij listy od marka dotyczące kompilatorów do piotra,
 zachowaj kopię w folderze kompilatory:
        :0
        * ^From.*piotr
        * ^Subject:.*kompilatory
           {
             :0 c
             !piotr@gdziestam.pl

                :0
                kompilatory
            }
Procmail - .procmailrc                       72


# wyslij kopie na SMS
:0 c
* ? test -f ${MYEMAIL} && \
    (${FORMAIL} -zxTo: -zxCc: |\
    fgrep -i -f ${MYEMAIL})‫‏‬
| formail -k -X From: -X Subject: |
  /home/kempny/sms/mail2s
formail – program do obróbki maili.
-k zachowaj treść, -X wytnij wskazane pole
  Procmail - .procmailrc                              73
#! /bin/sh
DIR=/home/kempny/sms/
cat - >${DIR}"mail.tmp"

if (grep "Lotto"   ${DIR}"mail.tmp") then

   (sleep 3; cat ${DIR}"mail.tmp" | ${DIR}"lo2sms.duzy")
 | telnet localhost 25 >/
dev/null 2>&1
   elif (grep From: ${DIR}mail.tmp |grep "\.pl") then
      ${DIR}"mail2sms"
   fi
else
   if (grep From: ${DIR}mail.tmp |grep "\.se") then
      ${DIR}"mail2sms"
   fi
fi
rm ${DIR}"mail.tmp"
  Procmail - .procmailrc   74




man procmail
man procmailrc
man procmailex
 Serwer samba                                   75


Serwer plików i drukarek w sieciach Microsoft

Instalacja – rpm:
samba-common – wspólne pliki
samba – serwer
samba-client – klient samby

Dokumentacja – man i /usr/share/doc/sambaxxx
 Serwer samba                                      76


smbd – serwer plików i drukarek, konfiguracja w
 /etc/samba/smb.conf, TCP, port 139

nmbd – serwer nazw NetBios i browser

testparm i testprns – programy do sprawdzania
 poprawności smb.conf. Testparm sprawdza poprawność
 smb.conf, testprns sprawdza w /etc/printcap istnienie
 drukarki.
 Serwer samba                                           77

smb.conf
3 sekcje, [global], [printers] i [home]
workgroup = projekt WSJ
hosts allow = 172.24.3. 192.168.0. 127.
security = user     (model workgroup, dla domeny –
 server)‫‏‬
password server = My_PDC_Name [My_BDC_Name]
 [My_Next_BDC_Name]
password level = 8      (Ile ważnych znaków w haśle)‫‏‬
username level = 8
encrypt passwords = yes    (czy negocjować
 szyfrowane haslo – W98 i WNT SP3 używają tylko
 szyfrowanego)‫‏‬
 Serwer samba                                  78


smb.conf
smb passwd file = /etc/samba/smbpasswd
unix password sync = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n
 *Retype*new*password* %n\n *passwd:*all*aut
  hentication*tokens*updated*successfully*
 Serwer samba                                       79


smb.conf

username map = /etc/samba/smbusers         (mapowanie
nazw użytkowników samby i unix)‫‏‬
interfaces = 192.168.12.2/24 192.168.13.2/24
(jeśli więcej niż jeden interfejs sieciowy)‫‏‬
 Serwer samba                                   80


smb.conf
Samba może być master browserem w sieci:
;   local master = no (w lokalnej sieci)‫‏‬
;   os level = 33 (priorytet w elekcji master
 browsera)‫‏‬
;   domain master = yes (czy ma być Domain Master
 Browser, obsługiwać dane z różnych podsieci)
;   preferred master = yes (czy przy starcie
 wymuszać elekcję)‫‏‬
 Serwer samba                                     81


smb.conf
;wins support = yes   (czy nmbd ma być serwerem
wins)‫‏‬
;wins server = w.x.y.z   (nmbd ma być klientem wins)‫‏‬
 Serwer samba                                   82


smb.conf
[homes]
   comment = Home Directories
   browseable = no   (niewidoczne w otoczeniu
sieciowym)‫‏‬
   writable = yes
   valid users = %S
   create mode = 0664
   directory mode = 0775
   map to guest = bad user
 Serwer samba                                     83


smb.conf

create mask = 0644
force create mode = 0644
directory mask = 0755
force directory mode = 0755

create (directory) mask –   bitowe AND z prawami z
dos, potem bitowe OR z force create (directory) mode
 Serwer samba                              84


smb.conf

[WWSJ]
   comment = Wspolne zbiory projektu WSJ
   path = /home/wsj
   browseable = yes
   public = no (synonim guest ok)‫‏‬
   writable = yes
   write list = ania kasia tomek
   valid users = ania kasia tomek marcin
   create mask = 0777
   directory mask = 0777
 Serwer samba                                   85


Samba 3.x trzyma dane użytkowników w LDAP lub
  tdbsam, starsze w /etc/samba/smbpasswd.
Kolejne pola oddzielone znakiem ':'
 nazwa użytkownika

 UID

 LANMAN hash

 NT hash

 flagi konta

 data ostatniej zmiany
 Serwer samba                                      86

Program do zarządzania użytkownikami – smbpasswd
-a - dodaj użytkownika
-x - usuń użytkownika
-d - zablokuj (-e – odblokuj użytkownika)‫‏‬
-m - dodaj konto maszyny
Bez opcji – zmienia hasło użytkownika

Użytkownicy w smbpasswd muszą mieć swoich
 odpowiedników w systemie unix. Mapowanie w zbiorze
 /etc/samba/smbusers, np:
nobody = guest pcguest smbguest
 Serwer samba                                 87

pdbedit – zarządzanie bazą użytkowników
Modularna konstrukcja, obsługuje smbpasswd,
     ldap, nis+ and tdb
L – wyświetl użytkowników
v- wyświetl więcej informacji
a – dodaj użytkownika
x – usuń użytkownika
Serwer samba                    88




         /usr/share/doc/samba
 Serwer WWW Apache                                 89

Apache – od 1996 roku najpopularniejszy serwer HTTP,
  w lutym 2005 roku 68% serwerów w oparciu o niego
 Najnowsza wersja – 2.2.8

 Ważniejsze cechy:

 Protokoły wbudowane w serwer, można dodać np.

  moduły POP3 lub ftp
 Filtry – możliwość szyfrowania, kompresji, szukania

  wirusów itp.
 Działa w środowisku Unix i Windows

 Autentyfikacja, kontrola dostępu, SSL/TLS
    Serwer WWW Apache                                90


 Load balancing – obsługa przez kilka fizycznie różnych
  serwerów
 CGI (Common Gateway Interface) – perl, PHP, Python,

  Tcl
 Wirtualne hosty
 Serwer WWW Apache                                91


Instalacja – pakiet rpm httpd
Konfiguracja w zbiorze /etc/httpd/conf/httpd.conf
ServerRoot "/etc/httpd" miejsce, gdzie znajduje się
 konfiguracja i logi
Listen 12.34.56.78:80 Na jakim adresie IP i porcie ma
 słuchać
User apache
Group apache
DocumentRoot "/var/www/html"
 Serwer WWW Apache                         92


<IfModule mod_userdir.c>

   # UserDir disable

   # To enable requests to /~user/ to serve
the user's public_html
   # directory, remove the "UserDir disable"
line above, and uncomment
   # the following line instead:

   UserDir public_html

</IfModule>
 Serwer WWW Apache                             93




AddLanguage pl .po (nie pl .pl)‫‏‬

AddDefaultCharset UTF-8

AddCharset ISO-8859-2 .iso8859-2   .latin2 .cen
AddCharset UTF-8       .utf8
AddCharset WINDOWS-1251 .cp-1251   .win-1251
 Serwer WWW Apache                                    94


Wirtualne hosty:
 Oparte o różne adresy IP, serwer wybierany jest po

  adresie (fizyczny serwer musi mieć kilka adresów IP)‫‏‬
 Oparte o nazwę, serwer wybierany jest po nazwie w

  nagłówku HTTP.
 W obu przypadkach DNS wskazuje dla różnych

  serwerów wirtualnych ten sam serwer fizyczny
 Wygodniejsze i prostsze są serwery oparte o nazwę.

 Serwer musi być w oparciu o IP, jeśli obsługuje stare

  przeglądarki (HTTP/1.0) lub SSL
 Serwer WWW Apache                          95

Oparty o nazwę
NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.kominiarz.pl
ServerAlias www.kominiarz.com.pl *.kominiarz.pl
DocumentRoot /var/www/kominiarz
</VirtualHost>

<VirtualHost *:80>
ServerName www.ania.pl
DocumentRoot /var/www/kartoteka_ani
</VirtualHost>
 Serwer WWW Apache                       96

Oparty o adres IP
<VirtualHost www.akuku.com>
DocumentRoot /home/akuku/www
ServerName www.akuku.com
ErrorLog /var/log/akuku/error_log
TransferLog /var/log/akuku/access_log
</VirtualHost>

<VirtualHost www.mojpies.org>
ServerAdmin webmaster@mail.mojpies.org
DocumentRoot /home/tomek/www
ServerName www.mojpies.org
ErrorLog /var/log/tomek/error_log
TransferLog /var/log/tomek/access_log
</VirtualHost>
    Serwer Squid                                     97




 Squid – wydajny serwer proxy, obsługujący obiekty ftp,
  gopher, HTTP, DNS
 Przechowuje ważniejsze obiekty w buforach w RAM,

  pozostałe na dyskach
 Obsługuje SSL, posiada kontrolę dostępu, logowanie

  pytań
 Umożliwia stworzenie hierarchii serwerów

 Obsługuje pytania jednym procesem
    Serwer Squid                               98




 Instalacja z pakietu rpm squid
 Zbiór konfiguracyjny /etc/squid/squid.conf
 Serwer Squid                                   99



http_port 3128
icp_port 3130
htcp_port 4827

icp i htcp – protokoły używane do komunikacji
pomiędzy serwerami cache
  Serwer Squid                                         100

cache_mem 8 MB – wielkość     cache w RAM
cache_swap_low 90
cache_swap_high 95
(0-100%) - jeśli zajętość cache osiągnie low, rozpocznie
 się usuwanie wpisów. Po osiągnięciu high usuwanie
 stanie się bardziej agresywne
maximum_object_size 4096 KB - obiekty większe nie
 będą zapisywane w cache
cache_dir ufs /var/spool/squid 1000 16 256
Squid utworzy cache w kartotece /var/squid. Będzie
 zawierała 16 kartotek, z których każda będzie miała 256
 podkartotek. Wielkość cache nie przekroczy 1000 MB
  Serwer Squid                                         101

acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 444 563
acl dostep src "/etc/squid/dostep"

http_access allow localhost
http_access allow dostep

Jeśli żadna linia http_access nie pasuje, domyślną akcją
 jest przeciwna, niż w ostatniej linii. Np. jeśli ostatnią
 akcją było allow, przyjęte zostanie deny.
 Serwer Squid                                        102

Program cachemgr.cgi służy do wyświetlania statystyk
 serwera. Znajduje się w kartotece /usr/lib/squid.
Należy go skopiować do kartoteki cgi-bin serwera httpd.

Statystyki będą dostępne po wybraniu URL
http://serwer_www/cgi-bin/cachemgr.cgi
i podaniu adresu serwera squid, portu, nazwy
  użytkownika i hasła.
Aby dostęp był chroniony hasłem, należy go umieścić w
  squid.conf:
cachemgr_passwd my-secret-pass all
  Lpd, cups                                                     103

Lpd (Line Printer Daemon) obsługuje zadania drukowania.
 Po uruchomieniu czyta zbiór konfiguracyjny

  /etc/printcap i drukuje zadania które zostały po
  ewentualnym załamaniu systemu
 zadania do drukowania umieszcza w kolejkach, różnych dla

  różnych drukarek
 Akceptuje zadania z komputerów wymienionych w

  /etc/hosts.equiv lub /etc/hosts.lpd
 Jeśli w opisie drukarki w printcap wystąpi opcja 'rs' akceptuje

  tylko zadania drukowania użytkowników posiadających konta
  na serwerze z drukarką.
    Lpd, cups                                   104



   Konfiguracja lpd w zbiorze /etc/lpd.conf.
   Zasady dostępu do usług lpd w zbiorze
    /etc/lpd.perms
    Lpd, cups                                          105

Format pliku /etc/printcap jest podobny do
 /etc/termcap.

 Spacje i znaki tabulacji na początku wiersza są
  ignorowane
 Znak # na początku wiersza oznacza komentarz

 Linie nie zaczynające się od : lub | oznaczają początek

  definicji drukarki
 Znak \ na końcu linii oznacza jej kontynuację (dla

  kompatybilności ze starszymi wersjami)‫‏‬
 Lpd, cups                                            106

Definicja drukarki rozpoczyna się od jej nazwy, po której
mogą wystąpić jej nazwy alternatywne, następnie słowa
kluczowe i wartości oddzielone znakiem ':'
dw|:\
:lp=/dev/lp0:\
:sd=/var/spool/lpd/dw:\
:mx#0:

dw1|xerox|Xerox:\
:mx#0:
:lp=:rm=Xerox:rp=xerox:
sd=/var/spool/lpd/xerox:
 Lpd, cups                                       107

lp=/dev/lp0  drukarka lokalna
sd=/var/spool/lpd/dw położenie kartoteki spoolingu
mx#0 maksymalny rozmiar zadania do wydruku,
      0 – bez ograniczeń
rm=172.24.1.20 adres (nazwa) innego serwera lpd
rp=xerox nazwa drukarki na innym serwerze
    Lpd, cups                                        108

lpq – program do wyświetlania kolejek drukarek.

   Bez parametrów – wyświetli kolejkę domyślnej drukarki
   lpq -P drukarka (all) wyświetli kolejkę wskazanej
    drukarki (wszystkich)‫‏‬
 Lpd, cups                                              109

lpc – (Line Printer Control program) program do zarządzania
 drukarkami i kolejkami.
disable printer[@host] | all zatrzymaj kolejkę
enable printer[@host] | all uruchom kolejkę
start printer[@host] | all uruchom drukowanie
stop printer[@host] | all zatrzymaj drukowanie
down printer[@host] | all zatrzymaj drukowanie i
 kolejkę
down printer[@host] | all zatrzymaj drukowanie i
 kolejkę
status printer[@host] | all wyświetl stan drukerek i
 kolejek
 Lpd, cups                                           110


CUPS – Common Unix Printing System
 Używa IPP (Internet Printing Protocol) do zarządzania

  zadaniami i kolejkami drukowania
 Umożliwia korzystanie z protokołów LPD, SMB

  (Server Message Block) i AppSocket (JetDirect)‫‏‬
 Umożliwia wyszukiwanie drukarek sieciowych

 Umożliwia drukowanie na drukarkach PostScript i

  innych
    Lpd, cups                                      111




 Zadania drukowania przyjmuje daemon cupsd
 Konfiguracja daemona w zbiorze

    /etc/cupsd/cupsd.conf
 Do tworzenia konfiguracji cupsd i drukarek służą
  wyspecjalizowane narzędzia, w KDE jest to KDEPrint
 Konfiguracja i zarządzanie przez WWW:

  http://host-z-cups.cos.tam.pl:631
  Lpd, cups                                     112


Przykładowy zbiór konfiguracyjny drukarki
<DefaultPrinter lexmark_siec>
Info LEXMARK Optra Color 1275
Location
DeviceURI
 smb://kempny:h4321@STANET/KAKTUS/Lexmark_PCL
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>
  MySQL                                                    113


MYSQL – relacyjna baza danych
 Udostępniana z licencją Open Source

 Szybka, niezawodna i prosta w użyciu

 Architektura klient – serwer

 Interfejs C, C++, Eiffel, Java, Perl, PHP, Python, Tcl

 Działa na wielu platformach

 Wielowątkowa, pracuje na maszynach

  wieloprocesorowych
 Obecnie wersja 5.0.51
    MySQL                                         114


Instalacja – pakiety:
mysql
mysql-server

 Konfiguracja w zbiorze /etc/my.cnf
 Domyślne położenie baz danych /var/lib/mysql

 Dostęp do baz danych, tablic, kolumn, listę i

  uprawnienia użytkowników zawiera baza danych mysql,
  znajduje się w /var/lib/mysql/mysql
    MySQL                                               115


mysql – dostęp do bazy z linii komend
typowe użycie:
mysql [-h host] -u user -p [password]

 Podanie hasła jest opcjonalne, jeśli go nie podamy,
  mysql zapyta o niego
 Umożliwia zarządzanie bazami w języku SQL
  MySQL                                        116


Przykładowa sesja:
mysql> SHOW DATABASES;
+----------+
| Database |
+----------+
| mysql    |
+----------+
mysql> CREATE DATABASE test;
mysql> USE test
Database changed
mysql> CREATE TABLE osoby (imie VARCHAR(20),
 nazwisko VARCHAR(20), urodzony DATE);
 MySQL                    117



mysql> SHOW TABLES;
+---------------------+
| Tables in test      |
+---------------------+
|osoby                |
+---------------------+
mysql> QUIT
Bye

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:13
posted:8/28/2011
language:Polish
pages:117