目录git
[TOC]github
yum install epel-release -y yum install open*** easy-rsa -y
## 复制easyrsa脚本到open*** cd /etc/open***/ cp -r /usr/share/easy-rsa /etc/open***/ ## 准备变量用于配置CA机构 cd /etc/open***/easy-rsa/3/ vim vars set_var EASYRSA "$PWD" set_var EASYRSA_PKI "$EASYRSA/pki" set_var EASYRSA_DN "cn_only" set_var EASYRSA_REQ_COUNTRY "ID" set_var EASYRSA_REQ_PROVINCE "Shanghai" set_var EASYRSA_REQ_CITY "Shanghai" set_var EASYRSA_REQ_ORG "Tars *** CERTIFICATE AUTHORITY" set_var EASYRSA_REQ_EMAIL "it@tars.com" set_var EASYRSA_REQ_OU "mgt-***-server1 EASY CA" set_var EASYRSA_KEY_SIZE 4096 ## 用于生成Diffie-Hellman密钥,位数越高生成时间越久 set_var EASYRSA_ALGO rsa set_var EASYRSA_CA_EXPIRE 7500 set_var EASYRSA_CERT_EXPIRE 365 ## 客户端证书有效期,建议长一些 set_var EASYRSA_NS_SUPPORT "no" set_var EASYRSA_NS_COMMENT "Tars *** CERTIFICATE AUTHORITY" set_var EASYRSA_EXT_DIR "$EASYRSA/x509-types" set_var EASYRSA_SSL_CONF "$EASYRSA/openssl-1.0.cnf" set_var EASYRSA_DIGEST "sha256" ## 添加可执行权限 chmod +x vars
cd /etc/open***/easy-rsa/3/ ./easyrsa init-pki ./easyrsa build-ca ## 执行过程当中须要设置CA机构密码,最少6位,其他选项回车便可
./easyrsa gen-req tars-***-server nopass ./easyrsa sign-req server tars-***-server ##系统将要求您输入"CA"密码,输入密码,而后按Enter。您将在“ pki/issued/”目录下得到"tars-***-server.crt"证书文件。 openssl verify -CAfile pki/ca.crt pki/issued/tars-***-server.crt ##验证生成的证书文件 ## 已建立全部服务器证书密钥。服务器私钥位于"pki/private/tars-***-server.key",服务器证书位于"pki/issued/tars-***-server.crt"。
./easyrsa gen-req yexinlei nopass ##这里能够为每一个人建立一个证书也能够建立一个公共证书 ./easyrsa sign-req client yexinlei ## ca签发yexinlei的证书,先yes,后输入密码 openssl verify -CAfile pki/ca.crt pki/issued/client01.crt ## 验证客户端证书
./easyrsa gen-dh ## 生成时间取决于咱们机器配置以及vars文件中定义的长度,固然越长越安全。
## 服务器证书 cp pki/ca.crt /etc/open***/server/ cp pki/issued/tars-***-server.crt /etc/open***/server/ cp pki/private/tars-***-server.key /etc/open***/server/ ## 客户端证书 cp pki/ca.crt /etc/open***/client/ cp pki/issued/yexinlei.crt /etc/open***/client/ cp pki/private/yexinlei.key /etc/open***/client/
cp pki/dh.pem /etc/open***/server/ cp pki/crl.pem /etc/open***/server/
cd /etc/open***/ mkdir -p /var/log/open*** ## 建立日志文件 vim server.conf ## 编辑配置文件 # Open*** Port, Protocol and the Tun port 54911 proto udp dev tun # Open*** Server Certificate - CA, server key and certificate ca /data1/open***/server/ca.crt cert /data1/open***/server/mgt-***-server1.crt key /data1/open***/server/mgt-***-server1.key # DH and CRL key dh /data1/open***/server/dh.pem # Revoked certificates if we create the list # crl-verify /data1/open***/server/crl.pem # push "redirect-gateway def1" ## 全部客户端的默认网关都将重定向到*** server 10.254.254.0 255.255.255.0 ## ***地址池 push "route 10.3.0.0 255.255.0.0" ## 推送路由表 push "route 10.10.0.0 255.255.0.0" # DNS configuration push "dhcp-option DNS 10.3.2.20" ## 推送DNS信息 #push "dhcp-option DNS 10.3.2.10" # Domain search configuration. # The latest Open*** client versions for Windows do not recognize option DOMAIN-SEARCH correctly, and work with DOMAIN #push "dhcp-options DOMAIN mgt.tarscorp.com" push "dhcp-option DOMAIN-SEARCH mgt.tarscorp.com" duplicate-cn ## 容许多个客户端使用相同的证书密钥进行链接 # TLS Security cipher AES-256-CBC tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 auth SHA512 auth-nocache # Other Configuration keepalive 20 60 persist-key persist-tun comp-lzo yes daemon user nobody group nobody # LDAP authentication auth-user-pass-verify auth_ldap.sh via-env script-security 3 reneg-sec 0 ## 禁用TSL重协商 # Open*** Log log-append /var/log/open***/***.log # management 10.254.1.1 7656 ## 管理接口,能够搭配 https://github.com/AuspeXeu/open***-status 进行使用 status /var/log/open***/status.log ## 记录当前在线***用户状态 verb 3
yum install open***-auth-ldap openldap-clients -y vim auth_ldap.sh #!/bin/bash # :mode=shellscript # # Gets environment from Open*** and Auth to LDAP Server set >> /tmp/auth-user ldap_base="ou=Users,dc=tars,dc=com" ldap_host="mgt-ldap-server1" # # Bind As and Search For Self ldapsearch \ -h ${ldap_host} \ -b "uid=${username},${ldap_base}" \ -D "uid=${username},${ldap_base}" \ -w "${password}" \ "uid=${username}" >/dev/null 2>&1 # Return Success (0) or Not Success R="$?" echo "$R" >> /tmp/auth-user exit $R chmod +x auth_ldap.sh
## 配置内核 echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf sysctl -p ## 配置iptables iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT ## 启动及开机自启 systemctl start open***@server systemctl enable open***@server ## 若使用云环境,请开放Open***的安全组权限
## 层级关系 open*** └── 10.10.10.1-dev ├── 10.10.10.1-dev.o*** └── certs ├── ca.crt ├── yexinlei.crt └── yexinlei.key ## 客户端配置文件 vim 10.10.10.1-dev.o*** client dev tun proto udp remote 10.10.10.1 54911 ca certs/ca.crt cert certs/yexinlei.crt key certs/yexinlei.key reneg-sec 0 auth-user-pass cipher AES-256-CBC auth SHA512 auth-nocache tls-version-min 1.2 tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 resolv-retry infinite compress lzo nobind persist-key persist-tun mute-replay-warnings verb 3
一、open***的配置及客户端文件是否指定以下字段shell
push "redirect-gateway def1 bypass-dhcp" ##该策略会修改计算机的默认网关为open***vim
二、若不存在检查open***客户端是否有重定向流量开关定义。这种问题主要发生在Linux系统中安全
deepin 系统在open***下包含“仅应用于相对应的网络上的资源”选项,勾选该选项意味着只会增长open***推送的路由,而不会重定向全部流量。具体Ubuntu及debian等系统各位仔细查看响应的配置bash
三、若是是在找不到问题能够尝试使用open***命令链接,借助expect自动化登陆,而不借助系统或第三方open***工具服务器
#!/usr/bin/expect spawn sudo open*** --config 10.10.10.1-dev.o*** expect { "*Username" {send "xxxx\r";exp_continue} "*Password" {send "xxxx\r"} } expect eof
场景是咱们印度一台服务器作open***,但因为不可抗缘由端口国内常常不可用,国外访问正常,因此知足国内须要常常变动端口,那么每次修改端口给国外的小伙伴并不友好。因此能够在一台服务器上部署两组***实例,分别给国内与国外使用,而修改端口也不影响印度同事正常使用。网络
分别配置不一样实例的启动加载配置文件,如下为参考app
[Unit] Description=Open*** Robust And Highly Flexible Tunneling Application On %I After=network.target [Service] Type=notify PrivateTmp=true ExecStart=/usr/sbin/open*** --config /data1/open***/server-india.conf ## 这里指向不一样配置文件 [Install] WantedBy=multi-user.target
默认Windows安装只会有一个“TAP-Windows Adapter V9”的虚拟网卡,只能知足一个open***链接,因此使用自带工具添加ide
Windows主机: 以管理员身份运行该文件--> "C:\Program Files\TAP-Windows\bin\addtap.bat" --> 提示“Drivers installed successfully.”按任意键退出 从新打开***尝试同时链接两个***
理论上只要路由不冲突,多个***共存彻底不是问题,因此从路由表上开始排查。分别单独登陆***工具,并记录每一个***的路由表,而后做对比,排查是否存在路由冲突
及网关重定向
,这两样都会致使没法共存
Windows: route print Linux: route -n