Wprowadzenie
description
Transcript of Wprowadzenie
1Wprowadzenie
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 ...
2Wprowadzenie
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,
3Inetd, 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 IPDo zaadresowania procesu służy numer portu
4Inetd, xinetd
Numery portów 0 – 65535Porty < 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
5Inetd, xinetdAby 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-numbersPorty według IANA:Well Known Ports 0 – 1023Registered Ports 1024 – 49151Dynamic and/or Private Ports 49152 - 65535
6Inetd, 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
7Inetd, 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
8Inetd, xinetdProces 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
9Inetd, 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/sshdtcp 0 0 *:telnet *:* LISTEN 647/xinetd
10Inetd, xinetdInetd jest starszą, prostszą wersją xinetd.Xinetd oferuje większe bezpieczeństwo systemuKonfiguracja 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.dcps – connections per second (max/timeout)
11Inetd, xinetdKartoteka /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}
12Inetd, xinetdFormat 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
13Inetd, xinetd
Ważniejsze atrybuty:disable - “yes” lub “no” czy usługa ma być aktywnauser (group) – z jakim UID (GID) uruchomić procesinstances – liczba równocześnie aktywnych serwerówserver – jaki program uruchomić do obsługiserver_args – parametry przekazywane do serwerano_access – z jakich adresów IP usługa niedostępnabind lub interface – na jakich interfejsach usługa ma być dostępnaaccess_times hh:mm-hh:mm – w jakich godzinach usługa dostępna
14Inetd, xinetdInstalacja xinetd – pakiet rpm xinetduruchamianie/zatrzymywanie: /etc/initd.d/xinetd start (stop)sygnały:SIGHUP – odczytuje konfigurację, zatrzymuje/uruchamia zgodnie z nią serwerySIGQUIT – zatrzymuje xinetdSIGTERM – zatrzymuje serwery i kończy działanieSIGUSR1 – dump wewnętrznego stanu do /var/run/xinetd.dump
15Serwer DNSKomputery używają adresów IPLudziom łatwiej zapamiętać nazwy, niż adresyKonieczna zamiana adresów IP na nazwy i odwrotnieDawniej, 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 ...
16Serwer DNS
17Serwer DNS
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....
18Serwer 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.........
19Serwer DNS
20Serwer DNS
21Serwer 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 dnsSecondary dns pobierają kopie opisu strefy z primary dnsForwarding 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
22Serwer DNSNajpopularniejszy, 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)
23Serwer DNS
BIND to:
Serwer DNS – namedBiblioteka DNS ResolverNarzędzia do zarządzania i testowania DNSbind-chroot
24Serwer DNS
Konfiguracja bind w /etc/named.confOpisuje 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 {};
25Serwer DNS
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"; }; };
26Serwer DNS
zone "." { type hint; file "named.ca";};zone "0.0.127.in-addr.arpa"{ type master; file "named.local";};
27Serwer DNSzone "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; }; };
28Serwer DNSZbiory 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 rekordziettl – Time To Live. Jak długo inne serwery mogą odpowiadać rekordem z cache. Jeśli puste, to ttl z SOAclass – IN – internet (DNS był projektowany jako niezależny od protokołu)type – typ rekordu RRdata – dane zależne od typu RR
29Serwer DNS
Linie dłuższe niż jeden wiersz umieszczamy w ()* - wildcard character; - początek komentarza@- domyślna domena
30Serwer DNSSOA (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 )
31Serwer DNSclass – 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 zbiorurefresh – czas po jakim secondary sprawdzi aktualność bazretry – czas co jaki secondary ponawia próby połączenia z
primaryexpire - czas ważności danych w cache secondaryminimum -domyślne TTL dla BIND 4 i 8, czas
przechowywania w pamięci negatywnej odpowiedzi NAME ERROR = NXDOMAIN dla BIND 9
32Serwer DNSNS (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.
33Serwer DNSA (Address)
<host> [<ttl>] [<class>] A <address>
SRI-NIC.ARPA. A 10.0.0.51
Dla każdego adresu powinien istnieć jeden adres A
34Serwer DNS
CNAME ( Canonical Name)
<nickname> [<ttl>] [<class>] CNAME <host>
NIC.ARPA. CNAME SRI-NIC.ARPA.
35Serwer DNS
HINFO (Host Info)
<host> [<ttl>] [<class>] HINFO <hardw> <softw>
SRI-NIC.ARPA. HINFO DEC-2060 TOPS20UCBARPA.Berkeley.EDU. HINFO VAX-11/780 UNIX
36Serwer DNS
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.
37Serwer 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
51.0.0.10.IN-ADDR.ARPA. PTR SRI-NIC.ARPA.73.0.0.26.IN-ADDR.ARPA. PTR SRI-NIC.ARPA.
38Serwer 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
39Serwer DNS
Polecenia rndc:reload – przeładuj zbiory konfiguracyjne i strefyreload strefa – przeładuj strefęstats – zapisz statystyki do zbioruquerylog – włącz/wyłącz logowanie pytańdumpdb – zapisz zawartość cache do zbioru named_dump.dbtrace – podnieś o jeden poziom debuggingnotrace – wyłącz debuggingflush – wyczyść cachestatus – wyświetl status serwera
40Serwer DNSInstalacja bind – pakiety rpm:
bind – serwerbind-libs – bibliotekibind-utils – narzędzia: host, nslookup, dig – do odpytywania dns nsupdate – do dynamicznego dopisywania RRbind-chroot – chroot dla bindbind-sdb – zewnętrzna baza danych (LDAP, PostgreSQL itp.)Uruchamianie - /etc/rc.d/init.d/named start
41Serwer 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 IPdynamiczny – przydziela adres na skończony okres czasuręczny – przydziela adres zdefiniowany przez administratoraPrzed przydzieleniem adresu serwer sprawdza, czy nie jest użyty, wysyła ping
42Serwer 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 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
43Serwer DHCP
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
44Serwer DHCP
ISP DHCPD
Konfiguracja w /etc/dhcpd.confZmiany w zbiorze konfiguracyjnym wymagają zatrzymania i uruchomienia serweraPrzydzielone adresy w /var/lib/dhcp/dhcpd.leasesNowe przydziały dopisywane są na końcu dhcpd.leasesOkresowo dhcpd tworzy nowy zbiór dhcpd.leases z zawartości cache, zmieniając nazwę starego na dhcpd.leases~
45Serwer DHCPauthoritative;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"; } }
46Serwer DHCPgroup { 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";
47Serwer DHCPW 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 klientauid – opcjonalny identyfikator wysłany przez klienta – 001 to ethernet, dalej adres MAC
48Serwer 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
49Serwer 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
50Serwer 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.
51Serwer 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
52Serwer FTP Przykładowy vsftpd.conf:anonymous_enable=YESlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YES
pam_service_name=vsftpduserlist_enable=YESlisten=YEStcp_wrappers=YES
53Serwer TFTP
TFTP – Trivial File Transfer Protocol, RFC1350 Używany do zdalnego bootowania, zapisywania
konfiguracji Nie wymaga autentyfikacji Korzysta z UDP
54Serwer 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
55Serwer 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.
56Serwer SSH
Instalowany z pakietów rpm:openssh – protokół sshopenssh-server – serweropenssh-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
57Serwer 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
58Serwer SMTP sendmailSendmail 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)
59Serwer SMTP sendmailInstalacja – rpm:sendmailsendmail-cfsendmail-docDodatkowo – m4 (macro preprocesor) Obecnie wersja 8.13.4Zbiory konfiguracyjne, dokumentacja/etc/aliases/etc/mail//usr/share/sendmail-cf/usr/share/doc/sendmail
60Serwer 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.cfZbiór sendmail.cf tworzony ze zbioru sendmail.mc poleceniem make -C /etc/mail
61Serwer 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
62Serwer SMTP sendmail
sendmail.mcKomentarze 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
63Serwer SMTP sendmailWzorcowy 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 Listdnl FEATURE(`accept_unresolvable_domains')dnl
64Serwer SMTP sendmailMasquerading:
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
65Serwer 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 OKConnect:sendmail.org RELAYTo:sendmail.org RELAYConnect:128.32 RELAY
Czytana jest access.db, trzeba ją utworzyć poleceniem make all
66procmail
Po nadejściu maila uruchamiany jest procmailCzyta 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!
67Procmail - .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
68Procmail - .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>
69Procmail - .procmailrc
Flagi:H – przeszukaj nagłówekB- 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
70Procmail - .procmailrc
Linia polecenia! forward na wskazany adres| uruchom wskazany programlinie ujęte w { } (po nawiasie co najmniej jedna spacja, tabulacja lub nowa linia) odnoszą się do poprzedniego warunku
71Procmail - .procmailrc
Prześlij listy od marka dotyczące kompilatorów do piotra, zachowaj kopię w folderze kompilatory:
:0 * ^From.*piotr * ^Subject:.*kompilatory { :0 c [email protected]
:0 kompilatory }
72Procmail - .procmailrc
# 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
73Procmail - .procmailrc#! /bin/shDIR=/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" fielse if (grep From: ${DIR}mail.tmp |grep "\.se") then ${DIR}"mail2sms" fifirm ${DIR}"mail.tmp"
74Procmail - .procmailrc
man procmailman procmailrcman procmailex
75Serwer samba
Serwer plików i drukarek w sieciach Microsoft
Instalacja – rpm:samba-common – wspólne plikisamba – serwersamba-client – klient samby
Dokumentacja – man i /usr/share/doc/sambaxxx
76Serwer 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.
77Serwer sambasmb.conf3 sekcje, [global], [printers] i [home]workgroup = projekt WSJhosts 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 = 8encrypt passwords = yes (czy negocjować szyfrowane haslo – W98 i WNT SP3 używają tylko szyfrowanego)
78Serwer samba
smb.confsmb passwd file = /etc/samba/smbpasswdunix password sync = Yespasswd program = /usr/bin/passwd %upasswd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*aut hentication*tokens*updated*successfully*
79Serwer samba
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)
80Serwer samba
smb.confSamba 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ę)
81Serwer samba
smb.conf;wins support = yes (czy nmbd ma być serwerem wins);wins server = w.x.y.z (nmbd ma być klientem wins)
82Serwer 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
83Serwer samba
smb.conf
create mask = 0644force create mode = 0644directory mask = 0755force directory mode = 0755
create (directory) mask – bitowe AND z prawami z dos, potem bitowe OR z force create (directory) mode
84Serwer 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
85Serwer samba
Samba 3.x trzyma dane użytkowników w LDAP lub tdbsam, starsze w /etc/samba/smbpasswd.
Kolejne pola oddzielone znakiem ':' nazwa użytkownikaUIDLANMAN hash NT hashflagi kontadata ostatniej zmiany
86Serwer sambaProgram do zarządzania użytkownikami – smbpasswd-a - dodaj użytkownika-x - usuń użytkownika-d - zablokuj (-e – odblokuj użytkownika)-m - dodaj konto maszynyBez 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
87Serwer sambapdbedit – zarządzanie bazą użytkownikówModularna konstrukcja, obsługuje smbpasswd, ldap, nis+ and tdbL – wyświetl użytkownikówv- wyświetl więcej informacjia – dodaj użytkownikax – usuń użytkownika
88Serwer samba
/usr/share/doc/samba
89Serwer WWW Apache
Apache – od 1996 roku najpopularniejszy serwer HTTP, w lutym 2005 roku 68% serwerów w oparciu o niego
Najnowsza wersja – 2.2.8Waż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 WindowsAutentyfikacja, kontrola dostępu, SSL/TLS
90Serwer WWW Apache
Load balancing – obsługa przez kilka fizycznie różnych serwerów
CGI (Common Gateway Interface) – perl, PHP, Python, Tcl
Wirtualne hosty
91Serwer WWW Apache
Instalacja – pakiet rpm httpdKonfiguracja w zbiorze /etc/httpd/conf/httpd.confServerRoot "/etc/httpd" miejsce, gdzie znajduje się konfiguracja i logiListen 12.34.56.78:80 Na jakim adresie IP i porcie ma słuchaćUser apacheGroup apacheDocumentRoot "/var/www/html"
92Serwer 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>
93Serwer WWW Apache
AddLanguage pl .po (nie pl .pl)
AddDefaultCharset UTF-8
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cenAddCharset UTF-8 .utf8AddCharset WINDOWS-1251 .cp-1251 .win-1251
94Serwer 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
95Serwer WWW ApacheOparty o nazwęNameVirtualHost *:80
<VirtualHost *:80>ServerName www.kominiarz.plServerAlias www.kominiarz.com.pl *.kominiarz.plDocumentRoot /var/www/kominiarz</VirtualHost>
<VirtualHost *:80>ServerName www.ania.plDocumentRoot /var/www/kartoteka_ani</VirtualHost>
96Serwer WWW ApacheOparty o adres IP<VirtualHost www.akuku.com>DocumentRoot /home/akuku/wwwServerName www.akuku.comErrorLog /var/log/akuku/error_logTransferLog /var/log/akuku/access_log</VirtualHost>
<VirtualHost www.mojpies.org>ServerAdmin [email protected] /home/tomek/wwwServerName www.mojpies.orgErrorLog /var/log/tomek/error_logTransferLog /var/log/tomek/access_log</VirtualHost>
97Serwer 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ówObsługuje pytania jednym procesem
98Serwer Squid
Instalacja z pakietu rpm squidZbiór konfiguracyjny /etc/squid/squid.conf
99Serwer Squid
http_port 3128icp_port 3130htcp_port 4827
icp i htcp – protokoły używane do komunikacji pomiędzy serwerami cache
100Serwer Squid
cache_mem 8 MB – wielkość cache w RAMcache_swap_low 90cache_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 agresywnemaximum_object_size 4096 KB - obiekty większe nie będą zapisywane w cachecache_dir ufs /var/spool/squid 1000 16 256Squid 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
101Serwer Squidacl localhost src 127.0.0.1/255.255.255.255acl SSL_ports port 443 444 563acl dostep src "/etc/squid/dostep"
http_access allow localhosthttp_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.
102Serwer 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 http://serwer_www/cgi-bin/cachemgr.cgii 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
103Lpd, 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ą.
104Lpd, cups
Konfiguracja lpd w zbiorze /etc/lpd.conf. Zasady dostępu do usług lpd w zbiorze /etc/lpd.perms
105Lpd, 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 komentarzLinie 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)
106Lpd, 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:\:mx#0::lp=:rm=Xerox:rp=xerox:sd=/var/spool/lpd/xerox:
107Lpd, cups
lp=/dev/lp0 drukarka lokalnasd=/var/spool/lpd/dw położenie kartoteki spoolingumx#0 maksymalny rozmiar zadania do wydruku, 0 – bez ograniczeńrm=172.24.1.20 adres (nazwa) innego serwera lpdrp=xerox nazwa drukarki na innym serwerze
108Lpd, 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)
109Lpd, cupslpc – (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 drukowaniestop printer[@host] | all zatrzymaj drukowaniedown 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
110Lpd, cups
CUPS – Common Unix Printing SystemUż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 sieciowychUmożliwia drukowanie na drukarkach PostScript i innych
111Lpd, cups
Zadania drukowania przyjmuje daemon cupsdKonfiguracja 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
112Lpd, cups
Przykładowy zbiór konfiguracyjny drukarki <DefaultPrinter lexmark_siec>Info LEXMARK Optra Color 1275LocationDeviceURI smb://kempny:h4321@STANET/KAKTUS/Lexmark_PCLState IdleAccepting YesJobSheets none noneQuotaPeriod 0PageLimit 0KLimit 0</Printer>
113MySQL
MYSQL – relacyjna baza danychUdostępniana z licencją Open SourceSzybka, niezawodna i prosta w użyciuArchitektura klient – serwerInterfejs C, C++, Eiffel, Java, Perl, PHP, Python, Tcl Działa na wielu platformachWielowątkowa, pracuje na maszynach wieloprocesorowych
Obecnie wersja 5.0.51
114MySQL
Instalacja – pakiety:mysqlmysql-server
Konfiguracja w zbiorze /etc/my.cnfDomyślne położenie baz danych /var/lib/mysqlDostęp do baz danych, tablic, kolumn, listę i uprawnienia użytkowników zawiera baza danych mysql, znajduje się w /var/lib/mysql/mysql
115MySQL
mysql – dostęp do bazy z linii komendtypowe 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
116MySQL
Przykładowa sesja:mysql> SHOW DATABASES;+----------+| Database |+----------+| mysql |+----------+mysql> CREATE DATABASE test;mysql> USE testDatabase changedmysql> CREATE TABLE osoby (imie VARCHAR(20), nazwisko VARCHAR(20), urodzony DATE);
117MySQL
mysql> SHOW TABLES;+---------------------+| Tables in test |+---------------------+|osoby |+---------------------+mysql> QUITBye