很久之前写的文档。发给大家看看。


1 Open×××服务端安装:


1.1 环境配置:

一、首先,检测VPS是否支持TUN(via)

cat/dev/net/tun


返回“cat: /dev/net/tun: File descriptor in bad state”说明支持TUN。

检查TUN模块,一般系统自带

modinfotun


二、检测iptables_nat模块支持

iptables-t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

如果返回信息为:iptables: Unknown error 4294967295 说明支持模块。

三、清空默认策略并重启iptables

iptables-t NAT -F

iptables-F

serviceiptables save

serviceiptables restart

四、关闭SELINUX

setenforce0

vi/etc/sysconfig/selinux

---------------

SELINUX=disabled

---------------


Open××× 安装需要ssl 和gcc. 还需要TUN设备和iptables的nat模块支持.


1.2 网络设置:

一、开启服务器端路由转发功能

vi/etc/sysctl.conf

net.ipv4.ip_forward= 1


生效命令:

sysctl-p

二、设置nat转发(开了iptables时要配置)

注:保证×××地址池可路由出外网

iptables-t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

三、设置open***端口通过(开了iptables时要配置)

iptables-A INPUT -p TCP --dport 1194 -j ACCEPT

iptables-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

重启iptables:

注:这里提一下,INPUT策略是执行后即时生效的,POSTROUTING需要保存并重启服务才能生效

serviceiptables save

serviceiptables restart

注:若想让该服务器只提供open***等基本服务,可参照本文档附件iptables脚本

四、时间同步(重要)

/usr/sbin/ntpdatetime-b.nist.gov  ; /sbin/hwclock -w


1.3 安装lzo:

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz

tar zxvflzo-2.06.tar.gz

cdlzo-2.06

./configure

make&& make install; cd ..

1.4 安装OpenSSL开发库:

yuminstall -y openssl-devel

rpm-qa  | grep openssl-devel


1.5 open***服务安装:

tar-zxvf open***-2.3.2.tar.gz

cdopen***-2.3.2

./configure

make ; make  install


问题处理:


tar  -zxvf  git-1.8.4.3.tar.gz

cdgit-1.8.4.3

autoconf

./configure

make

makeinstall

git--version

[root@vbozhan08ffmpeg]# git --version

gitversion 1.8.4.3


configure:error: libpam required but missing

需要安装

yum -yinstall pam-devel


1.6 open***服务配置:

一、复制模板配置到open***配置目录

mkdir -p /etc/open***

cpsample/sample-config-files/server.conf /etc/open***/

cp -rsample/sample-keys  /etc/open***/keys


二、下载easy-rsa

注:该包用来制作ca证书,服务端证书,客户端证书,open***2.3.0该版本源码不包含easy-rsa,所以需要单独下载安装用来配合open***实现证书生成。

wget -chttps://github.com/Open×××/easy-rsa/archive/master.zip

下载wget -c https://github.com/Open×××/easy-rsa/archive/release/2.x.zip

新的使用的没有var等文件。

unzipmaster

mveasy-rsa-master  /etc/open***/easy-rsa


三、***变量


cd  /etc/open***/easy-rsa/easyrsa3

cp vars.example  vars

vi vars

修改如下参数

注:在后面生成服务端ca证书时,这里的配置会作为缺省配置

exportKEY_COUNTRY="CN"

exportKEY_PROVINCE="GD"

exportKEY_CITY="GuangZhou"

exportKEY_ORG="*.com.cn"

exportKEY_EMAIL="linwangyi@*.com.cn"

exportKEY_CN=y*n***

exportKEY_NAME=y*an***

exportKEY_OU=y*n***

exportPKCS11_MODULE_PATH=yu****

exportPKCS11_PIN=y****


四、做SSL配置文件软链:

ln -sopenssl-1.0.0.cnf openssl.cnf


五、修改vars文件可执行并调用

chmod +xvars

source./vars


mkdir  /etc/open***/easy-rsa/2.0/keys

注:也就是如果执行./clean-all,就会清空/etc/open***/easy-rsa/2.0/keys下所有文件。



1.7 配置证书:

一、清空原有证书:

./clean-all

注:下面这个命令在第一次安装时可以运行,以后在添加完客户端后慎用,因为这个命令会清除所有已经生成的证书密钥,和上面的提示对应


二、生成服务器端ca证书

./build-ca

注:由于之前做过缺省配置,这里一路回车即可


三、生成服务器端密钥证书, 后面这个open***86.webdcmp.com就是服务器名,也可以自定义

./build-key-server  ***server

注:这里一路回车即可,到最后提示输入”y/n”时,输入y。


四、生成所需客户端证书密钥文件(名字任意,建议写成你要发给的人的姓名,方便管理):

./build-key   linwangyi


注:这里与生成服务端证书配置类似,中间一步提示输入服务端密码,其他按照缺省提示一路回车即可。

五、再生成diffie hellman参数,用于增强open***安全性(生成需要漫长等待)

./build-dh


六、打包keys

tar zcvfkeys.tar.gz keys/


1.8 生成脚本open***key.sh:

脚本放在/etc/open***/easy-rsa


#!/bin/bash

#./open***key.sh  2014-01-26 by  linwangyi

KEYDIR="/etc/open***/easy-rsa/keys"


KEY_ID=$1

MAIL=$2

if [-z ${MAIL} ]; then

        echo "MAIL is null, set MAIL is $1@*.com.cn\n"

        MAIL=$1

fi


if  [ !  -n "$1" ] ; then

        echo "keyname is null,pleases input the name. eg: sh  open***key.sh   linwangyi  linwangyi_mail\n"

        exit 0

elif [ ! -f ${KEYDIR}/$1.key ] ; then

        echo "$1 not key in then ${KEYDIR} home, pleases make the key!  eg: ./build-key   linwangyi \n"

        exit 0

fi


cd   ${KEYDIR}

cp   1.o***  $1.o***

#sed -i "s#t01#$1#"  $1.o***

echo "cert   $1.crt " >> $1.o***

echo "key   $1.key " >> $1.o***

tar -zcvf   $1.tgz   ca.crt  $1.o***   $1.crt  $1.key password.txt

mail -s open***_key  -a ${KEYDIR}/$1.tgz  ${MAIL}@y*.com.cn  < ${KEYDIR}/mail.txt

exit 0

放在/etc/open***/easy-rsa/keys


[root@Rsyslog04 easy-rsa]# cat  /etc/open***/easy-rsa/keys/1.o***

client  

dev tun  

proto tcp  

remote 211.136.202.101  9900

resolv-retry infinite  

nobind

user nobody

group nobody

route   192.168.1.0  255.255.255.0

route   192.168.40.0  255.255.255.0

persist-key  

persist-tun  

ca ca.crt  

#cert   t01.crt  

#key   t01.key  

ns-cert-type server  

comp-lzo  

verb 3

auth-user-pass   password.txt


放在/etc/open***/easy-rsa/keys

Mail.txt内容

HI,

附件为OPEN×××的密钥,暂时提供此×××连接到广东中粤SVN服务器或者二台电脑拨×××可以连接管理。

安装文件地址  http://pan.baidu.com/s/1nBpR6

password.txt为用户和密码,密码将定期修改,你只要将密码修改替换就可以使用。

运行OPEN×××时,请使用管理员运行,不然系统没有添加路由,而无法连接到中粤SVN


Please do not reply to this email!

User:lin

E-mail: linyou2008@126.com





1.9 配置open*** server:


[root@open***86~]# cat /etc/open***/server.conf

user  nobody

groupnobody

port  9900                              

prototcp

dev tun

ca/etc/open***/easy-rsa/2.0/keys/ca.crt  

cert/etc/open***/easy-rsa/2.0/keys/***server.crt

key/etc/open***/easy-rsa/2.0/keys/***server.key

dh/etc/open***/easy-rsa/2.0/keys/dh2048.pem

client-config-dir/etc/open***/ccd

server10.255.0.0 255.255.255.0

;push”redirect-gateway"

;push"dhcp-option DNS 10.255.0.1"

;push"dhcp-option DNS 8.8.8.8"

;push"dhcp-option DNS 8.8.4.4"  

;route10.25.79.0 255.255.255.254  

push"route 10.255.0.0 255.255.255.0"

route  192.168.1.0 255.255.255.0

route  192.168.40.0 255.255.255.0

client-config-dirccd

;client-to-client    

;max-clients100                        

keepalive10 120  

comp-lzo

persist-key

persist-tun

status/etc/open***/open***-status.log

log-append/etc/open***/open***.log

verb 4




1.10 设置开机启动:

添加系统服务。

创建Open×××启动脚本,可以在源代码目录中找到,在sample-scripts目录下的open***.init文件,将其复制到/etc/init.d/目录中,改名为open***

然后运行:

find ./*-name open***.init*


cp distro/rpm/open***.init.d.rhel /etc/init.d/open***

chmod +x/etc/init.d/open***

chkconfig --add open***

chkconfig  open*** on



1.11 启动:

/etc/init.d/open***  start



查看路由: