OPENVPN免流

kevin.Zhu 发布于:2013-9-22 11:08 分类:Linux  有 25 人浏览,获得评论 0 条  

添加EPEL源:

rpm -ivh http://public.czyaer.me/mianliu/epel-release-6-8.noarch.rpm 

更新yum软件:

yum update 

清空当前防火墙规则/保存/重启规则:

iptables -F
service iptables save
service iptables restart 

关闭SELINUX:

setenforce 0 

开启路由转发:

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1 

重启sysctl生效路由转发:

sysctl -p 

重新配置防火墙规则:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -p TCP --dport 3389 -j ACCEPT  #OpenVPN服务端口,可自定义,不可冲突
iptables -A INPUT -p TCP --dport 80 -j ACCEPT  #squid转发端口,可自定义(代理端口)
iptables -A INPUT -p TCP --dport 22 -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
service iptables save
service iptables restart 

安装依赖环境:

yum install -y wget squid openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig
yum install -y openvpn 

配置VPN服务端参数:

cd /etc/openvpn/
wget http://publiclist.ml/mianliu/server.conf
chmod 0755 ./*.conf 

证书生成工具:

cd /etc/openvpn/
wget http://publiclist.ml/mianliu/EasyRSA-2.2.2.tar.gz
tar -zxvf EasyRSA-2.2.2.tar.gz 

制作证书:

cd /etc/openvpn/easy-rsa/
source vars
./clean-all
./build-ca   #一路的回车
./build-key-server centos   #一路的回车,提示输入y就跟着输入
./build-key user01   #一路的回车,提示输入y就跟着输入
./build-dh   #这是一个漫长的等待过程
cp /etc/openvpn/easy-rsa/keys/{ca.crt,user01.{crt,key}} /home/ 

登陆服务器,进入 /home 目录,把ca.crt、user01.crt、user01.key三个文件下载到电脑,证书制作完毕!

配置/启用端口转发:

cd /etc/squid/
rm -f ./squid.conf
wget http://publiclist.ml/mianliu/squid.conf
chmod 0755 /etc/squid/squid.conf
squid -z
squid -s 

《启动OpenVPN》

service openvpn start  #启动OpenVPN
service openvpn restart  #重启OpenVPN 


创建多用户:

cd /etc/openvpn/easy-rsa/
source vars
./build-key user02 

./build-key user... 证书名字随意,你也可以按照user03、04、05...,这样就比较直观

然后把user02.crt、user02.key文件下载下来,粘贴到ovpn文件内,一个证书只能同时登陆一个用户,要多个用户同时登陆,就必须创建多个客户端证书,CA证书是一样的。

rd.go.10086.cn全部换成wap.10010.cn,部分地区可以用。


#squid.conf

acl SSL_ports port 443
acl Safe_ports port 80
acl Safe_ports port 21
acl Safe_ports port 443
acl Safe_ports port 70
acl Safe_ports port 210
acl Safe_ports port 1025-65535
acl Safe_ports port 280
acl Safe_ports port 488
acl Safe_ports port 591
acl Safe_ports port 777
acl CONNECT method CONNECT
via on
request_header_access X-Forwarded-For deny all
request_header_access user-agent  deny all
reply_header_access X-Forwarded-For deny all
reply_header_access user-agent  deny all
http_port 80
http_access allow  all
access_log /var/log/squid/access.log
visible_hostname TD-LTE/FDD-LTE(sbwml.cn)
cache_mgr Welcome_to_use_OpenVPN

#openvpn-server.conf

port 3389
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/centos.crt
key /etc/openvpn/easy-rsa/keys/centos.key
dh /etc/openvpn/easy-rsa/keys/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
push "redirect-gateway def1 bypass-dhcp"
;push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"
;push "dhcp-option DNS 114.114.114.114"
;push "dhcp-option DNS 114.114.115.115"
;client-to-client
duplicate-cn
keepalive 10 120
#tls-auth /etc/openvpn/easy-rsa/ta.key 0
comp-lzo
max-clients 10
persist-key
persist-tun
status openvpn-status.log
log         openvpn.log
log-append  openvpn.log
verb 3
;mute 20
;crl-verify /etc/openvpn/easy-rsa/keys/crl.pem

#openvpn-client.sample.conf, 默认中国移动免流 

#setenv IV_GUI_VER "de.blinkt.openvpn 0.6.17" 
machine-readable-output
client
dev tun
connect-retry-max 5
connect-retry 5
resolv-retry 60
########免流代码########
http-proxy-option EXT1 "POST http://rd.go.10086.cn" 
http-proxy-option EXT1 "GET http://rd.go.10086.cn" 
http-proxy-option EXT1 "X-Online-Host: rd.go.10086.cn" 
http-proxy-option EXT1 "POST http://rd.go.10086.cn" 
http-proxy-option EXT1 "X-Online-Host: rd.go.10086.cn" 
http-proxy-option EXT1 "POST http://rd.go.10086.cn" 
http-proxy-option EXT1 "Host: rd.go.10086.cn" 
http-proxy-option EXT1 "GET http://rd.go.10086.cn" 
http-proxy-option EXT1 "Host: rd.go.10086.cn" 
http-proxy 填写你的IP 80 
########免流代码########

remote 填写你的IP 3389 tcp-client
resolv-retry infinite
nobind
persist-key
persist-tun
<ca>
CA证书-复制证书文件中的全部内容
</ca>
<cert>
客户证书, 只需要证书部分 -  上面一大坨不需要
</cert>
<key>
客户密钥-复制证书文件中的全部内容
</key>
ns-cert-type server
comp-lzo
verb 3