abrasive / nxBender

Open source client for netExtender SSL VPNs
BSD 3-Clause "New" or "Revised" License
41 stars 20 forks source link

Disconnect with ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2426) #24

Open ttbek opened 4 months ago

ttbek commented 4 months ago

This VPN client has worked well for me for quite a while, thank you very much for making it. I'm not sure when this started happening because I didn't connect to the VPN for several months. I'm not sure if it is because of a VPN server update or a Python library update... but it used to work perfectly. Now, it does connect and even long enough for me to start an SSH connection to our servers, but it dies after a short time (under 30 seconds) with ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2426)

user@Hydra:~/Sonic/nxBender$ sudo ./nxBender --debug --show-ppp-log --server vpn.somedomain.org --port 4434 -u myusername -d somedomain.org
Password: 
INFO     Logging in...
DEBUG    Starting new HTTPS connection (1): vpn.somedomain.org:4434
send: b'POST /cgi-bin/userLogin HTTP/1.1\r\nHost: vpn.somedomain.org:4434\r\nAccept-Encoding: identity\r\nUser-Agent: Dell SonicWALL NetExtender for Linux 8.1.789\r\nX-NE-SESSIONPROMPT: true\r\nContent-Length: 66\r\nContent-Type: application/x-www-form-urlencoded\r\n\r\n'
send: b'username=myusername&password=mypassword&domain=somedomain.org&login=true'
reply: 'HTTP/1.0 200 OK\r\n'
header: Server: SonicWALL SSLVPN Web Server
header: X-NE-tfresult: 0
header: MC-bookmarks: 1
header: Set-Cookie: swap=NGFiODZlZDBwcm9waG9zdw==; path=/;
header: Connection: close
header: Content-Type: text/html; charset=UTF-8
DEBUG    https://vpn.somedomain.org:4434 "POST /cgi-bin/userLogin HTTP/1.1" 200 None
INFO     Starting session...
DEBUG    Resetting dropped connection: vpn.somedomain.org
send: b'GET /cgi-bin/sslvpnclient?launchplatform=mac&neProto=3&supportipv6=no HTTP/1.1\r\nHost: vpn.somedomain.org:4434\r\nAccept-Encoding: identity\r\nUser-Agent: Dell SonicWALL NetExtender for Linux 8.1.789\r\nCookie: swap=NGFiODZlZDBwcm9waG9zdw==\r\n\r\n'
reply: 'HTTP/1.0 200 OK\r\n'
header: Server: SonicWALL SSLVPN Web Server
header: Set-Cookie: swap=4ab86ed0prophosw; path=/;
header: Connection: close
header: Content-Type: text/html; charset=UTF-8
DEBUG    https://vpn.somedomain.org:4434 "GET /cgi-bin/sslvpnclient?launchplatform=mac&neProto=3&supportipv6=no HTTP/1.1" 200 None
DEBUG    srv_option 'NELaunchX1.userName' = '"myusername";'
DEBUG    srv_option 'NELaunchX1.domainName' = '"LocalDomain";'
DEBUG    srv_option 'SessionId' = 'QkMO6MFoLUdjNiCNLyakRw==;'
DEBUG    srv_option 'Route' = '10.2.9.0/255.255.255.128'
DEBUG    srv_option 'Route' = '10.2.6.0/255.255.255.128'
DEBUG    srv_option 'Route' = '10.4.10.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.2.6.128/255.255.255.192'
DEBUG    srv_option 'Route' = '10.4.64.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.2.19.0/255.255.255.128'
DEBUG    srv_option 'Route' = '10.2.0.0/255.255.252.0'
DEBUG    srv_option 'Route' = '10.2.5.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.2.4.128/255.255.255.128'
DEBUG    srv_option 'Route' = '10.2.4.0/255.255.255.128'
DEBUG    srv_option 'Route' = '10.2.13.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.2.6.192/255.255.255.240'
DEBUG    srv_option 'Route' = '10.2.6.208/255.255.255.240'
DEBUG    srv_option 'Route' = '10.2.19.160/255.255.255.224'
DEBUG    srv_option 'Route' = '10.2.7.74/255.255.255.255'
DEBUG    srv_option 'Route' = '10.4.0.0/255.255.254.0'
DEBUG    srv_option 'Route' = '10.4.2.0/255.255.254.0'
DEBUG    srv_option 'Route' = '10.4.4.0/255.255.254.0'
DEBUG    srv_option 'Route' = '10.4.6.0/255.255.254.0'
DEBUG    srv_option 'Route' = '10.4.8.0/255.255.254.0'
DEBUG    srv_option 'Route' = '10.4.11.0/255.255.255.128'
DEBUG    srv_option 'Route' = '10.4.11.128/255.255.255.128'
DEBUG    srv_option 'Route' = '10.4.20.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.2.6.4/255.255.255.252'
DEBUG    srv_option 'Route' = '10.161.232.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.161.233.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.161.234.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.161.200.0/255.255.254.0'
DEBUG    srv_option 'Route' = '10.161.86.0/255.255.254.0'
DEBUG    srv_option 'Route' = '10.161.202.0/255.255.255.0'
DEBUG    srv_option 'Route' = '10.2.6.0/255.255.255.248'
DEBUG    srv_option 'Route' = '10.2.6.224/255.255.255.240'
DEBUG    srv_option 'dns1' = '10.2.6.5'
DEBUG    srv_option 'dns2' = '10.2.6.6'
DEBUG    srv_option 'ipv6Support' = 'no'
DEBUG    srv_option 'dnsSuffix' = 'somedomain.org'
WARNING  Unexpected line in session start message: 'dnsSuffixes =somedomain.org'
INFO     Duplicated srv_options value dnsSuffix = somedomain.org
DEBUG    srv_option 'dnsSuffix' = 'somedomain.org'
WARNING  Unexpected line in session start message: 'dnsSuffixes =10.2.6.5'
INFO     Duplicated srv_options value dnsSuffix = somedomain.org
DEBUG    srv_option 'dnsSuffix' = 'somedomain.org'
WARNING  Unexpected line in session start message: 'dnsSuffixes =10.2.6.6'
INFO     Duplicated srv_options value dnsSuffix = somedomain.org
DEBUG    srv_option 'dnsSuffix' = 'somedomain.org'
WARNING  Unexpected line in session start message: 'dnsSuffixes =10.2.7.74'
INFO     Duplicated srv_options value dnsSuffix = somedomain.org
DEBUG    srv_option 'dnsSuffix' = 'somedomain.org'
DEBUG    srv_option 'pppFrameEncoded' = '0;'
DEBUG    srv_option 'PppPref' = 'async'
DEBUG    srv_option 'TunnelAllMode' = '0;'
DEBUG    srv_option 'ExitAfterDisconnect' = '0;'
DEBUG    srv_option 'UninstallAfterExit' = '0;'
DEBUG    srv_option 'NoProfileCreate' = '0;'
DEBUG    srv_option 'AllowSavePassword' = '1;'
DEBUG    srv_option 'AllowSaveUser' = '1;'
DEBUG    srv_option 'AllowSavePasswordInKeychain' = '0'
DEBUG    srv_option 'AllowSavePasswordInKeystore' = '0'
DEBUG    srv_option 'ClientIPLower' = '"10.1.221.0";'
DEBUG    srv_option 'ClientIPHigh' = '"10.1.221.255";'
INFO     Dialing up tunnel...
pppd: pppd options in effect:
pppd: debug debug       # (from command line)
pppd: logfd 2       # (from command line)
pppd: ktune     # (from command line)
pppd: dump      # (from command line)
pppd: nomp      # (from command line)
pppd: noauth        # (from command line)
pppd: lock      # (from /etc/ppp/options)
pppd: crtscts       # (from /etc/ppp/options)
pppd: local     # (from command line)
pppd: asyncmap 0        # (from /etc/ppp/options)
pppd: lcp-echo-failure 2        # (from command line)
pppd: lcp-echo-interval 10      # (from command line)
pppd: hide-password     # (from /etc/ppp/options)
pppd: noipdefault       # (from command line)
pppd: usepeerdns        # (from command line)
pppd: noccp     # (from command line)
pppd: noipx     # (from /etc/ppp/options)
pppd: using channel 2
pppd: Using interface ppp0
pppd: Connect: ppp0 <--> /dev/pts/2
pppd: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc19245d2> <pcomp> <accomp>]
pppd: rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x5c7daa40>]
pppd: sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x5c7daa40>]
pppd: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xc19245d2> <pcomp> <accomp>]
pppd: rcvd [LCP ConfRej id=0x1 <pcomp>]
pppd: sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0xc19245d2> <accomp>]
pppd: rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <magic 0xc19245d2> <accomp>]
pppd: sent [LCP EchoReq id=0x0 magic=0xc19245d2]
pppd: sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
pppd: sent [IPV6CP ConfReq id=0x1 <addr fe80::91d2:7d94:15b2:b05c>]
pppd: rcvd [IPCP ConfReq id=0x1 <addr 192.0.2.1> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
pppd: sent [IPCP ConfRej id=0x1 <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
pppd: rcvd [LCP EchoRep id=0x0 magic=0x5c7daa40]
pppd: rcvd [IPCP ConfRej id=0x1 <compress VJ 0f 01>]
pppd: sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
pppd: rcvd [LCP ProtRej id=0x1 80 57 01 01 00 0e 01 0a 91 d2 7d 94 15 b2 b0 5c]
pppd: Protocol-Reject for 'IPv6 Control Protocol' (0x8057) received
pppd: rcvd [IPCP ConfReq id=0x2 <addr 192.0.2.1>]
pppd: sent [IPCP ConfAck id=0x2 <addr 192.0.2.1>]
pppd: rcvd [IPCP ConfNak id=0x2 <addr 10.1.221.8>]
pppd: sent [IPCP ConfReq id=0x3 <addr 10.1.221.8> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
pppd: rcvd [IPCP ConfAck id=0x3 <addr 10.1.221.8> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>]
pppd: Script /etc/ppp/ip-pre-up started (pid 8858)
pppd: Script /etc/ppp/ip-pre-up finished (pid 8858), status = 0x0
pppd: local  IP address 10.1.221.8
pppd: remote IP address 192.0.2.1
INFO     Remote routing configured, VPN is up
pppd: Script /etc/ppp/ip-up started (pid 8863)
pppd: Script /etc/ppp/ip-up finished (pid 8863), status = 0x0
pppd: sent [LCP EchoReq id=0x1 magic=0xc19245d2]
pppd: sent [LCP EchoReq id=0x2 magic=0xc19245d2]
ERROR    EOF occurred in violation of protocol (_ssl.c:2426)
Traceback (most recent call last):
  File "/home/kunji/Sonic/nxBender/nxbender/ppp.py", line 71, in run
    stop = self._pump()
  File "/home/kunji/Sonic/nxBender/nxbender/ppp.py", line 116, in _pump
    stop = self.tunsock.write_from(self.pty)
  File "/home/kunji/Sonic/nxBender/nxbender/sslconn.py", line 79, in write_from
    self.write(data)
  File "/home/kunji/Sonic/nxBender/nxbender/sslconn.py", line 103, in write
    self.write_pump()
  File "/home/kunji/Sonic/nxBender/nxbender/sslconn.py", line 113, in write_pump
    self.s.sendall(buf)
  File "/usr/lib/python3.10/ssl.py", line 1266, in sendall
    v = self.send(byte_view[count:])
  File "/usr/lib/python3.10/ssl.py", line 1235, in send
    return self._sslobj.write(data)
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2426)
INFO     Shutting down...
DEBUG    Resetting dropped connection: vpn.somedomain.org
send: b'GET /cgi-bin/userLogout HTTP/1.1\r\nHost: vpn.somedomain.org:4434\r\nAccept-Encoding: identity\r\nUser-Agent: Dell SonicWALL NetExtender for Linux 8.1.789\r\nCookie: swap=4ab86ed0prophosw\r\n\r\n'
reply: 'HTTP/1.0 200 OK\r\n'
header: Server: SonicWALL SSLVPN Web Server
header: Connection: close
header: Content-Type: text/html; charset=UTF-8
DEBUG    https://vpn.somedomain.org:4434 "GET /cgi-bin/userLogout HTTP/1.1" 200 None