การตัดการเชื่อมต่อจากเซิร์ฟเวอร์ OpenVPN ทุกชั่วโมง


13

ฉันมีปัญหาค่อนข้างแปลกกับOpenVPNการกำหนดค่าของฉัน ฉันกำลังเชื่อมต่อจากWindows 7กับOpenVPNไคลเอนต์ล่าสุดอย่างเป็นทางการไปยังOpenVPNเซิร์ฟเวอร์ของฉัน( OpenVPN 2.1.4 i386-redhat-linux-gnu)

ปัญหาคือฉันถูกตัดการเชื่อมต่อจากOpenVPNเซิร์ฟเวอร์ของฉันอย่างแน่นอนหลังจาก 1 ชั่วโมงและฉันไม่เข้าใจว่าคำสั่ง / ตัวเลือกใดที่เป็นไปได้สำหรับสิ่งนี้ อาจเป็นปัญหาของลูกค้าหรือไม่ ฉันลองใช้WindowsระบบและWindows VPNลูกค้าที่แตกต่างกัน Linuxลูกค้าจะทำงานตามที่คาดไว้โดยไม่มี disconnections

คุณช่วยฉันแก้ปัญหานี้ได้ไหม ฉันได้ลองอ่านหนังสือและ googling และบางคนแนะนำให้เล่นกับkeepaliveและreneg-secสั่ง แต่นั่นดูเหมือนจะไม่ช่วย

กำหนดค่าเซิร์ฟเวอร์ OpenVPN

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
server 192.168.2.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
client-config-dir ccd
route 192.168.51.0 255.255.255.0
keepalive 60 600
reneg-sec 5000
hand-window 15
tls-auth ta.key 0
comp-lzo
max-clients 50
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4
crl-verify crl.pem
management localhost 11111
plugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so login
push "dhcp-option DNS 192.168.2.1"
push "dhcp-option DOMAIN example.com"
push "dhcp-option SEARCH example.com"

บันทึกเซิร์ฟเวอร์ (ไม่ใช่ปัญหาใน reinit_src = 1 หรือไม่)

Oct  9 07:23:38 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:23:38 vpn openvpn[19495]: user/192.168.253.20:54568 TLS: move_session: dest=TM_LAME_DUCK src=TM_ACTIVE reinit_src=1
Oct  9 07:24:53 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:26:08 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS key negotiation failed to occur within 15 seconds (check your network connectivity)
Oct  9 07:26:08 vpn openvpn[19495]: user/192.168.253.20:54568 TLS Error: TLS handshake failed
Oct  9 07:26:39 vpn openvpn[19495]: user/192.168.253.20:54568 [UNDEF] Inactivity timeout (--ping-restart), restarting
Oct  9 07:26:39 vpn openvpn[19495]: user/192.168.253.20:54568 SIGUSR1[soft,ping-restart] received, client-instance restarting

บันทึกลูกค้า

RwrWRwRwRwRwTue Oct 09 07:26:39 2012 us=796000 TLS: soft reset sec=0 bytes=7405621/0 pkts=9459/0
Tue Oct 09 07:26:39 2012 us=600000 ERROR: could not read Auth username from stdin
Tue Oct 09 07:26:39 2012 us=600000 Exiting
Tue Oct 09 07:26:39 2012 us=600000 C:\WINDOWS\system32\route.exe DELETE 192.168.2.1 MASK 255.255.255.255 192.168.100.150
Tue Oct 09 07:26:39 2012 us=600000 Route deletion via IPAPI succeeded [adaptive]
Tue Oct 09 07:26:39 2012 us=600000 C:\WINDOWS\system32\route.exe DELETE 10.0.0.0 MASK 255.0.0.0 192.168.100.150
Tue Oct 09 07:26:39 2012 us=600000 Route deletion via IPAPI succeeded [adaptive]
Tue Oct 09 07:26:39 2012 us=600000 Closing TUN/TAP interface

ขอบคุณมาก.

คำตอบ:


12

ผู้ร้ายดูเหมือนจะเป็นการกำหนดค่าการตรวจสอบของคุณ คุณกำลังใช้งานplugin /usr/share/openvpn/plugin/lib/openvpn-auth-pam.so loginซึ่งจะต้องให้ลูกค้าระบุชื่อผู้ใช้ / รหัสผ่านที่ถูกต้องในการเชื่อมต่อ เห็นได้ชัดว่าสิ่งนี้จำเป็นสำหรับการ rekeying และไคลเอนต์ OpenVPN ของคุณดูเหมือนจะไม่สามารถขอชื่อผู้ใช้จากstdin( ERROR: could not read Auth username from stdin)

สำหรับเหตุผลที่การเพิ่ม reneg-sec ในการกำหนดค่าเซิร์ฟเวอร์ของคุณไม่ช่วยเรื่องนี้เป็นเพราะต้องระบุพารามิเตอร์ทั้ง - การกำหนดค่าของเซิร์ฟเวอร์และไคลเอนต์ที่จะยกขึ้นอย่างมีประสิทธิภาพเหนือเริ่มต้น 3600 วินาที (ซึ่งเกิดขึ้นกับ ทำให้เกิดหนึ่งชั่วโมง - ตัดการเชื่อมต่อที่คุณเห็น)

ดังนั้นทางเลือกของคุณคือ

  • ใช้วิธีการรับรองความถูกต้องซึ่งไม่จำเป็นต้องใส่ผู้ใช้ (ใบรับรองฤดูใบไม้ผลิถึงใจ)
  • แก้ไขปัญหาว่าเหตุใดไคลเอนต์ของคุณไม่สามารถแสดงพร้อมท์สำหรับชื่อผู้ใช้ / รหัสผ่านหลังจากสร้างการเชื่อมต่อ
  • เพิ่มระยะเวลา rekeying หรือปิดใช้งาน rekeying ทั้งหมด (ซึ่งทำให้ความปลอดภัยของการเชื่อมต่อของคุณอ่อนลงดังนั้นจึงเป็นวิธีแก้ปัญหาที่ด้อยกว่าของคุณเท่านั้น)

คุณถูกต้องแล้วนำ reneg-sec ไปที่ client.ovpn ช่วยแก้ไขปัญหานี้
แอนดรู

8

คุณสามารถลองreneg-sec 0ในของคุณserver.conf:

https://duo.com/docs/openvpn

https://tldrify.com/m80

มันค่อนข้างง่ายจริงๆ เนื่องจาก OpenVPN พยายามเชื่อมโยงเซสชัน TLS ใหม่ทุก 3600 วินาทีโดยค่าเริ่มต้นคุณจะต้องตรวจสอบสิทธิ์ใหม่ทุกครั้งโดยใช้ OTP ใหม่ เพื่อหลีกเลี่ยงพฤติกรรมเช่นนี้มันเป็นเรื่องของการบอก openvpn ที่จะไม่เปลี่ยนการเชื่อมต่อเซสชัน TLS และรักษาหนึ่งที่มีอยู่ถ้าคุณรวมkeepaliveคำสั่งและreneg-sec 0คุณจะมีการเชื่อมต่อที่มั่นคงโดยไม่มีการเจรจาใด ๆ


3

ฉันประสบผลคล้ายกันเมื่อฉันเพิ่มตัวเลือก 'auth-nocache' ในการกำหนดค่าไคลเอนต์ของฉัน ฉันใช้ใบรับรองและชื่อผู้ใช้และรหัสผ่านรวมกันเพื่อตรวจสอบสิทธิ์

สองสามครั้งที่ฉันสังเกตเห็นในบันทึกการเชื่อมต่อที่ openvpn รายงานคำเตือนต่อไปนี้:

คำเตือน: การกำหนดค่านี้อาจใช้รหัสผ่านแคชในหน่วยความจำ - ใช้ตัวเลือก auth-nocache เพื่อป้องกันสิ่งนี้

ดังนั้นฉันคิดว่าฉันจะเพิ่มตัวเลือกนี้และดูว่าเกิดอะไรขึ้น คำเตือนข้างต้นหายไป แต่หลังจากผ่านไปหนึ่งชั่วโมงกล่องโต้ตอบก็โผล่ขึ้นมาถามชื่อผู้ใช้และรหัสผ่านของฉัน

ฉันสังเกตเห็นว่าการกำหนดค่าข้างต้นโดย Andrew ไม่มีตัวเลือกนี้ดังนั้นฉันจึงสับสนเล็กน้อยว่าทำไมมันไม่ใช้รหัสผ่านแคช อาจเป็นเพราะฉันใช้ openvpn รุ่นใหม่กว่าหรืออาจจะสามารถตั้งค่าบนเซิร์ฟเวอร์กำหนดค่าเพื่อส่งตัวเลือกนี้ไปยังไคลเอนต์

สิ่งนี้เห็นได้จาก: OpenVPN 2.2.1-8 + deb7u2 พร้อม OpenVPN GUI v5 สำหรับ Windows


ฉันต้องสร้างไฟล์โดยใช้ openvpn แล้วเพิ่มตัวเลือก auth-nocache ตอนนี้ทำงานอย่างสมบูรณ์ ไฟล์ที่สร้างสามารถใช้เป็น
crsuarezf

@ingcarlos ดีใจที่ได้ยินว่ามันทำงานให้คุณ ขอให้มีความสุข
captcha

+1 Absolutley ใช่ฉันเจอปัญหาเดียวกันหลังจากเพิ่มคำสั่งไม่ใช้แคช
Mohammed Noureldin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.