[教學] OPEN VPN for Windows 環境設定整理

 

這裡我整理了其設定方法,文字檔的設定還真有些複雜
整理起來備忘
參考自http://www.kerobbs.net/thread-9082-1-1.html

——————————————————————————–

所需工具

  1. OpenVPN GUI for Windows
  2. Notepad++ 或是其他非內建記事本文字編輯器
  3. Cmd Here PowerToy

 

請先到這裡下載OpenVPN GUI for Windows
http://openvpn.se/download.html

找Installation Package安裝

我用的版本openvpn-2.0.9-gui-1.0.3-install.exe

請將之安裝,請記得安裝路徑
我是裝在D:\Program Files\OpenVPN

 

 

NotePad++請到這裡下載安裝
http://notepad-plus.sourceforge.net/tw/download.php?lang=tw

因為用Windows內建的記事本開設定檔無法正確換行

 

Cmd Here PowerToy載點在這
http://download.microsoft.com/download/whistler/Install/2/WXP/EN-US/CmdHerePowertoySetup.exe

目的是方便開啟某目錄的命令提示字元而不用一直用cd切換資料夾

 ——————————————————————————–

到安裝OpenVPN的目錄  (我是裝在 D:\Program Files\OpenVPN 目錄)
先備份easy-rsa和sample-config子目錄 (包成二個7z壓縮檔丟在旁邊)

用cmd切到easy-rsa目錄

編輯vars.bat.sample,修改以下資料
(rem那整行是註解)
————————————————————
rem 改目錄成正確的
set HOME=D:\Program Files\OpenVPN\easy-rsa

rem 視情況選擇金鑰長度要1024或2048(但2048編碼時要等很久,之後的設定值要跟它一樣)
set KEY_SIZE=1024

rem 下面設定值一需要改一改
set KEY_COUNTRY=TW
set KEY_PROVINCE=TW
set KEY_CITY=Taipei
set KEY_ORG=home
set KEY_EMAIL=[email protected]

————————————————————

執行init-config.bat,建置設定檔
正常來說會沒有錯誤訊息,它會copy二個檔案出來。

執行vars.bat,初始環境變數

然後再執行clean-all.bat,清空keys資料夾
在這邊要注意,當你執行這個時,keys目錄裡的東西將會被刪
這邊也要注意是否有錯誤訊息發生。如無意外,就會copy二個檔案出來。

再執行build-dh.bat,製作亂數 (要稍等電腦一段時間)

執行build-ca.bat,要作伺服器的認証 (產生keys\ca.key檔)
這邊如果在[]之間有資料,(也就是之前你改的vars.bat.sample值),可以直接按「enter」表示與左邊的預設值相同。
我覺得用戶端的資料若沒有合乎的話,可能會產生不出來!
多以下這二個參數,請務必抄下來

Organizational Unit Name (eg, section) []:user
Common Name (eg, your name or your server’s hostname) []:johnny

請執行build-key-server.bat server指令,製作伺服器端的秘鑰 (產生keys\server.key檔)keys\server.key
請注意有加入「 server」參數(請務必空一格,代表它帶有參數)
資料一定要統一,例如section跟host name等等。
密碼請變更成難猜的密碼。
後面是告訴你是否要認証,當然是輸入「y」,後面也是輸入「y」。
到此步驟已經將伺服器所有認証的部份全建立好了。
以下是執行時的重點部份

Organizational Unit Name (eg, section) []:user
Common Name (eg, your name or your server’s hostname) []:johnny

A challenge password []:12341234
An optional company name []:user

Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y

 

 

———————————————————————————
接下來製作用戶端的秘鑰
請執行build-key.bat client1
請注意有加入「 client1」參數(請務必空一格,代表它帶有參數,本參數可以隨意變換,例如:「build-key jack」,或「build-key john」)
在這邊你有多少台電腦需連到伺服器就建立幾個,名字可以取自己容易記的。

這裡請注意,當製作client端連線資料時,主機名稱不可重覆
否則會出現.old的錯誤訊息,只能再重作一次囉!

Organizational Unit Name (eg, section) []:user
Common Name (eg, your name or your server’s hostname) []:clinet1

A challenge password []:12341234
An optional company name []:user

Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y

———————————————————————————

將伺服器端所需要的檔案(ca.crt、ca.key、dh2048.pem、server.crt、server.key)
複製一份到 config 資料夾。

然後將sample-configserver.ovpn
複製一份到 config 資料夾。

然後修改config的server.ovpn檔
以下是設定重點,全部都要看
———————————————————————————
# 若你有多組ip,可以在local中輸入你要指定的ip,記得前面的分號要拿掉。
local 192.168.1.2

# 要連線的連接埠,請確認防火牆有正確的開啟且導向該連接埠
port 1194

# 使用TCP連線或UDP連線
proto udp

# 看是要走tun模式還是tap模式(這邊我是用預設,其它都改為自己能用的)。
# “dev tun” will create a routed IP tunnel,
# “dev tap” will create an ethernet tunnel.
# tap模式是要建一張虛擬網卡,用它來橋接網路
# tun模式是直接現有用IP做通道
dev tun

# dh這邊是密鑰長度,如果你改了預設數字1024,就要改成符合你之前設定的數字!
dh dh1024.pem

# server這邊的參數是指定你的vpn的網段,我是使用192.168.2.0 255.255.255.0
server 192.168.23.0 255.255.255.0
ifconfig-pool-persist ipp.txt

# 開啟push “route 192.168.2.0 255.255.255.0″後可以使用戶端電腦知道要走vpn。
push “route 192.168.23.0 255.255.255.0

# 開啟client-to-client後可以使用戶端電腦連往別台用戶端電腦。
client-to-client

# 開啟duplicate-cn是怕用戶端電腦名稱可能會取一樣的情況發生。
# (這個用途在於,若你想要分享給大家使用,
# 又不想每個人都建一個連線檔案的話,就必須設定,
# 設定之後每個人的ip連上來就不會被固定下來!)
duplicate-cn

———————————————————————————

到此就作好伺服器端電腦的設定了,記得要存檔(Ctrl+S),開始執行看看是否有誤。
右點在OpenGUI的小圖示,選「connect

 

會另開一視窗,如果沒問題,該視窗會自行關閉。

 

若正確執行無誤的話,此時OpenGUI的小圖示會由紅燈轉綠燈,並且告知ip為何。

查看一下網路連線資料,果然多了一個網路卡,並且多了一個ip。

 

———————————————————————————

以下為用戶端的設定

用戶端也是要安裝OpenVPN GUI才能使用,詳情不再敘述。
安裝完後,在config子目錄中,將用戶端認証需要的檔案置放其中,
複製伺服器端easy-rsa\keysca.crt、client1.crt、client1.key 到用戶端的config資料夾
從「sample-config」目錄中複製「client.ovpn」 到用戶端的config資料夾

修改client.ovpn設定檔
————————————————————
#  看伺服器是走tap還是tun,需跟server端設定一致。
dev tun

#  看伺服器是走tcp還是udp,需跟server端設定一致。
proto udp

#  remote的參數,如果你架的伺服器有DNS,可以在此設定,
#  例如:remote john.dyndns.org 1194
#  1194指的是port,這也要看伺服器是設成哪一port。
remote my-server-2 1194

#  ca ca.crt是不動它的,要動的是用戶端,如果你的用戶端名稱為john,
#  則cert跟key後面接的檔名一定要改為john,否則會找不到檔案。改完後就存檔(Ctrl+S)。
ca ca.crt
cert client1.crt
key client1.key

————————————————————

右點在右下角找OpenVPN GUI小圖示,選「Connect」

執行後,會跳出視窗,若連線成功,此視窗會自動消失。

瞧,我們就得到ip了!耶!萬歲!我們成功了!

 

 

 

[小技巧] linux下的檔案分割及合併

文章引用自:http://www.real-blog.com/linux-bsd-notes/19

需要將一個體積龐大的檔案分割成細小的檔案

分割檔案
假如有一個 5MB 的 testing.mp3 檔案,你想分割成每份 1MB 大小的檔案,可以用以下指令:

split –bytes=1000000 testing.mp3 output

輸出檔名為outputaa outputab outputac … 等等,每個檔案為1000000 bytes

合拼檔案

cat split1 split2 split3 > output

以上指令會將 split1, split2, split3 合拼為 output 檔案。如果在目錄內沒有其他檔案是以 output 開頭的話,則可以將以上指令簡化成:

cat split* > output

 

——————————————————————————————

比較windows XP下的合併檔案

引用自:http://blog.yam.com/wage/article/5746554

合併多個文字檔

假設有a.txt, b.txt, c.txt三個文字檔,想要將之合併為一個文字檔output.txt

copy a.txt+b.txt+c.txt output.txt 

如果不是文字檔,採用二進位方式合併

copy a.txt+b.txt+c.txt output.txt /b

或是使用hjsplit檔案分割合併工具 (freeware有繁中版)

至於能不能在XP與linux混用(例如:linux下分割,copy到XP合併)有待實驗

[筆記] linux 進入單人模式 (GRUB 開機)

如果忘記Linux的root密碼或是需要修復檔案系統等異常的情況,此時必須進入單人模式進行修復救援的工作。

開機時, 按 e , 表示準備修改 kernel 開機命令
選擇有 kernel 的命令列,按 e進入編輯模式,在最後空一格然後加上 single或1,接著按下「Enter」鍵。
如下所示:
kernel /vmlinuz-2.6.12-1 ro root=/dev/hda2 kernel single
按「 b 」繼續開機,即可順利進入單人模式.

完成需要進行的工作後,可以利用exit指令離開單人模式,而進行正常的開機程序。

文章節錄引自:http://blog.roodo.com/raincry/archives/958799.html

[筆記]架伺服器步驟

設定BIOS斷電後復電迴歸後為自動開機
安裝Fedora Core Linux.
   計算與切割硬碟空間
   修改自動更新位址
   安裝新酷音,XAMPP(隨開機啟動)
   設定SSL連線


    設定安全性設定 Mysql
部落格Life type的安裝
    自訂網址設定,倒帳號程式
    上傳空間設定
    訂定部落格使用規範


做好防火牆的調校
做一些細部的設定
(例如定時寄報告給管理者等)
壓縮備份選相關設定


(選用)安裝流量分析等相關程式


 


webmail伺服器大略安裝與設定步驟
安裝MTA軟體(sendmail或postfix)


設定網域名,允許連接的IP
127.0.0.1->0.0.0.0  不可打入本機的IP

[筆記]LifeType下使用英文網址

在LifeType下要如何使用英文網誌網址,而不用數字網址(網誌ID)?
如:http://your.dominname/blog/username1
而不是:http://your.dominname/blog/1


首先,在建立使用者時,就要打入英文的帳號英文的網誌名稱
(網誌名稱之後可以改)


然後在LifeType下管理面版 »  全部站台管控 » 網址設定
做自訂網址的設定(請參考我的設定值)


就可以使用英文網址了


◎注意:很多管理者都會把LifeType灌在資料夾裡
而自訂網址的/blog/似乎拿不掉(會找不到網頁),
所以建議一開始灌就灌在網頁瀏覽的根目錄
要不然就會有http://your.dominname/blog/blog/的醜網址



以上如有錯誤,煩請留言更正之,謝謝。


 


以下是我在LifeType下管理面版 »  全部站台管控 » 網址設定  的設定值


request_format_mode
如果您設定為「一般網址」,那麼系統所呈現的網址,就會使用將參數以get方式傳入的一般方式。如果您選用「讓搜尋引擎易於搜尋的簡潔網址」,那麼就會讓網址變得簡潔,搜尋引擎也容易取得您網站上的內容,不過您的Apache伺服器必須要能夠接受.htaccess檔案中的覆寫設定。如果使用自訂網址,請調整下方的設定。
自訂網址


permalink_format
當使用自訂網址時,靜態連結網址格式。
/blog/{blogname}/cat_{catid}/post_{postid}/{year}{month}{day}$


category_link_format
當使用自訂網址時,網站連結分類網址格式。
/blog/{blogname}/cat_{catid}$


blog_link_format
當使用自訂網址時,網誌連結網址格式。
/user/{blogname}/{username}$


archive_link_format
當使用自訂網址時,文章彙整連結網址格式。
/blog/{blogname}/archives/{year}{month}{day}


user_posts_link_format
當使用自訂網址時,特定使用者發表的文章連結網址格式。
/user/{blogname}/{username}$


post_trackbacks_link_format
當使用自訂網址時,引用連結網址格式。
/blog/{blogname}/trackbacks/post_{postid}$


template_link_format
當使用自訂網址時,自訂靜態模版連結網址格式。
/blog/{blogname}/template/{templatename}$


album_link_format
當使用自訂網址時,資料夾連結網址格式。
/album/{blogname}/album_{albumid}$


resource_link_format
當使用自訂網址時,檔案連結網址格式。
/album/{blogname}/album_{albumid}/res_{resourceid}$


page_suffix_format
支援分頁時,加在網址尾端的字尾
/page_{page}
 


 

[筆記][極重要]openwebmail的關鍵設定,設定SELinux的允許規則

(感動)找這份文件找真的很久
因為卡在這裡真的很久,找書找不到相關內容
網路也找了很久,都是把SELinux關掉等等方法
SELinux不應該被關掉!
因為他也幫我檔了很多網路的嘗試攻擊

像是useradd危險的動作…等等

在這裡我先交代一下openwebmail的安裝
如果已經安裝了,請跳過這段
關於openwebmail的設定,你可以參考官方的文件
http://dslab.ee.ncku.edu.tw/~tung/openwebmail/install.html
(以下內容部分節錄自官方文件)
作業系統:Fedora Core 9為例
照官方文件設定,在
[root@webmail ~]# /var/www/cgi-bin/openwebmail/openwebmail-tool.pl –init
之後
本機瀏覽
http://localhost/cgi-bin/openwebmail/openwebmail.pl
會出現以下錯誤
無法寫入 /var/log/openwebmail.log! (Permission denied)

請繼續往下看

以下內容引用網址:http://www.blueshop.com.tw/board/show.asp?subcde=BRD200606051501341I7&fumcde=FUM20050110200903ZWZ&rplcnt=10
在文字模式下打入以下指令
[root@webmail ~]#touch /var/log/openwebmail.log
[root@webmail ~]#chcon -u system_u /var/log/openwebmail.log
[root@webmail ~]#chcon -t httpd_sys_script_rw_t /var/log/openwebmail.log
[root@webmail ~]#chcon -t httpd_unconfined_script_exec_t
[root@webmail ~]#/var/www/cgi-bin/openwebmail/openwebmail*
指令說明
touch /var/log/openwebmail.log <==這是產生一個log檔
chcon -u system_u /var/log/openwebmail.log <==這是修改檔案使用者權限
chcon -t httpd_sys_script_rw_t /var/log/openwebmail.log <==這是修改寫入權限
chcon -t httpd_unconfined_script_exec_t
var/www/cgi-bin/openwebmail/openwebmail* <==這是修改檔案由什麼套件專用
這些都是因為SELinux造成的,原本檔案、目錄權限只有使用檔案前面那串(rwxrwxrwx),在使用SELinux後,會多出一種管理context
type,context type會限制該目錄、檔案的使用原則,所以,在使用有安裝SELinux時,常常會出現apach、ftp明明都設定好了,卻還是不能使用,多半出問題,都是SELinux在做怪。
感謝原作大大,難解的linux終於有solution了

[筆記]Fedora 9下的VNC的設定

本文部份節錄和翻譯自http://fedoranews.org/tchung/vnc/index.shtml
(他真的寫的太優了…佩服佩服)
————————————————–
安裝VNC

打入下列指令去檢查用戶端和伺服器是否有安裝好vnc

[tchung@tchung101 tchung]$ rpm -q vnc vnc-server
vnc-4.0-0.beta4.3.2
vnc-server-4.0-0.beta4.3.2
[tchung@tchung101 tchung]$

————————————————–
修改vncservers的設定檔
請自行加入多出來的指令

[tchung@tchung101 tchung]$ sudo vi /etc/sysconfig/vncservers

# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the line below to start a VNC server on display :1
# as my ‘myusername’ (adjust this to your own). You will also
# need to set a VNC password; run ‘man vncpasswd’ to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# URL:http://www.uk.research.att.com/vnc/sshvnc.html

# VNCSERVERS="1:myusername"
VNCSERVERS="1:tchung"
(↑加入上面這行,tchung改成linux可登入帳號)

————————————————–
建立密碼檔

再還沒運作VNC時,我們先用vncpasswd指令 建立一個密碼檔
(這個密碼檔會在家目錄建立一個隱藏目錄.vnc)

[tchung@tchung101 tchung]$ vncpasswd
Password:
Verify:
[tchung@tchung101 tchung]$ ls -d .vnc
.vnc
[tchung@tchung101 tchung]$ ls .vnc
passwd
[tchung@tchung101 tchung]$

————————————————–
讓VNC執行成服務

[tchung@tchung101 tchung]$ sudo /sbin/service vncserver start
Starting VNC server: 1:tchung [ OK ]
[tchung@tchung101 tchung]$

讓我們來看看.vnc目錄有什麼內容,你應該會跟我有差不多的東西

[tchung@tchung101 tchung]$ cd .vnc
[tchung@tchung101 .vnc]$ ls
passwd tchung101:1.log tchung101:1.pid xstartup
[tchung@tchung101 .vnc]$

————————————————–

修改xstartup的內容

修改xstartup的內容,將紅色部分的註解拿掉
要不然你只能看到一片灰色的螢幕和指令列
(以下是xstartup的內容)

#!/bin/sh

# Uncomment the following two lines for normal desktop:

unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

(↑將註解#拿掉)

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80×24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

我們才剛剛修改過xstartup 讓我們先重新起動vnc服務

[tchung@tchung101 tchung]$ sudo /sbin/service vncserver restart
Shutting down VNC server: 1:tchung [ OK ]
Starting VNC server: 1:tchung [ OK ]
[tchung@tchung101 tchung]$

我們如何連上vncserver? 用vncviewer 指令來達成目的

[tchung@tchung101 tchung]$ vncviewer localhost:1

————————————————–
防火牆  打開port 5901

UPDATE:
如果要讓遠端能夠連過來,防火牆的port 5901需要打開(放行)
加入下列紅色部分來打開port 5901,然後重新啟動iptables 服務

[tchung@tchung101 tchung]$ sudo vi /etc/sysconfig/iptables

# Firewall configuration written by redhat-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT – [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5901 -j ACCEPT
(↑加入這行)
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT

[tchung@tchung101 tchung]$ sudo /sbin/service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
[tchung@tchung101 tchung]$

————————————————–
當使用二個使用者時
TIP by Forrest Taylor

如果要在vncservers使用二個使用者,照以下部驟

VNCSERVERS="1:tchung 2:thomasc"
當然你也要執行vncpasswd 去分別設定這二個使用者,當然你的防火牆要改動設定
你可能要確定VNC的 連線1 是不是用 port 5901,如果你有二個使用者以上的話
你可能要開啟(放行) port 5901port 5902
閱讀全文〈[筆記]Fedora 9下的VNC的設定〉

linux伺服器下的心得

由於最近在學灌伺服器
想灌個Windows版一台,Linux一台(野心真是大呀..)
就接觸到Fedora 9
對於Fedora 9….只能說
不習慣
為何不習慣?
好多指令列、好多設定檔、
多跑幾秒才會出現的圖形模式
設計有點奇怪的權限、重複功用的圖形程式
還有會一直等別人的程式(真是奇怪的設計…)
甚至…發件疑似是正在開發中出現的Bug….
Fedora 從我看到的4已經演變到9了耶
每次都是大改版
想說應該很成熟的吧
是…技術上很成熟
Fedora 可以是個全方位的伺服器
但是…好像人機介面比較停留於文字模式
難道文字模式不強,或是linux比較不熟的人
就不能掌管伺服器嗎?
(忽然覺得微軟的伺服器還是有些用處的
雖然很會藏功能,很多很艱深的名詞,但還是99%圖形介面)
努力爬文 K書中… 閱讀全文〈linux伺服器下的心得〉