设为首页 收藏本站
查看: 1131|回复: 0

[经验分享] centos7搭建open***步骤(转)

[复制链接]

尚未签到

发表于 2019-4-17 18:02:00 | 显示全部楼层 |阅读模式
1) 先将本机的yum换成阿里云的yum源  [root@test-vm04 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  [root@test-vm04 ~]# yum clean all
  [root@test-vm04 ~]# yum makecache
  -----------------------------------------------------------------------------------------------------------
  如果是centos5,则更换如下:
  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
  如果时centos6,则更换如下:
  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.rep
  -----------------------------------------------------------------------------------------------------------
  2)安装依赖的软件包
  [root@test-vm04 ~]# yum install -y lzo lzo-devel openssl openssl-devel pam pam-devel
  [root@test-vm04 ~]# wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
  [root@test-vm04 ~]# rpm -ivh epel-release-latest-7.noarch.rpm
  [root@test-vm04 ~]# yum install -y pkcs11-helper pkcs11-helper-devel
  确认已经安装完成:
  [root@test-vm04 ~]# rpm -qa lzo lzo-devel openssl openssl-devel pam pam-devel pkcs11-helper pkcs11-helper-devel
  pam-devel-1.1.8-18.el7.x86_64
  pkcs11-helper-devel-1.11-3.el7.x86_64
  pam-1.1.8-18.el7.x86_64
  pkcs11-helper-1.11-3.el7.x86_64
  lzo-devel-2.06-8.el7.x86_64
  openssl-1.0.2k-8.el7.x86_64
  lzo-2.06-8.el7.x86_64
  openssl-devel-1.0.2k-8.el7.x86_64
  3) 安装Open×××服务
  下载open***的源码包
  [root@test-vm04 ~]# wget http://oss.aliyuncs.com/aliyunecs/open***-2.2.2.tar.gz
  使用rpmbuild将源码包编译成rpm包来进行安装
  [root@test-vm04 ~]# rpmbuild -tb open***-2.2.2.tar.gz
  执行上面这条命令以后就会正常开始编译了,编译完成以后会在 /root/rpmbuild/RPMS/x86_64 目录下生成 open***-2.2.2-1.x86_64.rpm 安装包。
  [root@test-vm04 ~]# ls /root/rpmbuild/RPMS/x86_64/
  open***-2.2.2-1.x86_64.rpm
  执行rpm -ivh open***-2.2.2-1.x86_64.rpm 以rpm包的方式安装:
  [root@test-vm04 ~]# rpm -ivh /root/rpmbuild/RPMS/x86_64/open***-2.2.2-1.x86_64.rpm
  Preparing...                          ################################# [100%]
  Updating / installing...
  1:open***-2.2.2-1                  ################################# [100%]
  Restarting open*** (via systemctl):                        [  OK  ]
  4)配置Open×××服务(服务端)
  初始化PKI
  [root@test-vm04 ~]# cd /usr/share/doc/open***-2.2.2/easy-rsa/2.0
  进入到 /usr/share/doc/open***-2.2.2/easy-rsa/2.0 目录下,找到 vars 证书环境文件,修改以下几行 export 定义的参数值
  [root@test-vm04 2.0]# vim vars
  ......
  export KEY_COUNTRY="CN"                                    //所在的国家
  export KEY_PROVINCE="BJ"                                   //所在的省份
  export KEY_CITY="BEIJING"                                  //所在的城市
  export KEY_ORG="HUANQIU"                                   //所在的组织
  export KEY_EMAIL="wangshibo@huanqiu.cn"          //邮件地址
  上述参数的值可以自定义设置,对配置无影响。
  生成服务端的证书
  清除并删除keys目录下的所有key
  [root@test-vm04 2.0]# ln -s openssl-1.0.0.cnf openssl.cnf
  [root@test-vm04 2.0]# ll openssl*
  -rwxr-xr-x. 1 root root 7768 Oct 21  2010 openssl-0.9.6.cnf
  -rwxr-xr-x. 1 root root 8325 Nov 24  2011 openssl-0.9.8.cnf
  -rwxr-xr-x. 1 root root 8222 Nov 24  2011 openssl-1.0.0.cnf
  lrwxrwxrwx. 1 root root   17 Sep 21 05:19 openssl.cnf -> openssl-1.0.0.cnf
  [root@test-vm04 2.0]# source ./vars
  NOTE: If you run ./clean-all, I will be doing a rm -rf on /usr/share/doc/open***-2.2.2/easy-rsa/2.0/keys
  [root@test-vm04 2.0]# ./clean-all
  生成CA证书,刚刚上面已经在vars文件中配置了默认参数值,多次回车完成就可以:
  [root@test-vm04 2.0]# ./build-ca
  Generating a 1024 bit RSA private key
  .....++++++
  ...................................++++++
  writing new private key to 'ca.key'
  -----
  You are about to be asked to enter information that will be incorporated
  into your certificate request.
  What you are about to enter is what is called a Distinguished Name or a DN.
  There are quite a few fields but you can leave some blank
  For some fields there will be a default value,
  If you enter '.', the field will be left blank.
  -----
  Country Name (2 letter code) [CN]:
  State or Province Name (full name) [BJ]:
  Locality Name (eg, city) [BEIJING]:
  Organization Name (eg, company) [HUANQIU]:
  Organizational Unit Name (eg, section) [changeme]:
  Common Name (eg, your name or your server's hostname) [changeme]:
  Name [changeme]:
  Email Address [mail@host.domain]:
  生成服务器证书
  如下huanqiu***是自定义的名字,一直回车,到最后会有两次交互,输入y确认,完成后会在keys目录下保存了huanqiu***.key、huanqiu***.csrl和huanqiu***.crt 三个文件。
  [root@test-vm04 2.0]# ./build-key-server huanqiu***
  Generating a 1024 bit RSA private key
  ........................................++++++
  ......++++++
  writing new private key to 'huanqiu***.key'
  -----
  You are about to be asked to enter information that will be incorporated
  into your certificate request.
  What you are about to enter is what is called a Distinguished Name or a DN.
  There are quite a few fields but you can leave some blank
  For some fields there will be a default value,
  If you enter '.', the field will be left blank.
  -----
  Country Name (2 letter code) [CN]:
  State or Province Name (full name) [BJ]:
  Locality Name (eg, city) [BEIJING]:
  Organization Name (eg, company) [HUANQIU]:
  Organizational Unit Name (eg, section) [changeme]:
  Common Name (eg, your name or your server's hostname) [huanqiu***]:
  Name [changeme]:
  Email Address [mail@host.domain]:
  Please enter the following 'extra' attributes
  to be sent with your certificate request
  A challenge password []:
  An optional company name []:
  Using configuration from /usr/share/doc/open***-2.2.2/easy-rsa/2.0/openssl-1.0.0.cnf
  Check that the request matches the signature
  Signature ok
  The Subject's Distinguished Name is as follows
  countryName           :PRINTABLE:'CN'
  stateOrProvinceName   :PRINTABLE:'BJ'
  localityName          :PRINTABLE:'BEIJING'
  organizationName      :PRINTABLE:'HUANQIU'
  organizationalUnitName:PRINTABLE:'changeme'
  commonName            :PRINTABLE:'huanqiu***'
  name                  :PRINTABLE:'changeme'
  emailAddress          :IA5STRING:'mail@host.domain'
  Certificate is to be certified until Sep 19 09:52:18 2027 GMT (3650 days)
  Sign the certificate? [y/n]:y
  1 out of 1 certificate requests certified, commit? [y/n]y
  Write out database with 1 new entries
  Data Base Updated
  [root@test-vm04 2.0]# ls keys/
  01.pem  02.pem  03.pem  ca.crt  ca.key  huanqiu***.crt  huanqiu***.csr  huanqiu***.key  index.txt  index.txt.attr  index.txt.attr.old  index.txt.old  serial  serial.old
  创建***登陆用户的秘钥与证书
  如下,创建用户名为kevin的秘钥和证书,一直回车,到最后会有两次确认,只要按y确认即可。完成后,在keys目录下生成1024位RSA服务器密钥kevin.key、kevin.crt和kevin.csr 三个文件。
  [root@test-vm04 2.0]# ./build-key kevin
  Generating a 1024 bit RSA private key
  ...................++++++
  .........++++++
  writing new private key to 'kevin.key'
  -----
  You are about to be asked to enter information that will be incorporated
  into your certificate request.
  What you are about to enter is what is called a Distinguished Name or a DN.
  There are quite a few fields but you can leave some blank
  For some fields there will be a default value,
  If you enter '.', the field will be left blank.
  -----
  Country Name (2 letter code) [CN]:
  State or Province Name (full name) [BJ]:
  Locality Name (eg, city) [BEIJING]:
  Organization Name (eg, company) [HUANQIU]:
  Organizational Unit Name (eg, section) [changeme]:
  Common Name (eg, your name or your server's hostname) [kevin]:
  Name [changeme]:
  Email Address [mail@host.domain]:
  Please enter the following 'extra' attributes
  to be sent with your certificate request
  A challenge password []:
  An optional company name []:
  Using configuration from /usr/share/doc/open***-2.2.2/easy-rsa/2.0/openssl-1.0.0.cnf
  Check that the request matches the signature
  Signature ok
  The Subject's Distinguished Name is as follows
  countryName           :PRINTABLE:'CN'
  stateOrProvinceName   :PRINTABLE:'BJ'
  localityName          :PRINTABLE:'BEIJING'
  organizationName      :PRINTABLE:'HUANQIU'
  organizationalUnitName:PRINTABLE:'changeme'
  commonName            :PRINTABLE:'kevin'
  name                  :PRINTABLE:'changeme'
  emailAddress          :IA5STRING:'mail@host.domain'
  Certificate is to be certified until Sep 19 10:00:46 2027 GMT (3650 days)
  Sign the certificate? [y/n]:y
  1 out of 1 certificate requests certified, commit? [y/n]
  CERTIFICATION CANCELED
  [root@test-vm04 2.0]# ls keys/
  01.pem  ca.crt  ca.key  huanqiu***.crt  huanqiu***.csr  huanqiu***.key  index.txt  index.txt.attr  index.txt.old  kevin.crt  kevin.csr  kevin.key  serial  serial.old
  ------------------------------------------------------------------------------------------------------------------------------------------------
  如果创建用户证书时报错,可以将keys整个目录删除,然后从source ./vars这一步开始重新操作(慎重,否则之前在keys目录里的用户数据就会都删除)
  ------------------------------------------------------------------------------------------------------------------------------------------------
  生成Diffie Hellman参数
  [root@test-vm04 2.0]# ./build-dh
  Generating DH parameters, 1024 bit long safe prime, generator 2
  This is going to take a long time
  .....+..............+..+..............................................................................+...................................................................................................+............................+................+............+..+...................+..............+........................................................................+............................................+.......................................................................................................................................+.....................................................+............+.......................+.......................................+............................................................................................................................................++*++*++*
  执行了./build-dh后,会在 keys 目录下生成 dh 参数文件 dh1024.pem。该文件客户端验证的时候会用到
  [root@test-vm04 2.0]# ls keys
  01.pem  ca.crt  ca.key  dh1024.pem  huanqiu***.crt  huanqiu***.csr  huanqiu***.key  index.txt  index.txt.attr  index.txt.old  kevin.crt  kevin.csr  kevin.key  serial  serial.old
  将/usr/share/doc/open***-2.2.2/easy-rsa/2.0/keys 目录下的所有文件复制到 /etc/open***下:
  [root@test-vm04 2.0]# cp -a /usr/share/doc/open***-2.2.2/easy-rsa/2.0/keys/* /etc/open***/
  复制open***服务端配置文件 server.conf 到 /etc/open***/ 目录下:
  [root@test-vm04 2.0]# cp -a /usr/share/doc/open***-2.2.2/sample-config-files/server.conf /etc/open***/
  server.conf文件的配置
  [root@test-vm04 2.0]# egrep -v "^$|^#|^;" /etc/open***/server.conf
  local 111.94.149.74          //监听地址(内网或外网地址),最好填写open***服务器的公网IP地址(使用"curl ifconfig.me"命令查看)。或者这一行直接注释掉!(我在线上配置的就是注释这行)
  port 1194
  proto udp
  dev tun
  ca ca.crt                   //CA证书路径
  cert huanqiu***.crt         //此处crt以及下一行的key,请填写生成服务器端证书时用户自定义的名称
  key huanqiu***.key
  dh dh1024.pem               //秘钥交换协议文件
  server 10.8.0.0 255.255.255.0   //给***客户机分配的地址池。最好别和open***部署机的内网ip在一个网段内
  ifconfig-pool-persist ipp.txt
  push "route 10.0.0.0 255.0.0.0"
  client-to-client
  keepalive 10 120
  comp-lzo
  user nobody
  group nobody
  persist-key
  persist-tun
  status open***-status.log
  log         open***.log
  verb 3
  #增加下面三行,提供用户名密码的验证
  auth-user-pass-verify /etc/open***/checkpsw.sh via-env
  client-cert-not-required               
  script-security 3
  checkpsw.sh下载地址
  wget http://open***.se/files/other/checkpsw.sh
  chown nobody:nobody checkpsw.sh
  chmod 400 checkpsw.sh  
  chmod +x checkpsw.sh
  在/etc/open*** 下新建账号文件psw-file,内容为 :
  user passwd
  5)设置iptables
  先设置转发
  [root@test-vm04 2.0]# vim /etc/sysctl.conf
  net.ipv4.ip_forward = 1
  [root@test-vm04 2.0]# sysctl -p       //使内核参数生效
  添加iptables规则,确保服务器可以转发数据包到外网:
  [root@test-vm04 2.0]# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
  [root@test-vm04 2.0]# service iptables save
  [root@test-vm04 2.0]# iptables -t nat -L
  Chain PREROUTING (policy ACCEPT)
  target     prot opt source               destination
  Chain INPUT (policy ACCEPT)
  target     prot opt source               destination
  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination
  Chain POSTROUTING (policy ACCEPT)
  target     prot opt source               destination
  MASQUERADE  all  --  localhost/24         anywhere
  6)启动Open×××
  [root@test-vm04 2.0]# /etc/init.d/open*** start
  Starting open*** (via systemctl):                          [  OK  ]
  [root@test-vm04 2.0]# lsof -i:1194

  COMMAND  PID   USER   FD   TYPE DEVICE>  open*** 8547 nobody    5u  IPv4  53264      0t0  UDP localhost:open***
  如果1194端口启动不起来,可以通过查看/etc/open***/open***.log日志进行原因排查
  -------------------------------------------------------------------------------------------------------------------------------
  后续给同事开***账号,只需要下面几步(比如给zhangqiang同事开***)
  [root@test-vm04 2.0]# pwd
  /usr/share/doc/open***-2.2.2/easy-rsa/2.0
  [root@test-vm04 2.0]# ./build-key zhangqiang
  [root@test-vm04 2.0]# cp -a /usr/share/doc/open***-2.2.2/easy-rsa/2.0/keys/zhangqiang.* /etc/open***/
  [root@test-vm04 2.0]# /etc/init.d/open*** restart
  [root@test-vm04 2.0]# lsof -i:1194
  然后编写zhangqiang用户的config.o***客户端配置文件:
  [root@test-vm04 2.0]# vim /tmp/config.o***
  client
  dev tun
  proto udp
  remote 111.94.149.74 1194        #注意这里的111.94.149.74是open***服务器端的外围ip。
  resolv-retry infinite
  redirect-gateway def1
  dhcp-option DNS 8.8.8.8
  dhcp-option DNS 114.114.115.115
  nobind
  mute-replay-warnings
  ca  ca.crt
  cert zhangqiang.crt
  key zhangqiang.key
  comp-lzo
  auth-user-pass  #用户名密码验证
  然后将ca.crt、config.o***、zhangqiang.crt、zhangqiang.csr、zhangqiang.key这五个文件放到zhagnqiang用户下
  [root@test-vm04 2.0]# mkdir /tmp/zhangqiang
  [root@test-vm04 2.0]# cd keys/
  [root@test-vm04 keys]# cp ca.crt /tmp/config.o*** zhangqiang.crt zhangqiang.csr zhangqiang.key /tmp/zhangqiang
  [root@test-vm04 keys]# cd /tmp && tar -zvcf zhangqiang.tar.gz zhangqiang
  然后将/opt/zhangqiang.tar.gz文件拷贝给用户zhangqiang,让他在客户机上进行open***的连接。
  open***的客户端下载地址:
  https://open***.net/community-downloads/  (被墙了)
  https://swupdate.open***.org/community/releases/open***-install-2.4.6-I602.exe
  mac下可以下载tunnelblick
  https://tunnelblick.net/downloads.html
  https://tunnelblick.net/release/Latest_Tunnelblick_Stable.dmg
  转自:https://www.cnblogs.com/kevingrace/p/5799403.html


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-828441-1-1.html 上篇帖子: Zabbix 4.0.4 install for Centos 7 下篇帖子: centos7系统安装完成初始化
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表