目录:

  1. 安装Open××× (http://fengwan.blog.51cto.com/508652/1404435)

  2. 配置Open×××使用MySQL验证(http://fengwan.blog.51cto.com/508652/1786556)

  3. 针对不同用户配置不同权限


背景:

公司使用Open×××作为远程接入工具,但是缺乏统一用户管理,缺乏审计功能,同时×××登录后默认可以访问所有服务器的所有功能及端口,所以在×××的使用人数上进行限制,但终归治标不治本。

现提出:

测试人员:只能访问线上所有的Web服务器(80)及测试库192.168.2.6的MySQL(3306)

开发人员:能访问线上所有的Web服务器(80),以及测试库192.168.2.6的MySQL(3306)和SVN192.168.2.10(443端口)

DBA:只能访问线上正式库192.168.2.10(3306),测试库192.168.2.6(3306)

运维人员:可访问线上所有的服务

基于以上权限控制,一套解决方案。


针对不同用户配置不同权限,采用不同IP段来处理,然后iptables中配置不同的IP段访问权限

根据子网计算器的计算:

wKiom1d3hqrQ70mnAAATdDIG8Qc407.png

测试人员:172.16.8.0/24

开发人员:172.16.9.0/24

DBA:172.16.10.0/24

运维人员:172.16.11.0/204

这里我们要有4个“段”,但是在服务器要配置一个大的子网包含这4个段,从上面计算出172.16.8.0/255.255.252.0正好就适用于。


为什么要使用子网计算器呢?原因是因为Open×××的Server地址需要能够访问所有的客户端。

以下为Open×××的配置文件

port 1499
proto udp
dev tun
ca /usr/local/open***/conf/keys/ca.crt
cert /usr/local/open***/conf/keys/server.crt
key /usr/local/open***/conf/keys/server.key  # This file should be kept secret
dh /usr/local/open***/conf/keys/dh2048.pem
server 172.16.8.0 255.255.252.0    #重要#这里就是上面我们通过子网计算器获取
ifconfig-pool-persist /usr/local/open***/logs/ipp.txt
push "route 192.168.2.0 255.255.255.0"
client-config-dir /usr/local/open***/conf/ccd  #这里定义客户端的IP
push "dhcp-option DNS 114.114.114.114"
push "dhcp-option DNS 8.8.4.4"
client-to-client
keepalive 10 120
comp-lzo
max-clients 100
persist-key
persist-tun
status /usr/local/open***/logs/open***-status.log
log-append  /usr/local/open***logs/open***.log
verb 3
script-security 3
username-as-common-name
#plugin /usr/local/open***/lib/open***/plugins/open***-auth-pam.so open***
auth-user-pass-verify /usr/local/open***/conf/scripts/checkpsw.sh via-env
client-cert-not-required

这个时候更改服务器的防火墙配置


Open×××服务器的IP为:192.168.2.254,iptables的配置文件为

# Generated by iptables-save v1.4.7 on Tue May 31 11:37:40 2016
*nat
:PREROUTING ACCEPT [2072:108583]
:POSTROUTING ACCEPT [64:49550]
:OUTPUT ACCEPT [64:49550]
#route for public
-A POSTROUTING -p icmp -s 172.16.8.0/22 -o eth0 -j SNAT --to-source 192.168.2.254
#route for test
-A POSTROUTING -p tcp -s 172.16.8.0/24 -d 192.168.2.0/24 --dport 80 -o eth0 -j SNAT --to-source 192.168.2.254
-A POSTROUTING -p tcp -s 172.16.8.0/24 -d 192.168.2.6/32 --dport 3306 -o eth0 -j SNAT --to-source 192.168.2.254
#route for dev
-A POSTROUTING -p tcp -s 172.16.9.0/24 -d 192.168.2.0/24 --dport 80 -o eth0 -j SNAT --to-source 192.168.2.254
-A POSTROUTING -p tcp -s 172.16.9.0/24 -d 192.168.2.6/32 --dport 3306 -o eth0 -j SNAT --to-source 192.168.2.254
-A POSTROUTING -p tcp -s 172.16.9.0/24 -d 192.168.2.10/32 --dport 443 -o eth0 -j SNAT --to-source 192.168.2.254
#route for DBA
-A POSTROUTING -p tcp -s 172.16.10.0/24 -d 192.168.2.0/24 --dport 3306 -o eth0 -j SNAT --to-source 192.168.2.254
#route for sa
-A POSTROUTING -s 172.16.11.0/24 -d 192.168.2.0/24 -o eth0 -j SNAT --to-source 192.168.2.254

COMMIT
# Completed on Tue May 31 11:37:40 2016
# Generated by iptables-save v1.4.7 on Tue May 31 11:37:40 2016
*filter
:INPUT DROP [4:296]
:FORWARD ACCEPT [1431:2278882]
:OUTPUT ACCEPT [1990:1424162]
-A INPUT -i lo -j ACCEPT
-A INPUT -p udp -m udp --dport 1499 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT


因为 open***只支持255.255.255.252 的子网,252 子网只有 三个IP,一个给客户端,一个给服务器,一个给广播地址

所以/usr/local/open***/conf/ccd目录下面的文件内容只能是:

子网              ,   有效的主机                             ,   广播地址            

172.16.8.0    ,   172.16.8.1  到 172.16.8.2      ,   172.16.8.3    

172.16.8.4    ,   172.16.8.5  到 172.16.8.6      ,   172.16.8.7    

172.16.8.8    ,   172.16.8.9  到 172.16.8.10     ,   172.16.8.11   

172.16.8.12   ,   172.16.8.13  到 172.16.8.14    ,   172.16.8.15   

172.16.8.16   ,   172.16.8.17  到 172.16.8.18    ,   172.16.8.19   

172.16.8.20   ,   172.16.8.21  到 172.16.8.22    ,   172.16.8.23   

172.16.8.24   ,   172.16.8.25  到 172.16.8.26    ,   172.16.8.27   

172.16.8.28   ,   172.16.8.29  到 172.16.8.30    ,   172.16.8.31   

172.16.8.32   ,   172.16.8.33  到 172.16.8.34    ,   172.16.8.35   

172.16.8.36   ,   172.16.8.37  到 172.16.8.38    ,   172.16.8.39   

172.16.8.40   ,   172.16.8.41  到 172.16.8.42    ,   172.16.8.43   

172.16.8.44   ,   172.16.8.45  到 172.16.8.46    ,   172.16.8.47   

172.16.8.48   ,   172.16.8.49  到 172.16.8.50    ,   172.16.8.51   

172.16.8.52   ,   172.16.8.53  到 172.16.8.54    ,   172.16.8.55   

172.16.8.56   ,   172.16.8.57  到 172.16.8.58    ,   172.16.8.59   

172.16.8.60   ,   172.16.8.61  到 172.16.8.62    ,   172.16.8.63   

172.16.8.64   ,   172.16.8.65  到 172.16.8.66    ,   172.16.8.67   

172.16.8.68   ,   172.16.8.69  到 172.16.8.70    ,   172.16.8.71   

172.16.8.72   ,   172.16.8.73  到 172.16.8.74    ,   172.16.8.75   

172.16.8.76   ,   172.16.8.77  到 172.16.8.78    ,   172.16.8.79   

172.16.8.80   ,   172.16.8.81  到 172.16.8.82    ,   172.16.8.83   

172.16.8.84   ,   172.16.8.85  到 172.16.8.86    ,   172.16.8.87   

172.16.8.88   ,   172.16.8.89  到 172.16.8.90    ,   172.16.8.91   

172.16.8.92   ,   172.16.8.93  到 172.16.8.94    ,   172.16.8.95   

172.16.8.96   ,   172.16.8.97  到 172.16.8.98    ,   172.16.8.99   

172.16.8.100  ,   172.16.8.101  到 172.16.8.102  ,   172.16.8.103  

172.16.8.104  ,   172.16.8.105  到 172.16.8.106  ,   172.16.8.107  

172.16.8.108  ,   172.16.8.109  到 172.16.8.110  ,   172.16.8.111  

172.16.8.112  ,   172.16.8.113  到 172.16.8.114  ,   172.16.8.115  

172.16.8.116  ,   172.16.8.117  到 172.16.8.118  ,   172.16.8.119  

172.16.8.120  ,   172.16.8.121  到 172.16.8.122  ,   172.16.8.123  

172.16.8.124  ,   172.16.8.125  到 172.16.8.126  ,   172.16.8.127  

172.16.8.128  ,   172.16.8.129  到 172.16.8.130  ,   172.16.8.131  

172.16.8.132  ,   172.16.8.133  到 172.16.8.134  ,   172.16.8.135  

172.16.8.136  ,   172.16.8.137  到 172.16.8.138  ,   172.16.8.139  

172.16.8.140  ,   172.16.8.141  到 172.16.8.142  ,   172.16.8.143  

172.16.8.144  ,   172.16.8.145  到 172.16.8.146  ,   172.16.8.147  

172.16.8.148  ,   172.16.8.149  到 172.16.8.150  ,   172.16.8.151  

172.16.8.152  ,   172.16.8.153  到 172.16.8.154  ,   172.16.8.155  

172.16.8.156  ,   172.16.8.157  到 172.16.8.158  ,   172.16.8.159  

172.16.8.160  ,   172.16.8.161  到 172.16.8.162  ,   172.16.8.163  

172.16.8.164  ,   172.16.8.165  到 172.16.8.166  ,   172.16.8.167  

172.16.8.168  ,   172.16.8.169  到 172.16.8.170  ,   172.16.8.171  

172.16.8.172  ,   172.16.8.173  到 172.16.8.174  ,   172.16.8.175  

172.16.8.176  ,   172.16.8.177  到 172.16.8.178  ,   172.16.8.179  

172.16.8.180  ,   172.16.8.181  到 172.16.8.182  ,   172.16.8.183  

172.16.8.184  ,   172.16.8.185  到 172.16.8.186  ,   172.16.8.187  

172.16.8.188  ,   172.16.8.189  到 172.16.8.190  ,   172.16.8.191  

172.16.8.192  ,   172.16.8.193  到 172.16.8.194  ,   172.16.8.195  

172.16.8.196  ,   172.16.8.197  到 172.16.8.198  ,   172.16.8.199  

172.16.8.200  ,   172.16.8.201  到 172.16.8.202  ,   172.16.8.203  

172.16.8.204  ,   172.16.8.205  到 172.16.8.206  ,   172.16.8.207  

172.16.8.208  ,   172.16.8.209  到 172.16.8.210  ,   172.16.8.211  

172.16.8.212  ,   172.16.8.213  到 172.16.8.214  ,   172.16.8.215  

172.16.8.216  ,   172.16.8.217  到 172.16.8.218  ,   172.16.8.219  

172.16.8.220  ,   172.16.8.221  到 172.16.8.222  ,   172.16.8.223  

172.16.8.224  ,   172.16.8.225  到 172.16.8.226  ,   172.16.8.227  

172.16.8.228  ,   172.16.8.229  到 172.16.8.230  ,   172.16.8.231  

172.16.8.232  ,   172.16.8.233  到 172.16.8.234  ,   172.16.8.235  

172.16.8.236  ,   172.16.8.237  到 172.16.8.238  ,   172.16.8.239  

172.16.8.240  ,   172.16.8.241  到 172.16.8.242  ,   172.16.8.243  

172.16.8.244  ,   172.16.8.245  到 172.16.8.246  ,   172.16.8.247  

172.16.8.248  ,   172.16.8.249  到 172.16.8.250  ,   172.16.8.251  

172.16.8.252  ,   172.16.8.253  到 172.16.8.254  ,   172.16.8.255 


测试组用户test1,则文件名为test1的内容为

ifconfig-push 172.16.8.1 172.16.8.2


测试组用户test2,则文件名为test2的内容为

ifconfig-push 172.16.8.5 172.16.8.6


开发组用户dev1,则文件名dev1的内容为

ifconfig-push 172.16.9.1 172.16.9.2



以此类推。