Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałIdzi Saja Został zmieniony 11 lat temu
1
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
kontroler domeny NT, Active Directory
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
Do zaadresowania komputera służy adres IP
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
Porty < 1024 zarezerwowane dla uprzywilejowanych procesów
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
Aby połączyć się z usługą trzeba znać adres IP hosta i port procesu.
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) Porty według IANA: Well Known Ports 0 – 1023 Registered Ports 1024 – 49151 Dynamic and/or Private Ports
6
6 Inetd, xinetd Dla Well Known Ports i Registered Ports IANA przydzieliła usługom standardowe porty, na przykład: telnet /tcp Telnet telnet /udp Telnet sscan /tcp SONY scanning protocol sscan /udp SONY scanning protocol
7
Przykładowy fragment: ftp-data 20/tcp
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 /tcp domain 53/tcp nameserver domain 53/udp nameserver
8
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
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 *:ssh *:* LISTEN 635/sshd tcp *:telnet *:* LISTEN 647/xinetd
10
Inetd jest starszą, prostszą wersją 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
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
Format wpisów w zbiorach konfiguracyjnych:
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
13
Inetd, xinetd Ważniejsze atrybuty:
13 Inetd, xinetd 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
14
Instalacja xinetd – pakiet rpm xinetd uruchamianie/zatrzymywanie:
14 Inetd, xinetd 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
15
Serwer DNS Komputery używają adresów IP
15 Serwer DNS 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 ...
16
16 Serwer DNS
17
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
18
18 Serwer DNS 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.
19
19 Serwer DNS
20
20 Serwer DNS
21
21 Serwer DNS 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
22
Równolegle rozwijana jest wersja 9 (najnowsza - 9.5.0)
22 Serwer DNS Najpopularniejszy, nie tylko w Linuxie, Berkeley Internet Name Domain BIND. Powstał w University of California at Berkeley, do wersji 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 – EOL ) Równolegle rozwijana jest wersja 9 (najnowsza )
23
Biblioteka DNS Resolver Narzędzia do zarządzania i testowania DNS
23 Serwer DNS BIND to: Serwer DNS – named Biblioteka DNS Resolver Narzędzia do zarządzania i testowania DNS bind-chroot
24
Konfiguracja bind w /etc/named.conf
24 Serwer DNS 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 { ; }; listen-on port 53 { ; }; 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 {};
25
Serwer DNS key "rndc-key" { algorithm hmac-md5;
25 Serwer DNS key "rndc-key" { algorithm hmac-md5; secret "qQDqBoBMX94AjIdCo/B5iA=="; }; controls { inet port 953 allow { ; } keys { "rndc-key"; }; allow { ; } keys { "rndc-key"; };
26
Serwer DNS zone "." { type hint; file "named.ca"; };
26 Serwer DNS zone "." { type hint; file "named.ca"; }; zone " in-addr.arpa"{ type master; file "named.local";
27
Serwer DNS zone "0.168.192.in-addr.arpa"{ type master;
27 Serwer DNS zone " in-addr.arpa"{ type master; file "P/ rev"; }; zone " in-addr.arpa"{ file "P/ rev"; zone "huta.com.pl"{ type slave; file "S/huta"; masters{ ;
28
28 Serwer DNS 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
29
Linie dłuższe niż jeden wiersz umieszczamy w ()
29 Serwer DNS Linie dłuższe niż jeden wiersz umieszczamy w () * - wildcard character ; - początek komentarza @- domyślna domena
30
Serwer DNS SOA (Start Of Authority)
30 Serwer DNS SOA (Start Of Authority) <name> [<ttl>] [<class>] SOA <origin> <person> ( <serial> <refresh> <retry> <expire> <minimum> ) @ IN SOA dns.pl. hostmaster.dns.pl.( ; serial 10800 ; refresh 3600 ; retry ; expire 1800 ; default_ttl )
31
Serwer DNS expire - czas ważności danych w cache secondary
31 Serwer DNS class – IN- internet (HS -hesiod, CH – Chaos – historyczne protokoły MIT) origin - Primary nameserver domeny. Zakończony kropką. person – Adres administratora, 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
32
32 Serwer DNS 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.
33
Dla każdego adresu powinien istnieć jeden adres A
33 Serwer DNS A (Address) <host> [<ttl>] [<class>] A <address> SRI-NIC.ARPA A Dla każdego adresu powinien istnieć jeden adres A
34
Serwer DNS CNAME ( Canonical Name)
34 Serwer DNS CNAME ( Canonical Name) <nickname> [<ttl>] [<class>] CNAME <host> NIC.ARPA CNAME SRI-NIC.ARPA.
35
Serwer DNS HINFO (Host Info)
35 Serwer DNS HINFO (Host Info) <host> [<ttl>] [<class>] HINFO <hardw> <softw> SRI-NIC.ARPA HINFO DEC-2060 TOPS20 UCBARPA.Berkeley.EDU. HINFO VAX-11/780 UNIX
36
Serwer DNS MX (Mail Exchanger)
36 Serwer DNS MX (Mail Exchanger) <name> [<ttl>] [<class>] MX <preference> <host> Preference to priorytet MX, 0 – najwyższy BAZ.FOO.COM. MX PO1.FOO.COM. MX PO2.FOO.COM. MX PO3.FOO.COM.
37
37 Serwer DNS 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 IN-ADDR.ARPA. PTR SRI-NIC.ARPA. IN-ADDR.ARPA. PTR SRI-NIC.ARPA.
38
Klucz generowany programem rndc-confgen (dawniej rndc-conf):
38 Serwer DNS 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
39
Serwer DNS Polecenia rndc:
39 Serwer DNS 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
40
Instalacja bind – pakiety rpm: bind – serwer bind-libs – biblioteki
40 Serwer DNS 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
41
41 Serwer DHCP 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
42
42 Serwer DHCP 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 ) 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
43
Serwer DHCP Typowa wymiana ramek:
43 Serwer DHCP Typowa wymiana ramek: DHCPDISCOVER from 00:0b:6a:1d:bc:0b via eth0 DHCPOFFER on to 00:0b:6a:1d:bc:0b via eth0 DHCPREQUEST for ( ) from 00:0b:6a:1d:bc:0b via eth0 DHCPACK on to 00:0b:6a:1d:bc:0b via eth0
44
Konfiguracja w /etc/dhcpd.conf
44 Serwer DHCP 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~
45
Serwer DHCP authoritative; ddns-update-style none;
45 Serwer DHCP authoritative; ddns-update-style none; shared-network akuku { subnet netmask { default-lease-time 72000; max-lease-time ; option subnet-mask ; option domain-name-servers ; option domain-name-servers ; option routers ; option broadcast-address ; range ; option domain-name "akuku.org"; }
46
Serwer DHCP group { use-host-decl-names on; host pc001 {
46 Serwer DHCP group { use-host-decl-names on; host pc001 { hardware ethernet 0:b:6a:35:6f:79; fixed-address ; } host pc002 { hardware ethernet 0:b:6a:4b:a8:98; fixed-address ; option routers ; use-host-decl-names on – przypisz użytkownikowi nazwę hosta, równoważne: option host-name "pc002";
47
W dhcpd.leases zapisywane są informacje w formie:
47 Serwer DHCP W dhcpd.leases zapisywane są informacje w formie: lease { starts /06/30 11:24:39; ends /07/01 07:24:39; tstp /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
48
48 Serwer Telnet 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
49
Komunikat powitalny w /etc/issue.net
49 Serwer Telnet 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
50
50 Serwer FTP 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.
51
Serwer FTP W linuxie serwer ftp to vsftpd Instalowany z pakietu vsftpd
51 Serwer FTP 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
52
Przykładowy vsftpd.conf:
52 Serwer FTP 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
53
TFTP – Trivial File Transfer Protocol, RFC1350
53 Serwer TFTP TFTP – Trivial File Transfer Protocol, RFC1350 Używany do zdalnego bootowania, zapisywania konfiguracji Nie wymaga autentyfikacji Korzysta z UDP
54
Serwer TFTP Instalowany z pakietu rpm tftp-server
54 Serwer TFTP 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
55
Daemon sshd i klient ssh zapewniają szyfrowane rlogin i rsh.
55 Serwer SSH 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.
56
Instalowany z pakietów rpm: openssh – protokół ssh
56 Serwer SSH 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
57
Ważniejsze opcje przy uruchomieniu
57 Serwer SSH 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
58
Pierwsza wersja powstała w 1997 roku (BSD 4.1, program delivermail)
58 Serwer SMTP sendmail 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)
59
Dodatkowo – m4 (macro preprocesor) Obecnie wersja 8.13.4
59 Serwer SMTP sendmail Instalacja – rpm: sendmail sendmail-cf sendmail-doc Dodatkowo – m4 (macro preprocesor) Obecnie wersja Zbiory konfiguracyjne, dokumentacja /etc/aliases /etc/mail/ /usr/share/sendmail-cf /usr/share/doc/sendmail
60
Właściwy daemon słucha na porcie 25.
60 Serwer SMTP sendmail 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
61
Program MUA, np. pine aby wysłać pocztę uruchamia /usr/sbin/sendmail
61 Serwer SMTP sendmail 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
62
Komentarze które mają pozostać tylko w sendmail.mc:
62 Serwer SMTP sendmail 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
63
63 Serwer SMTP sendmail 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= , Name=MTA')dnl Zabezpieczenie przed spamem: FEATURE(`dnsbl')dnl – sprawdzaj nadawcę w Realtime Blackhole List dnl FEATURE(`accept_unresolvable_domains')dnl
64
Nie tylko nagłówek maila, ale też skąd wysłano:
64 Serwer SMTP sendmail 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
65
Czytana jest access.db, trzeba ją utworzyć poleceniem make all
65 Serwer SMTP sendmail 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: RELAY Czytana jest access.db, trzeba ją utworzyć poleceniem make all
66
Po nadejściu maila uruchamiany jest procmail
66 procmail 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!
67
Dwa rodzaje reguł, wykonywanych sekwencyjnie:
67 Procmail - .procmailrc 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
68
Komentarze – linie zaczynające się od #
68 Procmail - .procmailrc 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>
69
H – przeszukaj nagłówek B- przeszukaj treść
69 Procmail - .procmailrc 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
70
! forward na wskazany adres | uruchom wskazany program
70 Procmail - .procmailrc 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
71
71 Procmail - .procmailrc Prześlij listy od marka dotyczące kompilatorów do piotra, zachowaj kopię w folderze kompilatory: :0 * ^From.*piotr * ^Subject:.*kompilatory { :0 c kompilatory }
72
* ? test -f ${MYEMAIL} && \ (${FORMAIL} -zxTo: -zxCc: |\
72 Procmail - .procmailrc # wyslij kopie na SMS :0 c * ? test -f ${MY } && \ (${FORMAIL} -zxTo: -zxCc: |\ fgrep -i -f ${MY }) | formail -k -X From: -X Subject: | /home/kempny/sms/mail2s formail – program do obróbki maili. -k zachowaj treść, -X wytnij wskazane pole
73
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 rm ${DIR}"mail.tmp"
74
74 Procmail - .procmailrc man procmail man procmailrc man procmailex
75
Serwer plików i drukarek w sieciach Microsoft Instalacja – rpm:
75 Serwer samba 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
76
nmbd – serwer nazw NetBios i browser
76 Serwer samba 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.
77
3 sekcje, [global], [printers] i [home]
77 Serwer samba smb.conf 3 sekcje, [global], [printers] i [home] workgroup = projekt WSJ hosts allow = 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)
78
Serwer samba smb.conf smb passwd file = /etc/samba/smbpasswd
78 Serwer samba 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*
79
79 Serwer samba smb.conf username map = /etc/samba/smbusers (mapowanie nazw użytkowników samby i unix) interfaces = / /24 (jeśli więcej niż jeden interfejs sieciowy)
80
Samba może być master browserem w sieci:
80 Serwer samba 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ę)
81
81 Serwer samba smb.conf ;wins support = yes (czy nmbd ma być serwerem wins) ;wins server = w.x.y.z (nmbd ma być klientem wins)
82
Serwer samba smb.conf [homes] comment = Home Directories
82 Serwer samba 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
83
Serwer samba smb.conf create mask = 0644 force create mode = 0644
83 Serwer samba 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
84
Serwer samba smb.conf [WWSJ] comment = Wspolne zbiory projektu WSJ
84 Serwer samba 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
85
Kolejne pola oddzielone znakiem ':' nazwa użytkownika UID LANMAN hash
85 Serwer samba 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
86
Program do zarządzania użytkownikami – smbpasswd
86 Serwer samba 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
87
pdbedit – zarządzanie bazą użytkowników
87 Serwer samba 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
88
88 Serwer samba /usr/share/doc/samba
89
Protokoły wbudowane w serwer, można dodać np. moduły POP3 lub ftp
89 Serwer WWW Apache 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
90
Load balancing – obsługa przez kilka fizycznie różnych serwerów
90 Serwer WWW Apache Load balancing – obsługa przez kilka fizycznie różnych serwerów CGI (Common Gateway Interface) – perl, PHP, Python, Tcl Wirtualne hosty
91
Instalacja – pakiet rpm httpd
91 Serwer WWW Apache Instalacja – pakiet rpm httpd Konfiguracja w zbiorze /etc/httpd/conf/httpd.conf ServerRoot "/etc/httpd" miejsce, gdzie znajduje się konfiguracja i logi Listen :80 Na jakim adresie IP i porcie ma słuchać User apache Group apache DocumentRoot "/var/www/html"
92
Serwer WWW Apache <IfModule mod_userdir.c> # UserDir disable
92 Serwer WWW Apache <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>
93
Serwer WWW Apache AddLanguage pl .po (nie pl .pl)
93 Serwer WWW Apache AddLanguage pl .po (nie pl .pl) AddDefaultCharset UTF-8 AddCharset ISO iso latin2 .cen AddCharset UTF utf8 AddCharset WINDOWS cp win-1251
94
Oparte o nazwę, serwer wybierany jest po nazwie w nagłówku HTTP.
94 Serwer WWW Apache 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
95
Serwer WWW Apache Oparty o nazwę NameVirtualHost *:80
95 Serwer WWW Apache Oparty o nazwę NameVirtualHost *:80 <VirtualHost *:80> ServerName ServerAlias *.kominiarz.pl DocumentRoot /var/www/kominiarz </VirtualHost> ServerName DocumentRoot /var/www/kartoteka_ani
96
Serwer WWW Apache Oparty o adres IP <VirtualHost www.akuku.com>
96 Serwer WWW Apache Oparty o adres IP <VirtualHost DocumentRoot /home/akuku/www ServerName ErrorLog /var/log/akuku/error_log TransferLog /var/log/akuku/access_log </VirtualHost> <VirtualHost ServerAdmin DocumentRoot /home/tomek/www ServerName ErrorLog /var/log/tomek/error_log TransferLog /var/log/tomek/access_log
97
Przechowuje ważniejsze obiekty w buforach w RAM, pozostałe na dyskach
97 Serwer Squid 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
98
Instalacja z pakietu rpm squid
98 Serwer Squid Instalacja z pakietu rpm squid Zbiór konfiguracyjny /etc/squid/squid.conf
99
Serwer Squid http_port 3128 icp_port 3130 htcp_port 4827
99 Serwer Squid http_port 3128 icp_port 3130 htcp_port 4827 icp i htcp – protokoły używane do komunikacji pomiędzy serwerami cache
100
100 Serwer Squid 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 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
101
101 Serwer Squid acl localhost src / acl SSL_ports port 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.
102
Należy go skopiować do kartoteki cgi-bin serwera httpd.
102 Serwer Squid 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 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
103
Lpd, cups Lpd (Line Printer Daemon) obsługuje zadania drukowania.
103 Lpd, cups 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ą.
104
Konfiguracja lpd w zbiorze /etc/lpd.conf.
104 Lpd, cups Konfiguracja lpd w zbiorze /etc/lpd.conf. Zasady dostępu do usług lpd w zbiorze /etc/lpd.perms
105
Format pliku /etc/printcap jest podobny do /etc/termcap.
105 Lpd, cups 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)
106
106 Lpd, cups 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:\ :lp=:rm=Xerox:rp=xerox: sd=/var/spool/lpd/xerox:
107
Lpd, cups lp=/dev/lp0 drukarka lokalna
107 Lpd, cups lp=/dev/lp0 drukarka lokalna sd=/var/spool/lpd/dw położenie kartoteki spoolingu mx#0 maksymalny rozmiar zadania do wydruku, – bez ograniczeń rm= adres (nazwa) innego serwera lpd rp=xerox nazwa drukarki na innym serwerze
108
lpq – program do wyświetlania kolejek drukarek.
108 Lpd, cups 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)
109
109 Lpd, cups lpc – (Line Printer Control program) program do zarządzania drukarkami i kolejkami. disable | all zatrzymaj kolejkę enable | all uruchom kolejkę start | all uruchom drukowanie stop | all zatrzymaj drukowanie down | all zatrzymaj drukowanie i kolejkę status | all wyświetl stan drukerek i kolejek
110
CUPS – Common Unix Printing System
110 Lpd, cups 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
111
Zadania drukowania przyjmuje daemon cupsd
111 Lpd, cups 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:
112
Przykładowy zbiór konfiguracyjny drukarki
112 Lpd, cups Przykładowy zbiór konfiguracyjny drukarki <DefaultPrinter lexmark_siec> Info LEXMARK Optra Color 1275 Location DeviceURI State Idle Accepting Yes JobSheets none none QuotaPeriod 0 PageLimit 0 KLimit 0 </Printer>
113
MYSQL – relacyjna baza danych Udostępniana z licencją Open Source
113 MySQL 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
114
Konfiguracja w zbiorze /etc/my.cnf
114 MySQL 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
115
mysql – dostęp do bazy z linii komend typowe użycie:
115 MySQL 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
116
MySQL Przykładowa sesja: mysql> SHOW DATABASES; +----------+
116 MySQL 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);
117
MySQL mysql> SHOW TABLES; +---------------------+
117 MySQL mysql> SHOW TABLES; | Tables in test | |osoby | mysql> QUIT Bye
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.