$ host www.wikiberd.de
$ host -A www.wikiberd.de
$ host 188.246.6.99
$ nslookup www.wikiberd.de
$ nslookup 188.246.6.99
$ 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
-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
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
xxx
xxx
xxx
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
$ tcpdump -i l2tp-vpn1
$ tcpdump -Xvv -i l2tp-vpn1