OpenVPN

OpenVPN
OpenVPN openssl: siehe openssl doku lz4: lynx https://lz4.github.io/lz4/ wget https://github.com/lz4/lz4/archive/v1.9.1.tar.gz tar -xzf v1.9.1.tar.gz cd lz4-1.9.1/ make make install lzo: wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.10.tar.gz tar -xzf lzo-2.10.tar.gz cd lzo-2.10/ ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include make make install wget https://swupdate.openvpn.org/community/releases/openvpn-2.4.7.tar.gz tar -xzf openvpn-2.4.7.tar.gz cd openvpn-2.4.7/ ./configure –bindir=/usr/bin –sbindir=/usr/sbin –libdir=/usr/lib64 –includedir=/usr/include Testen mit LibreSSL ” OPENSSL_SSL_LIBS=”-L/usr/lib64 -lssl” OPENSSL_SSL_CFLAGS=”-I/usr/include/ssl/” OPENSSL_CRYPTO_LIBS=”-L/usr/lib64/ -lcrypto” OPENSSL_CRYPTO_CFLAGS=”-I/usr/include/ssl/” ” https://gist.github.com/pwnsdx/71c421abf2a45ac4c6df https://gist.github.com/gsora/2b3e9eb31c15a356c7662b0f960e2995 make make install cp -frv src/plugins/auth-pam/.libs/openvpn-plugin-auth-pam.so /lib64/security/ openvpn –version OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [MH/PKTINFO] [AEAD] built on Jun 14 2019 library versions: OpenSSL 1.1.0k 28 May 2019, LZO 2.10 ############################################## openVPN roadwarrior (Handy) to Site (Server) #CA erstellen openssl genrsa -aes256 -out vpn-cakey.pem 8192 openssl req -new -x509 -days 3650 -key vpn-cakey.pem -out vpn-ca.pem -set_serial 1 oder “openssl req -new -sha512 -key /etc/openvpn/vpn-cakey.pem -x509 -days 365 -subj ‘/C=DE/ST=B-W State/L=Rot/O=Bit-Devil Inc./OU=IT-Hack/CN=CA/emailAddress=root@bit-devil.ddns.net’ -out /etc/openvpn/vpn-ca.pem -set_serial 1” #Zum Schluss werden zwei Dateien erstellt, die für interne Zwecke nötig sind. Mit ihnen wird gewährleistet, dass kein Schlüssel doppelt vergeben wird: touch index.txt echo “01” > serial #VPN Server Zertifikat erstellen openssl req -new -newkey rsa:8192 -out servercsr.pem -nodes -keyout serverkey.pem -days 365 oder “openssl req -new -sha512 -subj ‘/C=DE/ST=B-W State/L=Rot/O=Bit-Devil Inc./OU=IT-Hack/CN=bit-devil.ddns.net/emailAddress=root@bit-devil.ddns.net’ -out /etc/openvpn/servercsr.pem -nodes -keyout /etc/openvpn/serverkey.pem -days 365” openssl x509 -req -in servercsr.pem -out servercert.pem -CA vpn-ca.pem -CAkey vpn-cakey.pem -CAserial serial -days 365 #Client Zertifikat. Besser noch dem Client Key ein Passwort verpassen openssl req -new -newkey rsa:8192 -out handy_csr.pem -nodes -keyout handy_key.pem -days 365 oder “openssl req -new -sha512 -subj ‘/C=DE/ST=B-W State/L=Rot/O=Bit-Devil Inc./OU=IT-Hack/CN=bit-devil.ddns.net/emailAddress=root@bit-devil.ddns.net’ -out /etc/openvpn/handy_csr.pem -nodes -keyout /etc/openvpn/handy_key.pem -days 365” Mit Passwort “openssl rsa -aes256 -in handy_key.pem -out handy_key.pem” openssl x509 -req -in handy_csr.pem -out handy_cert.pem -CA vpn-ca.pem -CAkey vpn-cakey.pem -CAserial serial -days 365 #Nach PKS12/p12 openssl pkcs12 -export -in handy_cert.pem -inkey handy_key.pem -out handy_cert.p12 #Diffie-Hellmann Parameter erzeugen openssl dhparam -out dh1024.pem 1024 oder “time openssl dhparam -out dh8192.pem 8192” Dauert > 3h je nach Hardware. Leider wird beim Generieren nur 1 Prozess dafür aktiv. #Minimal Route Config mit Cert #OpenVPN Server Config vi /etc/openvpn/server.conf -> server 172.17.0.0 255.255.255.0 dev tun proto udp port 1194 keepalive 10 120 #push “route 17.18.0.0 255.255.255.0” ca vpn-ca.pem cert servercert.pem key serverkey.pem #dh dh1024.pem dh dh8192.pem #OpenVPN Client Config vi /etc/openvpn/client.conf client dev tun remote bit-devil.ddns.net proto udp port 1194 ca vpn-ca.pem cert handy_cert.pem key handy_key.pem Für den Android openVPN Client “cp -frv client.conf client.ovpn” Dann alle Zertis und Configs auf das Handy übertragen #copy to mobile phone client.ovpn vpn-ca.pem handy_cert.pem handy_cert.p12 handy_key.pem #Server Seite openvpn /etc/openvpn/server.conf netstat -apn | grep -i openvpn udp 0 0 0.0.0.0:1194 0.0.0.0:* 17673/openvpn ifconfig tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.255.255 destination 172.17.0.2 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100 (UNSPEC) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ############################################## ############################################## #Apple iOS Config Hier müssen die zertifikats Anteile in der .ovpn Datei stehen und diese per email ans iphone. Danach funktioniert der Profil Import … <ca> —–BEGIN CERTIFICATE—– MIIJ7jCCBdagAwIBAgIBATANBgkqhkiG9w0BAQ0FADCBjzELMAkGA1UEBhMCREUx —–END CERTIFICATE—– </ca> —–BEGIN CERTIFICATE—– MIIGoTCCAokCAQMwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAkRFMRIwEAYD —–END CERTIFICATE—– </cert> <key> —–BEGIN PRIVATE KEY—– MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDCQw5EI7OLSDcF —–END PRIVATE KEY—– </key> echo -e “<ca>\n$(cat vpn-ca.pem)\n</ca>\n\n<cert>\n$(cat handy_cert.pem)\n</cert>\n\n<key>\n$(cat handy_key.pem)\n</key>” >> client_apple.ovpn mailx -s “Apfel” -S from=”apfel-service@bit-devil.ddns.net” alexander.moore@bilfinger.com < client_apple.ovpn ############################################## #Allgemein################################################ https://www.thomas-krenn.com/de/wiki/OpenVPN_Grundlagen Netzwerkmodi OpenVPN bietet aktuell zwei verschiedene Netzwerkmodi an: Bridging (TAP-Device) Routing (TUN-Device openvpn –show-tls –show-ciphers –show-digests #Multiple Instanzen https://openvpn.net/faq/can-i-run-multiple-openvpn-tunnels-on-a-single-machine/ ################################################ #Pre Shared Key openvpn –genkey –secret static.key ################################################ ################################################ #managemnt vi /etc/openvpn/server.conf -> management localhost 7505 telnet localhost 7505 status OpenVPN CLIENT LIST Updated,Thu Jul 25 12:41:18 2019 Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since dude.ddns.net,165.225.72.219:24124,8392,11051,Thu Jul 25 12:40:28 2019 ROUTING TABLE Virtual Address,Common Name,Real Address,Last Ref 10.77.190.6,dude.ddns.net,165.225.72.219:24124,Thu Jul 25 12:41:18 2019 GLOBAL STATS Max bcast/mcast queue length,0 END exit kill dude.ddns.net SUCCESS: common name ‘dude.ddns.net’ found, 1 client(s) killed echo -e -n “state\n” | nc -w 1 localhost 7506;echo -e -n “status\n” | nc -w 1 localhost 7506 ################################################ ################################################ #Logging vi /etc/openvpn/server.conf -> log-append /var/log/vpn.log ################################################ #Router IPtables Einstellungen zum Port Forwarding################################################################## #OpenVPN Server direkt Internet zulassen########## iptables -A FORWARD -i eth0.666 -s 0/0 -d 172.17.190.48 -m state –state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -o eth0.666 -s 172.17.190.48 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT ########################################## iptables -A OUTPUT -o eth0.666 -s 172.17.190.250 -d 172.17.190.48 -p icmp -j QUEUE # iptables -t nat -A PREROUTING -i eth0.666 -s 0/0 -p udp –dport 1194 -j DNAT –to-destination 172.17.190.48:1194 #Kein Masquerade damit man die IP original externe am OpenVPN Server sieht #iptables -t nat -A POSTROUTING -p udp -d 172.17.190.48 –dport 1194 -j MASQUERADE iptables -A FORWARD -i eth0.666 -d 172.17.190.48 -p udp –dport 1194 -j ACCEPT iptables -A FORWARD -o eth0.666 -s 172.17.190.48 -p udp –sport 1194 -j ACCEPT ################################################ #Troubleshooting################################################ tcpdump -nn -i any port not 22 and not port 443 and not host 172.17.190.1 and not host 172.17.190.17 and not arp ################################################ ################################################################################################ #OpenVPN vs Strongswan Daemon reload bei ovpn nicht im laufenden Betrieb möglich, strongswan schon. Client IPs müssen in der client.cfg angeben werden und können nicht zentral gestuert werden bei ovpn Verschiedene tun Devices nicht möglich bei einer IP bei ovpn ovpn = TLS SW = IPsec ################################################################################################ ################################################################################################ #Username Password Auth. vi /etc/openvpn/server.conf -> plugin /lib64/security/openvpn-plugin-auth-pam.so login vi /etc/openvpn/client_apple.ovpn -> auth-user-pass ################################################################################################ ################################################################################################ #Route für Client in server.conf setzen push “route 172.17.0.0 255.255.0.0” ################################################################################################

Post Revisions: