顯示具有 中小企 標籤的文章。 顯示所有文章
顯示具有 中小企 標籤的文章。 顯示所有文章

2009年8月18日 星期二

vpn solution2 – windows openvpn client 免費的vpn 客戶端

上文提及過 openvpn server的制作方法, 這篇文章會介紹服務器端與客戶端配合的一個例子.

在客戶端方面, 用家大部份都會用 Windows + openvpn. 在 Windows 下安裝 openvpn 十分簡單, 只需要以下步驟

  1. 到這裡下載 openvpn 圖形介面客戶端
    http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe
  2. 雙click install.exe 安裝
  3. 到 C:\Program Files\OpenVPN\config 創建 / 編輯 ovpn 檔案 (yourservername.ovpn)
  4. .opvn示範檔案如下
    1. client
    2. dev tap
    3. proto udp

    4. # change this to your server’s address
    5. remote 123.123..123..123 1194
    6. resolv-retry infinite
    7. nobind
    8. persist-key
    9. persist-tun

    10. #tls-client
    11. ca keys/ca.crt
    12. cert keys/keithyau.crt
    13. key keys/keithyau.key

    14. #ensure that we are talking to a server
    15. ns-cert-type server

    16. #confirm we are talking to the correct server
    17. #tls-auth ta.key 1
    18. # Select a cryptographic cipher.
    19. # If the cipher option is used on the server
    20. # then you must also specify it her e.
    21. cipher AES-128-CBC

    22. # Enable compression on the VPN link.
    23. comp-lzo

    24. #fragment 1400
    25. # enable user/pass authentication
    26. # auth-user-pass

  5. 把鑰匙拷貝到 C:\Program Files\OpenVPN\config\keys , 以下是在服務器端上鑰匙的制法 (把keithyau 換成你的使用者名字, 詳情參考 http://keithyau.wordpress.com/2009/02/07/vpn-solution-2-openvpn/)
    1. sudo su
      cd /etc/openvpn/examples/easy-rsa/2.0/
      source ./vars
      ./clean-all
      ./build-ca
      ./build-key-server server
      ./build-key keithyau
      ./build-dh
      cd keys
      openssl dhparam -out dh1024.pem 1024
      cd ..
      openvpn –genkey –secret ta.key #optional
  6. 在右下角 openvpn icon按連接
  1. 測試連線

令服務器能接受以上設定的請求, 相應需要以下的設定

    # Which local IP address should OpenVPN
    # listen on? (optional)
    local 192.168.1.102
    port 1194
    proto udp
    dev tap0
    #direct these to your generated files
    ca /etc/openvpn/examples/easy-rsa/2.0/keys/ca.crt
    cert /etc/openvpn/examples/easy-rsa/2.0/keys/server.crt
    key /etc/openvpn/examples/easy-rsa/2.0/keys/server.key
    dh /etc/openvpn/examples/easy-rsa/2.0/keys/dh1024.pem
    ifconfig-pool-persist ipp.txt
    #需要 dhcp 服務器 的配合
    server 10.3.0.0 255.255.255.0
    # 服務器上沒有 dhcp 服務器的請選這行
    # server-bridge 192.168.1.102 255.255.255.0 192.168.1.230 192.168.1.231
    keepalive 10 120
    #encryption
    cipher AES-128-CBC
    #Push routing configuration
    #push “route 192.168.2.0 255.255.255.0″
    #tls-auth ta.key 0
    comp-lzo
    #fragment 1400
    #limit the number of connections
    max-clients 5
    #some secuurity settings
    # do not use if running server on Windows
    user nobody
    group nogroup
    persist-key
    persist-tun
    #log file settings
    status openvpn-status.log
    verb 3
    # authentication plugin
    #forces client to have a linux acount in order to connect (Not for Windows user)
    # plugin /usr/lib/openvpn/openvpn-auth-pam.so login

這裡有安裝 DHCP server 的方法

sudo apt-get install dhcp3-server
sudo vi /etc/default/dhcp3-server
更改 為 INTERFACES=”br0″ # br0 = 你的網卡名稱

sudo vi /etc/dhcp3/dhcpd.conf

把其中一個示範修改為 (10.3.0.0 是你打算指派的網絡)
subnet 10.3.0.0 netmask 255.255.255.0 {
range 10.3.0.100 10.3.0.200;
option routers 192.168.1.1;
}

/etc/init.d/dhcpd restart
/etc/init.d/openvpn restart

這樣你的 Openvpn 就能成功在 linux → windows 間建立起來了

2009年8月17日 星期一

VPN solution 2 – openvpn

之前提到中小企安裝 vpn 的問題, 這篇文章將會講解如何安裝一種 SSL VPN – OpenVPN 

OpenVPN 是一種在 SSL 上建立的 OpenVPN, 在網絡工程學上說, 是最高層級的 ( OSI MODEL) 所以擁有極強的防火趥穿透力, 在大部份地方都可以建立 VPN 連線. 最重要的是它多平台支援 - Solaris, Linux, OpenBSD, FreeBSD, NetBSD, Mac OS X, and Windows 2000/XP/Vista , 而且是免費的.

以下介紹它的設置方法

網絡示意圖 (切記把 192.168.1.1 / 192.168.1.102 換成閣下的設置)


先安裝 UBUNTU LINUX
這裡有它的安裝方法 http://yubis.net/blog/yubis/ubuntu-ubuntu-install-method-367

在 Ubuntu 上輸入以安裝所需軟件
sudo apt-get install openvpn bridge-utils

把所需要的 OPENSSL 軟件拷貝
cp -R /usr/share/doc/openvpn/examples/ /etc/openvpn/

修改 SSL 加密設定
cd /etc/openvpn/examples/easy-rsa/2.0
vi vars
檔案vars 裹的都是一些制作 ssl 鑰匙時用作認證的資料, 特別留心的是 

export KEY_SIZE=2048

單位愈大, 加密時間愈長, 而駭客需要的破解時間都會增加

現在轉作 root 身份

sudo su

輸入以下指令, 以制作鑰匙

./vars
./clean-all
./build-ca #系統會詢問之前在 vars 設下的問題並提供在 vars 中的答案, 按下 ENTER 便可
制作服務器端的鑰匙
./build-key-server server
制作使用者和密碼

#制作密碼 (username = 你自己的使用者名稱)
./build-key-pass username
#不使用密碼 (username = 你自己的使用者名稱)
./build-key username
建立 Diffie Hellman key
./build-dh
#建立服務器 id key
openvpn --genkey --secret ta.key
建立 /etc/openvpn/server.conf 用作 openvpn 服務器的設定
# OpenVPN 服務器地址
local 192.168.1.102
port 1194
# TCP or UDP 服務器
proto udp
#所使用的網橋名稱
dev tap0
#之前制作出來的鑰匙位置
ca /etc/openvpn/examples/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/examples/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/examples/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/examples/easy-rsa/2.0/keys/dh1024.pem
ifconfig-pool-persist ipp.txt
#服務器網橋的設定 (切記最後那兩個地址是沒被任何機器 / dhcp使用)
server-bridge 192.168.1.102 255.255.255.0 192.168.1.200 192.168.1.201
#needed to allow communication to internal network
client-to-client
keepalive 10 120
#所選擇的認證方法
#更快的選擇有 blowfish: "BF-CB"
cipher AES-128-CBC
#在這裡提供其他內網的地址 (如果亦想使用 openvpn)
push "route 192.168.2.0 255.255.255.0"
#服務器 id 的鑰匙
tls-auth ta.key 0
#compression for network speed
comp-lzo
# if packets are too large fragment them (only really useful if you have an old router)
#fragment 1400
#最大連接數目
max-clients 5
# do not use if running server on Windows
user nobody
group nogroup
persist-key
persist-tun
#log file settings
status openvpn-status.log
verb 3
# authentication plugin
#forces client to have a linux account in order to connect
plugin /usr/lib/openvpn/openvpn-auth-pam.so login

制作 /etc/init.d/bridge 用作開機時自動打開網橋服務


#!/bin/bash
# Create global variables
# 網橋的名稱 (自訂)
br="br0"
# 虛擬網卡的名稱 (自訂, 但需跟 /etc/openvpn/server.conf 相應)
# for example tap="tap0 tap1 tap2".
tap="tap0"
# Define physical ethernet interface to be bridged
# with TAP interface(s) above.
eth="eth0"
eth_ip="192.168.1.102"
eth_netmask="255.255.255.0"
eth_broadcast="192.168.1.255"
gw="192.168.1.1"
start_bridge () {
#################################
# Set up Ethernet bridge on Linux
# Requires: bridge-utils
#################################
for t in $tap; do
openvpn --mktun --dev $t
done
for t in $tap; do
ifconfig $t 0.0.0.0 promisc up
done
ifconfig $eth 0.0.0.0 promisc up
brctl addbr $br
brctl addif $br $eth
for t in $tap; do
brctl addif $br $t
done
ifconfig $br $eth_ip netmask $eth_netmask broadcast $eth_broadcast up
route add default gw $gw $br
}
stop_bridge () {
####################################
# Tear Down Ethernet bridge on Linux
####################################
ifconfig $br down
brctl delbr $br
for t in $tap; do
openvpn --rmtun --dev $t
done
ifconfig $eth $eth_ip netmask $eth_netmask broadcast $eth_broadcast up
route add default gw $gw $eth
}
case "$1" in
start)
echo -n "Starting Bridge"
start_bridge
;;
stop)
echo -n "Stopping Bridge"
stop_bridge
;;
restart)
stop_bridge
sleep 2
start_bridge
;;
*)
echo "Usage: $0 {start|stop|restart}" >&2
exit 1
;;
esac 
>
設定權限
chmod 755 /etc/init.d/bridge
設定開機時自動打開網橋

update-rc.d bridge defaults 15

打開 openvpn 服務

sudo /etc/init.d/bridge start
sudo openvpn /etc/openvpn/server.conf
這樣, openvpn 的服務器設定就完成了

如果覺得還是太煩的話, 可以參考 http://pfsense.org pfsense 是一種基於 freebsd 的系統, 有預載 openvpn

下一文章, 將會講解如何設定 openvpn 的客戶端

2009年8月16日 星期日

如何設立虛擬網絡how to setup VPN

如何設立VPN (Virtual Private Network)
市面上, 只要擁有VPN 功能的路由器就必所費不菲, 而且功能參差. 中小企的老闆希望建立安全網絡的話總得花一點錢. 這篇文章就是提供一個方案給主將網絡安全的老闆們. 分以下部份解說 
什麼是 VPN
現時市面上的VPN方案
案例 - 以 Windows 機器登入 Linux PPTP服務器
方案對比

什麼是 VPN
VPN (Virtual Private Network) 虛擬內聯網. 就是通過一些加密 ( Encryption )技術把在外的使用者跟服務器的內部連接. 令使用者得到內聯網上的 ip 位置及權限. 概念圖如下


fig 1 
圖中的 vpn server 就代表辦公室 / 機樓. 在外的老闆們想進入公司網絡的話, 就可以經過 vpn 建立那條紅色的隧道. 這時候, vpn server 會派給在外的老闆一個地址 ( 192.168.1.200 ) 而老闆則同時間擁有兩個地址 1) 實質地址 ( 172.16.0.100 ) 2) 虛擬地址 ( 192.168.1.200 )
實質上, 老闆是靠 172.16.0.100 跟辦公室建立黃色的那一條 real encryption path 來傳送訊息. 而紅色的隧道只在 Logic 上存在.
要留心, 在老闆對上那藍色的路由器, 有時會阻礙 vpn 通道的建立. 因此, 可解決此問題的SSL-VPN 就成為近年的熱門.
現時市面上的VPN方案
現時市面上雖然有很多路由器可供選擇, 但VPN 技術二不離三, 主要分別在於認證技術, 約分為三類
Ipsec VPN
PPTP VPN
SSL VPN

IPSEC VPN 原理是經驗兩重的認證, 在登入者與服務器間建立鑰匙 Session Key, 再用這條鑰匙作資料加密. 因為使用 Session Key 的關係, 加密速度會相對較快. 但在使用者的角度會造成不便, 因為認證需要認證書Certificate, 而且登入時可能需要加裝軟件.
注名的 Ipsec 有 Cisco VPN / 在 Linux 上運行的 Openswan
PPTP VPN(Point-to-Point Tunneling Protocol)是 Microsoft 開發的制式, 在所有 windows 上都不需要加裝軟件就能使用. 登入時使用名稱密碼, 是最方便的 VPN. 當然, 方便換來的是安全性較底.
SSL VPN 是近年熱門的方案, 因為某些地區網絡 (如酒店 / 學校 )不支援 VPN PASS THROUGH, PPTP VPN 跟 IPSEC VPN 都不起作用時, SSL VPN 依然可以如常運作. 某些 SSL VPN 如SSL-Explorer , 更可以讓使用者用溜覽器登入, 比 PPTP 更方便. 需要高安全性的, 可考慮 OpenVPN, 只需要數個步驟就可以安裝客戶端.
案例 – 以 Windows 機器登入 Linux PPTP 服務器
這個案例會介紹如何設立 LINUX PPTP 服務器, 及在 Windows 客戶端下的登入方法.
在 Linux 架設 VPN 服務器請輸入

#Sudo apt-get install pptpd

輸入以下兩句

#sudo vi /etc/pptpd.conf
localip 192.168.3.100
remoteip 192.168.3.234-238,192.168.3.245
192.168.3.100 需為你的 Linux IP 地址, 可用 ifconfig 找到, 在上面 fig1 的例子便是 192.168.1.1
remoteip 就是你希望 vpn server 所指派的 ip 地址範圍


#sudo vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
keithyau PPTP 123456 *

請注意 ”server “ 需要輸入跟 中 name 一樣的名稱

#sudo vi /etc/ppp/pptpd-options
# Authentication
# Name of the local system for authentication purposes
# (must match the second field in /etc/ppp/chap-secrets entries)
name PPTP

Linux 客戶端之設定
在客戶端輸入 (即 fig 1 的老闆)

#sudo vi /etc/ppp/peers/conntecion-name
pty "pptp yourcompany.com --nolaunchpppd"
name keithyau
remotename PPTP
require-mppe-128
file /etc/ppp/options.pptp
ipparam connection-name

keithyau = name of user
connection-name = file name of this file
yourcompany.com = fig 1 中的辦公室

#sudo vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
keithyau PPTP 123456 *

輸入跟服務器端一樣的使用者資料
連接服務器
#sudo pppd call connection-name
成功後, 會出現以下虛擬網絡卡

#/sbin/ifconfig
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.3.234 P-t-P:192.168.3.100 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:62 (62.0 b) TX bytes:68 (68.0 b)

以虛擬網絡卡作傳送 #route add -net 192.168.3.0 dev ppp0
192.168.3.0 需因 ifconfig 結果調整
在 Windows 客戶端的設定
按以下步驟設定


File → new connection

你的設定名稱

服務器位置

使用者名稱密碼

 完成後可看到新的連線 (ppp adapter yubis-office)

方案對比 (1-3) 1=best

IPSEC
PPTP
SSL VPN

防火墻穿透
3
2
1

安全性
1
3
2

User friendly
3
1
2

支援軟體
3
1
2

性能
2
3
1

可靠 Availability
1
3
2

總括來,個人較喜歡 SSL VPN, 而且亦較識合中小企使用
在下一篇文章會介紹如何設定 ssl VPN

2009年8月11日 星期二

Howto you choose your business IT solution 如何選擇你的資訊科技方案

在創業的情況下, 人才不足造成一個很大的問題. 很多時, 創業者還要充當技術員. 今天就來說說如何選擇中小企的 IT 設置. 以減低 IT 方面造成的煩惱. 

剛創業時, IT 設置大致上是
公司網站, eshop, online sharing

選擇有
寄存公司
自建伺服器
IT outsourcing ( 外判 )

寄存公司特性 hosting
硬件, 軟件, 支援都放在寄存公司
伺服器能力與權限低
開始成本較低, 但自主能力亦低
應變速度低

自建伺服器 / 租用伺服器
硬件, 軟件, 支援都完全掌握
擁有最大伺服器能力與權限
高自主性, 但開始成本較高
沒有現金上的維護費 *因需要有技術伙伴
應變速度高

IT outsourcing ( 外判 )
硬件, 軟件在自己地方
支援在外判公司
高伺服器能力與權限
高自主性, 開始成本較高
維護費與應變速度成正比

以下大致把中小企分為兩類作分析
1)剛創業,未有自己的伺服器
2)已創業一段時間, 開始需要建立公司網絡

1)剛創業,未有自己的伺服器
剛創業時, 很多人都會選擇一些 hosting 公司, 有兩大原因.
1) 以為硬件所費不菲
2) 不想自行維護伺服器
特別要留心的是, hosting 公司一般會附上特別條款, 以致客戶要升級 / 更新時需要額外費用.
其實, IT 只是一門工具, 幫助你的成功. 因此,寄存公司,外判還是自建伺服器要以情況而定. 以下有數種情況

a) 如果你打算做服務性網站 - web applications
切忌找 hosting 公司, 因為建這類網站經常需要在伺服器作特別設定. 而且剛開始時期, 網站必然需要經常更新.你應該找的是好的技術伙伴, 以免長時間支付更新升級的龐大開支.個人認為, 沒有技術伙伴, 不要開設這類網站.

b) 如果你需要一個內聯網跟伙伴遙距合作
很多時, 剛創業都會是開 home office, 所以跟伙伴的網上溝通很重要.
這樣的話, ftp server ( File sharing server ) 看來是必要的. 除此以外, 你需要的是 crm / erp / project management tool 這類的系統. 在寄存公司租用這類系統所費不菲. 希望減省這筆費用的話, 可考慮自行搭建. 這類伺服器不太複習, 搭建後可考慮找外判公司維護.

沒有 IT 經驗的話, 從頭搭建伺服器會有一定難度, 本人有些已設定好的 CD檔 / 虛儀機,需要的可跟我聯絡

c) 如果你只需要一個介紹公司的網站
一般公司介紹網站就是說 ” 關於我們, 聯絡我們, 服務 ” - “about us, contact us, service” 一類的介紹. 這類網站的系統要求不高. 而且寄存費亦不會太高, 可考慮寄存公司. 但說到專業的網站設計, 個人認為設計公司會做得更加出色.

即使是公司網站, 更新與維護都是小不免的. 應考慮一些 CMS - content management system作為網站系統, 有助加快更新速度. 而且配備的網站功能更齊全如: 討論區, 日誌,相冊這些宣傳必備的工具. 別考慮買一些太低價錢, 連登入系統都沒有的網站. 用這些網站的後果是維護成本不菲.
此外, 購買網站時還要留意系統上限, 有些設計公司會刻意限制網站頁數, 相片 / 貨品.
其實網站就像你的一個員工, 需要長期投資與訓練才可到達預期效果.

CMS 會不會很貴 ? 到這裹看看就知道了 http://yubis.net

d) 如果你是靠網站做買賣的
一般 hosting 公司會把一個 eshop與寄存服務一抨賣給你. 由數千塊到萬多塊不等. 值得一提的是在付款後, 你的網站想追加的所有新功能都是要另外收費的, 即使你找到技術人員自行在寄存位置安裝. 例如加裝一個討論區, 亦需要授權費.
這類網站存放著大量客戶和貨品資料, 把它 ” 搬家 ” 的成本可能比買個新網站本身更高.
所以, 選擇前要先預算網站的規模 . 打算將來追加新功能的話, 付款前應先看清楚條文, 追加新功能要不要給授權費. 當然最好就是有技術伙伴, 外判在這個案上看來則用不上.

關於ehsop, 本人亦有些已設定好的 CD檔 / 虛儀機,希望一試擁有私家伺服器的話可跟我聯絡.

2)已創業一段時間, 開始需要建立公司網絡

這類中小企應該已經建好自己的網站, 有基本的 IT 設置, 之後考慮的將會是以下一些題目

安全問題 - 你可能需要 vpn
VPN - Virtual private network 是一種網絡加密技術, 令你在安全的情況下登入公司內聯網.
VPN大致分為三大類
1) pptp
微軟 Microsoft 開發的 vpn 技術, 登入時只需要使用者名稱密碼
安全程度較低, 但設定容易

2) ipsec 安全常用的 vpn 技術
登入時需要認證 certificate, 有雙重登入, 安全性高
設定與維護比較複習, 客戶端跟服務器最好是同一個軟件 ( 例如 cisco-cisco, openswing openswing )

3) ssl-vpn 用溜覽器認證的 vpn 技術
這是最近新興的技術, 不用安裝客戶端軟件, 就可以登入vpn.
安全性為 1) 與 2) 中間, 但易用跟穿牆力是最高的. ( 穿牆力: 穿過防火牆的能力 .. 這樣就 可以適應不同地方 )

選擇 vpn 時, 應該跟以要求之安全程度決定. 太安全就會不方便, 而且成本高. 太方便又不會安全

海外溝通 - 你可能需要 voip
VoIP, Voice over IP 簡單的說就是用寬頻線 broadband 代替電話線. 費用會比電話線低很多. 現在很多公司現在喜歡用 VoIP 打長途電話.
自建 VoIP 服務器不是一件容易的事, 希望一試的話, 可到 google 找找 Astrisk

資料保全 - 你可能需要遙距備份
遙距備份就是說把你的資料備份到另外的地方. 不是說另外的電腦, 而是另外的地點如: 由香港備份到新加坡.
在 9/11 之後, 很多公司都十分關注這種備份, 因為伺服器的救援速度可以決定公司的命運. 如此重要的東西應該找專業的公司幫忙. 但希望自己解決的亦有方法. * 最好先登入 vpn 才備份, 以免資料外洩
做遙距備份常用的的技術叫 increment backup, 即是說每一次更新只複制更改過/ 新加入的地方, 舊的地方不動. 在開源世界中, 有一個套件叫 rsync 把這事程發揮得很好.

做定期遙距備份關係到大量伺服器與網絡設定, 在這裹就不詳說, 簡單的就是
1)建立一個 linux / unix server
2)設定為一個網絡存儲裝置
3)把公司的檔案放上去,假設檔案名稱為 /home/backup
4)在 /etc/crontab 加入每小時更新 : rsync -rtlzv –delete 你的遙距地址 /home/backup

*遙距地址的伺服器都需要安裝 linux / unix

如果想試用遙距備份/ vpn, 本人亦有實驗環境, 可跟我聯絡