DNS-Auflösung und Reverse Lookup

$ host www.wikiberd.de
$ host -A www.wikiberd.de
$ host 188.246.6.99

$ nslookup www.wikiberd.de
$ nslookup 188.246.6.99

ICMP Echo-Request

$ ping www.wikiberd.de
$ ping -I l2tp-vpn1 www.wikiberd.de

Flood Ping erfordert Root-Rechte. Für jedes gesendete Packet wird ein Punkt und für jede Antwort wird ein Backspace ausgegeben. Die Anzahl der Punkt zeigt daher die verlorenen Pakete.

$ sudo ping -I l2tp-vpn1 -f www.wikiberd.de
PING www.wikiberd.de (188.246.6.99) 56(84) bytes of data.
....^C
--- www.wikiberd.de ping statistics ---
13850 packets transmitted, 13846 received, 1% packet loss, time 1958ms
rtt min/avg/max/mdev = 0.123/0.129/0.285/0.013 ms, ipg/ewma 0.141/0.131 ms

Einfache Netfilter-Regeln (iptables, ip6tables)

-4, -6
Regel nur für IPv4 oder IPv6
-t table
Auswahl einer Tabelle (Default: filter):
filter, nat, mangle, raw, rsecurity
-N chain
Anlage einer neuen Kette in der Tabelle
-P chain policy
Standardverhalten einer Kette: ACCEPT, REJECT, DROP
-A chain rule
Anhängen einer neuen Regel ans Ende der Kette
-D chain rule
Löschen einer Regel in der Kette
-I chain [nr] rule
Einfügen einer neuen Regel in der Mitte
-R chain nr rule
Ersetzen einer Regel
-L [chain]
Ausliften aller Regeln
-F [chain]
Alle Regeln verwerfen (Flush)
-X
Alle Benutzerdefinierte Ketten löschen
-Z
Alle Zähler zurücksetzen
!
Verneinung der folgenden Option
-i, -o
INPUT und OUTPUT-Interface
-p protocol
Protokoll: tcp, udp, imcp, icmpv6, all, ...
-s ip, -sport nr
Quelladresse, Quellport
-d ip, -dport nr
Zieladresse, Zielport
-m module --parameter
Auswahl eines Moduls mit Modulparametern
-m state --state state
Verbindungsstatus: NEW, ESTABLISHED, RELATED, ...
-p tcp --tcp-flags X,X,X Y,Y,Y
Prüfe TCP-Flags X,X,X, wenn Y,Y,Y gesetzt sind (Maske)
SYN, ACK, FIN, RST, URG, PSH, ALL, NONE
-j chain
Absprung zu Kette ACCEPT, REJECT, RETURN, ...

Firewall zurücksetzen:
$ iptables -P INPUT ACCEPT
$ iptables -F INPUT
$ iptables -P OUTPUT ACCEPT
$ iptables -F OUTPUT
$ iptables -P FORWARD DROP
$ iptables -F FORWARD
$ iptables -t nat -F

Einzelne Ports öffnen, ohne NAT:
$ iptables -F INPUT
$ iptables -P INPUT ACCEPT

$ iptables -A INPUT -i lo -j ACCEPT
$ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

$ iptables -A INPUT -4 -p icmp -m limit --limit 10/second --limit-burst 2 -j ACCEPT
$ iptables -A INPUT -6 -p icmpv6 -m limit --limit 10/second --limit-burst 2 -j ACCEPT

$ iptables -A INPUT -i eth0 -p tcp --dport tinc -m state --state NEW -j ACCEPT
$ iptables -A INPUT -i eth0 -p udp --dport tinc -m state --state NEW -j ACCEPT
$ iptables -A INPUT -i eth0 -p tcp -m multiport --dports http,https -m state --state NEW -j ACCEPT

$ iptables -A INPUT -j LOG --log-prefix "iptables reject (input): " --log-level 4
$ iptables -A INPUT -j REJECT

NAT und Masquerading

Destination NAT: Portweiterleitung, Anfragen werden an interne Hosts weitergeleitet
Source NAT: Austausch der Quelladresse für ausgehende Anfragen
IP-Masquerade: Versteckt ein internes Netzwerk hinter einer öffentlichen IP-Adresse

Auf ppp0 ins Internet gehende Verbindungen maskieren:
$ iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
$ iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT
$ iptables -A FORWARD -i ppp0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Portweiterleitung an einen internen Webserver. Durch die zweite Regel können auch interne Hosts die externe IP aufrufen:
$ iptables -t nat -A PREROUTING -p tcp -d 188.246.6.99 --dport 80 -j DNAT --to 192.168.1.99:80
$ iptables -t nat -A POSTROUTING -p tcp -d 188.246.6.99 --dport 80 -s 192.168.1.0/24 -j SNAT --to 192.168.1.99:80

Statische Routen

xxx

Policy Routing

xxx

Mehrere Interfaces bridgen

xxx

Verschiedene Netzwerkinformationen

Auflistung aller Socketverbindungen (intern und extern):
$ netstat -a
$ netstat -an

Auflistung aller eingehenden Verbindungen:
$ netstat -al

Eingrezung auf TCP oder UDP:
$ netstat -alt
$ netstat -alu
$ netstat -atu
$ netstat -altu

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN    
tcp        0      0 localhost.local:privoxy 0.0.0.0:*               LISTEN    
tcp        0      0 localhost.localdoma:ipp 0.0.0.0:*               LISTEN    
tcp        0      0 metropolis.lan:33103    snt-re4-8c.sjc.dro:http ESTABLISHED
tcp        1      0 metropolis.lan:44927    6-55-236-85.rev.cu:http CLOSE_WAIT
tcp        0      0 metropolis.lan:39384    router-intern.lan:ssh   ESTABLISHED
tcp       32      0 metropolis.lan:37439    6-55-236-85.rev.c:https CLOSE_WAIT
tcp6       0      0 ::?:ssh                ::?:*                  LISTEN    
tcp6       0      0 localhost6.localdom:ipp ::?:*                  LISTEN    

Netzwerkverbindungen mit lsof auflisten:
$ lsof -i TCP
COMMAND  PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
dropbox 2278 dennis   18u  IPv4  95849      0t0  TCP metropolis.lan:33103->snt-re4-8c.sjc.dropbox.com:http (ESTABLISHED)
ssh     7204 dennis    3u  IPv4  63858      0t0  TCP metropolis.lan:39384->router-intern.lan:ssh (ESTABLISHED)

Informationen über ein Netzwerkinterface:
$ ifconfig l2tp-vpn1
l2tp-vpn1 Link encap:Point-to-Point Protocol 
          inet addr:188.246.6.99  P-t-P:188.246.4.1  Mask:255.255.255.255
          inet6 addr: fe80::449b:1a7b?:df7c:8cb7/10 Scope:Link
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:24697 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:1557600 (1.4 MiB)  TX bytes:234 (234.0 B)

Auflistung des ARP-Caches:
$ arp -an
? (192.168.1.1) at 2e:b0:5d:93:b6:17 ether? on p2p1
? (192.168.1.14) at ca:fe:ba:be:00:03 ether? on p2p1
? (192.168.1.12) at ca:fe:ba:be:00:01 ether? on p2p1

Pakete mitschneiden (Sniffing)

$ tcpdump -i l2tp-vpn1
$ tcpdump -Xvv -i l2tp-vpn1


attachments

imageappend Append an Image
>