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

[经验分享] CentOS7.1

[复制链接]
发表于 2018-4-26 13:52:14 | 显示全部楼层 |阅读模式
  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 OpenVPN01

[root@localhost ~]# vi /etc/hosts

  127.0.0.1node-01在127后面添加node-01
  

  3、利用root登录系统,然后安装EPEL源
  注:Extra Packages for Enterprise Linux (EPEL)
  直译就是【企业版 Linux 附加软件包(以下简称 EPEL)】是一个由特别兴趣小组创建、维护并管理的,
  针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、 Scientific Linux)的一个高质量附加软件包项目
  

[root@openvpn01 ~]# yum install epel-release

  

  进行上面的源安装后,才可以直接使用yum 安装 OpenVPN、EasyRSA
[root@openvpn01 ~]# yum install openvpn -y

[root@openvpn01 ~]# yum install easy-rsa -y

  

  4、生成密钥和证书
  4.1 建立需要用的密钥及证书目录:mkdir -p /etc/openvpn/easy-rsa/2.0/
  4.2 将密钥和证书生成脚本复制到上面的目录中:cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa/2.0/
  4.3 编辑脚本中的默认值。以后生成证书时将作为默认信息:vi /etc/openvpn/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/openvpn/easy-rsa/2.0/openssl-1.0.0.cnf /etc/openvpn/easy-rsa/2.0/openssl.cnf
  4.5 source /etc/openvpn/easy-rsa/2.0/vars
  (会有提示:NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys)
  4.6 /etc/openvpn/easy-rsa/2.0/clean-all
  注:下面这个命令在第一次安装时可以运行,以后在添加完客户端后慎用,因为这个命令会清除所有已经生成的证书密钥,和上面的提示对应
  

  4.7 生成服务器端ca证书: /etc/openvpn/easy-rsa/2.0/build-ca
  注:由于之前编辑过缺省的配置文件,这里一路回车即可
  

  4.8 /etc/openvpn/easy-rsa/2.0/build-key-server openvpn.meten.com
  生成服务器的密钥和证书,其他选项默认,只填写以下两项,密码和公司名称:
  A challenge password []:``11qq
  An optional company name []:meten
  

  4.9 生成Diffie-Hellman密钥交换文件,用于增强openvpn安全性(生成时间较长)
  /etc/openvpn/easy-rsa/2.0/build-dh
  

  4.10 完成了服务器密钥和证书生成过程,将他们到复制到特定位置备用
  mkdir -p /etc/openvpn-meten
  cp dh2048.pem ca.crt openvpn.meten.com.crt openvpn.meten.com.key openvpn.meten.com.csr /etc/openvpn-meten
  5、配置OpenVpn Server
  5.1 首先拷贝安装路径下的范例配置文件:
[root@openvpn01 ~]# cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf  /etc/openvpn

  
  5.2 创建日志目录:
  mkdir -p /var/log/openvpn/
  
  5.3 编辑配置文件:
[root@openvpn01 ~]# vi /etc/openvpn/server.conf

  --------------------------------/etc/openvpn/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/openvpn/easy-rsa/2.0/keys/ca.crt
  cert /etc/openvpn/easy-rsa/2.0/keys/openvpn.meten.com.crt
  key /etc/openvpn/easy-rsa/2.0/keys/openvpn.meten.com.key
  # This file should be kept secret
  # 指定Diffie hellman parameters.
  dh /etc/openvpn/easy-rsa/2.0/dh2048.pem
  # 配置VPN使用的网段,OpenVPN会自动提供基于该网段的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/openvpn下的目录,其中建有希望限制的客户端Common
  # Name为文件名的文件,并通过下面的命令写入固定IP地址
  # 例如Common Name为client1,则在/etc/openvpn/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
  # 若客户端希望所有的流量都通过VPN传输,则可以使用该语句
  # 其会自动改变客户端的网关为VPN服务器,推荐关闭
  # 一旦设置,请小心服务端的DHCP设置问题
  ;push "redirect-gateway def1 bypass-dhcp"
  ;push "redirect-gateway"
  # 用OpenVPN的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:
  # openvpn --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
  # 让OpenVPN以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/openvpn/openvpn-status.log
  # 缺省日志会记录在系统日志中,但也可以导向到其他地方
  # 建议调试的使用先不要设置,调试完成后再定义
  log /var/log/openvpn/openvpn.log
  log-append /var/log/openvpn/openvpn.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、设置策略以保证路由能转发到OpenVPN的子网及开放VPN端口
  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、OpenVPN的自启动配置
  在配置OpenVPN的自启动时,先关闭selinux
  A、vi /etc/selinux/config
  B、设置 SELINUX=disabled 保存
  C、执行  setenforce 0
  如果只想临时关闭,直接输入:setenforce 0
[root@openvpn01 ~]# vi /usr/lib/systemd/system/openvpn.service

  

  --------------------openvpn.service-----------------------------------
[Unit]

  Description=OpenVPN 2.3.10
  Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
  After=network.target
  

[Service]

  Type=forking
  ExecStart=/usr/sbin/openvpn --daemon --config /etc/openvpn/server.conf
  ExecReload=/bin/kill -s HUP $MAINPID
  ExecStop=/bin/kill -s QUIT $MAINPID
  PrivateTmp=true
  

[Install]

  WantedBy=multi-user.target
  ---------------------------End-----------------------------------------
  开机自启动设置如下:
[root@openvpn01 ~]# systemctl enable openvpn.service

  ln -s '/usr/lib/systemd/system/openvpn.service' '/etc/systemd/system/multi-user.target.wants/openvpn.service'
  

  

  --------------------------------------openvpn-auth-ldap--------------------------------------------------------------------
  由于CentOS7.1无法安装openvpn-auth-ldap插件,因此以下步骤是在CentOS6.6内实现的:
[root@localhost ~]# yum install openvpn-auth-ldap

[root@localhost ~]# vi /etc/openvpn/server.conf

  加下以下配置节在最后:
  plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so /etc/openvpn/auth/ldap.conf
  client-cert-not-required
  username-as-common-name
  script-security 3
  

[root@localhost ~]# vi /etc/openvpn/auth/ldap.conf

  

  <LDAP>
  # LDAP server URL
  URL             ldap://172.21.21.21
  BindDN                  "CN=openvpn,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_vpn_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_vpn_eng
  </Group>
  </Authorization>
  --------------------------------------End-----------------------------------------
  

  

创建&注销用户:

一、创建用户
1.    SSH登陆服务器
2.    cd /etc/openvpn/easy-rsa/easy-rsa/2.0
3.    生效一堆系统变量
source./vars
4.    生成用户证书,为统一命名,必须和OA用户名一致
./build-keyYouki
5.    cd /etc/openvpn/easy-rsa/easy-rsa/2.0/keys
6.    传送ftp文件
lftp vpncer:'!!22qq'@172.21.4.14:2100
put Youki.crt
put Youki.csr
put Youki.key
7.    连同以下文件,放到一个目录
服务器证书:ca.crtinternalssl.meten.com  
用户证书:用户.crt,用户.csr,用户.key
配置文件:client.ovpn
客户端程序
8.    在自己电脑上用写字板或notepad++打开client.ovpn,以下内容修改为实际用户路径与证书名(Windows下记得路径用双反斜线)
ca D:\\OpenVPN\\config\\ca.crt
cert D:\\OpenVPN\\config\\Youki.crt
key D:\\OpenVPN\\config\\Youki.key
9.    将以上文件打包发给用户,由当地IT完成用户端部署
  

二、注销用户
1.    SSH登陆服务器
2.    cd /etc/openvpn/easy-rsa/easy-rsa/2.0
3.    生效一堆系统变量
source ./vars
4.    吊销用户证书,必须和证书名一致,注意要有以下提示
./revoke-full Youki
5.    确认吊销列表文件更新成功
ll /etc/openvpn/easy-rsa/easy-rsa/2.0/keys/crl.pem
6.    吊销列表文件copy到相应目录,覆盖原有文件
cp /etc/openvpn/easy-rsa/easy-rsa/2.0/keys/crl.pem /etc/openvpn/
  
  

运维网声明 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-452376-1-1.html 上篇帖子: CentOS SysV风格的系统启动流程 下篇帖子: Centos 6.7下Jira 6.3.6破解 详细文档
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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