Inhaltsverzeichnis
13 TCP/IP – Grundlagen
13.1 Die TCP/IP – Pritokollfamile
13.2 TCP/IP – Layer
13.3 Protokolle, Ports und Sockets
13.4 Adressierung
14 Netzwerkkonfiguration
14.1 TCP/IP Konfiguration
14.2 Konfiguration des Netzwerkinterfaces
14.3 Aktivieren und testen des Netzwerkinterfaces
15 Internetdienste und Internetdaemon
15.1 Der Internetdaemon
15.2 TCP – Wrapper
15.3 Einfache Internetdienste
16 NFS und NIS
16.1 Remote Procedure Call (RPC)
16.2 Network File System (NFS)
16.3 Network Information Service (NIS)
17 FTP – Web- Mailserver
17.1 FTP – Server
17.2 Der Apache Webserver
17.3 Der Sendmail Mailserver
18 Netzwerksicherheit
18.1 Allgemeines
18.2 Updates
18.3 Sniffer
18.4 Portscanner
18.5 Firewalls
19 Samba
19.1 NetBIOS
19.2 Bestandteile von Samba
19.3 NetBIOS – Konfiguration mit Samba
19.4 Einfache Freigabe
19.5 Die Netzwekumgebung
19.6 NetBIOS über Subnetzgrenzen
19.7 SMB – Sitzungen
19.8 Zugriffsrechte
13.0.1 Netzwerkterminologie
# Protokoll : Satz von Regeln und Kommunikationsstandards
# TCP/IP : Transport Control Protokoll/Internetprotokoll
# Host: Rechner in einem TCP/IP – basierten Netzwerk
# Internet : Netzwerk von TCP/IP basierten Netzwerken
# Gateway/Router : Physikalisch an mehreren Netzwerke angebundener Host
13.1 Die TCP/IP – Protokollfamilie
13.1.1 TCP/IP – Features
# offene frei zugängliche Standards
# hardwareunabhängig (Netzwerk, Host)
# softwareunabhängig
# globales Adressierungssystem
# High – Level – Protokolle
13.1.2 Organisation und Standards
# IANA ( Internet Assigned Number Authority) : IP-Adr., Portnr.
# InterNIC : Registrierung von Domainnamen
# IAB (Internet Advisory Board) : policy
# IETF (Internet Engeneering Task Force)
# IRTF ( Internet Research Task Force)
# RFCs (Requests for Comment) : Festlegung der Standards, Dokumentation
13.2 TCP/IP – Layer
13.2.1 TCP/IP – Layer
Layer Aufgabe Protokolle
4. Application Layer End-User Anw. FTP, TELNET,...
3. Transport Layer Host to Host Komm. TCP, UDP,…
2. Internet Layer Adressierung, Routing IP, ICMP,…
1. Network Access Layer Zugang zum Netz ETHERNET, ARP,...
13.2.2 Network Access Layer
# untere Schicht im TCP/IP – Stack
# physikalischer Zugriff auf Netzwerk
# Kombination
- Netzwerktreiber – Software
- IP-MAC-Adressenauflösung (ARP- Protokoll)
# Daten aufs Netz als Fragments
13.2.3 Internet Layer
# grundlegende Datenzustellung
# wichtigstes Protokoll : Internet Protocol (IP)
- definiert Datagram als Standard – Übertragungseinheit
- IP – Adressierungsschema
- Routen von Datagrams
# Internet Control Mesagge Protocol (ICMP)
13.2.4 (Host-to-Host) Transport Layer
# Host to Host Kommunikation
# Transmission Controll Protocol (TCP)
- verbindungsorientiert, verlässlich
- Fehlerkontrolle und korrektur
- Flusskontrolle
- Format : Segment
# User Datagram Protocol (UDP)
- nicht verbindungsorientiert
- keine Fehlerkontrolle
- wenig Overhead
- Format : Packet
# Protokollnummer in /etc/protocols (TCP = 6, UDP = 17, …)
13.2.5 Application Layer
# oberste Schicht im TCP/IP – Stack
# End – User Applikation
# Portnummer in /etc/services
- 1-255: “well-known services”
o Telnet
o FTP
o SMTP
o POP
o http,...
- 256 –1024 : „Unix specific servises“
o NFS
o PRINTER
o TALK,…
- 1024 - _ unprivilegierte Ports (dynamically allocated)
13.4 Adressierung
13.4.1 Adressen , Name Service
# Host to Host Kommunikation
- User-End: FQDN, z.B. milkwood.mat.univie.ac.at
- IL : IP – Adresse z.B. 131.130.145.51
- NAL: MAC – Adresse, z.B. 00:00:19:CE:C5:FB
# DNS, Nameserver, /etc/hosts :FQDN <-> MAC Adresse
13.4.2 Reservierte private Adressbereiche
A 10.0.0 – 10.255.255.255
B 172.16.00 – 172.31.255.255
C 192.168.0.0 – 192.168.255.255
13.4.3 IP – Adressen
# 32- Bit Wort
# dezimal vier 3er-Blöcke mit Eintragungen von 0 bis 255
# eindeutig vergeben von IANA
# Klasse A, B, C
# reservierte Adressen
13.4.4 FQDN
# eindeutig vergeben von InterNIC
# Baumstruktur
# Subdomänekonzept
# Format: hostname.subsub...subdomain. ... .subdomain.domain
# Beispiel : durruti.mat.univie.ac.at
14.1 TCP/IP Konfiguration
14.1.1 Netzwerkkonfiguration
# TCP/IP – Konfiguration : Hostname, Domainname, Gateway, Gatewaydevice,...
- /etc/sysconfig/network
# DNS – Konfiguration : Nameserver, Searchdomains,…
- /etc/resolv.conf, /etc/nsswitch.conf
# Interfacekonfiguration : IP- Adress, Netzwerk, Netzmaske, Broadcast, Funktionssteuerung, …
/etc/resolv.conf/network-scripts/ifcg-device
14.1.2 TCP/IP Konfiguration
# $ cat /etc/sysconfig/network
NETWORKING=yes
Forward_IPV4=false
HOSTNAME=milkwood.mat.univie.ac.at
DOMAINNAME=mat.univie.ac.at
GATEWAY= 131.130.145.1
GATEWAYDEV=eth0
# $ grep hosts /etc/nsswitch.conf
hosts: files dns nis
14.3 Aktivieren und testen des Netzwerkinterfaces
14.3.1 Interace aktivieren und testen
# (De)Aktivieren
- ifconfig device up|down
- ifup device
- ifdown device
- service network
o start|stop|restart
# Testen
- ping IP-Nummer/IN-Name
- traceroute IP-Nummer/IN-Name
- host IP-Nummer/IN-Nummer
- route
15.1 Der Internetdaemon
15.1.1 Einfache Netzwerkdienste
# Clientprozess am Clienthost vom Benutzer gestartet
# Serverprozess am Serverhost als Daemon
- wartet auf eingehende Fragen
- root oder andere Privilegien
- beim booten gestartet
- Authentifizierung, Logging
- Forkt und managt Session
15.1.2 Der Internetdaemon
# Prinzipiell für jedes Internetservice ein Daemon
# Prinzipiell jeder bei Systemboot gestartet
# Vereinfachung (x)inetd (Internetdaemon)
- kontrolliert telnetd, ftpd, rlogind,...
- RedHat < 7.0 und SuSE< 7.3 verwenden einfacheren inetd
# trotzdem individuell- als Standalone Server- gestartet
- sshd, httpd, Nfs, Nis, Samba
15.1.3 xinetd – Konfiguration
# Konfigurationsdatein /etc/xinetd.conf und /etc/xinetd.d/*
# für jeden Dienst (service) ist ein Eintrag der Form
service name
{
option1 = value1 value2 ...
option2 = value2 value2
…
}
erforderlich, wobei name der Name des Dienstes ist (z.B. FTP).
Außerdem gibt es die Möglichkeit eines Default-Eintrags.
15.1.4 xinetd und Security
# editieren von /etc/xinetd.d/*
- nicht benötigte Dienste durch die Option disable = yes
deaktivieren oder zugehöriges Paket deinstallieren
- Zugang nur für bestimmte Hosts erlauben (siehe nächste Folie)
# xinetd neustarten
- service xinetd restart
15.1.5 Zugangskontrolle für den xinetd
Folgende Optionen schränken den Zugriff auf einzelne Dienst ein:
# only_from: Erlaubt den Zugriff nur für aufgelistete Hosts. Mögliche Werte sind eine beliebige Kombination von (Auswahl)
- numerische IP-Adresse
- Domainname z.B. univie.ac.at
- Netzwerkname aus /etc/networks
- Ein Netzwerkbereich der Form
# no access: Verbietet den Zugriff nur für aufgelistete Hosts. Mögliche Werte sind wie bei only_from
# access_times : Erlaubt den Zugriff nur zu bestimmten Zeiten welche in der Form hh:mm:mm angegeben werden
15.2 TCP – Wrapper
15.2.1 TCP-Wraper
# Zugengsbeschränkung für bestimmte Dienst die mit TCP- Wrapper Support übersetzt wurden (z.B. sshd, sendmail)
# Zugangsbeschränkung für Dienste ohne internen TCP-Wrapper Support über tcpd
# Konfiguration
- Service- , Benutzer-, und Host-spezifisch
- /etc/hosts.allow (stärker)
- /etc/hosts.deny
# Loggen der Anfragen über syslogd
- /var/log/messages
- /var/log/secure
15.3 Einfache Internetdienste
15.3.1 Die r-Kommandos
# in.rlogind
# benutzerfreundlich, Unix-Standard
- rlogin...analog telnet
- rsh...remote Commandexecution
- rcp…Fieltransfer, Sysntax ähnlich cp
# können Passwortauthentifizierung umgehen!
- /etc/hosts.equiv (zuerst gelesen)
- ~/.rhosts (per-User Konfiguration)
- /.rhosts (root-Zugang)
- /.rhosts-Syntax: [+|-] hostname username
15.3.2 Secure Shell
# Syntax
- Remote Login : ssh user@host oder ssh –l user host
- Filetransfer: scp user@host: sourcefile destinatonfile oder scp sourcefile user@host: sourcefile destinatonfile oder
- Filetransfer interaktiv: sftp user@host
# Konfiguration
- Client: /etc/ssh/ssh_config, ~/.ssh/
- Server : /etc/ssh/sshd_config
15.3.3. ssh-Keys
# erstellen : ssh-keygen Public/Private Key-Paar mit Passphrase
# Private Key: in ~/.ssh/ am lokalen Host, geheim (Mode 400)
# Public Key: in ~/.ssh/authorized_keys am Remote Host
# Agent: ssh-agent command (z.B. startkde, bash)
# Key laden: ssh-add Passphrase wird abgefragt
# alle ssh-Verbindungen über Keys authentifiziert
16.1 Remote Procedure Call (RPC)
16.1.1 Remote Procedure Call (RPC)
# von Sun Microsystems entwickelt
# systemunabhängiges Protokoll für Prozesskommunikation übers Netz
# ermöglicht Programmen Procedure Calls auf entfernte Hosts
# zusätzliche Abstraktionsebene über TCP/IP AL- Protokollen
# Service definiert über PRC Servicenummern (analog Portnummern)
# benötigt eigenen Dienst: RPC- Portmapper (portmap)
- RPC-Server registriert sich beim Start beim Portmapper
- Portmapper verbindet RPC-Servicenummern mit TCP bzw. UDP- Ports
- RPC- Client kontaktiert zuerst Portmapper
-
16.2 Network File System (NFS)
16.2.1 Was ist NFS?
# Dateien und Verzeichnisse über ein Netzwerk verwenden
# Client-Server Architektur
# Client mountet Dateisysteme vom Server wie lokale Dateisysteme
# transparent und stateless
# Vorteile
- Gleiche Homedirectories im ganzen Netzwerk
- Sparen von Plattenplatz
- Zentrale Administration
# entwickelt von SUN, Standard auf allen UNIX-Systemen(!)
16.2.2 NFS Daemon
# rpc.mountd (Mountdaemon) überprüft Berechtigung von Mount – Requests
# nfsd (eigentlicher NFS-Daemon) vermittelt Dateizugriff
# rpc.ugidd übersetzt UIDs zwischen Clients und Server
# rpc.rquotad Quotas für NFS-Benutzer
rpc.statd Reboot Notification
rpc.lockd lockt NFS-exportierte Files; meist vom Kernel gestartet
16.2.3 /etc/exports
# Zugangsbeschränkung über /etc/exports
# Syntax: Directory Host (Optionen)
16.2.4 NFS – Exports Optionen
# ro read only
# rw read –write
# secure Anfragen brauchen Port <1024
#root_squash root@client = nobody@server
# link_relative absolute Links in relative umwandeln
# map_* gibt an, wo der Server das UID Mapping hernehmen soll
16.2.5 Showmount
# -d zeigt alle gemounteten Verzeichnisse
# - a zeigt alle gemounteten Verzeichnisse und deren Hostes
# -e zeigt die exportierten Verzeichnisse an(gem. /etc/exports)
16.2.6 NFS-Mounts
# Syntax z.B:
- mount –t nfs dukana:/nethome /users
# rpc.mountd : vergibt File Handles für spätere Verwendung
# Server: rpc.nfsd liefert Dateien im per File Handle angegebenen Verzeichnissen
# Mit cat /proc/filesystems überprüfen, ob der Kernel NFS überhaupt versteht
16.2.7 NFS – Mountoptionen
# rsize = n und wsize = n Größe der Datenblocks beim lesen/schreiben
# timeo = n Timeout in 1/10 – Sekunden angegeben
# hard warten, bis der Server antwortet
# soft gibt nach dem timeout einen Fehler zurück
# intr erlaubt es, den Verbindungsaufbau wiedere abzubrechen
16.2.8 Automounter
# Mounten nur so lange, wie etwas gebraucht wird
# Remote hart gemountete Verzeichnisse Risiko beim Crash des Servers
# Auch für Floppy, CD- Rom, ...
Beim Zugriff auf Mountpoint wird Directory gemountet
# einfach konfigurierbar und stabil (Treiber im Kernel)
# amd und automount
16.3 Network Information Service (NIS)
16.3.1 NIS
# Audf RPC basierendes Server/Client System
# Systemdateien eines Server auf Clients verfügbar machen
# Entwickelt von SUN in den 80ern, UNIX – Standard
# Server+Clients in NIS- Domäne zusammengefasst
# Meist zur Netzwerkweiten Benutzerverwaltung eingesetzt
# Kombination NFS/NIS ermöglicht netzwerkweite Logins mit gleichem Homedirectory
# Master/Slave – Server: Last verringern, Ausfallsicherheit
16.3.2 NIS verwenden
# Dateien in /var/yp
# Nach Änderung exportierter Daten dort make aufrufen
# ypserv, ypbind, yppasswdd Services
# Portmapper muß am Client und am Server gestartet sein
# Client Konfiguration in /etc/yp.conf
# Server Konfiguration in
- /etc/ypserv.conf
- /var/yp/securenets
16.3.3 NIS – Domäne erstellen
# nisdomainname setzen
# Master – Server: ypinit –m, portmap, ypserv, ypclient, yppasswdd starten
# Slave – Server: ypinit –s master, Services wie oben
# In /var/yp/securenets Clients eintragen
# Clients: /etc/yp.conf konfigurieren, portmap und ypbind starten
16.3.4 NIS – Kommandos
# ypwhich mit welchem NIS- Server verbunden
# ypcat exp zeigt Inhalt einer exportierten Map
# yppasswd user ändert das Passwort von User
# ypchfn user ändert informationen über User
#ypchsh user ändert die Shell von User
17 FTP – Web- Mailserver
17.1 FTP – Server
17.1.1 FTP
# File Transfer Protocol
# Einer der ältesten Dienste
# Öffentliche Bereitstellung von Daten
Interne Verwendung für z.B. Rechner – Installation
# Anonym – nicht-anonym (unsicher!)
# Vom User selbst navigierbar
17.1.2 Verschíedene Server – Pakete
# wuftp Lange Zeit Standard, komfortabel, unsicher
# ncftpd Komfortabel, relativ sicher, keine frei Software, keine offene Sourcen
# proftpd Umfangreich Konfigurierbar, sicher
# Andere Server(meist nur anonym): anonftpd, vsftpd, trollftpd
17.1.3 ProFTPD
# in vielen Distributionen nicht enthalten
# Pakete für viele Distributionen verfügbar
# Gut vorkonfiguriert
# Umfassend konfigurierbar (/etc/proftpd.conf)
# genau auf „Bugs“ durchleuchtet
# läuft als nicht privilegierter – User
17.1.4 FTP Kommandos
# Serverseitig
- ftpwho Infos über FTP Benutzer
- ftpcount Anzahl der FTP User
- ftpshut FTP Server deaktivieren
# Clientseitig
- ftp Standard, wenig komfortable
- ncftp sehr bequem, Filename – Completion
- kbear Komfortabel, Graphisch
17.2 Der Apache Webserver
17.2.1 Webserver
# Server für WWW-Hypertext-Dokumente
# verwendet http-Protokoll (Hyper-Text-Transfer-Protocol)
# sendet
- Text (vor allem html)
- Grafik
- Sound,...
An Client(Browser)
- Internet Explorer
- Konquereror
- Mozilla,…
17.2.2 Der Apache Webserver
# A PatCHy sErver aufbauend auf NCSA-HTTPD
# open Source, Apache licence
# für gängige Plattformen (UNIX, NT, Mac, OS/2,...)
# eng an http-Standards orientiert
# aktuelle Version: 1.3.24, 2.0.35
# Erweiterungen: PHP- , Perl-Module, Java – Servlets, CGI-Scripts
17.2.3 Apache für (RedHat) Linux
# RPMs erhältlich
- apache
- apache-manual
# Daemon /sbin/httpd
# Initscript /etc/init.d/httpd
# Konfigurationsdateien /etc/httpd/conf/
# Logfiles /var/log/httpd
# Bibliotheken, Module /usr/lib/apache
# Server Root /var/www/ ( früher /home/httpd )
17.2.4 Apache Installation
# installieren : rpm –ihv apache.sowieso.rpm
# Achtung: trägt sich in /etc/rc[3,5].d ein
# starten: /etc/init.d/httpd start
# 1. Test: Browser auf http:/127.0.0.1 „ Willkommenseite „
# Link auf Dokumentation, Info
17.2.5 Apache Konfiguration
# Online Dokumentation, Homepage
# gut dokumentierte Beispielfiles
# /etc/httpd/conf/httpd.conf (Basiskonfiguration)
# GUI Comache (Configuration Manager for Apache)
17.3 Der Sendmail Mailserver
17.3.1 Mailserver – sendmail
# über 5 Milliarden E-Mails täglich
# sendmail über 60% Marktanteil
# stabil, performant , flexibel
# lauscht auf Port 25
# kommuniziert über SMTP
# SMTP definiert in RFC 821
# Mail Transfer Agent
17.3.2 Sendmail – Konfiguration
# /etc/sendmail.cf komplex, undurchschaubar
# /etc/mail/sendmail.mc einfacher, übersichtlicher
# /etc/mail/local-Host-name zusätzliche Hostnamen des Rechners, für die Mail empfangen werden sollen
# /etc/mail/access Zugriffssteuerung auf Benutzer/Rechner – Ebene
# /etc/aliases Empfänger-Aliases
18.1 Allgemeines
18.1.1 Allgemeines
# WARUM SICHERHEIT???
# Erhaltungswert des Systems
# Schutz vor Angriffsautomaten
# Andere nicht in Mitleidenschaft ziehen
# WAS IST BEI DER ABSICHERUNG WICHTIG???
# Ordentliche Administration
# Testen auf Sicherheitslöcher
# Gutes Verständnis der Netzwerktechnik
18.2 Updates
18.2.1 Updates
# Distributionen beheben sicherheitskritische Fehler
# Schutz vor Angriffsautomaten und Script-Kiddies
# Am besten täglich und automatisch
# „Never change a running System“???
18.3 Sniffer
ngrep!!!!
18.4 Portscanner
nmap!!!!
18.5 Firewalls
Wovor schützt eine Firewall?
JA
- unerwünschte Server im lokalen Netz
- Zugriff auf Services für den interne Bereich
- Unerwünschte Zugriffe von Benutzern auf Internetdienste
NEIN
- Angriffe auf angebotene Services
- Viren per E-Mail oder Web
- ...
19.1 NetBIOS
19.1.1 Was ist Samba?
# Der Linux-Rechner erscheint in der Netzwerkumgebung der Windows Maschinen
# Linux kann als Fileserver bequem Zugriff von Windows aus zulassen
# Der/die Drucker des Linux- Rechners können von Windows aus benutzt werden
# Verhält sich wie ein echter Windows NT Server
19.1.2 NetBIOS
# NetBIOS ist Software-Schnittstelle, entworfen für kleine Netze
# Verwendet eigenen Namensraum /NetBIOS Name ungleich DNS Name)
# beliebig viele Namen pro Rechner
# Kommunikation über Broadcasts
# Samba funktioniert nur über TCP/IP
19.2 Bestandteile von Samba
19.2.1 Bestandteile von Samba
# Server
- smbd ist der eigentliche Daemon für die Datei und Druckerfreigabe
- nmdb ist für die NetBIOS Namensauflösung zuständig
- testparm überprüft zentrale Konfigurationsdateien
- smbpasswd ist für Passwörter der Windows Benutzer zuständig
# Client
- smbclient erlaubt Zugriff auf Windows
- smbmount erlaubt das mounten solcher Shares
- smbprint erlaubt das Drucken auf Printer Shares
19.3 NetBIOS – Konfiguration mit Samba
19.3.1 /etc/samba/smb.conf
# einzelne Teile werden mit [] getrennt
# [global] ist der Hauptteil und zwingend erforderlich
# workgroup legt fest, in welcher Arbeitsgruppe/Domäne sich der Rechner anmelden soll
# interfaces gibt die Netzwerkadressen an, unter denen der Rechner erreichbar sein soll
19.4 Einfache Freigabe
19.4.1 Dateifreigabe
# Dateien müssen zuerst freigegeben werden , um von Windows aus sichtbar zu sein
# Jede Freigeabe ist ein eigener Abschnitt (z.B. [CD-ROM]) in /etc/samba/smb.conf
# path gibt das Verzeichnis an, das freigegeben werden soll
19.4.2 Druckerfreigabe
# Funktioniert genauso wie Dateifreigabe
# printable gibt an, dass es sich um einen Drucker handelt
# printer gibt die Druckerwarteschlange unter UNIX an
# path braucht eigene Spool-Verzeichnisse
19.5 Die Netzwekumgebung
19.5.1 Netzwerkumgebung
# Ein Local Master Browser sammelt die Broadcasts des Subnetzes; wird gewählr
# os level gibt die Chance an mit der Samba die Wahl gewinnt
# local master = no verhindert, dass Samba an der Wahl teilnimmt
# preferred master = yes Samba fängt eine Wahlan, falls er nicht LMB ist
19.6 NetBIOS über Subnetzgrenzen
19.6.1 WINS Server
Namensreservierung funktioniert nur im eigenen Subnetz
# LMHOSTS nur statische Möglichkeit, einen Server außerhalb zu erreichen
# WINS Server verwaltet alle Rechne im Netzwerk (d.h. Domäne/Arbeitsgruppe)
# wins server gibt Samba den WINS bekannt
# wins proxy = yes lässt Samba die Datenbank des WINS Server spiegeln
# wins support = yes Samba wird selbst WINS Server
19.7 SMB – Sitzungen
19.7.1 weitere Optionen
# smbclient –L <Rechnername> zeigt die Freigaben am angegebenen Rechner an
# netbios name setzt den Net BIOS Namen von Samba (muss nicht der FQDN sein)
# netbios aliases weitere Namen, die Samba für sich reserviert
# config file weitere Konfigurationsdatei, die eingebunden wird (am besten mit %L verwenden)
# security = share setzt die Sicherheit auf Freigabeebene (alle dürfen zugreifen); andere Parameter: user, server, domain
19.8 Zugriffsrechte
19.8.1 Zugriffsrechte
# ohne weitere Optionen darf jeder auf die Freigebe zugreifen
# writable allgemeiner Schreibschutz
# valid user die User dürfen auf die Freigabe zugreifen
# write list diese User dürfen Schreiben (auch wenn writeable = no)
19.8.2 UNIX – Zugriffsrechte
# create mask gibt die Zugriffsrechte im chmod Stil für neu erstellte Dateien an
# force create mode gibt zusätzliche Zugriffsrechte an , die immer angehängt werden
# directory mask gibt die Zugriffsrechte für neu erstellte Verzeichnisse an
# force directory mode analog zu force mask für Verzeichnisse