Netzwerkinterface. Routing tcp-wrapper. Firewall. Nach Innen. libwrap tcpd-applikationen Konfiguration Einbindung in verschiedene Applikationen

Ähnliche Dokumente
Firewall Implementierung unter Mac OS X

SelfLinux xinetd

Jens Kutílek. slrn + leafnode auf Mac OS X installieren. Voraussetzungen. leafnode. tcsh (Standard bei Mac OS X 10.0 bis 10.2)

ftp HOWTO.txt (C) 2013 OSTC GmbH ( Aug 25, 13 15:00 Page 1/7 Sonntag August 25, /7 HOWTO zum File Transfer Protocol "FTP"

Automail für fli4l. Kurze Beschreibung der Umgebung. Das Problem. LinuxFocus article number by Stefan Blechschmidt

Lösung Übungszettel 6

3 Netzdienste im Internet. vs3 1

Konfiguration einer Firewall mit FireHOL

7 TCP/IP-Dienste konfigurieren

Anmeldung über Netz Secure Socket Layer Secure Shell SSH 1 SSH 2. Systemverwaltung. Tatjana Heuser. Sep Tatjana Heuser: Systemverwaltung

4 Vorgänge automatisch starten

Da es sich in meinem Fall um einen USB-Scanner handelt, sollte dieser mittels

#13. VNC-Server bei Bedarf automatisch starten Sparen Sie sich das manuelle Starten von VNC-Servern auf entfernten Rechnern.

NAT und Firewalls. Jörn Stuphorn Universität Bielefeld Technische Fakultät

Empfehlungen zur statischen Konfiguration von Firewalls im D-Grid

Rechnernetze. 6. Übung

Vernetzung von Linux und Windows

Parallels Plesk Panel. Firewall-Modul für Parallels Plesk Panel 10 für Linux/Unix. Administratorhandbuch

Stefan Dahler. 1. Konfiguration der Stateful Inspection Firewall. 1.1 Einleitung

Wolfgang Barth Das Firewall-Buch Grundlagen, Aufbau und Betrieb sicherer Netzwerke mit Linux SuSE PRESS

VPN Tunnel Konfiguration. VPN Tunnel Konfiguration IACBOX.COM. Version Deutsch

Konfigurationsanleitung IPsec mit ISDN Backup und statischen IP-Adressen Funkwerk / Bintec

Generating Fingerprints of Network Servers and their Use in Honeypots. Thomas Apel

Ausgewählte Themen. In diesem Teil werden ausgewählte Themen vorgestellt: Fehlerbehandlung Dämonen Zombies. Inhalt. 1. Fehlerbehandlung...

VPN (Virtual Private Network)

SSH im praktischen Einsatz

Einrichtung von radsecproxy. Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal

Internetprotokolle: POP3. Peter Karsten Klasse: IT7a. Seite 1 von 6

Managed VPSv3 Firewall Supplement

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

Aufgaben einer Firewall. Firewalls. Firewall-Arten. Hardwarebasierte Firewalls. Eine Firewall überwacht den sie durchquerenden Datenverkehr.

proftpd Ziel Installation Mögliche Zugänge

Security-Webinar. Februar Dr. Christopher Kunz, filoo GmbH

Alles Text Sockets à la Plan 9

Sicherheit von Linux-Systemen

Java Application 1 Java Application 2. JDBC DriverManager. JDBC-ODBC Br idge. ODBC Driver Manager. Dr iver C. Dr iver D.

Step by Step vsftpd unter SuSe Linux. von Christian Bartl

Protokoll. Höhere Technische Bundeslehranstalt Fischergasse 30 A-4600 Wels. Titel der Übung: Very Secure FTP Daemon

Study-Guide: Netzwerkdienste

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

IPFW. Eine einfache Firewall mit FreeBSD erstellen. Martin 'Ventilator' Ebnöther mit viel Unterstützung von Fabian 'fab' Wenk

Android VPN. Am Beispiel eines Netzwerktunnels für das Domain Name System (DNS) 1 Andiodine - Android DNS-VPN

Anleitung zur Einrichtung von Outbound und Inbound Filtern Für DWR-512 (Stand August 2012)

Vernetzter Anschluss von Heidenhain - Steuerungen an MCIS DNC Cell / Plant

Intrusion Prevention mit IPTables. Secure Linux Administration Conference, 6. / 7. Dec Dr. Michael Schwartzkopff. iptables_recent, SLAC 2007 / 1

Installing OpenBSD. Fabian Heusser; Pascal Näf. April Einleitung Aufgabe Voraussetzungen... 2

NFS - Network File System

1 Network File System ( NFS )

LINUX-Sicherheits-Kochbuch

Modul und FTP. Unit 6. (pop / smtp), FTP (activ/passive Mode) FTP-Server mit Microsofts IIS

Adressauflösung. IP Adresse Physikalische Adresse :FF:AA:36:AB: :48:A4:28:AA:18

Werkzeuge zur Netzwerkdiagnose

Um DynDNS zu konfigurieren, muss ausschließlich folgendes Menü konfiguriert werden:

Tutorial -

Fachbereich Medienproduktion

Mail Protokolle. ESMTP: Extented SMTP Server gibt Infos über seine Fähigkeiten aus, zb für Verschlüsselung verwendet

Ftpserver unter VNUML von Christian Oellig Iwan Diel

Virtual Private Networks mit OpenVPN. Matthias Schmidt Chaostreff Giessen/Marburg

Hier folgt eine kurze Aufstellung über die verwendete Architekur. Die Angaben sind ohne Gewähr für Vollständigkeit oder vollständige Richtigkeit.

PostgreSQL unter Debian Linux

Switching. Übung 2 System Management. 2.1 Szenario

Aus Eins mach Viele. Der Einzelplatz Zugang für die ganze WG. Sprecher: Rene cavac Schickbauer

SSH. Hergen Harnisch Hergen Harnisch, SSH, 19. Januar 2010 Seite 1/22

Benutzerhinweise IGW/920-SK/92: Einsatz als VPN-Client

InterCafe Handbuch für Linux Client

Remote Administration von Windows Servern mit Microsoft Terminal Services und OpenSSH

Rechnernetze Übung 12

Managed VPS Linux Erläuterungen zur Firewall

Firewalling. Michael Mayer IAV0608 Seite 1 von 6

Datensicherung mit Netbackup im RRZN

VPN IPSec Tunnel zwischen zwei DI-804HV / DI-824VUP+

SNMP Kommandos für Alcatel-Lucent OmniSwitch Produkte

Linux Netzwerk-Handbuch

DynDNS für Strato Domains im Eigenbau

Zentrales Konfigurationsmanagement mit Puppet

TCP/IP im Überblick IP ARP ICMP TCP UDP DNS... 25

Eingabeprogramm (ENVIO)

Client-Server-Prinzip

Analyse und Darstellung der Protokollabläufe in IPv6-basierten Rechnernetzen

SNMP 1 -basierte dynamische Netzwerkkonfiguration und analyse

Mail doch einfach selber

SSH Authentifizierung über Public Key

Directory Services für heterogene IT Landschaften. Basierend auf LDAP und OSS

Linux 07. Linux WS 04/05 by

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

POP3 und SMTP live und schwarzweiß

lsof Johannes Franken

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Linux 08. Linux WS 04/05 by DNS - named: in /etc/named.conf. DNS Top-Level-DNS

Transmission Control Protocol (TCP)

Der KDE Kiosk Modus. einfach und flexibel zum verwüstungsfesten Desktop. von Michael Hartmann

bintec Workshop Konfiguration von DynDNS Copyright 8. November 2005 Funkwerk Enterprise Communications GmbH Version 0.9

Leafnode - ein Newsserver unter Linux

Outlook 2013

Werden automatisch beim Start erstellt.

IMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1

netcat Johannes Franken

R e m o t e A c c e s s. Cyrus Massoumi

Einführung in Firewall-Regeln 1

Transkript:

2.Härten von UNIX-Systemen tcp-wrapper Netzwerkinterface Routing tcp-wrapper libwrap tcpd-applikationen Konfiguration Einbindung in verschiedene Applikationen Firewall Allgemeines Linux iptables OpenBSD. FreeBSD PF Toolkit BSD, Solaris - IPF Toolkit Löcher in Firewalls - Virtuelle Private Netze Nach Innen

Leistungen und Funktionsweise Bestandteile Bibliothek: libwrap Programme: tcpd, tcpdchk, tcpdmatch, safe_finger, try-from Konfiguration /etc/hosts.allow /etc/hosts.deny Einbindung inetd, xinetd, sshd, portmap, rpcbind, sendmail, imap, pop, ldap 2

Der bietet folgende Leistungen: eingehende Netzwerkverbindungen mittels syslogd zu protokollieren eingehende Netzwerkverbindungen blockieren Verbindung verwerfen Verbindung manipulieren eingehende Netzwerkverbindungen an den eigentlichen Dienst weiterreichen gefälschte Absenderadressen erkennen (Name, IP-Adresse) paranoide Absender IP-Spoofing erkennen unterstützt TCP und UDP Protokoll (außer rpc/tcp -Verbindungen und wait-dienste) 3

Einbindung: - Der kann direkt in eine Applikation eingebunden werden (z.b. werden sshd, sendmail, xinetd, imap, pop,... gegen die Bibliothek libwrap gelinkt) - Der kann als eigenständiges Programm für jede Applikation benutzt werden, die mit dem inetd zusammenarbeiten kann. Funktionsweise: bekommt eine eröffnete Verbindung übergeben legt request-struktur an (mit Name der Applikation) bestimmt Absender(Adresse, Port, Nutzer) überprüft entsprechend den Regeln in den Konfigurationsfiles /etc/hosts.allow und /etc/hosts.deny die Zulässigkeit der Verbindung. 4

Bibliothek: libwrap(1) struct request_info *request_init(request, key, value,..., 0); struct reques_info *request; Initialisieren der Struktur request mit den Informationen über den Clienten. Die Initialisierungswerte werden mittels Parameterpaaren bestehend aus Schlüssel key und Werten value übergeben (variable Zahl). Folgende Schlüssel sind zulässig: RQ_FILE - Filedescriptor der Verbindung RQ_DAEMON - Name des Server-Daemons 5

Bibliothek: libwrap(2) struct request_info *request_set(request, key, value,..., 0); struct reques_info *request; Modifiziert die Struktur request mit den Informationen über den Clienten. Die zu modifizierenden Werte werden mittels Parameterpaaren bestehend aus Schlüssel key und Werten value übergeben (variable Zahl). Folgende Schlüssel sind zulässig: RQ_CLIENT_NAME - Name des Clienten RQ_CLIENT_ADDR - IP-Adresse des Clienten RQ_CLIENT_SIN - Adresse und Port des Clienten (*sockaddr_in) RQ_USER - Nutzername des Prozesses auf dem Clienten 6

Bibliothek: libwrap(3) int hosts_access(request); struct request_info *request; hosts_access überprüft an Hand der Konfigurationsfiles /etc/hosts.allow und /etc/hosts.deny die Zulässigkeit des Request. Die in den Konfigurationsfiles angegebenen Aktionen werden ausgeführt. Wenn der Request nicht zulässig ist, ist der Rückkehrwert 0. Die Variablen allow_severity bzw. deny_severity bestimmen das Protokollverhalten für erlaubte bzw. verbotene Verbindungen. 7

Bibliothek: libwrap(4) int hosts_ctl(daemon, client_name, cleint_addr, client_user); char *daemon; char *client_name; char *client_addr; char *client_user; hosts_clt ist ein Wrapper für request_init und hosts_access, der einen einfacheren Zugang zum ermöglichen soll. Nicht belegbare Parameter sind mit STRING_UNKNOWN zu belegen. 8

Bibliothek: libwrap(5) Beispiel tcpd #include <sys/types.h>... #include tcpd.h int allow_severity = SERVERITY; int deny_severity = LOG_WARNING; main(int argc, char **argv); { struct request_info request; char path[1024]; 9

} umask(daemon_umask); if (argv[0][0] == '/') { strcpy(path, argv[0]); arv[0] = strrchr(argv[0],'/') + 1; } else sprintf(path, %s/%s,real_daemon_dir, argv[0]); (void) openlog(argv[0], LOG_PID); request_init(&request, RQ_DAEMON,argv[0], RQ_FILE, STDIN_FILENO,0); fromhost(&request); /* eintragen des Absenders in request-struktur */ if (!hosts_access(&request)) refuse(&request); syslog(allow_severity, connect from %s, eval_client(&request)); closelog(); void) execv(path,argv); syslog(log_err, error: cannot execute %s: %m, path); clean_exit(&request); 10

Applikationen(1) tcpd tcp-wrapper. Dieses Programm wird für den Aufruf des eigentlichen Servers benutzt (/.../libexec/tcpd). Die Serverprogramme müssen in einer fest vorgegeben Directory stehen. Der typische Anwendungsfall ist der Aufruf eines Servers mittels inetd. Die entsprechenden Zeilen in der inetd.conf-datei sehen wie folgt aus: ftp stream tcp nowait root /usr/sbin/tcpd in.ftp telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd finger stream tcp nowait nobody /usr/sbin/tcpd in.fingerd 11

Applikationen(2) tcpdchk [-a] [-d] [-i inet_conf] [-v] Überprüfen der Konfiguration auf mögliche Fehler /.../libexec/tcpdchk). -a Ausgabe von Regeln, die ohne explizitem ALLOW den Zugriff zulassen -d benutze host.allow und hosts.deny im aktuellen Directory -i inet_conf benutze inet_conf anstelle von /etc/inetd.conf -v Alle Regeln einzeln ausgeben 12

Applikationen(3) tcpdmatch [-d] [-i inet_conf] daemon[@server] [user@]client Überprüfen des s auf bestimmte Anfragen (/.../libexec/tcpdmatch). daemon[@server] Dienst und Host für den der tcp-wrapper läuft [user@]client Nutzer und Host der des Clienten, der den Dienst benutzen will. -d benutze host.allow und hosts.deny im aktuellen Directory -i inet_conf benutze inet_conf anstelle von /etc/inetd.conf 13

Applikationen(4) safe_finger [-hlmmops] [user] safe_finger [-l] [user@host] Sicheres, rekursionsfreies finger-programm. Dient zum Abfragen des finger-daemons (/.../libexec/safe_finger). -l langes Format -s kurzes Format -M alle Nutzer anzeigen -o Office Informationen hinzufügen 14

Konfiguration(1) /etc/hosts.allow Regeln für zulässige Verbindungen /etc/hosts.deny Regeln für unzulässige Verbindungen einfaches Regelwerk: <Liste von Diensten> : <Liste von Clienten> [ : <Aktion>] <Liste von Diensten>::=<Dienstname> ALL { <Dienstname>} <Liste von Clienten>::=<Client> { <Client> } <Client>::=<Hostname> <IP-Adresse> <Netzwerk>/<Netzwerkmaske> LOCAL UNKNOWN KNOWN PARANOID <Aktion>::=allow deny <Shell-Kommando> 15

Konfiguration(2) Platzhalter in Shell-Kommandos %A - IP-Adresse des Servers %a - IP-Adresse des Clienten %c - Informationen vom Clienten: nutzer@client %d - Dienstname (z.b. in.ftpd) %H - Name des Servers, sonst IP-Adresse %N - Name des Servers, sonst 'unknown' %h - Name des Clienten, sonst IP-Adresse %n - Name des Clienten, sonst 'unknown' %p - Prozessnummer des Daemon 16

Konfiguration(3) Beispiel (einfaches Regelwerk): /etc/hosts.allow (Regeln für zulässige Verbindungen) rpcbind: 141.20.20.0/255.255.255.255.0 141.20.20.21.0/255.255.255.0 sshd: 141.20.20.0/255.255.255.0 141.20.28.18 141.20.8.135 ALL: bellus3 in.telnetd in.ftpd : 141.20.20.20 141.20.20.22 : ALLOW /etc/hosts.deny (Regeln für unzulässige Verbindungen) rpcbind : ALL : ( /usr/sbin/safe_finger -l @%h /usr/ucb/mail -s "`/bin/hostname`-%d-%h-%a" bell@informatik.hu-berlin.de ) & in.telnetd : ALL : DENY ALL: ALL: (/usr/sbin/safe_finger -l @%h /usr/ucb/mail -s "`/bin/hostname`-%d-%h-%a" bell@informatik.hu-berlin.e) & 17

Konfiguration(4) /etc/hosts.allow Regeln für zulässige Verbindungen /etc/hosts.deny Regeln für unzulässige Verbindungen Erweitertes Regelwerk: Wie einfaches Regelwerk mit zusätzlichen Möglichkeiten für Aktionen. Erweitertes Regelwerk kommt ab Solaris 10 zum Einsatz!!! <Aktion>::= <einfache Aktion> { : <einfache Aktion> } <einfache Aktion>::= allow deny banners <Path> keepalive linger <sekunden> severity <dienstname>.info nice <Wert> rfc931 setenv <Name> <Wert> spawn <Shell-Kommando> twist <Shell-Kommando> umask <ooo> user <UID> <GID> 18

Konfiguration(5) banners <Path> - Bannerfile (Path/<Dienstname>) wird an Client übergeben keepalive - keepalive für Dienst aktivieren linger <sekunden> - halten der Verbindung nach Beendigung des Dienstes severity <dienstname>.info - in syslog schreiben nice <Wert> - nice-wert für Dienst setzen rfc931 - rfc931 zur Clientenbestimmung benutzen setenv <Name> <Wert> - Umgebungsvariable setzen spawn <Shell-Kommando> - Kommando abarbeiten twist <Shell-Kommando> - Shell-Kommando abarbeiten(dienst nicht) umask <ooo> - Filecration-Maske setzen user <UID> <GID> - User-ID und Group-ID setzen 19

Konfiguration (6) Beispiele (erweitertes Regelwerk): /etc/hosts.allow sshd : ALL : ALLOW in.telnetd : 141.20.21.0/255.255.255.0 : twist /bin/echo abgeschaltet rpcbind : LOCAL : ALLOW /etc/hosts.deny rpcbind: ALL in.telnetd: ALL : spawn (/usr/sbin/safe_finger -l @%h /usr/bin/mailx -s telnet-%d-%h-%a bell) : DENY 20

Einbindung (1) Alle Applikationen benutzen /etc/hosts.allow und /etc/hosts.deny!! 1. inetd (Solaris <2.10, BSD-Systeme) /etc/inetd.conf telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd 2. inetd (Solaris 2.10) inetadm -M tcp_wrappers=true svccfg select svc:/network/rpc/bind setprop config/enable_tcpwrappers=true 21

Einbindung (2) 3. xinetd (Linux) /etc/xinet.d/<applikation> /etc/xinet.d/telnet service telnet { socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/in.telnetd disable = no } /etc/hosts.allow: in.telnetd : LOCAL : allow 22

Einbindung (3) 4. portmap (BSD-Systeme) portmapper der gegen libwrap gelinkt ist. /etc/hosts.allow: portmap : 141.20.20.0/255.255.255.0 /etc/hosts.deny portmap : ALL : deny Installieren: pmap_dump > table kill <old portmapper> /usr/sbin/portmap pmap_set < table # neuen Portmapper starten 23

Einbindung (4) 5. rpcbind (System V, Solaris) Portmapper der gegen libwrap gelinkt ist. /etc/hosts.allow rpcbind: 141.20.20.0/255.255.255.0 : ALLOW /etc/hosts.deny rpcbind: ALL : spawn ( /usr/sbin/safe_finger -l @%h /usr/bin/mailx -s %d-%h-%h-%a bell ) : DENY installieren: kill -TERM <alter rpcbind> # es entsteht /tmp/rpcbind.file und alter rpcbind wird beendet rpcbind -w # Warmstart des neuen rpcbind und /tmp/rpcbind.file 24

Beispiele 25