From 9ac484ebfdcbf211e7595c50c6e8ced3c779ffbc Mon Sep 17 00:00:00 2001 From: Ycarus Date: Fri, 25 Oct 2019 18:22:00 +0000 Subject: [PATCH] Add MPTCP over OpenVPN support --- omr-admin.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/omr-admin.py b/omr-admin.py index fe24469..9e8f275 100644 --- a/omr-admin.py +++ b/omr-admin.py @@ -269,6 +269,24 @@ def config(): available_vpn.append("openvpn") else: openvpn_key = '' + if os.path.isfile('/etc/openvpn/client/client.key'): + with open('/etc/openvpn/client/client.key',"rb") as ovpnkey_file: + openvpn_keyb = base64.b64encode(ovpnkey_file.read()) + openvpn_client_key = openvpn_keyb.decode('utf-8') + else: + openvpn_client_key = '' + if os.path.isfile('/etc/openvpn/client/client.crt'): + with open('/etc/openvpn/client/client.crt',"rb") as ovpnkey_file: + openvpn_keyb = base64.b64encode(ovpnkey_file.read()) + openvpn_client_crt = openvpn_keyb.decode('utf-8') + else: + openvpn_client_crt = '' + if os.path.isfile('/etc/openvpn/server/ca.crt'): + with open('/etc/openvpn/server/ca.crt',"rb") as ovpnkey_file: + openvpn_keyb = base64.b64encode(ovpnkey_file.read()) + openvpn_client_ca = openvpn_keyb.decode('utf-8') + else: + openvpn_client_ca = '' openvpn_port = '65301' if os.path.isfile('/etc/openvpn/openvpn-tun0.conf'): with open('/etc/openvpn/openvpn-tun0.conf',"r") as openvpn_file: @@ -332,7 +350,7 @@ def config(): if '#DNAT net vpn:$OMR_ADDR tcp 1-64999' in line: shorewall_redirect = "disable" - return jsonify({'vps': {'kernel': vps_kernel,'machine': vps_machine,'omr_version': vps_omr_version,'loadavg': vps_loadavg,'uptime': vps_uptime,'aes': vps_aes},'shadowsocks': {'key': shadowsocks_key,'port': shadowsocks_port,'method': shadowsocks_method,'fast_open': shadowsocks_fast_open,'reuse_port': shadowsocks_reuse_port,'no_delay': shadowsocks_no_delay,'mptcp': shadowsocks_mptcp,'ebpf': shadowsocks_ebpf,'obfs': shadowsocks_obfs,'obfs_plugin': shadowsocks_obfs_plugin,'obfs_type': shadowsocks_obfs_type},'glorytun': {'key': glorytun_key,'udp': {'host_ip': glorytun_udp_host_ip,'client_ip': glorytun_udp_client_ip},'tcp': {'host_ip': glorytun_tcp_host_ip,'client_ip': glorytun_tcp_client_ip},'port': glorytun_port,'chacha': glorytun_chacha},'dsvpn': {'key': dsvpn_key, 'host_ip': dsvpn_host_ip, 'client_ip': dsvpn_client_ip, 'port': dsvpn_port},'openvpn': {'key': openvpn_key, 'host_ip': openvpn_host_ip, 'client_ip': openvpn_client_ip, 'port': openvpn_port},'mlvpn': {'key': mlvpn_key, 'host_ip': mlvpn_host_ip, 'client_ip': mlvpn_client_ip},'shorewall': {'redirect_ports': shorewall_redirect},'mptcp': {'enabled': mptcp_enabled,'checksum': mptcp_checksum,'path_manager': mptcp_path_manager,'scheduler': mptcp_scheduler, 'syn_retries': mptcp_syn_retries},'network': {'congestion_control': congestion_control,'ipv6_network': ipv6_network,'ipv6': ipv6_addr,'ipv4': ipv4_addr,'domain': vps_domain},'vpn': {'available': available_vpn,'current': vpn},'iperf': {'user': 'openmptcprouter','password': 'openmptcprouter', 'key': iperf3_key},'pihole': {'state': pihole}}), 200 + return jsonify({'vps': {'kernel': vps_kernel,'machine': vps_machine,'omr_version': vps_omr_version,'loadavg': vps_loadavg,'uptime': vps_uptime,'aes': vps_aes},'shadowsocks': {'key': shadowsocks_key,'port': shadowsocks_port,'method': shadowsocks_method,'fast_open': shadowsocks_fast_open,'reuse_port': shadowsocks_reuse_port,'no_delay': shadowsocks_no_delay,'mptcp': shadowsocks_mptcp,'ebpf': shadowsocks_ebpf,'obfs': shadowsocks_obfs,'obfs_plugin': shadowsocks_obfs_plugin,'obfs_type': shadowsocks_obfs_type},'glorytun': {'key': glorytun_key,'udp': {'host_ip': glorytun_udp_host_ip,'client_ip': glorytun_udp_client_ip},'tcp': {'host_ip': glorytun_tcp_host_ip,'client_ip': glorytun_tcp_client_ip},'port': glorytun_port,'chacha': glorytun_chacha},'dsvpn': {'key': dsvpn_key, 'host_ip': dsvpn_host_ip, 'client_ip': dsvpn_client_ip, 'port': dsvpn_port},'openvpn': {'key': openvpn_key,'client_key': openvpn_client_key,'client_crt': openvpn_client_crt,'client_ca': openvpn_client_ca,'host_ip': openvpn_host_ip, 'client_ip': openvpn_client_ip, 'port': openvpn_port},'mlvpn': {'key': mlvpn_key, 'host_ip': mlvpn_host_ip, 'client_ip': mlvpn_client_ip},'shorewall': {'redirect_ports': shorewall_redirect},'mptcp': {'enabled': mptcp_enabled,'checksum': mptcp_checksum,'path_manager': mptcp_path_manager,'scheduler': mptcp_scheduler, 'syn_retries': mptcp_syn_retries},'network': {'congestion_control': congestion_control,'ipv6_network': ipv6_network,'ipv6': ipv6_addr,'ipv4': ipv4_addr,'domain': vps_domain},'vpn': {'available': available_vpn,'current': vpn},'iperf': {'user': 'openmptcprouter','password': 'openmptcprouter', 'key': iperf3_key},'pihole': {'state': pihole}}), 200 # Set shadowsocks config @app.route('/shadowsocks', methods=['POST']) @@ -670,7 +688,7 @@ def show_backup(): def edit_backup(): params = request.get_data() o = OpenWrt(params) - o.write('backup',path='/var/opt/openmptcprouter/'): + o.write('backup',path='/var/opt/openmptcprouter/') return jsonify({'result': 'done'})