需求: 首先咱們的需求是這樣,咱們在外地有三個分部,分別在上海,南京,無錫。這三個地方的同窗們須要經過***訪問北京辦公室內網的某臺主機,同時在北京的咱們也須要在家裏***進到辦公室裏邊進行訪問。 實現的方法是經過 open*** server 端指定客戶端的專有配置,配置裏邊能夠指定特定客戶端的ip地址,以後我能夠在iptables的FORWARD鏈裏邊,根據指定給客戶端的ip地址來指定訪問規則,規則的制定是這樣的,容許指定ip訪問特定主機,而後deny特定主機的全部訪問,以後放行其它 open*** 的ip地址訪問權限。 系統需求: 1,開啓iptables 2,開啓路由轉發功能 vi /etc/sysctl.conf --->把 net.ipv4.ip_forward = 0 ---> 把最後的0 改爲 1 -->保存退出 ---> sysctl -p 3,open*** 安裝,網上教程一堆不贅述。 4,根據本身的需求生成對應的客戶端證書,我這個例子裏邊會生成四個,admin,shanghai,nanjing,wuxi 權限劃分以下: 上海,南京,無錫 --容許須要訪問內網的一臺機器上的服務 咱們組的同事 --容許訪問內網全部的機器 在open*** server的配置文件中添加以下配置 client-config-dir ccd 而後在open*** 目錄下創建 ccd 文件夾,根據客戶端的名字創建對應的文件,*這裏要聲明一下,個人open*** 是證書和密碼雙重認證的,通過個人實驗若是想經過客戶端配置文件分配指定IP地址給客戶端的話,是須要證書認證的,用系統認證方式是行不通的,因此證書的名字和ccd文件裏邊文件名字必定要一致。只有證書和ccd 裏邊的文件名字一致時候,open*** 纔會把登陸用戶和ccd 配置文件聯繫起來。 文件裏邊指定的ip地址能夠根據本身的實際需求指定,可是必須按照最下邊分配出來的指定。 文件ccd/shanghai: ifconfig-push 10.8.0.5 10.8.0.6 文件ccd/nanjing: ifconfig-push 10.8.0.9 10.8.0.10 文件ccd/wuxi: ifconfig-push 10.8.0.13 10.8.0.14 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] 這些配置完成以後,咱們須要配置iptables 的FORWARD 鏈了,規則以下邊的例子,這裏只列舉了一組,注意必定是先ACCEPT 須要訪問的網段,而後再DROP。最後須要一個ACCEPT all的規則來放行管理員的訪問權限。 iptables -I FORWARD -i tun0 -s 10.8.0.5 -d 192.xxx.xxx.x -j ACCEPT iptables -I FORWARD -i tun0 -s 10.8.0.5 -d 192.xxx.0.0/24 -j DROP iptables -A FORWARD -j ACCEP
這樣配置完成以後服務器端就ok了,而後就是客戶端的配置了,客戶端必定要有證書認證,服務器端才能下發指定的ip地址。如下的這兩個選項必有才行。服務器
cert xxx.crtide
key xxx.keyspa
這樣小夥伴們就能夠愉快的一塊兒用open*** 玩耍了,這樣作若是客戶端衆多的話須要廢點力氣。server