今天学习了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-mastereasy-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.*clientca开头的文件压缩保存为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文件解压到该目录下,

155109946.jpg



修改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 。