顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


主題 - adersun

頁: [1]
1
請問各位前輩 :

小弟現在需整合大陸幾個分點及台灣到香港, 以香港為Hub, 各地會申請DSL和 cable 各一條用 UTM 作 load-balance 及 VPN load-balance 到香港以達到 VPN load-balance & 備援....

有沒有人用過以下幾個牌子的 多WAN UTM 作 site-to-site VPN load-balance 的 ??

如果有請給小弟一些意見, 或是各位前輩有用過其他牌子效能很不錯的(最重要的是穩定), 也請告知...

QVM (俠諾)
Fiberlogic
Nusoft (新軟)

Draytek (居易) 的產品我已問過了, 他們沒辦法做到 VPN trunk 或 VPN load-balance, 上述的幾個牌子是我可以找到有 VPN load-balance 的產品....

公司不肯花錢買Cisco之類的 selution, 所以只能找這些 UTM 產品了....

感謝大家 !!

2
Job description :

1. Helpdesk -- Windows 2K professional + office & Solaris 2.6~8 of internal users in Asia.
2. NT4 server / domain & Windows 2K server AD management.
3. eMail / NFS / NIS / LDAP / DHCP / Web / FTP / DNS ...services on Unix Administration.
4. Cisco switch & router maintenance.
5. LAN / WAN networking support.
6. Telecom support
7. Data backup support
8. UPS

Job location : Hsinchu

Language skill : Fluent in both English and Mandarin (read / write / oral)

requirement :

1.College degree of computer science or above, at least 3 years IT experience in global company.
2. Familiar with Windows family & office family & Unix (Solaris must), shell script.
3. Familiar Cisco router/switch configure/debug, Network/routing protocol.
4. Fluent English and Mandarin(oral/read/written)
5. Good sense and creative of IT field services provide.

Radias / Check-Point VPN /CA / PIX / Nortel secure box / SUN-iplanet products knowledge is plus.

Job position is report to : Adersun

If you interested of this position, please send your English & Chinese resume to : resume-tw@nptest.com

If you need detail of my company, please visit http://www.nptest.com/

Thanks you !!

3
實作 Cisco + squid WCCP v2 Transparent Proxy server

作者 : Adersun
版權宣言 : 可任意轉載, 轉載時請務必著明作者及出處

前言:

WCCP這種協定主要的功能是提供路由器(Router)與快取伺服器(Cache Server)之間的溝通, 這種溝通的結果是希望能達成一種機制, 將user所要求的需求經過路由器時, 路由器將此需求及時的重導(Redirect) 到快取伺服器上, 如果快取伺服器儲存了符合user所要求的資料, 則快取伺服器便直接將該份符合的資料回應給user.
如需了解 WCCP, 請參閱 :
http://www.ringline.com.tw/epaper/11%E6%9C%88%E8%B6%A8%E5%8B%A22.asp

我現在的環境是在 Asia 各個分公司都設立 transparent proxy 節省頻寬, 但我們又不是每個分公司都有 IT 人員, 所以每次出問題就要到處飛來飛去, 所以我想採用 squid + WCCP v2  來作, 這樣就算 proxy server 當掉, 網路都還是可以直接透過 router 進出而不至於整個 site 停擺等 IT 來處理.

這次寫一下實作 Cisco + squid WCCP v2 Transparent Proxy server, 因為要用 WCCP ver 2, 而 WCCP 是利用 GRE 通道來建立 , 所以需要 Cisco IOS 12.x 以上, 及 squid ver 2.5 以上, Linux kernel 需要在 2.4.x.

以下為我的環境 :

Cisco 3640 router --> IOS: 12.2
RedHat 8 + kernel 2.4.18
squid 2.5.PRE7

開始實作 :

下載 Linux kernel 2.4.18 及 kernel patch 重新編譯使其支援 GRE 及 WCCP ver2
# cd /usr/src
# wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.18.tar.gz
# wget http://squid.visolve.com/developments/ip_wccp-2_4_18.patch
# tar zxvf linux-2.4.18.tar.gz
# mv linux linux-2.4.18
# ln -s linux-2.4.18 linux
# cd linux-2.4.18
# patch -p1 < ../ip_wccp-2_4_18.patch
# make menuconfig

重新編譯時請將 :
CONFIG_NET_IPGRE=y
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_NET_SCH_GRED=y
CONFIG_NET_SCH_INGRESS=y
CONFIG_NET_IPWCCP=y
其他選項起配合你的實際需要去編.

# make dep
# make clean
# make bzImage
# make modules
# make modules_install
# cp /usr/src/linux-2.4.18/System-map /boot/System-map-2.4.18
# rm -f /boot/System-map
# ln -s /boot/System-map-2.4.18 /boot/System-map
# cp /usr/src/linux-2.4.18/arch/i386/boot/bzImage /boot/vmlinuz-2.4.18
# mkinitrd /boot/initrd-2.4.18.img 2.4.18

編輯 /etc/grub.conf
title Linux recompiled (2.4.18 For Squid WCCP v2)
        root (hd0,0) <-- 請按照你的實際狀況來寫
        kernel /boot/vmlinuz-2.4.18 ro root=/dev/hda1<-- 請按照你的實際狀況來寫
        initrd /boot/initrd-2.4.18.img <-- 請按照你的實際狀況來寫

reboot 你的 Linux 然後以你剛剛編譯完的 kernel 開機.

下載及安裝 squid-2.5.PRE7 及 WCCP v2 patch for squid :
# cd /usr/src
# wget http://www.squid-cache.org/Versions/v2/2.5/squid-2.5.PRE7.tar.gz
# wget http://squid.visolve.com/developments/wccpv2.patch
# tar -xvzf squid-2.5.PRE7
# cd squid-2.5.PRE7
# patch -p1 < ../wccpv2.patch
# ./configure --enable-wccpv2
# make
# make install

到這裡你的系統已經有能力支援 squid 跑 WCCP v2 了, 現在要修改 squid.conf 使 squid 成為 WCCP v2 transparent proxy server :

# vi /usr/local/squid/etc/squid.conf

httpd_accel_with_proxy on
httpd_accel_port 80
httpd_accel_host virtual
httpd_accel_uses_host_header on
http_port 3128
no_cache deny QUERY
no_cache deny spc_nocache
emulate_httpd_log on
http_access allow all
http_access allow localhost
icp_access allow all
wccp2_version 2
wccp2_routr 123.123.123.1 <-- 此為你 cisco router
其他關於 squid 的設定請參閱其他 squid 的文章, 在此不做闡述.
# squid -z <-- 製造 squid 要用的快取目錄

接下來我們要告訴 Linux kernel 在開機時建立 GRE 以及啟動 squid :
# vi /etc/rc.d/rc.local
加入以下幾行 :

#Start packege forwarding....
echo 1 > /proc/sys/net/ipv4/ip_forward
#Start create gre tunnel....
modprobe ip_gre
iptunnel add gre1 mode gre remote 123.123.123.1 local 123.123.123.123 dev eth0
# 123.123.123.1 為你 Cisco router 接至 proxy server 的 ethernet interface, 123.123.123.123 為你 eth0 的 IP
ifconfig gre1 192.168.123.1 up
# 要給 GRE tunnel 一個 IP, 根據我的情況使用虛擬 IP 一樣可以使用
#Start squid proxy cache....
/usr/sbin/squid &

設定 Cisco router 開啟 WCCP v2 :

conf t
ip wccp enable
ip wccp version 2
ip wccp web-cache
Int (你想要 cache 的output interface)
ip wccp web-cache redirect out

大功告成, 測試是否成功 :

1. 看看 /var/log/squid/access.log 是否開始紀錄web requests passing through
2. 或是在 Cisco 上用 debug ip wccp event 指令, 是否有 'I see you/here I am'

Good Luck !!

4
實作在 Linux 上使用FreeS/WAN 建立 LAN-To-LAN VPN 及 Windows 2K/XP client VPN connection

作者 : adersun

FreeS/WAN 是一個使用 IPSec 協定的 VPN 軟體, 它利用 OpenSSL強大的加密能力來建立功能齊全的 VPN 環境, 但是一開始因為它沒有應用在 Windows base client的功能, 所以一般都把它用來使用在 LAN-to-LAN base 為基礎的VPN環境.
但是現在有越來越多的一般企業有 Windows client 需要使用 VPN 來聯絡自己公司內部網路的需求, 因此就有些 FreeS/WAN 的使用者位它開發了支援 Windows client 的Patch 及 Tools.
本文在說明如何在 Linux 系統上以 FreeS/WAN 建立 LAN-to-LAN 及 Windows 2K/XP 客戶端的 VPN 環境.

測試環境 :

Red Hat 7.3, kernel- 2.4.18-3

您所需要的套件 :

FreeS/WAN (get 1.9.9 or later) : http://download.freeswan.ca/freeswan-1.99.tar.gz
RedHat kernel IPSec module enable RPM : ftp://ftp.xs4all.nl/pub/crypto/freeswan/binaries/RedHat-RPMs/ freeswan-module-1.99_2.4.18_3-0.i386.rpm
X.509 Patch for FreeS/WAN : http://www.strongsec.com/freeswan/x509patch-0.9.25-freeswan-1.99.tar.gz
OpenSSL  0.9.7a or later : http://www.openssl.org/source/openssl-0.9.7a.tar.gz  
Windows 2000/XP VPN Tool : http://vpn.ebootis.de
Windows 2000 ipesecpol.exe Tool Version 1.22 該程式式在 Windows 2000 Resource Kit.您可以在此 download: http://agent.microsoft.com/windows2000/techinfo/reskit/tools/existing/ipsecpol-o.asp



因為要加入 Patch, 所以在這裡使用的均為 tar ball 安裝.

首先必須先 Compile 您的 kernel, 加入支援 IPSec, GRE, …及其他所需的網路選項, 在 RedHat 中您需要在 kernel 裡加入支援 IPSec, 目前已有RPM file 可用, 至於如何 compile kernel 在此不再作說明.

安裝 OpenSSL :

代碼: [選擇]
# cd /tmp
# cp ./openssl-0.9.7a.tar.gz /usr/src
# cd /usr/src
# tar zxvf openssl-0.9.7a.tar.gz
# cd openssl-0.9.7a
# ./configure
# make;make test;make install


安裝FreeS/WAN + X.509 Patches :

我們需要讓 Windows client 可以使用 VPN, 所以在 server 端必須加上 X.509 patch

代碼: [選擇]
# cd /tmp
# cp ./ freeswan-1.99.tar.gz /usr/src
# cd /usr/src
# tar zxvf freeswan-1.99.tar.gz
# cd freeswan-1.99
# gzip –cd /tmp/x509patch-0.9.25-freeswan-1.99.tar.gz | patch –p1
# make programs
# make install


建立認證權仗 (Certificate Authority) <-(小弟學淺, 不知道是不是這樣翻譯??) :

1.   編輯 /use/ share/ssl/openssl.cnf 檔, 將 default_bits =1024 改為 default_bits = 2048, 把  default_days = 365 改為 3650.
2.   建立一個目錄放置等一下我們做出來的各個認證檔, 通常我會建在 /root/vpn 下, 在將此目錄權限改為 700, 如此建立出來的認證檔就只有 root 有權限 access.
3.   編輯 /usr/share/ssl/misc/CA檔, 將 DAYS="days -365" 改為 DAYS="days -3650",
4.   # cd /root/vpn
# /usr/share/ssl/misc/CA –newca
接下來則會問你一連串的問題, 請依據您實際狀況輸入, 千萬不要輸入特殊字元如 : # ,+, / …, 以下為範例 :

代碼: [選擇]

# /usr/share/ssl/misc/CA -newca
CA certificate filename (or enter to create)
(enter)
Making CA certificate ...
Using configuration from /usr/lib/ssl/openssl.cnf
Generating a 2048 bit RSA private key
.............................................................................+++
........................................+++
writing new private key to './demoCA/private/./cakey.pem' <- 告訴你它將會建立 cakey.pem 這個檔.
Enter PEM pass phrase:(abcdefg)  這個 password 將作為以後建立其他?#123;證時所需要鍵入的 password.
Verifying password - Enter PEM pass phrase:(abcdefg) 再輸入一次 password.
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TW(enter) 輸入你的國碼
State or Province Name (full name) [Some-State]:Taiwan(enter) 輸入你的洲 / 省
Locality Name (eg, city) []:Hsinchu(enter) 輸入您所在的城市名.
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ader’s Personal Studio(enter) 輸入您公司的寶號
Organizational Unit Name (eg, section) []:(enter)輸入您的組織名稱, 通常我留空白, 直接按 enter.
Common Name (eg, your name or your server’s hostname) []:linux-test(enter) 輸入你想要的Certificate Authority 名字, 通常我輸入我 linux 主機的 hostname.
Email Address []:ca@example.com(enter) abcd@abcd.com.tw 輸入你的 email address.
#


現在我們已經建立一個可以用來製造 client 認證的認證權仗(certificate authority).

製造認證 (generate certificates) :  

1.   首先我們需要先為 我們的 VPN Gateway製造一個認證出來

代碼: [選擇]

# /usr/share/ssl/misc/CA -newreq
Using configuration from /usr/lib/ssl/openssl.cnf
Generating a 2048 bit RSA private key
...................................+++
...............................+++
writing new private key to 'newreq.pem'
Enter PEM pass phrase:(abcdefg)
Verifying password - Enter PEM pass phrase:(abcdefg)
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TW(enter)
State or Province Name (full name) [Some-State]:Taiwan(enter)
Locality Name (eg, city) []:Hsinchu(enter)
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Ader’s Personal Studio(enter)
Organizational Unit Name (eg, section) []:(enter)
Common Name (eg, YOUR name) []:linux-test(enter)
Email Address []:abcd@abcd.com.tw (enter)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:(enter)
An optional company name []:(enter)
Request (and private key) is in newreq.pem
#


現在要註冊這個認證 :

代碼: [選擇]

# # /usr/share/ssl/misc/CA -sign
Using configuration from /usr/share/ssl/openssl.cnf
Enter PEM pass phrase:
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName           :PRINTABLE:'TW'
stateOrProvinceName   :PRINTABLE:'Taiwan'
localityName          :PRINTABLE:'Hsinchu'
organizationName      :PRINTABLE:'Ader's Personal Studio'
commonName            :PRINTABLE:'linux-test'
emailAddress          :IA5STRING:'abcd@abcd.com.tw'
Certificate is to be certified until Mar 22 10:01:37 2013 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
(然後會 show出一大堆編碼)
Signed certificate is in newcert.pem <- 告訴你?#123;證已註冊.


2.   現在我們要把剛剛製造出來的檔案改名成我們可以辨識的檔案

代碼: [選擇]

# mv newcert.pem vpn@linux-test.abcd.com.tw.pem
# mv newreq.pem vpn@linux-test.abcd.com.tw.key


3.   編輯我們剛才更名的 vpn@linux-test.abcd.com.tw.key 檔, 將

代碼: [選擇]

-----BEGIN CERTIFICATE REQUEST----- 後的那一段全部刪除, 只留下-----BEGIN RSA PRIVATE KEY----- 到-----END RSA PRIVATE KEY----- 這一段內容.


安裝認證到您的VPN Gateway :

代碼: [選擇]

# cp ./vpn@linux-test.abcd.com.tw.key /etc/ipsec.d/private
# cp ./vpn@linux-test.abcd.com.tw.pem /etc/ipsec.d
# cp ./ demoCA/cacert.pem /etc/ipsec.d/cacerts
# openssl ca -gencrl -out /etc/ipsec.d/crls/crl.pem
Using configuration from /usr/share/ssl/openssl.cnf
Enter PEM pass phrase : (abcdefg)
#


設定您的 VPN Gateway :

1.   設定 /etc/ipsec.secrets
: RSA host.example.com.key "password"
“password”這是您剛剛在 generate SSL 時打的 password.
2.   設定 /etc/ipsec.conf :
ipsec.conf 應該看起來長的這樣 :

代碼: [選擇]

config setup
      interfaces=%defaultroute
      klipsdebug=none
      plutodebug=none
      plutoload=%search
      plutostart=%search
      uniqueids=yes

conn %default
      keyingtries=1
      compress=yes
      disablearrivalcheck=no
      authby=rsasig
      leftrsasigkey=%cert
      rightrsasigkey=%cert

conn roadwarrior-net
      leftsubnet=(你的subnet)/(你子網路的netmask)
      also=roadwarrior

conn roadwarrior
      right=%any
      left=%defaultroute
      leftcert=vpn@linux-test.abcd.com.tw.pem
      auto=add
      pfs=yes



請注意上面的編排, 每一個 section 的第一行需凸出該段落的其他部分,
請不要問我為何, 請問作者…. 我曾經試過好幾次失敗, 就是因為這地方
沒注意到.
上述的設定是任何人只要是有剛剛您在前面步驟所做出的憑證, 就可以
連接上你的 gateway .
上面的設定有兩個 roadwarrior 段落值得注意, 第一個設定的是提供直接
連線到您的 VPN Gateway, 另一個是提供您的 client 到 VPN Gateway 後
方的網路區域.

Client 設定 ( Linux 機器, 這可能是單機, 也可以是另一個子網路的 gateway.. )

1.   請重複上面generate certificates 的步驟, 在建立一個 certificate, 然後將它
命名為 client-1@linux-test.abcd.com.tw.pem .client-1@linux-test.abcd.com.tw.key &ccedil;名字請自取, 只要能辨認就行.

2.   使用 scp , wscp 或secure-ftp 之類的加密傳輸軟體將下列我們製造出來的
認證複製到您的 client 機器.
vpn@linux-test.abcd.com.tw.pem
client-1@linux-test.abcd.com.tw.pem
client-1@linux-test.abcd.com.tw.key
cacert.pem
crl.pem

3.   將上述檔案複製到適合的位置 :

代碼: [選擇]

# cp client-1@linux-test.abcd.com.tw.key /etc/ipsec.d/private
# cp client-1@linux-test.abcd.com.tw.key/etc/ipsec.d
# cp vpn@linux-test.abcd.com.tw.pem /etc/ipsec.d
# cp crl.pem /etc/ipsec.d/crls
# cp cacert.pem /etc/ipsec.d/cacerts/cacert.pem


4.   設定 client 端的 ipsec :
ipsec.secrets:

: RSA client-1@linux-test.abcd.com.tw.key "password" <--這是您剛剛在 generate SSL 時打的 password

ipsec.conf :

代碼: [選擇]

config setup
      interfaces=%defaultroute
      klipsdebug=none
      plutodebug=none
      plutoload=%search
      plutostart=%search
      uniqueids=yes

conn %default
      keyingtries=0
      compress=yes
      disablearrivalcheck=no
      authby=rsasig
      leftrsasigkey=%cert
      rightrsasigkey=%cert

conn roadwarrior-net
      left=(ip.of.host)
      leftsubnet=(你的subnet)/(你子網路的netmask)
      also=roadwarrior
      conn roadwarrior
      left=(ip.of.host)
      leftcert=host.example.com.pem
      right=%defaultroute
      rightcert=client-1@linux-test.abcd.com.tw.pem
      auto=add
      pfs=yes


如果您想讓它自動連線, 將上面的auto=add 改成auto=start

5.   連線您的 VPN :

代碼: [選擇]

# ipsec auto --up roadwarrior
# ipsec auto --up roadwarrior-net


Client 設定 ( Windows 2K/XP 機器 ):

1.   建立 windows client 認證 :
請重複上面generate certificates 的步驟, 在建立一個 certificate, 然後將它
命名為 client-2@linux-test.abcd.com.tw.pem .client-2@linux-test.abcd.com.tw.key &ccedil;名字請自取, 只要能辨認就行.

2.   匯出上面的認證成 windows 認識的 *.p12 檔 :
# openssl pkcs12 -export -in client-2@linux-test.abcd.com.tw.pem -inkey client-2@linux-test.abcd.com.tw.key -certfile demoCA/cacert.pem -out client-2@linux-test.abcd.com.tw.p12
然後run 一下下面的指令, 並記下其輸出的結果, 待會我們會用到 :
$ openssl x509 -in demoCA/cacert.pem -noout –subject

3.   將上面檔案複製到你的 windows client 上, 並下載文章最前所述的Windows 2000/XP VPN Tool 並解壓到適當位置 ( 如 : c:\ipsec )

4.   建立IPSEC + Certificates MMC ( 我工作用的 PC 為 windows 2000 英文版, 所以很抱歉我以英文寫出以下步驟 )
Start/Run/MMC
Console - Add/Remove Snap-in
點擊 'Add'
點擊 'Certificates' - 'Add'
選擇 'Computer Account', 'Next'.
選擇 'Local computer', 'Finish'.
點擊 'IP Security Policy Management', 'Add'.
選擇 'Local Computer', 'Finish'
點擊'Close', 'OK'

5.   加入認證 :
點擊'Certificates (Local Computer)' 旁的 + 號
右鍵 'Personal', 點選 'All Tasks' - 'Import' – Next
鍵入 .p12 檔的路徑, 'Next'
鍵入 password, Next
選擇 'Automatically select the certificate store based on the type of certificate',  Next
點擊 Finish, - 然後一路 yes
存檔離開 mmc

6.   設定Windows 2000/XP VPN Tool :
安裝您download 下來的ipsecpol.exe (Windows 2000), 如果您是 XP , XP已經在他原版 CD 裡附有ipseccmd.exe 這個檔, 然後在該機器上編輯ipsec.conf 檔, 將 "RightCA" 置換成剛剛'openssl x509 -in demoCA/cacert.pem -noout -subject' 這步時所輸出的內容, 且改寫其他內容如下所述 :

代碼: [選擇]

conn roadwarrior
      left=%any
      right=(ip_of_remote_system)
      rightca="C=TW,S=Taiwan,L=Hsinchu,O=Ader's Personal Studio,CN=linux-test,Email=abcd@abcd.com.tw"
      network=auto
      auto=start
      pfs=yes

conn roadwarrior-net
      left=%any
      right=(ip_of_remote_system)
      rightsubnet=(your_subnet)/(your_netmask)
      rightca="C=TW,S=Taiwan,L=Hsinchu,O=Ader's Personal Studio,CN=linux-test,Email=abcd@abcd.com.tw"
      network=auto
      auto=start
      pfs=yes


Note : 以上 :
rightca="C=TW,S=Taiwan,L=Hsinchu,O=Ader's Personal Studio,CN=linux-test,Email=abcd@abcd.com.tw"
為同一行.

7.   開始建立 windows client VPN 連線, 以下為執行 ipsec.exe 時之輸出:

代碼: [選擇]

C:\ipsec>ipsec
IPSec Version 2.1.4 (c) 2001,2002 Marcus Mueller
Getting running Config ...
Microsoft's Windows 2000 identified
Host name is: (adersun-laptop)
No RAS connections found.
LAN IP address: (xxx.xxx.xxx.xxx)
Setting up IPSec ...

Deactivating old policy...
Removing old policy...

Connection roadwarrior:
MyTunnel : (xxx.xxx.xxx.xxx)
MyNet : (xxx.xxx.xxx.xxx)/255.255.255.255
PartnerTunnel: (yyy.yyy.yyy.yyy)
PartnerNet : (yyy.yyy.yyy.yyy)/255.255.255.255
CA (ID) : C=TW,S=Taiwan,L=Hsinchu,O=Ader's Personal Studio,...
PFS : y
Auto : start
Auth.Mode : MD5
Rekeying : 3600S/50000K
Activating policy...

Connection roadwarrior-net:
MyTunnel : (xxx.xxx.xxx.xxx)
MyNet : (xxx.xxx.xxx.xxx)/255.255.255.255
PartnerTunnel: (yyy.yyy.yyy.yyy)
PartnerNet : (yyy.yyy.yyy.yyy)/(255.255.255.0)
CA (ID) : C=TW,S=Taiwan,L=Hsinchu,O=Ader's Personal Studio,...
PFS : y
Auto : start
Auth.Mode : MD5
Rekeying : 3600S/50000K
Activating policy...

C:\ipsec>


大功告成 !!

參考資料 :

http://www.jacco2.dds.nl/networking/freeswan-l2tp.html
http://www.jacco2.dds.nl/networking/win2000xp-freeswan.html
http://www.jacco2.dds.nl/networking/msl2tp.html
http://www.natecarlson.com/linux/ipsec-x509.php
http://vpn.ebootis.de/
http://www.strongsec.com/freeswan/
http://www.freeswan.org/

5
拾人牙慧 / 剛剛翻譯好的 vsftp How To ....
« 於: 2003-04-15 08:49 »
今天把我老舊的機器由 Red Hat 7.3 給他升級到 Red Hat 9 , 小弟跟他奮鬥了一下午.... 上網找了一些 documents , 順手就把他翻了
一下, 提供給各位參考, 這是小弟第一次翻譯 document, 有任何不妥懇請各位賜教 ..... :D

===============================================

EnGarde Linux vsFTP HowTo

( 原文出處 : http://www.engardelinux.org/howto/vsftp_howto.html )
譯者 : adersun

前言 :

本文件提供使用者安裝及設定 EnGarde Secure Linux 1.0.1 (Finestra) ftp daemon(ftpd).我們在此假設您非常熟悉如何在
Linux 下以 root 身分執行及操作作業系統, 以及熟知如何使用文字編輯軟體, 如 vi 或 pico 等.

如果您在設置 ftpd 時有任何問題要發問, 最好的地方是 "EnGarde Mailing Lists" ( 列在最下方的 "參考資料" ) , 您可以利用這個
mailing list 寄信給 EnGarde developers 尋求他們的協助.

設置步驟 :

要讓您系統上的 ftpd 按照您的期望正常工作, 以下是您必須要做的步驟, 我們強烈的建議您雖然有些步驟並不是必要的選項, 但還是按步
就班一一做完所有的步驟.

第一步 : 權限控制 ( Access Control )

在任何人連到您的 ftpd 之前, 您首先要做的是編輯 /etc/hosts.allow 檔, 您必須新增 "vsftpd:" 並按照 /etc/hosts.allow 檔的格式
來管制哪些 IP 可以進入您的 FTP 主機, 以下為一些範例 :

允許 localhost 使用該主機 :
vsftpd: 127.0.0.1

允許 192.168.1.0 /24 整個子網路可以使用該主機 :
vsftpd: 192.168.1.

允許兩個特殊的 IP 位置才能使用該主機  :
vsftpd: 192.168.1.100 192.168.5.53

允許所有人使用該主機 :
vsftpd: ALL

第二步 :  設定 vsftpd ( vsftpd Configuration ) :

vsftpd 有三個設定檔 :
/etc/vsftpd.banned_emails -- 列出無法使用某些 email address 使用匿名 FTP login ( List of denied anonymous
addresses )
/etc/vsftpd.chroot_list -- 列出本機使用者在登入後所到達的根目錄 ( List of local users to chroot )
/etc/vsftpd.conf -- 一般的設定選項 ( General configuration options )

要禁止使用者使用某個 email address 以匿名登入, 例如 "mozilla@", 您只需要將其放入 /etc/vsftpd.banned_emails 中就可以達
到該目的, 每行一個 mail address.

要限制某些本機使用者帳號登入後, 即進入他們的 家目錄 ( home directory )為 ftp 的根目錄, 您只需要將其 user name 放
入 /etc/vsftpd.chroot_list 檔中即可達成該目的, 每行一個 user name. 請記住, 此選項只有在下列條件成立時才有效 :

a) 您允許本機帳號的使用者登入.  
b) 在 /etc/vsftpd.conf 裡將"chroot_local_user=" 設為 "chroot_local_user=NO" .

在 vsftpd.conf 設定檔中已有非常詳盡的說明, 在此不在闡述, 這裡只注意幾項 default 值 :

a) 預設值已經 enabled anonymous logins.  
b) 預設值已將 anonymous users chrooted 到 '/home/ftpsecure'  // 譯者 : 在 Red Hat 9 裡是在 /var/ftp
c) 預設值是使用 'ftpsecure' 這個 user run 該 daemon // 譯者 : 在 Red Hat 9 裡預設是使用 root

第三步 : 啟用及重新啟動 xinetd ( Enable and Restart xinetd ) :  // 譯者 : 在 Red Hat 9 裡預設是使用 standalone

首先您要做的是讓 linux 在重新開機後能讓 xinetd 啟動 vsftpd :
# chkconfig --add xinetd

接下來我們要讓 xinetd 不須重新開機而起動 vsftpd :
# /etc/init.d/xinetd start

現在您的 vsftpd 應該開始接受您剛剛在 "第一步" 中所定義的 IP 連線了, 並且也會在重新開機後自動起動服務.

第四步 : 將檔案放入您的匿名 ftp 目錄裡 ( Populate the Tree ) :

我們剛剛在 " 第二步" 中所定義所有的匿名使用者登入都會 chroot 到 "/home/ftpsecure ( 在 Red Hat 9 中是 /var/ftp )" 裡, 意即
所有的匿名使用者登入後只能 access 該目錄下的檔案, 而無法看到其他目錄中的東西, 所以我們要把所有要分享給匿名使用者的檔案放
入該目錄中.

雖然已下所列不是必須的, 但我們建議您加入下列兩個檔案供 vsftpd 使用 :
/home/ftpsecure/etc/passwd   // 譯者 : 在 Red Hat 9 裡是在 /var/ftp/etcc/passwd
/home/ftpsecure/etc/group      // 譯者 : 在 Red Hat 9 裡是在 /var/ftp/etcc/grooup

這是為了: 當匿名使用者下 "ls" 指令時, ftpd 會搜尋所有檔案的 userid 對應到其 username, 如果您沒有上述的檔案存在, 使用者可能
會看到類似下面的結果 :
ftp> ls -la  
227 Passive mode engaged (127,0,0,1,30,4)  
150 Here comes the directory listing.  
-rw-r--r-- 1 0 0 0 Apr 13 20:03 that  
-rw-r--r-- 1 0 0 0 Apr 13 20:03 this  
226 Directory send OK.

如果我們不希望如此, 我們可以將系統中的 /etc/passwd copy 到 /home/ftpsecure/etc/passwd, 及 /etc/group copy
到 /home/ftpsecure/etc/group, 在您複製這兩個檔完成後, 您需要將 ftpd 不會用到的 user 及 group 刪除, 例
如 : 'webd', 'halt', 'sync', 等這些 user.

/home/ftpsecure/etc/passwd 檔範例 :

root::0:0:root:/root:/dev/null  
nobody:*:99:99:Nobody:/:  
rwm:x:501:502:Ryan W. Maple:/home/rwm:/dev/null
ben:x:500:502:Ben Thomas:/home/ben:/dev/null  
dave:x:502:502:Dave Wreski:/home/dave:/dev/null
nick:x:503:502:Nick DeClario:/home/nick:/dev/null  
pete:x:504:502:Pete O'Hara:/home/pete:/dev/null  

/home/ftpsecure/etc/group 檔範例 :

root::0:root  
nobody::99:  
gdftp::502:dave,nick,pete,ben,rwm  

完成了這些後, 現在當使用者下達 "ls" 指令時, 他們將會看到如下所示 :
ftp> ls -la  
227 Passive mode engaged (127,0,0,1,109,222)  
150 Here comes the directory listing.  
drwxr-xr-x 2 root root 4096 Apr 13 20:07 etc  
-rw-r--r-- 1 root root 0 Apr 13 20:03 that  
-rw-r--r-- 1 root root 0 Apr 13 20:03 this  
226 Directory send OK.

參考資料( Resources ) :

EnGarde Mailing Lists:  
http://www.engardelinux.org/support.html

EnGarde Linux Support FAQ
http://www.engardelinux.org/engardefaq.html

Acknowledgements :

This document was written by Ryan W Maple
Published by Jeff Baldwin
Translated by Adersun

================================================================================

附上我自己的 vsftpd.conf, 請配合您的需求自行斟酌及搭配其他如 vsftpd.user_list, vsftpd.ftpusers...等檔

# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are very paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
#
# Allow anonymous FTP?
anonymous_enable=YES <=== 是否允許匿名 FTP 使用者登入
#
# Uncomment this to allow local users to log in.
local_enable=YES <=== 是否允許本機使用者登入
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022 <=== FTP umask port
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES <=== 是否允許匿名使用者上傳資料
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES <=== 是否允許匿名使用者建立目錄
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES <=== 當使用者切換目錄時是否秀出一段該目錄的訊息
#
# Activate logging of uploads/downloads.
xferlog_enable=YES <=== 是否紀錄 uploads/downloads 到 log
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES <=== FTP port
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log <=== log 存放的位置
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
idle_session_timeout=600 <=== 如果停滯 600 sec 不動作即斷線
#
# You may change the default value for timing out a data connection.
data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
nopriv_user=ftpsecure <=== run vsftpd 的使用者, 建議是與系統帳號完全無關的使用者帳號.
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
async_abor_enable=YES <=== 是否接受 asynchronouse ABOR 訊號, 一些 ftp client 軟體需要此訊號
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
ascii_upload_enable=YES <=== 是否接受純文字 upload 傳輸
ascii_download_enable=YES <=== 是否接受純文字 download 傳輸
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to Ader's UNIX FTP service. <==== 使用者登入時所秀出的訊息
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
deny_email_enable=YES <=== 是否開啟過濾 email address
# (default follows)
banned_email_file=/etc/vsftpd.banned_emails <=== 過濾 email address 檔放置位置
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
chroot_local_user=YES <=== 是否開啟本機使用者帳號 chroot 模式
chroot_list_enable=YES <=== 是否使用檔案控制本機使用者帳號 chroot 模式
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list <=== 本機使用者帳號 chroot 模式檔存放位置
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES

pam_service_name=vsftpd <=== pam 認證名稱
userlist_enable=YES <=== 是否使用 userlist 檔案控制使用者登入, 開啟此項則在該檔裡的 user 無法登入.
#enable for standalone mode
listen=YES <=== 使用 standalone
tcp_wrappers=YES <=== 使用 tcp_wrappers 監控

================================================================================

Adersun 於 2003-4-14  Am 5:46

6
Linux 討論版 / squid + Cisco WCCP v2 一問!!
« 於: 2003-01-13 00:38 »
這幾天終於向老闆 ㄠ 到一台 Cisco 4000 serise Router.
先前還在用 Linux 作 router, 現在終於可以將它退下來了.....
現在問題來了:

現在有一現有的 transparent proxy,
RedHat 7.3 + squid-2.4stable6 要和 Cisco 接, Cisco 的 IOS WCCP 是 version 2

請問 7.3 default 的 kernel 需要加上 wccp-v2 的 patch 後重編嗎?? 還是他本身就有支援 WCCP version 2 ??

謝謝解答!!

7
請問各位大大....

今天一台 linux gateway :
eth0 => 123.123.234.12 真實 IP 對外
eth1 => 10.0.0.1

現另有一 linux 機器 run tranparent squid proxy
eth0 => 10.0.0.5

請問在 linux gateway 上 iptables 規則要怎樣寫才達到 :

10.0.0.0/24 內部網路的所有機器要聯外的 www, ftp port 全部redirect 到10.0.0.5 的 transparent proxy ?

BTW : proxy port 8080 ...squid 全部設定工作正常(在 IE 設 proxy option 工作正常)....
squid 也這樣設了:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

試過在作 gateway 的那台機器上:
iptables -t nat -A PREROUTING -p tcp -i eth1 -s 10.0.0.0/24 --dport 80 -j DNAT --to-destination 10.0.0.5:8080

不成功!!
在 run squid 的那台機器上是否需要設定些什麼呢 ??

gateway 的 iptables forward 正常....
 
一直試不出來, 請各位幫忙!!! 快被老闆 K 了..... 當初是我建議用 Linux 不用 Sun 的.........

謝謝!!

頁: [1]