OpenVPN 带证书服务器搭建配置
来源:互联网 发布:奇迹暖暖设计服装软件 编辑:程序博客网 时间:2024/06/07 06:36
一、服务器环境及目的
服务器:ubuntu10.04server
服务器两块网卡,一块连接外网,一块连接内网外网IP: 192.168.1.0办公内网IP:10.10.10.0/24
目 的:
通过VPN在Internet环境下接入办公内网,可以访问内网指定段内的计算机,并且客户端能通过VPN通道访 问Internet
二、服务端安装过程
1.安装openvpn
sudo apt-get install openvpn
2. 设置认证机构,产生证书
在Ubuntu中大致这样操作,将目录 /usr/share/doc/openvpn/examples/easy-rsa/2.0 复制的你的HOME目录(这个目录包含了一系列很方便的脚本),修改vars使其符合你的实际情况(国家、省份、城市、公司、机构、邮件地址),然后运行
代 码:
cp /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa
source ./vars./clean-all./build-ca./build-key-server <servername> //服务器证书./build-key <clientname> //客户端key./build-dh
3. 注意: (一般新配置机器不用。./clean-all)
这只是第一次产生证书的正确操作,其中 build-ca 创建根证书,若你没有清除全部VPN Server/Client的打算,你不应该再次运行此命令;
创建的全部证书及私钥都在当前目录的 keys 下面,而命令 clean-all 将清除 keys 下面全部内容,因此 cliean-all 只在 build-ca 前运行一次。
随后添加 Server 证书或 Client 证书只需运行(建议单独的客户端配置单独的证书)
代码:
./vars./build-key-server <servername>or./build-key <clientname>
4. 配置Server端
从示例中解压 server.conf
代码:
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/sudo gzip -d /etc/openvpn/server.conf.gz
将 相关证书、私匙拷贝的 /etc/openvpn
ca.crtserver.crtserver.keydh1024.pem
5. 修改 server.conf
关键一: 取消注释 push "route a.b.c.d 255.255.255.0",并将地址和掩码替换为办公网络的地址和掩码
目的是为客户端加一条路由,这样客户端才有可 能访问到办公网络中出VPN Server之外的其它主机
关键二: 取消注释 push "dhcp-option DNS a.b.c.d" 和 push "dhcp-option WINS a.b.c.d", 并将地址替换为实际的 DNS 和 WINS 服务器的地址
目的是客户端连接VPN后仍能访问 Internet,(若推过来的DNS不能解析外部域名,则即使客户端的路由配置正确,想通过域名访问Internet也不可能)
示 例server.conf
port 443proto udpdev tunca ca.crt cert server.crt //注意证书存储路径key server.key dh dh1024.pemserver 192.168.42.0 255.255.255.0ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp" #增加172.16.1.0 IP断的路由 使VPN客户端能访问这个地址段(真正能访问还需要后面的设置)push "route 172.16.1.0 255.255.255.0"push "dhcp-option DNS 202.205.6.4"
#vpn客户端能否相互访问;client-to-client#注释掉此参数表示同一个客户端证书只能有一个连接,如果两个客户端使用同一个证书连接的话,#先连接的会自动断开;duplicate-cnkeepalive 10 120
comp-lzopersist-keypersist-tunstatus openvpn-status.loglog /var/log/openvpn.logverb 3
6.Server 端其它设置
配置服务器,允许包转发:
代码:
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
设 置iptable转发规则 使访问目标为10.10.10.0段的请求都转发到eth0网卡,这是vpn服务器连接办公内网的网卡,这里很重要,不然的话VPN客户端还是不能访问办 公内网
iptables -t nat -A POSTROUTING -d 10.10.10.0/24 -o eth0 -j MASQUERADE
设 置iptable转发规则 使来源为vpn客户端的请求都转发到eth1网卡,这是vpn服务器连接Internet的网卡,这里很重要,不然的话VPN客户端还是不能通过VPN访 问Internet
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
通 过修改/etc/rc.local,加入以下代码,使服务器重启后自动设置转发规则
echo 1 |tee /proc/sys/net/ipv4/ip_forwardiptables -t nat -A POSTROUTING -d 10.10
.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADEexit 0
三、 客户端配置过程
至此openvpn服务器端配置完毕, 客户端只需要将keys目录下生成的对应的ca.crt(公用) 专用client.crt和client.key, client.ovpn拷贝到客户端openvpn安装目录下的config目录,如果没有client.ovpn文件,直接新建一个,内容类似:
clientdev tunproto udp remote <serverip> 443resolv-retry infinitenobindpersist-keypersist-tunca ca.crtcert client.crtkey client.key comp-lzoverb 3
运 行客户端连接试一下吧:)
我这边用的是OpenVPN GUI,注意把证书拷贝到config下,同时改client.vpn中server地址!
- OpenVPN 带证书服务器搭建配置
- OpenVPN 服务器搭建详解
- Centos 搭建OpenVPN 服务器
- openvpn 服务器客户端搭建
- centos7搭建openvpn服务器
- CentOS7搭建OpenVPN服务器
- openvpn服务器搭建
- OpenVPN搭建和配置
- openvpn服务器&客户端配置
- OpenVPN + Php+ Mysql 搭建用户和证书验证的VPN服务器
- 搭建家用的OpenVPN服务器
- VPS+OpenVPN搭建VPN服务器
- CentOS6下搭建OpenVPN服务器
- CentOS6下搭建OpenVPN服务器
- CentOS6下搭建OpenVPN服务器
- linux下openvpn服务器搭建
- OpenVpn服务器和客户端配置
- linux服务器搭建使用openvpn搭建vpn
- c# 读取和写入txt文件
- 三层架构
- ABAP 日期格式转换
- symbian中使用滚动条
- C++0x
- OpenVPN 带证书服务器搭建配置
- Android创建和删除桌面快捷方式
- vb下各种进制的转换
- 青玉案·元夕
- c++控制台应用程序
- 设备管理器显示隐藏设备
- 软件工程之面向对象技术
- smarty内建函数
- js脚本 从身份证中获得出生日期、性别