今天学习了open***,把自己的配置过程贴出来。资源下载open***.net.
1.安装openssl pam-devel
#yum install openssl
#yum install pam-devel
2.安装lzo压缩算法,否则在安装open***时报错: error:lzo enabled but missing
#wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
#tar –zxvf lzo-2.06.tar.gz –C /usr/src/
#cd /usr/src/lzo-2.06
# ./configure --prefix=/usr/local
#make
#make install
3.open***2.3.2的安装
在官网open***.net上下载open***-2.3.2.tar.gz(当前是最新的稳定版).
#tar -zxvf open***-2.3.2.tar.gz -C /usr/src
#cd /usr/src/open***-2.3.2
#./configure --prefix=/opt/open***
#make
#make install
4.open***预配置。打开网站https://github.com ;在网页顶部搜索easy-rsa并下载easy-rsa-master.zip
#tar -o easy-rsa-master.zip
#mkdir /opt/open***/etc 把配置目录放到安装路径/opt/open***/etc下
#cp easy-rsa-master/easy-rsa /opt/open***/etc 拷贝easy-rsa-master下easy-rsa目录
#cd /opt/open***/etc/easy-rsa/2.0/
5.生成CA证书
修改/opt/open***/etc/easy-rsa/2.0/vars参数
#vim vars
export KEY_COUNTRY="CN" 国家
export KEY_PROVINCE="ZJ" 省份
export KEY_CITY="NingBo" 城市
export KEY_ORG="TEST-×××" 组织
exportKEY_EMAIL="81367070@qq.com" 邮件
export KEY_OU="baidu" 单位
保存退出
#source ./vars
#./clean-all
#./build-ca
碰到Common Name (eg, your name or your server's hostname)提示:输入”server”
碰到其他提示直接回车,表示默认提示参数安装
6.生成dh文件
#./build-dh
最后会生成dh2048.pem
7.生成服务器证书
#./build-key-server server这里的”server”即是上面提示输入的”server”,即服务器名称
碰到Common Name (eg, your name or your server's hostname)提示:输入”server”
碰到其他提示直接回车,表示默认提示参数安装
碰到A challenge password []:输入一个密码
8.生成客户端证书
#./build-key client1client1指客户端名称,不能重复
碰到Common Name (eg, your name or your server's hostname)提示:输入”client1”
碰到其他提示直接回车,表示默认提示参数安装
碰到A challenge password []:输入一个密码
若生成其他客户端,例如client2,client3,则重复本步骤操作。
9.把CA证书和客户端证书打包
#tar –zcvf keys.tar.gz client* ca.*把client,ca开头的文件压缩保存为keys.tar.gz
10.服务端的配置文件
#cd /opt/open***/etc
#cp /download/open***-2.3.2/sample/sample-config-files/server.conf .
#cp easy-rsa/2.0/keys /opt/open***/etc/ 拷贝证书文件夹keys
#vim server.conf修改为下面配置
port 1194
proto udp
dev tun
ca /opt/open***/etc/keys/ca.crt
cert /opt/open***/etc/keys/server.crt
key /opt/open***/etc/keys/server.key
dh /opt/open***/etc/keys/dh2048.pem
ifconfig-pool-persist/opt/open***/etc/ipp.txt
server 10.8.0.0 255.255.255.0
push "route 192.168.10.0255.255.255.0"
push "redirect-gateway def1"
push "dhcp-option DNS192.168.10.18"
client-to-client
keepalive 10 120
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status /var/log/open***-status.log
verb 3
启动open***命令
#/opt/open***/sbin/open*** –daemon --config/opt/open***/etc/server.conf
11.xp下客户端的配置
下载相同版本的open***-gui,可以从google找到该资源open***-gui 2.3.2
下载exe文件并安装。找到安装目录中的config文件夹
复制安装目录中的simple-config/client.o***到config下。
把第九步骤中打包的keys.tar.gz文件解压到该目录下,
修改client.o***,使用记事本打开,并修改
;remote my-server-1 1194
remote a.b.c.d 1194 a.b.c.d为架设***服务的公网IP地址
ca ca.crt
cert client1.crt 修改为自己定义的客户端名称
key client1.key 由于把证书拷贝到相同的目录下,这里不需要再指定目录
保存退出。
12.修改路由器,添加nat规则。
把公网IP 端口1194 映射到做***服务器的内网ip地址,指定udp,端口1194
打开open***-gui,点connetion进行连接。这里提醒,初学者先把iptables 和selinux 停掉
那么现在就可以连通到内网中了。
但是,如果要实现上网,还需要让***服务器进行数据包的转发。
13.实现上网功能
目前不会配置selinux,请设置关闭
添加包转发功能,需要开启iptables进行包的转发。
目前不会使用iptables配置,网上找了段代码,先执行命令
#iptables -F 清空iptables规则
#iptables -L查看iptables是否清空
逐条进行执行iptables规则添加动作
#iptables -t nat -A POSTROUTING -s10.8.0.0/24 -o eth0 -j MASQUERADE
#iptables -A INPUT -i lo -p all -j ACCEPT
#iptables -A INPUT -p all -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A INPUT -i tun+ -j ACCEPT
#iptables -A FORWARD -i tun+ -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
#iptables -A INPUT -p udp --dport 1194 -j ACCEPT
#iptables -A INPUT -s 10.8.0.0/24 -p all -j ACCEPT
#iptables -A FORWARD -d 10.8.0.0/24 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 22-j ACCEPT
#service iptables save
#service iptables restart
设置IP包转发
#vim /etc/sysctl.conf
设置net.ipv4.ip_forward =1
#sysctl –p 使修改生效
14.设置open***开机自启动
#/opt/open***/sbin/open*** --daemon --config /opt/open***/etc/server.conf& 启动命令
#echo "/opt/open***/sbin/open*** --daemon --config /opt/open***/etc/server.conf &">>/etc/rc.local开机自启动命令
这样整个过程就完成了。
15.添加×××客户端证书
如果有添加过一些客户端证书(client1,client2,client3)之后,想继续添加一个证书client4
#./clear-all 这个命令不要使用了,会把其他证书一起清除掉
#source ./vars
#./build-key client4
#./build-dh 生成diffie hellman参数
16.注销一个客户端×××证书
#source ./vars
#./revoke-full client4 在keys下会生成一个crl.pem文件
#cp /opt/open***/etc/easy-rsa/2.0/key/crl.pem /opt/open***/etc/keys 拷贝crl.pem
#vi /opt/open***/etc/server.conf 编辑服务端配置文件
添加下面代码
crl-verify /opt/open***/etc/keys/crl.pem
这样,该客户端client4就无法登录了。
17.使用用户名密码登录
服务端修改:
#sudo vi /opt/open***/etc/server.conf 添加下列代码
plugin /opt/open***/lib/open***/plugins/open***-plugin-auth-pam.so login
client-cert-not-required 不使用该行,则需要客户端证书和用户名密码双重验证
username-as-common-name
若找不到open***-plugin-auth-pam.so,可以自行运行find / -name *auth-pam.so搜索
客户端配置:
#修改 client.o***,增加:
auth-user-pass 激活登录认证方式
#修改认证证书,保留ca.crt即可。客户端证书可以不要了
ca ca.crt
;cert client1.crt
;key client1.key
18.给客户机分配固定IP
#vi /opt/open***/etc/server.conf 修改server配置文件
加上下面代码
client-config-dir /opt/open***/etc/ccd 修改成绝对路径,防止出错
保存退出
#mkdir /opt/open***/etc/ccd 创建ccd文件夹
在ccd目录下创建每个客户机对应的文件例如client1
#vi /opt/open***/etc/ccd/client1
添加下面内容
ifconfig-push 10.8.0.9 10.8.0.10 网段和配置中server 10.8.0.0 255.255.255.0保持一致
保存退出
注:10.8.0.9 10.8.0.10一个为网关一个为IP;因为是30网段,子网掩码为255.255.255.252,所以他们组成一个子网段
2的N次方(N代表借位数)-2(常量2)大于等于2(待分的子网段)
例如:30网段,可以知道,最后表示主机的地方为11111100,借6位,那么子网段共有62个。
子网段及主机IP为XXXXXXYY,XXXXXX代表子网段,YY代表主机
那么子网段XXXXXX
000000 所有为0的不符合规则
000001
………
111110
111111 所有为1的不符合规则
主机YY有00(不符合规则),01,10,11(不符合规则),其实只有01和10
那组合在一起IP则是
000001(后面两位只能为01,10)
000010(后面两位只能为01,10)
………
111110(后面两位只能为01,10)
可以归纳出IP=4n+1和4n+2 。
转载于:https://blog.51cto.com/topking/1272250