linux centos7 open***安裝及客戶端權限控制

一、服務端配置

1、 安裝依賴包和open***

yum install openssl openssl-devel lzo lzo-devel pam pam-devel automake pkgconfig  -y

yum install open***

 

2、生成服務器、客戶端證書

#2.3版本需要獨立下載個easy-rsa,該包用來製作ca證書,服務端證書,客戶端證書

wget -c   https://github.com/Open***/easy-rsa/archive/master.zip

unzip master.zip

mv easy-rsa-master easy-rsa

cp -rf  easy-rsa /etc/open***

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

cp vars.example vars  #一般情況下,默認的配置可以滿足需求,也可以根據需要修改

./easyrsa init-pki   #建立一個空的pki結構,生成一系列的文件和目錄

./easyrsa build-ca   #創建ca  密碼 和 cn那麼需要記住

./easyrsa gen-req server   nopass  #創建服務端證書  common name 最好不要跟前面的cn那麼一樣

./easyrsa sign server   server   #簽約服務端證書

./easyrsa gen-dh  #創建Diffie-Hellman

 

#下面是客戶端的證書

#首先創建一個工作的目錄

cd /home/

mkdir client && cd   client

cp -R ~/easy-rsa/ ./   #這是解壓過的easy-rsa 而不是生成了服務端證書的easy-rsa

cd easy-rsa/easyrsa3/

cp vars.example vars

 

#開始生成

./easyrsa init-pki

./easyrsa gen-req estate   nopass #用自己的名字,如果創建了密碼需要記住, cn name是用來區分客戶端的,在對客戶端做一些控制的時候會有用

 

#現在客戶端的證書要跟服務端的交互,也就是簽約,這樣這個用戶才能使用此***

#切換到server證書目錄下

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

./easyrsa import-req   /home/client/easy-rsa/easyrsa3/pki/reqs/estate.req esate   #導入req

./easyrsa sign client esate  #用戶簽約,根據提示輸入服務端的ca密碼

根據以上操作形成以下文件:

CA證書與私鑰

/etc/open***/easy-rsa/easyrsa3/pki/ca.crt

/etc/open***/easy-rsa/easyrsa3/pki/private/ca.key

服務端證書與私鑰

/etc/open***/easy-rsa/easyrsa3/pki/private/server.key

/etc/open***/easy-rsa/easyrsa3/pki/issued/server.crt

客戶端證書與私鑰

/etc/open***/easy-rsa/easyrsa3/pki/issued/estate.crt

/home/client/easy-rsa/easyrsa3/pki/private/estate.key

DHM

/etc/open***/easy-rsa/easyrsa3/pki/dh.pem

 

3、配置open***

3.1 將服務端證書與私鑰和CA證書複製到/etc/open***/server目錄

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

cp  ./private/server.key /etc/open***/server

cp ./issued/server.crt  /etc/open***/server

cp  ./ca.crt /etc/open***/server

cp  ./dh.pem /etc/open***/server

 

3.2 server端配置

vim /etc/open***/server.conf  

local 0.0.0.0

port 1174  #監聽端口

proto udp

dev tun

ca /etc/open***/server/ca.crt

cert   /etc/open***/server/server.crt

key   /etc/open***/server/server.key  # This   file should be kept secret

dh /etc/open***/server/dh.pem

server 10.8.0.0 255.255.255.0   #分配給客戶端的IP段

ifconfig-pool-persist ipp.txt

push "route   192.168.1.0 255.255.255.0"   #增加內網訪問的路由

client-config-dir ccd    #指定客戶端的IP,根據客戶端的common name 匹配ccd目錄下的文件名,並讀取文件相關內容

duplicate-cn

keepalive 10 120

cipher AES-256-CBC

persist-key

persist-tun

status open***-status.log

log         /var/log/open***.log

verb 3

explicit-exit-notify 1

 

4.3 控制客戶端IP

控制common name爲estate的客戶端IP地址,其他common name隨機分配

cat  /etc/open***/ccd/estate

ifconfig-push 10.8.0.5 10.8.0.6          

或者寫成以下方式:

ifconfig-push 10.8.0.200 255.255.255.0

 

特別注意: 
ifconfig-push中的每一對IP地址表示虛擬客戶端和服務器的IP端點。它們必須從連續的/30子網網段中獲取(這裏是/30表示xxx.xxx.xxx.xxx/30,即子網掩碼位數爲30),以便於與Windows客戶端和TAP-Windows驅動兼容。明確地說,每個端點的IP地址對的最後8位字節必須取自下面的集合:

[1,2] [5, 6] [9, 10] [13,   14] [17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] [ 41, 42] [ 45,   46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70]   [ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [   89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106]   [109,110] [113,114] [117,118] [121,122]   [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150]   [153,154] [157,158] [161,162] [165,166] [169,170]   [173,174] [177,178] [181,182] [185,186]   [189,190] [193,194] [197,198] [201,202]     [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230]   [233,234] [237,238] [241,242] [245,246] [249,250] [253,254]

 

4、開啓***服務器路由轉發功能

echo 1 > /proc/sys/net/ipv4/ip_forward

/sbin/iptables -t nat -A   POSTROUTING -o eth0 -j MASQUERADE

iptables -L -n -t nat   #查看NAT表,其他表有filter、mangle

 

5、客戶端訪問控制(在服務端配置,以控制10.8.0.5爲例)

#只轉發217的80和443端口,其他都拒絕

iptables -A FORWARD -i tun0   -s 10.8.0.5 -d 192.168.1.217 -p tcp --dport    80 -j ACCEPT

iptables -A FORWARD -i tun0   -s 10.8.0.5 -d 192.168.1.217 -p tcp --dport    443 -j ACCEPT

iptables -A FORWARD -i tun0   -s 10.8.0.5 -j DROP


6、啓動open***

systemctl restart open***@server.service


二、客戶端配置

client      

dev tun

proto udp

remote ***公網地址 1174   #***外網地址

resolv-retry infinite

nobind

persist-key

persist-tun

ca   /Users/mac/Downloads/openssl/key/ca.crt      #相應的證書

cert   /Users/mac/Downloads/openssl/estate/estate.crt

key   /Users/mac/Downloads/openssl/estate/estate.key

remote-cert-tls server

cipher AES-256-CBC

verb 3

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章