2017年4月25日 星期二

S小魚仔S Centos 6 搭建 L2TP/IPsec VPN

因為「工作」業務需求,需要搭建「L2TP/IPsec VPN」。
使用「strongswan」和「xl2tpd」兩組套件,透過「yum」進行「Install」,原本要使用「Centos 7」搭建,始終沒有成功...網路上「文章」太多「坑坑洞洞」學習不完全..汗。

==修改「電腦」名稱====

vi /etc/sysconfig/network 

NETWORKING=yes 
HOSTNAME=vpn

==關閉「selinux 」====

vi /etc/sysconfig/selinux

SELINUX=disabled 

==重新「啟動」設定值才會生效======

reboot 

===安裝「epel-release」資源庫===

yum install epel-release -y

==安裝「strongswan、xl2tpd」套件=

yum install strongswan xl2tpd -y

===設定「封包轉送」====

vi /etc/sysctl.conf 

net.ipv4.ip_forward = 1

#寫入「設定值
sysctl -p

===設定 「IPsec 連線」====

vi /etc/strongswan/ipsec.conf



#放到「最後面
config setup
  
conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=1
  
conn l2tp
        keyexchange=ikev1 
        left=192.168.8.20  # 外網「IP」 或 內網「IP
        leftsubnet=0.0.0.0/0
        leftprotoport=17/1701
        authby=secret
        leftfirewall=no
        right=%any
        rightprotoport=17/%any
        type=transport
        auto=add

===設定「PSK 驗證」====

vi /etc/strongswan/ipsec.secrets



# PSK 共享密碼 為「vpn
: PSK "vpn"

===設定「L2TP Tunnel」通道====

#編輯「xl2tpd.conf」設定檔
vi /etc/xl2tpd/xl2tpd.conf



[global] 

listen-addr = 192.168.8.20 # 外網「IP」 或 內網「IP」

[lns default]
#設定「VPN」-「Tunnel
ip range = 172.30.10.1-172.30.10.200
local ip = 172.30.10.254
require chap = yes
unix authentication = yes      #使用pam驗證
name = LinuxVPNserver      #後面會用到
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes


#重新啟動「xl2tpd」服務,寫入「設定值
service xl2tpd restart

#檢查「xl2tpd」狀態
service xl2tpd status


===設定「pma 驗證」====

vi /etc/pam.d/ppp




     auth      required        pam_nologin.so
auth      required        pam_unix.so
account required        pam_unix.so
session required        pam_unix.so


===設定「PPP」獲取「DNS」====

vi /etc/ppp/options.xl2tpd



ipcp-accept-local
ipcp-accept-remote
ms-dns  8.8.8.8
ms-dns 168.95.1.1
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
login   #透過PAP使用系統密碼驗證

===設定「CHAP」連線「帳號、密碼」====

vi /etc/ppp/chap-secrets




#帳號「vpn」、密碼「vpn」,允許「任何」位置
# client  server      secret  IP addresses
     vpn        LinuxVPNserver    "vpn"            *


===設定「PAP」連線「帳號、密碼」====

vi /etc/ppp/pap-secrets




# client server         secret                IP     addresses
       *                   LinuxVPNserver     ""         *

===設定「Server」相關啟動服務====

#啟動「strongswan」服務
service strongswan start

#啟動「xl2tpd」服務
service xl2tpd start



PS 
若經常會遇到「xl2tpd」服務啟動失敗,請檢查「/etc/xl2tpd/xl2tpd.conf」配置檔。

#開機啟動「strongswan」服務
chkconfig strongswan on

#開機啟動「xl2tpd」服務
chkconfig xl2tpd on


#檢查「strongswan」服務
service strongswan status

#啟動「xl2tpd」服務
service xl2tpd status

===設定「Server」防火牆規則====

#開啟「防火牆」規則

iptables -A INPUT -p esp -j ACCEPT # ESP

iptables -A INPUT -p ah -j ACCEPT # AH

iptables -A INPUT -p udp --dport 500 -j ACCEPT # IKE

iptables -A INPUT -p udp --dport 4500 -j ACCEPT # NAT-T

iptables -A INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT # 強制 l2tp 透過 ipsec 存取。

iptables -t nat -A POSTROUTING -s 172.30.10.0/24 -o eth1 -j MASQUERADE # 轉送「VPN」流量,送往「Interface」。

/etc/init.d/iptables save


#移除「防火牆」阻擋

iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited

/etc/init.d/iptables save

iptables -D FORWARD -j REJECT --reject-with icmp-host-prohibited

/etc/init.d/iptables save

==設定「Windows 10」撥號「L2TP/IPsec VPN」===

設定「網路設定

點選「VPN」=>「新增 VPN 連線

1. 選擇「Windows (內建)」
2. 輸入「L2TP-VPN
3. 輸入「192.168.8.20」IP 或 網域名稱
4. 選擇「L2TP /IPsec (使用預先共用金鑰)
5. 輸入「VPN
6. 選擇「使用者名稱與密碼」...以此類推

設定完以後,在「VPN」網卡介面,選擇「安全性
允許這些通訊協定 勾選「(CHAP)」、「(MS-CHAP V2)」。

撥號進行測試「OK!

參考資料
TU的雜七雜八筆記本」-「CentOS 架 L2TP/IPsec VPN

2017年4月9日 星期日

S小魚仔S 探索 Docker Bridge 相關原理。

對於「Docker」網路 與「傳統」虛擬化「網路」非常不一樣,透過示意圖來看一下。

Docker」會創建名為「Docker0」的「虛擬網路橋接器」(Virtual Network Bridge),用來連接「宿主」(Host) 與「容器」(Container),或者連接不同的「容器(Container)。

Docker」利用「veth pair」技術,在「宿主」(Host) 創建兩個虛擬網絡接口「veth0」和「veth1」( veth pair 技術的特性可以保證無論哪一個「veth」 接收到網路訊息,都會無條件地傳輸給另一方)。

橋接模式(Bridge Mode) 將「veth0」附加到「docker0」保證「宿主」(Host) 的訊息有能力發往「veth0

容器」(Container)與「外部」溝通,必須使用「NAT」,正確說法是「NATP」 (網路位址端口轉換) ,NATP 包含兩種轉換方式,「SNAT」 和「DNAT」。

參考資料

2017年4月8日 星期六

S小魚仔S CentOS 7 Install Docker 簡易配置

因為一份巧遇,使用「Docker」,Linux Kvm 和 Linux Docker「中國企業」使用最多。

~~~ Install Docker ~~~

#安裝「Docker
sudo yum install docker -y

#啟用「Docker
sudo service docker start

#開機自動「啟動」Docker
sudo chkconfig docker on

#啟用「Docker」狀態
sudo service docker status

~~~ Install Docker Web UI ~~~

# 啟用 「Docker UI
# -d 讓「Docker」容器在背景運行。
# -p 「內部」容器 使用「外部端口」(Host) IP:9000 對應「內部端口」(Images) 。
docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock uifd/ui-for-docker


#檢查「Docker UI」服務
docker ps

使用「Firefox」登入「Docker Web UI


~~~ 如何尋找「Docker」Images ~~~

輸入「docker search ntopng -s10
PS
搜尋「前10名」Ntopng 受歡迎「映像檔 (Images)」。
登入「https://hub.docker.com/」也行。

下載「sudo docker pull docker.io/lucaderi/ntpong-docker」映像檔 (Images)

透過「https://hub.docker.com/」找到「lucaderi/ntpong-docker」使用方法

輸入「docker run --net=host -t -p 3000:3000 lucaderi/ntopng-docker

安裝完成,透過「瀏覽器」就可以順利登入「ntopng


參考資料
dockone.io」-「Docker 管理工具 Web UI:DockerUI & Shipyard