der_angler
20.01.07, 11:46
nabend,
also ich versuche jetzt seit ner ganzen Weile einen VPN-Server einzurichten.
Als Server-System dient ein Fedora Core 5 System, als Client will ich mich von Windows aus ins Netzwerk einklinken.
Ich bin ziemlich exakt nach dieser Anleitung vorgegangen http://www.linuxforen.de/forums/showthread.php?t=169354&highlight=vpn
Aber funktionieren tut es irgendwie nicht.
Die Erstellung der Keys & Zertifikate ging ja noch ohne Probleme.
Aber sobald ich VPN starten will bekomme ich folgende Fehlermeldung:
[root@kraus-automaten ~]# service openvpn start
openvpn starten: RTNETLINK answers: File exists
[FEHLGESCHLAGEN]
messages zeigt mir dabei folgendes:
Jan 20 11:36:10 kraus-automaten openvpn[13202]: OpenVPN 2.1_beta14 i386-redhat-linux-gnu [SSL] [LZO1] [EPOLL] built on Apr 14 2006
Jan 20 11:36:10 kraus-automaten openvpn[13202]: WARNING: you are using user/group/chroot without persist-tun -- this may cause restarts to fail
Jan 20 11:36:10 kraus-automaten openvpn[13202]: WARNING: you are using user/group/chroot without persist-key -- this may cause restarts to fail
Jan 20 11:36:10 kraus-automaten openvpn[13202]: WARNING: --keepalive option is missing from server config
Jan 20 11:36:10 kraus-automaten openvpn[13202]: Diffie-Hellman initialized with 1024 bit key
Jan 20 11:36:10 kraus-automaten openvpn[13202]: TLS-Auth MTU parms [ L:1558 D:138 EF:38 EB:0 ET:0 EL:0 ]
Jan 20 11:36:10 kraus-automaten openvpn[13202]: TUN/TAP device tun0 opened
Jan 20 11:36:10 kraus-automaten openvpn[13202]: TUN/TAP TX queue length set to 100
Jan 20 11:36:10 kraus-automaten openvpn[13202]: /sbin/ip link set dev tun0 up mtu 1500
Jan 20 11:36:10 kraus-automaten openvpn[13202]: /sbin/ip addr add dev tun0 local 192.168.32.1 peer 192.168.32.2
Jan 20 11:36:10 kraus-automaten openvpn[13202]: /sbin/ip route add 192.168.32.0/24 via 192.168.32.2
Jan 20 11:36:10 kraus-automaten openvpn[13202]: ERROR: Linux route add command failed: shell command exited with error status: 2
Jan 20 11:36:10 kraus-automaten openvpn[13202]: Data Channel MTU parms [ L:1558 D:1450 EF:58 EB:135 ET:0 EL:0 AF:3/1 ]
Jan 20 11:36:10 kraus-automaten openvpn[13202]: failed to find GID for group user
Jan 20 11:36:10 kraus-automaten openvpn[13202]: Exiting
cat /etc/openvpn/openvpn_ssl.conf
dev tun
proto udp
port 1194
server 192.168.32.0 255.255.255.0
mode server
ifconfig-pool-persist /etc/openvpn/ipp.txt
tls-server
dh /etc/openvpn/zertifikate/dh1024.pem
ca /etc/openvpn/zertifikate/ca.crt
cert /etc/openvpn/zertifikate/server.crt
key /etc/openvpn/zertifikate/server.key
push „route 192.168.32.0 255.255.255.0“
cipher AES-256-CBC
user nobody # Nur Linux
group user # Nur Linux
status /etc/openvpn/openvpn-status.log
comp-lzo
verb 3
Und irgendwie sitze ich jetzt wieder mal gewaltig auf dem Schlauch .... die Server IP ist intern "192.168.32.1" .... außerdem meldest er die InternetIP an einen "No-IP.com"-Account (zwecks Einwahl).
Meine Firewall habe ich eigentlich auch entsprechend umgestellt:
#!/bin/bash
echo "Starte IP-Paketfilter"
# iptables-Modul
modprobe ip_tables
# Connection-Tracking-Module
modprobe ip_conntrack
# Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# MY_REJECT-Chain
iptables -N MY_REJECT
# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable
# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP
# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "
iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "
# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP
# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP
# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Maximum Segment Size (MSS) für das Forwarding an PMTU anpassen
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# VPN
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
# SSH
iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 22 -j ACCEPT
# LAN-Zugriff auf eth0
iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
# LAN-Zugriff auf eth1
iptables -A INPUT -m state --state NEW -i eth1 -j ACCEPT
# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT
iptables -A FORWARD -j MY_REJECT
# Routing
echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
# Masquerading
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# SYN-Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
# Stop Source-Routing
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done
# Stop Redirecting
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done
# Reverse-Path-Filter
for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done
# Log Martians
for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done
# BOOTP-Relaying ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done
# Proxy-ARP ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done
# Ungültige ICMP-Antworten ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null
# ICMP Echo-Broadcasts ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit
# Speicherallozierung und -timing für IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time
# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1
# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2
PS:
Meine Windows-Client Datei sieht folgendermassen aus:
dev tun
remote XXXXX.no-ip.org
tls-client
ca ca.crt
cert client1.crt
key client1.key
pull
port 1194
cipher AES-256-CBC
comp-lzo
verb 3
Ist das wenigstens richtig?
Kann mir bitte jemand mit dem VPN-Server helfen?
also ich versuche jetzt seit ner ganzen Weile einen VPN-Server einzurichten.
Als Server-System dient ein Fedora Core 5 System, als Client will ich mich von Windows aus ins Netzwerk einklinken.
Ich bin ziemlich exakt nach dieser Anleitung vorgegangen http://www.linuxforen.de/forums/showthread.php?t=169354&highlight=vpn
Aber funktionieren tut es irgendwie nicht.
Die Erstellung der Keys & Zertifikate ging ja noch ohne Probleme.
Aber sobald ich VPN starten will bekomme ich folgende Fehlermeldung:
[root@kraus-automaten ~]# service openvpn start
openvpn starten: RTNETLINK answers: File exists
[FEHLGESCHLAGEN]
messages zeigt mir dabei folgendes:
Jan 20 11:36:10 kraus-automaten openvpn[13202]: OpenVPN 2.1_beta14 i386-redhat-linux-gnu [SSL] [LZO1] [EPOLL] built on Apr 14 2006
Jan 20 11:36:10 kraus-automaten openvpn[13202]: WARNING: you are using user/group/chroot without persist-tun -- this may cause restarts to fail
Jan 20 11:36:10 kraus-automaten openvpn[13202]: WARNING: you are using user/group/chroot without persist-key -- this may cause restarts to fail
Jan 20 11:36:10 kraus-automaten openvpn[13202]: WARNING: --keepalive option is missing from server config
Jan 20 11:36:10 kraus-automaten openvpn[13202]: Diffie-Hellman initialized with 1024 bit key
Jan 20 11:36:10 kraus-automaten openvpn[13202]: TLS-Auth MTU parms [ L:1558 D:138 EF:38 EB:0 ET:0 EL:0 ]
Jan 20 11:36:10 kraus-automaten openvpn[13202]: TUN/TAP device tun0 opened
Jan 20 11:36:10 kraus-automaten openvpn[13202]: TUN/TAP TX queue length set to 100
Jan 20 11:36:10 kraus-automaten openvpn[13202]: /sbin/ip link set dev tun0 up mtu 1500
Jan 20 11:36:10 kraus-automaten openvpn[13202]: /sbin/ip addr add dev tun0 local 192.168.32.1 peer 192.168.32.2
Jan 20 11:36:10 kraus-automaten openvpn[13202]: /sbin/ip route add 192.168.32.0/24 via 192.168.32.2
Jan 20 11:36:10 kraus-automaten openvpn[13202]: ERROR: Linux route add command failed: shell command exited with error status: 2
Jan 20 11:36:10 kraus-automaten openvpn[13202]: Data Channel MTU parms [ L:1558 D:1450 EF:58 EB:135 ET:0 EL:0 AF:3/1 ]
Jan 20 11:36:10 kraus-automaten openvpn[13202]: failed to find GID for group user
Jan 20 11:36:10 kraus-automaten openvpn[13202]: Exiting
cat /etc/openvpn/openvpn_ssl.conf
dev tun
proto udp
port 1194
server 192.168.32.0 255.255.255.0
mode server
ifconfig-pool-persist /etc/openvpn/ipp.txt
tls-server
dh /etc/openvpn/zertifikate/dh1024.pem
ca /etc/openvpn/zertifikate/ca.crt
cert /etc/openvpn/zertifikate/server.crt
key /etc/openvpn/zertifikate/server.key
push „route 192.168.32.0 255.255.255.0“
cipher AES-256-CBC
user nobody # Nur Linux
group user # Nur Linux
status /etc/openvpn/openvpn-status.log
comp-lzo
verb 3
Und irgendwie sitze ich jetzt wieder mal gewaltig auf dem Schlauch .... die Server IP ist intern "192.168.32.1" .... außerdem meldest er die InternetIP an einen "No-IP.com"-Account (zwecks Einwahl).
Meine Firewall habe ich eigentlich auch entsprechend umgestellt:
#!/bin/bash
echo "Starte IP-Paketfilter"
# iptables-Modul
modprobe ip_tables
# Connection-Tracking-Module
modprobe ip_conntrack
# Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar
modprobe ip_conntrack_irc
modprobe ip_conntrack_ftp
# Tabelle flushen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
# Default-Policies setzen
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
# MY_REJECT-Chain
iptables -N MY_REJECT
# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP
iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable
# MY_DROP-Chain
iptables -N MY_DROP
iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP
# Alle verworfenen Pakete protokollieren
iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "
iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "
# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
# Stealth Scans etc. DROPpen
# Keine Flags gesetzt
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP
# SYN und FIN gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
# SYN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
# FIN und RST gleichzeitig gesetzt
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
# FIN ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
# PSH ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
# URG ohne ACK
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP
# Loopback-Netzwerk-Kommunikation zulassen
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Maximum Segment Size (MSS) für das Forwarding an PMTU anpassen
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Connection-Tracking aktivieren
iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# VPN
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT
# SSH
iptables -A INPUT -i ppp0 -m state --state NEW -p tcp --dport 22 -j ACCEPT
# LAN-Zugriff auf eth0
iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
# LAN-Zugriff auf eth1
iptables -A INPUT -m state --state NEW -i eth1 -j ACCEPT
# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT
iptables -A FORWARD -j MY_REJECT
# Routing
echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
# Masquerading
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# SYN-Cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
# Stop Source-Routing
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done
# Stop Redirecting
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done
# Reverse-Path-Filter
for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done
# Log Martians
for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done
# BOOTP-Relaying ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done
# Proxy-ARP ausschalten
for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done
# Ungültige ICMP-Antworten ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null
# ICMP Echo-Broadcasts ignorieren
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
# Max. 500/Sekunde (5/Jiffie) senden
echo 5 > /proc/sys/net/ipv4/icmp_ratelimit
# Speicherallozierung und -timing für IP-De/-Fragmentierung
echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh
echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh
echo 30 > /proc/sys/net/ipv4/ipfrag_time
# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Maximal 3 Antworten auf ein TCP-SYN
echo 3 > /proc/sys/net/ipv4/tcp_retries1
# TCP-Pakete maximal 15x wiederholen
echo 15 > /proc/sys/net/ipv4/tcp_retries2
PS:
Meine Windows-Client Datei sieht folgendermassen aus:
dev tun
remote XXXXX.no-ip.org
tls-client
ca ca.crt
cert client1.crt
key client1.key
pull
port 1194
cipher AES-256-CBC
comp-lzo
verb 3
Ist das wenigstens richtig?
Kann mir bitte jemand mit dem VPN-Server helfen?