顯示具有 windows 標籤的文章。 顯示所有文章
顯示具有 windows 標籤的文章。 顯示所有文章

2013/09/07

AppServ 懶人包的資安問題與檢測(請不要再使用 APPSERV 懶人包)

此文同時刊載於 http://www.openfoundry.org/tw/foss-programs/9073-appserv-
----
APPSERV (http://www.appservnetwork.com/)是一個 Windows 下很成功的懶人包專案,它把 Apache 、PHP、MySQL以及 PHPMyAdmin 整合打包成為一個安裝檔案,對於入門的程式開發人員很方便。也因為它在 2006 年就推出所以到現在仍是下載率很高的專案,每個月約有 10 萬次下載。

圖1:APPSERV每月下載次數


但是問題就在這裡,它目前的版本為 2008-06-10 的版本(http://sourceforge.net/projects/appserv/files/?source=navbar),作者已經有 5 年多沒有更新了,但是還是有那麼多人下載使用。

在 2009 、2010 有很多 phpMyAdmin 的漏洞陸續被公開,以 CVE-2009-1151(http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-1151) 為例,它說明在 phpMyAdmin 的 setup.php 程式中有個程式碼可以寫入檔案的漏洞存在。如果找一下還會發現已經有人將它寫成自動化入侵的工具程式。

圖2:CVE-2009-1151自動化入侵工具

如果知道漏洞存在並補強其實不會造成什麼問題,但問題在於使用 APPSERV 的大多為初學者或對於系統程式不熟悉的使用者,只求網站能工作不會注意這些細節的問題。如果你用 google 的 inurl + site + intext 搭配搜尋你會發現真的很多人不在意,且甚至把這個網站它放到公開的網路上工作。關鍵字:「phpmyadmin  scripts  setup.php win32」

圖3:google「inurl:phpmyadmin/scripts/ site:edu.tw」

圖4: 沒有保護的 scripts 目錄,透過 google 就可找到
在 2013/05 月的時候 TACERT 已經針對這部份的入侵細節做了一份攻擊行為的分析報告(http://cert.tanet.edu.tw/pdf/phpmyadmin.pdf),攻擊者針對這部份的目的性是對於安裝 APPSERV 的主機植入 IRC BOT 並控制該主機成為殭屍網路(http://zh.wikipedia.org/wiki/%E6%AE%AD%E5%B1%8D%E7%B6%B2%E7%B5%A1 )的一部分。

如果稍微有些概念的話你會發現,每月APPSERV 懶人包 10 萬的下載量轉換為殭屍網路主機如果有 1%  轉換成功的話那就是 1000 台主機,所以只要透過 APPSERV 的漏洞幾個月內就可入侵控制數萬台以上的主機,屆時如需要發動網路攻擊也就非常的容易。底下紀錄是我手上隨便一台機器的 apache 紀錄檔,隨便找一下網路上四處都有機器人在掃描這個漏洞。

圖5: robot 掃描主機的漏洞紀錄
所以你也可以寫個程式掃描你所在的網路,看是否有人在使用 APPSERV 。底下是我寫的小工具檢測 phpmyadmin/scrips 網址是否存在、setup.php 是否存在以及是否為 Win32 主機,用來檢測我的網路有沒有這種「肥羊」主機的存在。程式碼我放在 GITHUB (https://github.com/mtchang/test/blob/master/test_appserv.sh) 內,使用說明在這裡(https://github.com/mtchang/test/blob/master/test_appserv.README)。


圖6 : APPSERV 檢測程式

所以這裡要請大家幫忙的是不要在教學、研究及正式網站上使用 APPSERV 了,目前國內的資管、資工科系在網站教學課程上面很多是使用 APPSERV 當作教學練習的工具,且根據我的經驗發現很多大學生、研究生是用 APPSERV 架設網站收集研究資料,顯示該套件已經被很多人接受不易改變。

圖7: 網路上的APPSERV 教學文件

對於初學者 APPSERV 的替代方案建議可使用 WampServer (http://www.wampserver.com) 或是 XAMPP (http://www.apachefriends.org/zh_tw/xampp-windows.html) ,這些活躍的懶人包套件專案,如果網站是放到公開網路上更是需要注意安全性的細節。

當然,最好的方法是請官方網站的維護者更新修正,我想它可能(?)有聽到所以在 2013-5-7 更新了一個檔案(http://sourceforge.net/projects/appserv/?source=navbar),但我看了之後發現有點怪怪的這個檔案是 2007-07-25 就已經發佈的檔案且沒有更新任何新的內容,但是 SOURCEFORGE 的網站上的時間看起來像是已有更新的樣子。詳細案情就有請各位鍵盤科南幫忙找找原因了。

圖8: 目前 sourceforge 上面的 AppServ 專案 Summary 頁面

以上是因為在 2013-05 月時發生了一件大規模的 DDOS 案例影響範圍很廣甚至影響整個 TANET ,直到現在網路內的使用者因為 APPSERV 所造成的電腦問題及網路問題仍十分的頻繁。有的機器表現出來的外顯症狀為 Windows 登入後速度很慢,因為被入侵的主機在開機的時候不斷的重製 IRC 程式並寫入 windows 註冊表。當然各種入侵的方式不一樣,但都是由 APPSERV 懶人包漏洞延伸而來的。另一種是該機器當成網路 Server 不常登入,使用者一點都不感覺他有異狀直到被發資安通報 IP 成為 DDOS 攻擊別人的一份子,最後遇到較糟糕的狀況是引發起另外一團殭屍網路的攻擊,造成整個組織的網路湧入大量的垃圾封包影響所有的網路服務。這是經過幾個月的沈澱後得到的結論:資安通報及中毒現象是其表徵,APPSERV 是根源的一部分。


參考:
1. TACERT http://cert.tanet.edu.tw/pdf/phpmyadmin.pdf
2. EXPLOIT  http://www.exploit-db.com/exploits/16913/


2011/02/28

Windows上的 X Server連線工具 - Xming X Server(xming)

 Windows上的 X Server連線工具 - Xming X Server(xming)


小勳同學在學校因為課業的關係需要用到Linux的Server及該Server上面的圖形介面軟體,傳統上Linux有提供一個遠端桌面的設定選項,只要透過VNC viewer軟體就可以連進Linux系統工作,但是一次只能一個人連線,只要有兩個人以上連線就會發生問題,但偏偏只有一台機器要寫作業的同學都要連進去呼叫該圖形介面的軟體來編寫作業。回到家裡後小勳同學只有Windows的機器,但又很想連到學校的伺服器工作,於是他就上 google 問問看是否有解決的方式?

通常Windows使用者連入Linux的機器,使用的 ssh client 是 putty 這套免費方便的 windows ssh/telnet 遠端連線軟體。只要有Linux主機的IP、帳號及密碼就可以登入該Linux主機。

(註:putty對於非英文語系的使用者及初學者的設定都不是很友善。於是有網友piaip以Putty 為基礎,修正並完整的支援亞洲地區的多國語系字元並以 pietty 的名稱釋出此軟體。但此套修改過後把ssh X11 forwarding功能拿掉,所以不適用在此範例中。)


  請在Host Name輸入主機名稱,點選Open即可登入連線
 第一次登入Linux主機需要記住Server’s host key 在本機的 cache 內,所以請回答「是(Y)」然後就會進入第登入的畫面。
 輸入你的帳號,及密碼即可登入Linux主機。

但這只是文字介面的登入,當然不可能滿足小勳同學的需求,於是再繼續 google 看看要如何啟動圖形介面的Linux程式,並將他顯示在Windows的機器上面。

於是他找到了一套免費的X Server for Windows工具 Xming X Server (http://sourceforge.net/projects/xming/ ),他目前最後的的版本 6.9.0.31。目前在sf.net上面以不再更新版本,最新的版本在該開發者的站台上,有支援 Windows7 64bit。但目前免費的版本已經可以滿足小勳同學的需求了。Xming下載頁面:http://sourceforge.net/projects/xming/files/Xming/6.9.0.31/

在使用X Server 工具前,先瞭解Linux 的 X Server 的通訊協定,簡單的來說其中

* X-client 負責程式的運作

* X-Server 負責畫面的顯示

所以要遠端連線到Linux系統,其實就是把Linux的圖形畫面,丟到一台X-Server上

Linux只要有安裝圖形介面幾乎就是支援X-Server了,但是在Windows 上面只能透過,第三方的程式來當成X Server 提供畫面的顯示。剛剛下載的 Xming程式安裝完成後他會自動執行一支 XLaunch程式,他就是Windows上面的X Server。
 選單中的 XLaunch位置
 請一直按下一步即可完成設定,並產生啟動圖是在右下角。
 執行後會在右下角產生如上述的畫面並顯示Xming Server:0.0 ,這其實是告訴我們他開了一個 Display port 在 localhost:0

我們要配合修改 putty client設定的 ssh X11 forwarding 設定指到 localhost:0 ,這樣在連線到遠端的時候,如果圖形介面的顯示需求,就導到本地端這裡顯示,設定畫面如下:
 接下來在重新連入 Linux Server 並且執行 xterm 這隻X的圖形介面終端機來測試看看,畫面是否會出現在本機。

 「xterm &」指的是把 xterm這隻程式丟到背景執行,才會不卡在終端機前景畫面,錯誤訊息請暫時先忽略。

 Xterm 在Windows上面透過 Xming Server呈現的畫面。

測試另外一隻程式 gedit ,這是Linux上面的文字編輯器。
 輸入 「gedit &」
 本機Window透過 Xming Server產生的 gedit文字編輯器畫面,測試輸入英文正常。X Server 產生時會產生較大的流量,如果你的頻寬不大請花點時間等待。

X Server在本機上跑得port是TCP 6000 ,你可以使用dos模式,輸入「netstat –a」觀看連線的情形。如果你的家裡有防火牆或是分享器,請記得開啟虛擬伺服器的功能,並把 port 6000 指到你所在的 IP ,否則會無法建立連線。


以 Corega BAR SD-TW 的設定如下,其他NAT route 依此類推。
 虛擬伺服器設定的範例 192.168.123.117 為此案例 IP


但每次啟動Xming都要這樣設定很不方便有沒有可以偷懶的方式可以很方便的啟動??其實在XLaunch中提供有 plink or putty的遠端呼叫程式設定介面,只要你知道遠端的程式位址,設定檔設定好就可以直接啟動遠端的程式了,不用在透過自行設定 putty 的 X11 Forwarding 功能。

底下以啟動 Gnome桌面管理程式「/usr/bin/gnome-session」為設定範例,帳號為 mtchang 。

選擇如何顯示 Xming 在 Windows 的螢幕上,預設使用 Multiple windows即可,Display number 則是本機的對應port,如果你需要使用xming連線到不同的Linux Server請將 Display number 分開以免衝突無法顯示.


 選擇Start a program啟動 Putty or Plink程式來呼叫遠端程式

 Start program 指的是連線到遠端機器後要啟動的命令,如果可以建議加上絕對路徑。
常用的路徑有:

/usr/bin/xterm X的終端機(測試用,也可用來啟動其他程式)。

/usr/bin/gnome-session Gnome桌面的啟動程式,執行後會在Windows呈現整各Linux桌面。

Run Remote請選取 Using Putty(Plink.exe) 這個選項可以啟動遠端程式,但是不會帶出終端機視窗。

Using SSH(ssh.exe) 你必須要安裝 openssh for windows 才會有這個指令。

With compression 可以將傳輸過程壓縮,加快連線速度。

Connect to computer: 連線的Linux 遠端主機,這裡用的範例為「linux.jangmt.com」。

Login as user: 登入主機的帳號,這裡用的範例為「mtchang」。

Password: 密碼,可以自動幫你輸入,如果你有使用Putty pageant請留空白。


 這是外加選項,可以直接下一步跳過。

 如果你是公用電腦請不要把 Inclide Putty Password as insecure clear text 打勾,因為他會把密碼以明碼方式存放在一個文字檔內。最後請選擇 Save configuration 將此設定存為文字檔案(xml格式)。
 這裡以放在桌面上為例,點選可以直接啟動遠端程式並帶圖形介面顯示。
 啟動了 Gnome 桌面程式在 Windows 系統上。
 上面是Gnome選單,下面是Windows選單…..真是詭異的畫面。但已經可以在家裡連線到遠端Linux桌面了,且即使有多位同學連線也不會發生搶滑鼠的現象。


 ----

隔天到學校後…….

小勳同學看來已經可以連線到學校作功課了,於是很高興告訴他的同學小愛,但是他的同學小愛不會設定,請小勳同學當各好人教教她。小勳同學想說設定這麼複雜於是繼續 google 看是否有更簡單的方式可以達到這樣的功能,讓小愛同學可以自行設定。於是他找到了一套 Xshell 及 Xmanager 的商業軟體,Xshell 是一套 ssh/telnet/sftp/Rlogin/Serial support的通訊軟體在個人及學校使用上是免費的,Xmanager 則是一套PC上的 X Server軟體,可以試用 30 天。

下載頁面:http://www.netsarang.com/download/main.html

當你同時安裝了 Xshell 及 Xmanager 後,預設會把 Xshell 的 X11 Forwarding 設定轉到 Xmanager並由他提供圖形顯示的服務 ,於是很方便的就可以啟動Linux上面的圖形介面了。



至於這套軟體的使用,因為小勳覺得不能再宅在電腦前,所以先去打球了。

Byebye….

參考資料:

http://blog.jangmt.com/2009/11/xming.html

http://www.straightrunning.com/XmingNotes/trouble.php

http://ntu.csie.org/~piaip/pietty/

http://www.cs.nctu.edu.tw/help/xming.html

2010/12/25

用 tftp 配合 dhcp 使用於網路開機 (tftpd32)

tftp server + dhcpd server on windows

http://tftpd32.jounin.net/

配合 iscsi boot
gpxe
pxe
很方便的

當然用來當作 switch or route 的備份設定檔伺服器也應該很方便。

Windows Server 如何防毒?

「Server 防啥毒.... 都擺在機房沒人去動怎麼會中毒....」

通常Windows Server 會中毒原因都不是很單純, 就我曾遇過得經驗來說windows server裝防毒軟體沒有用的通常有裝得都有中毒,沒裝的人反倒是中的少。這原因很簡單,因為通常server一定是提供網路上的服務,不會有人用server做pc的工作(但看過不少笨蛋是這樣做的....),除了windows server系統本身有 windows update 每月定時會更新系統的漏洞,沒更新則是一定會中獎的。

server版的防毒軟體--不錢的
* http://www.clamwin.com
* http://www.safer-networking.org/ct/index.html
其他都是要錢的
且不一定有用基本上我都是用
netstat -anp 看目前有哪些人連到你的機器
tcpview 也是一樣的功能,但是更細
svhost viewwe 看有沒有奇怪的程式被載入

簡單的解毒方式:
先掃毒
* http://www.clamwin.com
* http://www.safer-networking.org/ct/index.html
分析中毒原因:通常是木馬,或是網路攻擊

所以整理歸納幾個實用的防毒防入侵手段:
(1)別把server當PC用,讓他的工作單純化.
(2)記得安裝防火牆,系統有漏洞一定要修補。因為server中毒通常由本機提供的網路服務循標準管道入侵的。
(3)目前看到比較多的漏洞是 m$-sql or asp 的漏洞,通常是程式或是伺服器的權限設定的太過寬鬆造成的。

2010/10/29

netstat 指令用法,及狀態說明

netstat 指令

netstat是一個可以查詢本機網路和外界網路連線的指令,可以透過這個指令的查詢得知有沒有奇怪的連線在你的機器中連線,也可透過此指令瞭解電腦連線的狀況
這個指令windows 上也有,Linux上也有,但在參數與用法有一些不同。
Windows 上得說明可以參考 m$ 的 netstat 說明
節錄及翻譯如下:
語法:
netstat [-a] [-e] [-n] [-o] [-p Protocol] [-r] [-s] [Interval]

參數:
-a : 顯示所有活動中的 TCP 連線,及 TCP and UDP ports 上聆聽中的資訊。

-e : 顯示網路的統計資訊,如 bytes 數和封包發送和接收的數量.這參數通常和 -s 並用。

-n : 顯示活動的TCP連線,但是 ip address和port編號沒有被解釋翻譯成為名稱說明。(通常可以加速顯示的速度因為反解通常需要查詢 dns 的時間)

-o : 顯示活動的 TCP 連線並且包含每個連線程序的 ID 編號(PID).你能夠找到應用程式的程序的PID資訊,在 windows 的工作管理員。這個參數通常和 -a, -n, and -p 混合使用.

-p 通訊協定 : 顯示指連線的通訊協定.預設的狀況這個通訊協定包含 tcp, udp, tcpv6, or udpv6. 如果配合 -s 參數則是可以顯示統計數量。

-s : 顯示統計資訊。預設顯示 TCP, UDP, ICMP, and IP 通訊協定. 如果 IPv6 protocol for Windows XP 被安裝的話, 統計資料顯示 TCP over IPv6, UDP over IPv6, ICMPv6, and IPv6 protocols.

-r : 顯示 IP 路由表的內容. 相當於 route print 命令.

Interval : 每隔幾秒重新顯示資訊. 按 CTRL+C 可以停止顯示. 如果省略則只顯示一次。

/? : 此說明

netstat -e



netstat -n

netstat -o

netstat -on 5

在這些資訊中,必須要先瞭解關於TCP 連線的的溝通方式。看起來才不會覺得怪怪的一直看不懂...

Protocol的執行過程描述:

下圖描述為一張簡化的TCP狀態圖,更詳細可以看這份文件(TCP EFSM diagram)



引用自 http://en.wikipedia.org/wiki/Transmission_Control_Protocol


TCP通訊過程可分為三個階段。且必須正確建立連接在一個很多步驟的交握處理(handshake process)然後才進入建立連接(connection establishment),再進入資料傳輸(data transfer) 階段。資料傳輸完成後,最後連接終止(connection termination)建立的虛擬通道關閉並釋放所有分配的資源。

一個TCP連接是由OS管理,TCP連線基本上經歷底下這些變化:

 1. LISTEN:如果是服務程式的話,指的是等待連接請求從任何遠端的客戶端。
 2. SYN-SENT:等待遠端點對點發回一個 TCP segment 並帶有 SYN 和 ACK flag。通常做這件事的為TCP客戶端。
 3. SYN-RECEIVED:等待遠端通道的另一端發回一個確認後發回確認連接到遠程節點。通常做這件事的為TCP服務端。
 4. ESTABLISHED: port 準備好接收/及發送數據從到遠端節點。
 5. FIN-WAIT-1
 6. FIN-WAIT-2
 7. CLOSE-WAIT
 8. CLOSING
 9. LAST-ACK
10. TIME-WAIT:指等待足夠的時間,以確保通過遠端對等機器收到確認其連接終止請求。根據 RFC 793中的連接可以等到最久為四分鐘。
11. CLOSED

詳細網路協定可以參考:市面上的TCP/IP 書籍

底下這是 Linux man netstat 對於狀態的解釋

netstat 的狀態

   State
       The  state  of  the socket. Since there are no states in raw mode and usually no states used in UDP, this column
       may be left blank. Normally this can be one of several values:

       ESTABLISHED
              The socket has an established connection.

       SYN_SENT
              The socket is actively attempting to establish a connection.

       SYN_RECV
              A connection request has been received from the network.

       FIN_WAIT1
              The socket is closed, and the connection is shutting down.

       FIN_WAIT2
              Connection is closed, and the socket is waiting for a shutdown from the remote end.

       TIME_WAIT
              The socket is waiting after close to handle packets still in the network.

       CLOSE  The socket is not being used.

       CLOSE_WAIT
              The remote end has shut down, waiting for the socket to close.

       LAST_ACK
              The remote end has shut down, and the socket is closed. Waiting for acknowledgement.

       LISTEN The socket is listening for incoming connections.  Such sockets are not included in the output unless you
              specify the --listening (-l) or --all (-a) option.

       CLOSING
              Both sockets are shut down but we still don't have all our data sent.

       UNKNOWN
              The state of the socket is unknown.
             
          
Linux 上的 netstat 套件在 net-tools 上面,如果缺少可以使用 yum install net-tools -y 安裝
$ rpm -qf /usr/bin/netstat   (查詢 netstat 指令套件名稱)
net-tools-2.0-0.17.20131004git.el7.x86_64

在 Linux 上有幾種特殊的用法
引用自 http://www.hkcode.com/linux-bsd-notes/559


以下是一些實用的 netstat 語法,可以檢查主機的連線數量:

netstat -na
顯示主機上所有已建立的連線。

netstat -an | grep :80 | sort
顯示所有 port 80 的連線,並把結果排序。

netstat -n -p|grep SYN_REC | wc -l
列出主機上有多少個 SYNC_REC,一般上這個數字應該相當低。

netstat -n -p | grep SYN_REC | sort -u
同樣是列出 SYNC_REC,但不只列出數字,而是將每個 SYNC_REC 的連線列出。

netstat -n -p | grep SYN_REC | awk ‘{print $5}’ | awk -F: ‘{print $1}’
列出發送 SYNC_REC 的所有 ip 地址。

netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
計算每一個 ip 在主機上建立的連線數量。

netstat -anp |grep ‘tcp\|udp’ | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n
列出從 TCP 或 UDP 連線到主機的 ip 的數量。

netstat -ntu | grep ESTAB | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -nr
列出每個 ip 建立的 ESTABLISHED 連線數量。

netstat -plan|grep :80|awk {’print $5′}|cut -d: -f 1|sort|uniq -c|sort -nk 1
列出每個 ip 建立的 port 80 連線數量。

Linux netstat 使用範例:
netstat -alp 列出連線的協定及使用的應用程式

2010/08/18

把 Ubuntu 改裝成為 Windows7 樣式佈景

剛發現一個超強大的 Windows 7 Gnome 樣板,他幾乎把 windows7 的全部icon 都 copy 過來了
並且也把很多應用程式的佈景也都更改為 windows 7 的佈景,沒仔細看根本看不出來

http://www.omgubuntu.co.uk/2010/04/windows-7-theme-for-ubuntu.html



包含了這些項目都有被改到


The main element of the pack comprises: -
  • Windows 7 style icon themes
  • Windows 7 style GTK, Metacity & Emerald themes
  • Windows 7 sound theme
  • Wallpapers
Added into this are: -
  • Emesene theme
  • Terminal theme
  • GNOMenu themes
  • Pidgin tweaks
  • OpenOffice splash screen
  • Fonts
  • Emoticons
  • DockBar theme

下載請從 Gnome-Look.org 下載
http://gnome-look.org/content/show.php/Win2-7+Pack?content=113264&PHPSESSID=6b4d386702c5aa9851736766665d7f74

下載連結
下載完成後會是一個 .lzma 的壓縮檔,按滑鼠右鍵解開後
執行檔案內的  GUIInstall.sh 他會出現圖形介面引導你安裝
基本上只要下一步,下一步就可以完成安裝的動作.
算是非常簡單的安裝方式。因為我的 Ubuntu 是安裝英文版,所以更是感覺不出來他是ubuntu.

2010/05/08

使用 xming 從windows 系統登入 Linux 系統

Linux 的 Xwindow 的通訊協定,其中
* X-client 負責程式的運作
* X-Server 負責畫面的顯示
所以要遠端連線到Linux系統,其實就是把Linux的圖形畫面,丟到一台X-Server上面
Linux只要有安裝圖形介面,幾乎就是支援X-Server了,
但是在Windown 上面只能透過,第三方的程式來執行X-Server

Xming 是一個免費且完整的X-Server工具,配合putty(我是都抓開發版)
(可以用pietty有比較好的中文顯示效果),就可以完成很多功能
請先至官網下載 http://sourceforge.net/projects/xming/

你可以直接只抓主程式就可以3
http://downloads.sourceforge.net/project/xming/Xming/6.9.0.31/Xming-6-9-0-31-setup.exe?use_mirror=nchc

http://sourceforge.net/projects/xming/files/Xming-fonts/7.5.0.11/Xming-fonts-7-5-0-11-setup.exe/download
此程式需配合 putty 搭配啟動
如果在Wdinwos安裝完成後,就可以看下面的內容:

(1)確認在Linux上的opensshd 有開啟
我們的作法是先使用 putty 連入 linux sshd server 透過 ssh 發出指令
/usr/bin/gnome-session --display $DISPLAY
這樣就會把X的畫面都給指定的 $DISPLAY 畫面編號

root@mtchang-desktop:~# netstat -tnulp | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2727/sshd
tcp6 0 0 :::22 :::* LISTEN 2727/sshd

(2)確認 XDMCP 服務打開(tcp port 177 open)
* CentOS/Ubuntu 預設是 gdm 程式,可以使用 gdm-restart 或 gdm-safe-restart 來重新載入設定檔.
1. 設定檔在 /etc/gdm/custom.conf (沒有這個檔案請自行建立,重新啟動gdm時就會抓取讀取),預設值放在 /usr/share/gdm/defaults.conf

2. 如果需要將 XDMCP 服務打開需要開啟設定檔加入下列選項:

* 修改 /etc/gdm/custom.conf 加入 (ubuntu通常沒有這個檔案如果沒有請自行建立)
# 這裡有詳細的說明文件
# http://www.gnome.org/projects/gdm/
# 主要的服務程式路徑
[daemon]
RemoteGreeter=/usr/libexec/gdmgreeter
[security]
# gdm 預設值是不允許 root 遠端透過 XDMCP 登入,如果要讓 root 可以遠端登入,請修改為 true
AllowRoot=false
[xdmcp]
# 啟動 xdmcp 服務
Enable=true

* 底下為 centos 版本的 custom.conf 我修改後完整的範例
# You can also run gdm-restart or gdm-safe-restart to cause GDM to restart and
# re-read the new configuration settings. You can also restart GDM by sending
# a HUP or USR1 signal to the daemon. HUP behaves like gdm-restart and causes
# any user session started by GDM to exit immediately while USR1 behaves like
# gdm-safe-restart and will wait until all users log out before restarting GDM.
#
# For full reference documentation see the gnome help browser under
# GNOME|System category. You can also find the docs in HTML form on
# http://www.gnome.org/projects/gdm/
#
# NOTE: Lines that begin with "#" are considered comments.
#
# Have fun!

[daemon]
RemoteGreeter=/usr/libexec/gdmgreeter

[security]

[xdmcp]
Enable=true

[gui]

[greeter]

[chooser]

[debug]

# Note that to disable servers defined in the defaults.conf file (such as
# 0=Standard, you must put a line in this file that says 0=inactive, as
# described in the Configuration section of the GDM documentation.
#
[servers]

# Also note, that if you redefine a [server-foo] section, then GDM will
# use the definition in this file, not the defaults.conf file. It is
# currently not possible to disable a [server-foo] section defined
# in the defaults.conf file.
#

* 執行 gdm-restart 重新啟動 gdm 即可(centos5/rhel5 測試ok)
* ubuntu linux (10.04測試ok) 請使用  service gdm restart 重新啟動 gdm
* 驗證 XDMCP 服務是否打開
[root@mt ~]# netstat -tnulp | grep 177
udp 0 0 0.0.0.0:177 0.0.0.0:* 6226/gdm-binary

* 但是在 ubuntu 10.04 上發生了udp port ipv6 的狀況,如果你的網路只有ipv4那可能就不會通,但是你的網路如果支援 ipv6 還是可以通的.(他有被反應在BUG#3938)
root@mtchang-desktop:/etc/gdm# netstat -tnulp | grep 177
udp6 0 0 :::177 :::* 4488/gdm-binary

(3)如果你在 Windows 上可以透過以安裝好的 Xming 建立一各設定檔,配合 putty 讓windows 自動登入Linux X圖形介面:


啟動:XLaunch程式,進入設定畫面

選取 Xming的顯示方式 One Window ,其他也可以只是我比較喜歡一個視窗就好的方式。

這裡使用 Start a program 的方式透過 putty 的 plink 來呼叫遠端的 X Client. Plink建議抓開發版的, 因為目前 stable 版本的 plink 我用過會有限速的問題.

請修改 start program 填入「/usr/bin/xterm -ls -display $DISPLAY 」 這個只是單純的呼叫 xterm這個 Xwindows 的終端機介面,可以加快顯示的速度.但是如果你喜歡完整的圖形介面可以使用 「/usr/bin/gnome-session --display $DISPLAY」呼叫 gnome 圖形介面,如果不是LAN速度會慢很多.


 下一步繼續
 你可以把你這個設定值儲存起來,下次要登入的時候直接點選設定檔就可以執行,旁邊的打勾可以把密碼一起存起來。
 然後,請等一下因為網路速度的關係會跑一段時間,最後就會跳出這個終端機畫面了。如果你要呼叫其他程式來執行,請看下面範例:以呼叫 gedit文字編輯器當範例:
 gedit 是程式執行檔, 「&」是丟入背景執行,用這樣的方式就可以更有效率的在 windows 上操作 Linux 系統。「gnome-session」是 gnome 的啟動程式。



底下是我的xming設定檔範例檔案:
檔名 config.xlaunch (xlaunch為副檔名),內容如下
其中 PW 為密碼,請自行修改
RemoteHost 為提供的 X-client 機器,請自行修改
DISPLAY 為登入後此X-server 的編號,通常如果你需要開很多X畫面請跳開編號
RemoteUser為登入帳號,請自行修改
<xlaunch clientmode="StartProgram" clientstart="PuTTY" clipboard="true" display="0" program="/usr/bin/xterm -ls -display $DISPLAY" pw="密碼請自行修改" remotehost="遠端主機位置請自行修改" remoteuser="帳號請自行修改" windowmode="Windowed" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.straightrunning.com/XmingNotes" xsi:schemalocation="http://www.straightrunning.com/XmingNotes XLaunch.xsd"></xlaunch>

第二次執行對著這個檔案點選兩下後就可以登入X了....!!!!


(4)如果你在 Linux上可以使用,文字端的測試
* 從​用​戶​端​機​器​啟​動​使​用 X 的​遠​端 X 作​業​階​段​,這​個​指​令​通​過 XDMCP 連​線​到​遠​端​的 X 伺​服​程​式並​且​在​用​戶​端​機​器​的 :1 (第1號螢幕,第0號通常為系統預設)

X :1 -query 192.168.1.100

* 再來是用broadcast的方式,假設你 X Server 已經正常運作,你可以用broadcast方式自動找到目前同 subnet 上面的缺點是,如果有好幾台機器,那先回應的Server就會登入該台。

X :1 -broadcast

* 在 linux 上也有圖形介面的 X-Server
* 請使用 yum or apt-get 安裝 xorg-x11-server-Xnest rdesktop tsclient 這些程式就可以呼叫出來。

yum install xorg-x11-server-Xnest rdesktop tsclient

* 安裝完成後程式在 應用程式 -> 附屬應用程式 -> 終端伺服器用戶端 啟動遠端連線


更多的進階閱讀參考:
* http://www.straightrunning.com/XmingNotes/ 但其實有點不一樣,原理類似啦!
* http://itblog.blogdns.net/index.php?id=93&load=read 這篇也可以參考
但其實找商業版 Xmanager Enterprise 3的來玩玩看,很快就會瞭解 xming 的操作了...


比較完整的Xming下載點:
* http://www.straightrunning.com/XmingNotes/

目前商業化比較好的軟體有 xshell 及 Xmanager 用起來及設定都比較方便
* xshell 在個人及學校為免費 (功能同 putty,但更強大)
* xmanager 好像有三十天的試用限制 (功能同 xming 但更完整)
* 下載:http://www.netsarang.com/download/main.html#online

參考:
http://blog.seateng.cn/archives/2009/12/xmanager-gdm-ipv6.html
http://en.wikipedia.org/wiki/NX_technology
https://bugs.launchpad.net/ubuntu/+source/gdm/+bug/105938

延伸閱讀:
你也可以選擇 xrdp 的方式來作遠端連線
http://blog.jangmt.com/2010/08/windowslinuxxrdp.html

2010/04/05

[網摘]IPV6 相關資料

台灣 IPV6 轉移技術網站
學術網路規劃參考
http://www.rd.ipv6.org.tw/?page_id=61

TANet IPv6位址分配
http://www.rd.ipv6.org.tw/?p=1175

連接 IPV6 的方法
通道代理人(Tunnel Broker)
http://www.myhome.net.tw/2003_10/web/main2.htm

中華電信IPv6 Tunnel Broker
http://www.ipv6.hinet.net/installGuide.htm

中研院 IPv6 Tunnel Broker系統測試
http://www.ipv6.org.tw/news/tunnelbroker.htm

亞太電信支援ipv6 ?? (真另我訝異...)
http://www.apol.com.tw/ipv6/ipv6-tb-1.html

TANET IPv6 Tunnel Broker
http://tb.nccu.tb.edu.tw/cgi-bin/tb.pl

但我覺得這篇是最詳細的
http://jangmt.com/public/webfiles/ipv6_all.pdf

2010/02/06

Firefox 套件 FireGPG 支援 Gmail 的GPG加密

FireGPG 是一套能夠支援 Gmail 網頁介面加解密的 Firefox 外掛程式
至於何謂加密與解密我們可以簡單的說明一下:


Symmetric Encryption(對稱式加密)

  • 基礎建構於使用 single Key 在於 encrypt(加密) 和 decrypt(解密)
  • 傳送端將訊息用金鑰 加密後傳送,再將金鑰以安全的通道交與接收端接收端用同一把金鑰解密
  • 特點:

    1. 資料處理速度快
    2. 無法達到不可否認性
  • 常用的工具

    • DES, 3DES, Blowfish, RC2, RC4, RC5, IDEA, CAST5
  • 常用的套件

    • passwd (modified DES) (linux 系統使用者的密碼都是以 des or md5 的方式加密處理)
    • gpg (3DES, CAST5, Blowfish)
    • openssl

對稱式加密示意圖 (Symmetric Encryption)


Asymmetric Encryption (非對稱加密 )

  • 基於 public/private key pair
  1. 一個 key 加密, 其他 key 來解密
  • Protocol I: 加密無需要 key synchronization
  • 收件者


    1. 產生一對key public/private : P and S
    2. 公開的公鑰(public key P), 授保護的私鑰(private key S)
  • 送件者
  1. 加密訊息(M) 用收件者的 public key
  2. 送件者送出以加密的訊息d P(M) 給收件者
  • 收件者
  1. 使用自己的私密金鑰解密還原內容: M = S(P(M))
非對稱式加密法示意圖



實作流程:
========


FireGPG這套件需要有  gpg4win 套件函式庫的支援
請抓取 http://ftp.gpg4win.org/gpg4win-2.0.1.exe 這個版本,或更新的版本 安裝


安裝FireGPG 套件:
http://tw.getfiregpg.org/s/install
點選這裡可以直接安裝 http://tw.getfiregpg.org/stable/firegpg.xpi

安裝完成後請在Firefox 中找到 工具 --> FireGPG -->選項設定 gpg 程式的路徑

指定剛剛裝好得 gpg4win 的 gpg2.exe 檔案給他


然後基本要產生一對公鑰及私鑰,公鑰放上去key server 讓大家可以去搜尋到,私鑰放在自己家裡,準備可以解開別人寄給我的加密信件。請使用  gpg4win 程式的 GPA key管理工具產生 keys --> new key ,產生過程會有幾個選項可以供你選擇,基本上是可以用預設值的:










PassPhrase 是在私鑰上加上密碼,以免密碼遺失造成郵件失去安全。通常沒設定都會有一系列的警告提醒。














然後你可以透過管理工具上傳 key 到 key server 也可以透過網頁介面上傳這裡以 http://pgp.mit.edu/ 你可以試試看這個,一旦 key 上傳後key server 會相互交換 key 所以過給分鐘就會傳播到各家的 key server 了。(我覺得 pgp.mit.edu 的網頁介面上傳最快....)


這裡我已經把我的 key 都產生好,並且匯入 FireGPG 的程式了


寄信並加密簽署,記得要點選「加密」及「簽署」,這樣表示你對於這封信件的發出是確認的。



寄信 FireGPG 會用自己預設的方式加密後寄出信件,所以會要求用你的 google account 密碼透過 smtp.gmail.com 寄信件

收信如果沒有指定收件者的私鑰(key的編號也要對才可以)解密,基本上他就只是一沱亂碼

必須要用相對應的 私key 解密才可以,底下為使用 thunderbird 配合 OpenPGP 這個外掛的套件收信件的結果。OpenGPG也是一套很方便的GPG管理工具,配合 ThunderBird 收信軟體可以很方便的處理信件。不過這應該又是另一篇的故事了.....


參考連結:
https://addons.mozilla.org/zh-TW/firefox/tag/openpgp
http://jangmt.com/wiki/index.php?title=253-ch3
http://pgp.mit.edu/
http://www.gpg4win.org
http://tw.getfiregpg.org/s/install
PGP工作說明http://www.pgpi.org/doc/pgpintro/#p10