1 / 117

Wprowadzenie

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

stash
Download Presentation

Wprowadzenie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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. 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. 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. 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. 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. 7 Inetd, xinetd • Zbiór /etc/servicessł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. 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 0 0 *:ssh *:* LISTEN 635/sshd • tcp 0 0 *:telnet *:* LISTEN 647/xinetd

  10. 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. 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. 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. 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. 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. 17 Serwer 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 ....

  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. 22 Serwer DNS • 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)‏

  23. 23 Serwer DNS • BIND to: • Serwer DNS – named • Biblioteka DNS Resolver • Narzędzia do zarządzania i testowania DNS • bind-chroot

  24. 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 { 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 {};

  25. 25 Serwer 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"; }; };

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

  27. 27 Serwer DNS 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; }; };

  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. 29 Serwer DNS Linie dłuższe niż jeden wiersz umieszczamy w ()‏ * - wildcard character ; - początek komentarza @- domyślna domena

  30. 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.( 2005022502 ; serial 10800 ; refresh 3600 ; retry 3600000 ; expire 1800 ; default_ttl )‏

  31. 31 Serwer DNS 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 odpowiedziNAME 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. 33 Serwer DNS A (Address)‏ <host> [<ttl>] [<class>] A <address> SRI-NIC.ARPA. A 10.0.0.51 Dla każdego adresu powinien istnieć jeden adres A

  34. 34 Serwer DNS CNAME ( Canonical Name)‏ <nickname> [<ttl>] [<class>] CNAME <host> NIC.ARPA. CNAME SRI-NIC.ARPA.

  35. 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. 36 Serwer 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.

  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 51.0.0.10.IN-ADDR.ARPA. PTR SRI-NIC.ARPA. 73.0.0.26.IN-ADDR.ARPA. PTR SRI-NIC.ARPA.

  38. 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. 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. 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 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

  43. 43 Serwer 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

  44. 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. 45 Serwer DHCP 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"; } }

  46. 46 Serwer DHCP 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";

  47. 47 Serwer DHCP 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

  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. 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.

More Related