1、环境介绍
这是我CentOS的版本,CentOS7.1,主备都为该版本:
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@localhost ~]# cat /proc/version
Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.2 20140120 (Red Hat 4.8.2-16) (GCC) ) #1 SMP Fri Mar 6 11:36:42 UTC 2015
2、修改主机名并修改host
[root@localhost ~]# hostnamectl set-hostname Open×××01
[root@localhost ~]# vi /etc/hosts
127.0.0.1 node-01在127后面添加node-01
3、利用root登录系统,然后安装EPEL源
注:Extra Packages for Enterprise Linux (EPEL)
直译就是【企业版 Linux 附加软件包(以下简称 EPEL)】是一个由特别兴趣小组创建、维护并管理的,
针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、 Scientific Linux)的一个高质量附加软件包项目
[root@open***01 ~]# yum install epel-release
进行上面的源安装后,才可以直接使用yum 安装 Open×××、EasyRSA
[root@open***01 ~]# yum install open*** -y
[root@open***01 ~]# yum install easy-rsa -y
4、生成密钥和证书
4.1 建立需要用的密钥及证书目录:mkdir -p /etc/open***/easy-rsa/2.0/
4.2 将密钥和证书生成脚本复制到上面的目录中:cp -rf /usr/share/easy-rsa/2.0/* /etc/open***/easy-rsa/2.0/
4.3 编辑脚本中的默认值。以后生成证书时将作为默认信息:vi /etc/open***/easy-rsa/2.0/vars
作以下修改:
export KEY_COUNTRY="CN"
export KEY_PROVINCE="GuangDong"
export KEY_CITY="Shenzhen"
export KEY_ORG="Shenzhen Meten Education Technology Co.,Ltd."
export KEY_EMAIL="admin@meten.com"
export KEY_OU="IT Dept"
4.4 cp /etc/open***/easy-rsa/2.0/openssl-1.0.0.cnf /etc/open***/easy-rsa/2.0/openssl.cnf
4.5 source /etc/open***/easy-rsa/2.0/vars
(会有提示:NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/open***/easy-rsa/2.0/keys)
4.6 /etc/open***/easy-rsa/2.0/clean-all
注:下面这个命令在第一次安装时可以运行,以后在添加完客户端后慎用,因为这个命令会清除所有已经生成的证书密钥,和上面的提示对应
4.7 生成服务器端ca证书: /etc/open***/easy-rsa/2.0/build-ca
注:由于之前编辑过缺省的配置文件,这里一路回车即可
4.8 /etc/open***/easy-rsa/2.0/build-key-server open***.meten.com
生成服务器的密钥和证书,其他选项默认,只填写以下两项,密码和公司名称:
A challenge password []:``11qq
An optional company name []:meten
4.9 生成Diffie-Hellman密钥交换文件,用于增强open***安全性(生成时间较长)
/etc/open***/easy-rsa/2.0/build-dh
4.10 完成了服务器密钥和证书生成过程,将他们到复制到特定位置备用
mkdir -p /etc/open***-meten
cp dh2048.pem ca.crt open***.meten.com.crt open***.meten.com.key open***.meten.com.csr /etc/open***-meten
5、配置Open*** Server
5.1 首先拷贝安装路径下的范例配置文件:
[root@open***01 ~]# cp /usr/share/doc/open***-*/sample/sample-config-files/server.conf /etc/open***
5.2 创建日志目录:
mkdir -p /var/log/open***/
5.3 编辑配置文件:
[root@open***01 ~]# vi /etc/open***/server.conf
--------------------------------/etc/open***/server.conf--------------------------------
#注:可按照默认模板配置,本例为自定义配置文件:
#--------------------------
# 设置监听IP,默认是监听所有IP
;local a.b.c.d
# 设置监听端口,必须要对应的在防火墙里面打开
port 8083
# 设置用TCP还是UDP协议?
;proto tcp
proto tcp
# 设置创建tun的路由IP通道,还是创建tap的以太网通道
# 路由IP容易控制,所以推荐使用它;但如果如IPX等必须
# 使用第二层才能通过的通讯,则可以用tap方式,tap也
# 就是以太网桥接
;dev tap
dev tun
# Windows需要给网卡一个名称,这里设置,linux不需要
;dev-node MyTap
# 这里是重点,必须指定SSL/TLS root certificate (ca),
# certificate(cert), and private key (key)
# ca文件是服务端和客户端都必须使用的,但不需要ca.key
# 服务端和客户端指定各自的.crt和.key
# 请注意路径,可以使用以配置文件开始为根的相对路径,
# 也可以使用绝对路径
# 请小心存放.key密钥文件
ca /etc/open***/easy-rsa/2.0/keys/ca.crt
cert /etc/open***/easy-rsa/2.0/keys/open***.meten.com.crt
key /etc/open***/easy-rsa/2.0/keys/open***.meten.com.key
# This file should be kept secret
# 指定Diffie hellman parameters.
dh /etc/open***/easy-rsa/2.0/dh2048.pem
# 配置×××使用的网段,Open×××会自动提供基于该网段的DHCP
# 服务,但不能和任何一方的局域网段重复,保证唯一
server 172.21.128.0 255.255.255.0
# 维持一个客户端和virtual IP的对应表,以方便客户端重新
# 连接可以获得同样的IP
ifconfig-pool-persist ipp.txt
# 配置为以太网桥模式,但需要使用系统的桥接功能
# 这里不需要使用
;server-bridge 10.8.0.4 255.255.255.0 10.8.0.50 10.8.0.100
# 为客户端创建对应的路由,以另其通达公司网内部服务器
# 但记住,公司网内部服务器也需要有可用路由返回到客户端
;push "route 192.168.20.0 255.255.255.0"
push "route 172.21.128.0 255.255.255.0"
# 为特定的客户端指定IP或指定路由,该路由通常是客户端后面的
# 内网网段,而不是服务端连接的网段
# ccd是/etc/open***下的目录,其中建有希望限制的客户端Common
# Name为文件名的文件,并通过下面的命令写入固定IP地址
# 例如Common Name为client1,则在/etc/open***/ccd/client1写有:
# ifconfig-push 10.9.0.1 10.9.0.2
;client-config-dir ccd
;route 192.168.40.128 255.255.255.248
# 为可以对不同的客户端设置防火墙等权限
# 可以让其自动运行对应脚本,可参考man
;learn-address ./script
# 若客户端希望所有的流量都通过×××传输,则可以使用该语句
# 其会自动改变客户端的网关为×××服务器,推荐关闭
# 一旦设置,请小心服务端的DHCP设置问题
;push "redirect-gateway def1 bypass-dhcp"
;push "redirect-gateway"
# 用Open×××的DHCP功能为客户端提供指定的DNS、WINS等
;push "dhcp-option WINS 10.8.0.1"
push "dhcp-option DNS 172.21.3.2"
# 默认客户端之间是不能直接通讯的,除非把下面的语句注释掉
client-to-client
# 如果您希望有相同Common Name的客户端都可以登陆
# 也可以注释下面的语句,推荐每个客户端都使用不用的Common Name
# 常用于测试
;duplicate-cn
# 设置服务端检测的间隔和超时时间
keepalive 10 120
# 下面是一些对安全性增强的措施
# For extra security beyond that provided
# by SSL/TLS, create an "HMAC firewall"
# to help block DoS attacks and UDP port flooding.
#
# Generate with:
# open*** --genkey --secret ta.key
#
# The server and each client must have
# a copy of this key.
# The second parameter should be 0
# on the server and 1 on the clients.
;tls-auth ta.key 0 # This file is secret
# Select a cryptographic cipher.
# This config item must be copied to
# the client config file as well.
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
# 使用lzo压缩的通讯,服务端和客户端都必须配置
comp-lzo
# 设置最大用户数
;max-clients 100
# 让Open×××以nobody用户和组来运行(安全)
;user nobody
;group nobody
# The persist options will try to avoid
# accessing certain resources on restart
# that may no longer be accessible because
# of the privilege downgrade.
persist-key
persist-tun
# 输出短日志,每分钟刷新一次,以显示当前的客户端
status /var/log/open***/open***-status.log
# 缺省日志会记录在系统日志中,但也可以导向到其他地方
# 建议调试的使用先不要设置,调试完成后再定义
log /var/log/open***/open***.log
log-append /var/log/open***/open***.log
# 设置日志的级别
#
# 0 is silent, except for fatal errors
# 4 is reasonable for general usage
# 5 and 6 can help to debug connection problems
# 9 is extremely verbose
verb 3
# Silence repeating messages. At most 20
# sequential messages of the same message
# category will be output to the log.
;mute 20
--------------------------
6、防火墙及网络设置
CentOS7环境下,默认是使用FireWallD服务,即使你修改了iptables,重启又被初始化了,需要再次手动systemctl restart iptables.service才能使设置的iptables生效,
由于FireWallD暂时还没有熟悉使用方法且不知道他比iptables到底有哪些优势,保险起见,还是换回原先的iptables
6.1、关闭firewall:
[root@node-01 ~]# systemctl stop firewalld.service
#停止firewall
[root@node-01 ~]# systemctl disable firewalld.service 或 systemctl mask firewalld.service
#禁止firewall开机启动
6.2、安装iptables防火墙
[root@node-01 ~]# yum install iptables-services -y
[root@node-01 ~]# systemctl enable iptables
#设置firewall开机启动
6.3、设置策略以保证路由能转发到Open×××的子网及开放×××端口
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 8083 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
6.4、开启系统的IP包转发
vi /etc/sysctl.conf
在文件顶部添加下面的行:
net.ipv4.ip_forward = 1
使ipv4转发起作用,需要重新启动网络服务:
systemctl restart network.service
6.5、同步网络时间-虚拟化服务器一定要开机同步
ntpdate asia.pool.ntp.org
7、Open×××的自启动配置
在配置Open×××的自启动时,先关闭selinux
A、vi /etc/selinux/config
B、设置 SELINUX=disabled 保存
C、执行 setenforce 0
如果只想临时关闭,直接输入:setenforce 0
[root@open***01 ~]# vi /usr/lib/systemd/system/open***.service
--------------------open***.service-----------------------------------
[Unit]
Description=Open××× 2.3.10
Documentation=https://community.open***.net/open***/wiki/Open***23ManPage
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/open*** --daemon --config /etc/open***/server.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
---------------------------End-----------------------------------------
开机自启动设置如下:
[root@open***01 ~]# systemctl enable open***.service
ln -s '/usr/lib/systemd/system/open***.service' '/etc/systemd/system/multi-user.target.wants/open***.service'
--------------------------------------open***-auth-ldap--------------------------------------------------------------------
由于CentOS7.1无法安装open***-auth-ldap插件,因此以下步骤是在CentOS6.6内实现的:
[root@localhost ~]# yum install open***-auth-ldap
[root@localhost ~]# vi /etc/open***/server.conf
加下以下配置节在最后:
plugin /usr/lib64/open***/plugin/lib/open***-auth-ldap.so /etc/open***/auth/ldap.conf
client-cert-not-required
username-as-common-name
script-security 3
[root@localhost ~]# vi /etc/open***/auth/ldap.conf
<LDAP>
# LDAP server URL
URL ldap://172.21.21.21
BindDN "CN=open***,CN=Users,DC=meten,DC=com"
Password VVVVYouki
Timeout 15
TLSEnable no
FollowReferrals yes
</LDAP>
<Authorization>
BaseDN "ou=Meten,dc=meten,dc=com"
# User Search Filter
#SearchFilter "(&(uid=%u)(accountStatus=active))"
SearchFilter "(sAMAccountName=%u)"
# Require Group Membership
RequireGroup false
# Add non-group members to a PF table (disabled)
#PFTable ips_***_users
<Group>
BaseDN "ou=Meten,dc=meten,dc=com"
SearchFilter "(|(OU=业务BU)(OU=产品BU)(OU=区域公司)(OU=总部))"
MemberAttribute uniqueMember
# SearchFilter "(|(cn=developers)(cn=artists))"
# MemberAttribute uniqueMember
# Add group members to a PF table (disabled)
#PFTable ips_***_eng
</Group>
</Authorization>
--------------------------------------End-----------------------------------------
创建&注销用户:
一、创建用户
1. SSH登陆服务器
2. cd /etc/open***/easy-rsa/easy-rsa/2.0
3. 生效一堆系统变量
source./vars
4. 生成用户证书,为统一命名,必须和OA用户名一致
./build-keyYouki
5. cd /etc/open***/easy-rsa/easy-rsa/2.0/keys
6. 传送ftp文件
lftp ***cer:'!!22qq'@172.21.4.14:2100
put Youki.crt
put Youki.csr
put Youki.key
7. 连同以下文件,放到一个目录
服务器证书:ca.crt,internalssl.meten.com
用户证书:用户.crt,用户.csr,用户.key
配置文件:client.o***
客户端程序
8. 在自己电脑上用写字板或notepad++打开client.o***,以下内容修改为实际用户路径与证书名(Windows下记得路径用双反斜线)
ca D:\\Open×××\\config\\ca.crt
cert D:\\Open×××\\config\\Youki.crt
key D:\\Open×××\\config\\Youki.key
9. 将以上文件打包发给用户,由当地IT完成用户端部署
二、注销用户
1. SSH登陆服务器
2. cd /etc/open***/easy-rsa/easy-rsa/2.0
3. 生效一堆系统变量
source ./vars
4. 吊销用户证书,必须和证书名一致,注意要有以下提示
./revoke-full Youki
5. 确认吊销列表文件更新成功
ll /etc/open***/easy-rsa/easy-rsa/2.0/keys/crl.pem
6. 吊销列表文件copy到相应目录,覆盖原有文件
cp /etc/open***/easy-rsa/easy-rsa/2.0/keys/crl.pem /etc/open***/
转载于:https://blog.51cto.com/soulful/1757403