Aufsetzen von OpenVPN auf einem Redhat
Transcription
Aufsetzen von OpenVPN auf einem Redhat
Aufsetzen von OpenVPN auf einem Redhat-Server 1 Voraussetzungen Benutzer-Namen und Passwort für RedHat-Server sind bekannt. Benutzer muss z.B. via sudo Zugri mit System-Rechten haben. 2 Installation auf einem RedHat Server (5.4) Die meisten Informationen kommen von: http://www.packtpub.com/article/installing-openvpn-on-linux-and-unix-systems-1 Folgende Befehle als root ausführen: wget http : / /www. f e d o r a f a q . org / samples /yum . c o n f rpm −Uvh http : / /www. f e d o r a f a q . org /yum yum i n s t a l l openvpn 3 Einfacher Test, ob es läuft oder nicht S.a. http://www.openvpn.net/index.php/open-source/documentation/miscellaneous/78-static-key-mini-howto.html Achtung: Damit kann auf dem Server jedoch nur 1 Client laufen! Generate a static key: cd / e t c /openvpn && openvpn −−genkey −− s e c r e t e l e x i s _ t e s t _ l a b o . key Copy the static key to both client and server, over a pre-existing secure channel. Server conguration le /etc/openvpn/elexis_test_labo.conf # K o n f i g u r a t i o n e i n f a c h e r OpenVPN Test −S e r v e r f u e r e l e x i s # Server − S e i t e dev tun ifconfig 10.87.53.102 10.87.53.101 s e c r e t e l e x i s _ t e s t _ l a b o . key Danach kann man lokal testen, mit Hilfe von sftp 100.87.0.53.101 Client conguration le Pfad-Zu-Installation-Von-OpenVPN/etc/openvpn/elexis_test_arzt.ovpn (ovpn ist für WindowsClients, für *nux-Clients muss die *.ovpn-Datei nach *.conf umbenannt werden) # K o n f i g u r a t i o n e i n f a c h e r OpenVPN Test −S e r v e r f u e r Labor # Client dev tun remote 6 2 . 2 0 2 . 1 . 1 5 2 # # C l i e n t ( Arzt ) −> S e r v e r ( Labo ) ifconfig 10.87.53.102 10.87.53.101 s e c r e t Labor_test_1 . key Firewall-Einstellungen wurde so geändert, dass sie auf dem Port 1194 sowohl UDP als auch TCP in beide Richtung zulassen. Falls auf dem Client alles gut läuft, können die geöneten Dienste (FTP) auf dem Server 10.87.53.101 benutzt werden. 3.1 Anpassungen für mehrere Clients Dazu müssen auf dem Server Schlüssel generiert werden. Die Schlüssel für den Server müssen nur einmal generiert werden. Dazu dient folgendes Script #! / bin / bash # 2010 -04 -10 Niklaus Giger # Die Dateien / etc / openvpn / vars und / etc / openvpn / server . conf anpassen . # Dann diese Datei als root ausführen rm - rf / etc / openvpn / easy - rsa mkdir / etc / openvpn / easy - rsa cp - rp / usr / src / redhat / BUILD / openvpn -2.1.1/ easy - rsa /2.0/* / etc / openvpn / easy - rsa rm - rf / etc / openvpn / easy - rsa / vars 1 cd / etc / openvpn / easy - rsa . / etc / openvpn / vars / etc / openvpn / easy - rsa / clean - all # Hier sollte bei ein paar Fragen nur noch okay geklickt werden müssen / etc / openvpn / easy - rsa / build - ca -- batch # Den Server - Key erstellen / etc / openvpn / easy - rsa / build - key - server -- batch server # Der nächste Befehl kann auch auf einer schnellen Maschine mehrere Minuten dauern / etc / openvpn / easy - rsa / build - dh Folgendes Script muss jeweils pro neuen Clients ausgeführt werden. #! / bin / bash # 2010 -06 -10 Niklaus Giger # # *. key - Dateien sollten geheim gehalten werden . Müssen aber # wegen der Windows - Clients world - readable sein . # *. crt und *. pem - Dateien sind öffentlich # Am besten keine Leerzeichen beim Kundenamen haben . # KundenName =" client3 " #-----------------------------------------------------------------------------# Hier noch ihre Parameter beim UserAdd hinzufügen # Habe mal -m zum Erstellen des Home - Verzeichnisses genommen #-----------------------------------------------------------------------------/ usr / sbin / useradd -- create - home $KundenName # passwd $KundenName ?? #-----------------------------------------------------------------------------# Ab hier sollte es nichts mehr zum Andern geben #-----------------------------------------------------------------------------# Dann diese Datei als root ausführen cd / etc / openvpn / easy - rsa . / etc / openvpn / vars # Jetzt noch den ersten Test - Clients erstellen / etc / openvpn / easy - rsa / build - key -- batch $KundenName # What follows is a so called Here document ( or variable ) of bash confFile = $ ( cat << EndOfVar ############################################## # Config - File for Labor OpenVPN # ############################################## client dev tun # Windows needs the TAP - Win32 adapter name # from the Network Connections panel # if you have more than one . On XP SP2 , # you may need to disable the firewall # for the TAP adapter . ; dev - node MyTap proto udp remote 172.23.45.1 1194 # Keep trying indefinitely to resolve the 2 # host name of the OpenVPN server . Very useful # on machines which are not permanently connected # to the internet such as laptops . resolv - retry infinite nobind # Try to preserve some state across restarts . persist - key persist - tun ca Labor - ca . crt cert $KundenName . crt key $KundenName . key ns - cert - type server comp - lzo # Set log file verbosity . verb 3 # Silence repeating messages mute 20 mute - replay - warnings EndOfVar ) echo " $confFile " > / etc / openvpn / keys / $KundenName . ovpn unix2dos / etc / openvpn / keys / $KundenName . ovpn chown $KundenName / etc / openvpn / keys / $KundenName .* cp / etc / openvpn / keys / ca . crt / home / $KundenName / Labor - ca . crt cp / etc / openvpn / keys / $KundenName . crt / home / $KundenName cp / etc / openvpn / keys / $KundenName . key / home / $KundenName chown $KundenName / home / $KundenName / $KundenName .* echo " $confFile " > / home / $KundenName / $KundenName . ovpn echo / home / $KundeName / $KundenName . ovpn echo " Created config / key - files for $KundenName in / home / $KundenName " ls -l / home / $KundenName echo $clientConf Für *nux-Clients muss die *.ovpn-Datei nach *.conf umbenannt werden. Zum Testen auf dem Client openvpn starten. Etwa folgendes sollte im Log zu sehen sein: Sun Apr 11 12:01:41 2010 OpenVPN Sun Apr 11 12:01:41 2010 NOTE: defined Sun Apr 11 parms [ scripts or 12:01:41 L:1542 2.1.1 OpenVPN i686 2.1 −pc−mingw32 [ SSL ] [ LZO2 ] [ PKCS11 ] r e q u i r e s '−− s c r i p t − s e c u r i t y 2 ' or built on higher Dec to 11 call 2009 user − executables 2010 D: 1 3 8 LZO compression EF : 3 8 EB : 0 ET : 0 initialized EL : 0 Sun Apr 11 12:01:41 2010 Data Sun Apr 11 12:01:41 2010 Local C h a n n e l MTU parms Sun Apr 11 12:01:41 2010 Expected Sun Apr 11 12:01:41 2010 Socket Sun Apr 11 12:01:41 2010 UDPv4 link local : Sun Apr 11 12:01:41 2010 UDPv4 link remote : Sun Apr 11 12:01:41 2010 TLS : Sun Apr 11 12:01:42 2010 VERIFY OK: Options hash [ L:1542 (VER=V4 ) : Remote Options Buffers : R= [ 8 1 9 2 Initial Sun Apr 11 12:01:41 2010 Control C h a n n e l MTU ] D: 1 4 5 0 EF : 4 2 EB : 1 3 5 ET : 0 EL : 0 AF : 3 / 1 ] '41690919 ' hash (VER=V4 ) : − >8192] S =[8192 '530 fdded ' − >8192] [ undef ] packet d e p t h =1 , 172.25.1.134:1194 from 172.25.1.134:1194 , s i d =74 d 0 4 8 1 d b9c0622a /C=CH/ST=ZH/L=Z u e r i c h /O=L a b o r /CN=Labor_CA/ e m a i l A d d r e s s= i h r . a d m i n i s t r a t o r @ L a b o r . ch Sun Apr 11 12:01:42 2010 VERIFY OK: n s C e r t T y p e=SERVER Sun Apr 11 12:01:42 2010 VERIFY OK: d e p t h =0 , /C=CH/ST=ZH/L=Z u e r i c h /O=L a b o r /CN=s e r v e r / e m a i l A d d r e s s= i h r . a d m i n i s t r a t o r @ L a b o r . ch Sun Apr 11 12:01:42 2010 Data Channel Encrypt : Cipher Sun Apr 11 12:01:42 2010 Data Channel Encrypt : Using authentication 3 − ' BF CBC' 160 bit initialized message hash with ' SHA1 ' 128 for bit key HMAC Sun Apr 11 12:01:42 2010 Data Channel Decrypt : Cipher Sun Apr 11 12:01:42 2010 Data Channel Decrypt : Using − ' BF CBC' 160 bit initialized message hash with ' SHA1 ' 128 for bit key HMAC authentication Sun Apr 11 12:01:42 2010 Control Sun Apr 11 12:01:42 2010 [ server ] Sun Apr 11 12:01:44 2010 SENT CONTROL Sun Apr 11 12:01:44 2010 PUSH : net30 , i f c o n f i g Sun un Apr Apr 11 11 12:01:44 2010 2010 Peer TLSv1 , cipher Connection [ server ] : Received 172.23.45.14 12:01:44 Channel : control TLSv1 / SSLv3 Initiated with 'PUSH_REQUEST' message : − − −SHA , DHE RSA AES256 1024 bit ( s t a t u s =1) 'PUSH_REPLY, r o u t e 172.23.45.1 , topology 172.23.45.13 ' OPTIONS IMPORT : OPTIONS IMPORT : Sun Apr 11 12:01:44 2010 ROUTE Sun Apr 11 12:01:44 2010 TAP WIN32 −− i f c o n f i g / up route options options modified S modified default_gateway =192.168.102.1 − device [ LAN V e r b i n d u n g − − − Driver Version 3] opened : −E684 −4EC2 \ \ . \ G l o b a l \ {CD34DAE6 −91A5−3FFAA13C25F3 } . t a p Sun Apr 11 12:01:44 2010 TAP Win32 Sun Apr 11 12:01:44 2010 TAP Win32 MTU=1500 Apr 11 12:01:44 2010 Sun Notified 172.23.45.14/255.255.255.252 172.23.45.13 , Sun Apr 11 lease 12:01:44 −t i m e : 2010 − TAP Win32 on 9.6 driver interface to set a DHCP IP / n e t m a s k of −E684 −4EC2−91A5−3FFAA13C25F3} {CD34DAE6 −s e r v : [ DHCP 31536000] Successful ARP Flush on interface [17] −E684 −4EC2−91A5−3 {CD34DAE6 FFAA13C25F3} Sun Apr 11 12:01:49 2010 TEST ROUTES : Sun Apr 11 12:01:49 2010 C : \WINDOWS\ s y s t e m 3 2 \ r o u t e . e x e 1/1 succeeded l e n =1 2010 ROUTE: r e t =1 ADD a=0 u / d=up 172.23.45.1 MASK 255.255.255.255 172.23.45.13 Sun Apr 11 12:01:49 CreateIpForwardEntry succeeded with d w F o r w a r d M e t r i c 1 =30 and dwForwardType=4 Sun Apr 11 12:01:49 2010 Route Sun Apr 11 12:01:49 2010 Initialization 3.2 RSA 172.25.1.134:1194 addition via IPAPI Sequence succeeded [ adaptive ] Completed Testumgebung RedHat 30-Tag-Lizenz, RedHat 5.4-DVD (2.6 GB) runtergeladen und auf MacBookPro via KVM/virt-manager installiert. • 1855755 30-day Unsupported Evaluation Red Hat Enterprise Linux (Up to 2 Sockets) • 03/29/2010 04/27/2010 Info zur Verlängerung • RHN 363fcca9327b83cc 4