:::

論文閱讀筆記心得

布丁布丁吃布丁

論文閱讀筆記心得

image

這是在剛開學時跟大家分享的一份投影片,內容關於paper study時的note撰寫方法。

剛上研究所時,大家對於paper study這件事情都會相當恐慌。大學時別說是英文論文,大概就連中文論文都不太看。可是一上研究所,就得要強迫自己閱讀英文的論文。這是一條必經之路,而事實上這也的確能夠增長英文閱讀能力,提昇吸收資訊的速度。

一般來說,paper study並不是看小說、雜誌,看看笑笑就過去,而是要將看到的東西經過整理、消化,成為自己的一部分。特別是在未來撰寫論文的時候,就是要仰賴大量的閱讀與有技巧的整理。

以下是這份投影片的內容:(SkyDrive備份)

這份投影片裡面介紹到兩樣工具:

至於note到底要怎麼寫會比較好呢?老實講,讀到現在我也沒個準則。大致上只要能夠跟別人說明、能跟未來的自己說明,那應該就足夠。

接下來我會將最近閱讀的note一篇一篇放上來,希望促進閱讀知識的分享與交換。有些寫得很差或寫錯的地方,歡迎大家多多批評指教。

(more...)

書籍掃圖裁切工具:PSP Comic Converter

布丁布丁吃布丁

書籍掃圖裁切工具:PSP Comic Converter

image

最近在整理書籍掃描檔案,並為書籍製作文字辨識OCR。如果是雙頁書籍,那麼OCR的結果通常不太好。這時候我需要一個可以將雙頁書籍切割成左右兩頁、各別成為獨立檔案的工具,找了半天,最後找到的是這個PSP Comic Converter。


下載與開啟

該軟體不用安裝,下載解壓縮後就是一個PSP Comic Converter.exe,直接開啟之後畫面如下:

image

使用步驟

操作上很簡單,右邊按鈕一個一個按就是了。我直接敘述步驟:

  1. 選擇來源目錄:指定你要準備要分割的圖片目錄。
  2. 選擇目標目錄:指定PSP Comic Converter分割完成之後儲存分割結果的目錄。
  3. 讀出文件列表:確認來源目錄的檔案。
  4. 參數設置:比較值得一提的是這個選項,下面再細講。
  5. 開始轉換:執行切割動作。
參數設置

image

點開「參數設置」的功能,上圖就是他的對話視窗。

儘管裡面有許多可以調整的參數,不過最重要的是「頁面順序」。如果是橫書,通常順序是「1|2」;而如果是直書,順序則是「2|1」,這會影響到切割之後的檔案順序。當你在做大量圖片處理時,這個功能格外地重要,可以省下許多力氣手動調整檔案順序。

切割結果

1026 宇凡c 005

上圖是雙頁書籍的圖片檔案。

00000001 00000001d

上面兩張圖則是切割的結果。


小結

一開始我先找了一下手邊常用的FastStone Image Viewer等軟體,意外的是都沒有批次切割的功能。最後找到的PSP Comic Converter,光看名字還真是想不到他也可以這樣用。只能說為了看漫畫,社群的力量也是很強大的。

(more...)

Proxmox VE用備份(vzdump)與還原(restore)複製虛擬機器 (clone Virtual Machine)

布丁布丁吃布丁

Proxmox VE用備份(vzdump)與還原(restore)複製虛擬機器 (clone Virtual Machine)

image

Proxmox VE是一套開放原始碼的虛擬機器環境,他同時使用了OpenVZ容器虛擬化與KVM全虛擬化兩種技術,可以根據需求選用不同的方式來建立虛擬機器。

本篇要介紹虛擬機器的複製方式,這包括了備份(匯出)與還原(匯入)的指令。依照使用的技術不同,OpenVZ與KVM都必須使用各自的指令。


為什麼需要複製虛擬機器?

有時候,我們建立好一個提供了完整服務的虛擬機器。現在有另一群人想要把這個虛擬機器的內容進行修改,可是又想要保留原有的虛擬機器。這時候你就需要複製功能。

或著是說,你想要建立一個Proxmox VE沒有提供的虛擬應用樣板,作為其他應用的基礎。例如具備XAMPP環境的作業系統。這樣就可以省下每次都要從空的作業系統中安裝XAMPP的手續,讓後面的人更容易從XAMPP架設網站。

在我上一篇介紹Proxmox VE的虛擬應用樣板中有提到,OpenVZ必須要從特定的樣板中建立虛擬機器,而要建立一個虛擬應用樣板也不是這麼容易的事情。相較之下,用複製的方式從原有的虛擬機器建立另一個虛擬機器,這方法就容易多了。

在了解了背景需求之後,以下再來介紹複製的方法。

複製虛擬機器的步驟

在Proxmox VE複製虛擬機器的步驟,我個人看來是有三步:1. 準備來源虛擬機器、2. 備份(匯出)、3. 還原(匯入)、4. 設定新建立的虛擬機器。以下介紹各步驟的作法。

1. 準備來源虛擬機器

image

在進行複製之前,你必須先準備一台虛擬機器。

你需要注意的設定有兩點:

  1. VMID:這台虛擬機器的ID。
  2. 虛擬化技術:OpenVZ容器虛擬化技術或是KVM全虛擬化技術。

要注意的是,OpenVZ跟KVM的操作方式都有一些不同,請依據你使用的技術選擇正確的指令。

image

確定了你要備份的虛擬機器之後,請先將該虛擬機器關機,以便進行接下來的備份動作。

2. 備份(匯出)虛擬機器

儘管Proxmox VE有提供排程備份的功能,但在這邊我們選擇使用指令列的方式來進行備份。

2011-11-19_180900 ssh - mask

在Proxmox VE安裝完成之後,我們就可以用SSH連進去。我通常使用的SSH連線軟體是PieTTY,預設連接埠22,登入帳號是root與安裝時使用的密碼。

現在要開始執行備份的指令。假設你的虛擬機器的VMID是165,暫存目錄擺在「/tmp」底下,不論是OpenVZ還是KVM,備份的執行指令如下:

proxmox:~# vzdump --dumpdir /tmp --compress 165

備份需要花點時間等待,請耐心等候吧。

image

備份完成之後,就會顯示上述訊息。備份VM 165總共花了7分鐘,備份檔案大小為1.54GB,備份檔案的路徑為「/tmp/vzdump-qemu-165-2011_11_19-18_36_22.tgz」。請記得備份檔的路徑,待會還原時會再使用。

因為我這個VM 165是Windows XP系統,所以備份起來檔案頗大。如果是OpenVZ的話,基本的作業系統通常不會超過300MB。

2011-11-19_194353 download backup - mask

如果有需要的話,你也可以在/tmp目錄中下載該備份檔喔。

3. 還原(匯入)虛擬機器

接下來的步驟中,就要依照該虛擬機器使用的技術,選擇相對應的還原指令了。

以KVM為例,剛剛的備份檔的路徑為「/tmp/vzdump-qemu-165-2011_11_19-18_36_22.tgz」,如果你想要以此建立一臺新的虛擬機器,VMID編號為170(編號必須為100~999之間,而且此編號不能先被佔用喔),那麼請使用qmrestore指令:

proxmox:~# qmrestore /tmp/vzdump-qemu-165-2011_11_19-18_36_22.tgz 170

如果你剛剛備份的是OpenVZ檔案,則檔案的名稱會有所不同(雖然依然是用vzdump指令)。假如現在有個OpenVZ備份檔的路徑為「/tmp/vzdump-openvz-350-2011_10_28-02_25_51.tgz」,你想要以此建立一臺新的虛擬機器,VMID編號為170,那麼請使用vzrestore指令:

proxmox:~# vzrestore /tmp/vzdump-openvz-350-2011_10_28-02_25_51.tgz 170

2011-11-19_200227 qmrestore - mask

還原指令執行時,會出現上圖的訊息,這是以qmrestore還原KVM備份檔的結果。

2011-11-19_200613 list

還原成功之後,你就可以在Proxmox VE網頁管理介面看到該虛擬機器了。

4. 設定新建立的虛擬機器

image

設定完成之後,你最好先調整一下其他參數再來使用,特別是網路IP的設定、Hostname主機名稱等等。以免直接開啟新建立的虛擬機器時,造成與來源的虛擬機器相衝的問題喔。

image

設定好之後就開啟來使用吧,這又是一個跟來源一樣的Windows XP虛擬機器囉。


結語

用複製的方式建立虛擬機器有幾個缺點,像是管理者密碼不能在建立時供人自訂(但還是可以建立完之後再修改,如上述的第四步驟)、虛擬機器的備註(Notes)與網路等各種設定都會被複製過去,讓人覺得這並不是一個「全新」的機器。

不過換個角度來看,如果只是在組織內部複製虛擬機器而不需要供外界使用的話,保持相同的帳號與密碼,說不定這樣還比較方便管理呢。

有時間的話,我也想建立真正的「虛擬應用樣板」。但那就改天再說吧。

(more...)

Proxmox VE的虛擬應用樣板 (Virtual Appliance Templates)

布丁布丁吃布丁

Proxmox VE的虛擬應用樣板 (Virtual Appliance Templates)

image

Proxmox VE的OpenVZ虛擬應用樣板提供了各種可以馬上執行的應用,就像是VMware的虛擬應用程式(Virtual Appliance)一樣,但使用的技術並不相同。這篇文章簡介Proxmox VE 1.8版安裝虛擬應用樣板所使用的OpenVZ技術,然後簡單介紹虛擬應用樣板的用途,最後則是以Joomla跟Moodle為例介紹安裝與使用的方式。


Proxmox VE、OpenVZ與應用樣板

Proxmox VE是一套開放原始碼的虛擬機器運作環境。他的特色在於結合了OpenVZ容器虛擬化技術與KVM全虛擬化技術,可以依照運作環境需求來選擇使用的技術。

OpenVZ容器虛擬化技術是建立一個「容器」(container),將Linux的程序與檔案全部集中在該容器中,成為獨立的一個Linux運作環境,進而模擬出一台Linux的虛擬電腦。容器虛擬化的運作方式彷彿是在Linux中執行一個Linux使用的程序,因此虛擬化的效能損耗相當的低。根據維基百科對OpenVZ的介紹,在一台768MB記憶的硬體中可以同時執行120個提供Apache服務的網站。

然而OpenVZ的容器虛擬化技術也限制於只能使用Linux作業系統。而且安裝時並不是使用一般的Linux安裝光碟,是需要使用經過特殊處理的樣板。在OpenVZ網站中稱之的樣板(template),只是建立了單純的CentOS、Fedora、Debian、SuSE、Ubuntu等Linux作業系統。而Proxmox把這些樣板加上了各種預先安裝好的服務(像是Joomla網站),而成為了虛擬應用樣板(Virtual Appliance Template)。

這些虛擬樣板的資料最後會被壓縮誠一個tar.gz的壓縮檔,使用者只要透過特定指令與步驟,就能快速在OpenVZ的環境(包括Proxmox VE)中從樣板建立一個馬上可以使用的虛擬機器。而Proxmox VE把這套流程做得更簡單、更容易上手,下面文章中將會說明詳細的安裝步驟。

應用樣板來源

目前就我知道的應用樣板來源共有三處:

  • Proxmox VE預先提供的應用樣板:應用樣板數量較少,但都是常用的服務。
  • Proxmox VE Wiki提供的完整應用樣板:完整且詳細的應用樣板,羅列了各式各樣的好用服務。這邊也含括了Promxox VE預先提供的應用樣板。
  • OpenVZ的作業系統樣板:只有純作業系統,但有各種不同版本可供下載。

以下主要介紹的是Proxmox VE Wiki提供的完整應用樣板。

Proxmox VE預先提供的應用樣板

image

Proxmox VE wiki的Get Virtual Appliances網頁中提供了許多虛擬應用樣板可供人免費下載使用。除了作業系統之外,具有特殊應用的樣板就有21種(排除僅是版本不同的樣板,以及不考慮KVM形式)。還有其他Proxmox VE推薦的2種。當然,這些應用本身也大多數都是開放原始碼軟體,請大家安心使用。

為了方便大家了解到底有哪些樣板可以使用,以下我把這26個樣板分成五種類別來介紹:

內容管理平台(Content Management System)
  • Joomla!:簡單易用的內容管理平台,現在台灣十分流行使用Joomla架設網站。
  • Wordpress:世界上最知名的部落格平台。
  • Drupal (Acquia Drupal):非常彈性具有的內容管理平台。
  • MediaWiki (v1.16x):最知名的維基軟體。維基百科就是用MediaWiki架設。
  • SimpleGroupWare:具備知識管理功能的內容管理系統。可以處理文件、e-mail、日曆、聯絡、工作、通訊錄等等多種功能。簡單容易使用。
基礎平台
  • BlueOnyx:作為架設網站的基礎,提供網頁GUI介面,可設定FTP等系統服務。(可惜似乎是不能讓Proxmox VE使用)
  • eyeOS:雲端桌面系統。你可以透過桌面電腦或行動裝置連到eyeOS進行文件管理、處理,或把它當作一個網路硬碟使用。
  • Proxmox Mail Gateway:Proxmox公司出品的郵件伺服器。
  • Zimbra:替代MS Exchange的郵件伺服器。
  • DebPBX (FreePBX, PBX in a Flash):VoIP網路電話。
  • CYAN Secure Web:代理伺服器(Proxy)。
企業管理與電腦資產管理
商務平台
其他應用
  • Moodle:數位學習使用的課程管理平台。
  • Care2x:醫院資訊管理應用。

安裝虛擬裝置樣板

在Proxmox VE安裝虛擬裝置樣板的方式有兩種,一種是在Proxmox VE提供的預設列表中直接下載安裝,另一種是手動從其他地方下載樣板,然後上傳到Proxmox VE中。

從Proxmox VE直接安裝樣板:以Joomla為例

Proxmox VE預設提供了一些常用的樣板,讓我們可以輕易地下載、取用。這個步驟真的很簡單,我非常喜歡他這邊的高度整合化功能。接著我以Joomla為例,介紹直接安裝樣板的操作過程。

image

在Proxmox VE安裝完成之後,你可以從左邊導覽列的VM Manager –> Appliance Templates –> Download中找到Proxmox VE提供的預設列表。該列表中將虛擬應用樣板分成四類:已認證的樣板(Certified Appliances)、管理用途的樣板 (admin)、作業系統樣板(system)、網站用途樣板(www)。

image

點入任一個樣板之後,你可以看到樣板的詳細訊息。上圖是點進Joomla樣板的介紹,裡面包括了對Joomla的簡介、詳細資訊連結、版本、分類、維護者、檔案名稱、MD5查核碼。

確定要使用該樣板的話,點下「start download」就可以開始下載該樣板的檔案。

2011-11-19_150328 download template

網頁中你可以看到Proxmox VE下載樣板的進度。 Joomla的樣檔案網址是http://download.proxmox.com/appliances/www/debian-6.0-joomla_1.6-3_i386.tar.gz,檔案大小為174MB。就算是我這邊學術網路的速度,下載也要等上好一陣子。後面的時間3m35s是剩餘的時間。

image

終於下載完啦。

有時候他這個訊息會跑到停住,這可能就是AJAX沒有寫好,讓他讀取中斷了。不過實際上Proxmox VE還是有在下載的,移到其他網頁再切回Download,就可以看到訊息繼續跑了。

image

下載完成之後,你就可以在Local頁面看到剛剛下載的樣板。稍後在建立新的虛擬機器時,就可以用該樣板來快速建立Joomla網站了。

手動安裝樣板:以Moodle為例

如果你要的虛擬裝置樣板並不在Proxmox VE的預設清單中,那你也可以自行下載樣板檔案,再上傳到Proxmox VE中。以下以Moodle為例說明操作步驟。

image

在上面介紹的虛擬應用樣板網頁中,你都可以找到下載tar.gz樣板檔案的連結。以Moodle來說就是http://www.sacollege.net/files/appliances/debian-5.0-moodle_1.9.9p-1_i386.tar.gz (190MB),請先將該檔案下載到你的電腦吧。雖然tar.gz是打包壓縮檔,不過請不要解壓縮這檔案喔,tar.gz的打包壓縮檔就是虛擬應用樣板本身了。

image

接著再回到Proxmox VE中,進入VM Manager –> Appliance Templates –> Local頁面中,在Upload File欄位裡選擇剛剛下載的樣板檔案,然後按下「upload」上傳。

2011-11-19_153634 please wait

等待樣板檔案上傳。Google Chrome會在左下角顯示上傳的進度。

image

上傳完成囉。

image

在Local頁面的OpenVZ Templates列表中就會看到剛剛上傳的Moodle樣板檔案。接下來新增虛擬機器時,就可以用該樣板快速建立Moodle網站囉。

以SSH上傳樣板到Proxmox VE

有時候網路實在是太不穩,你怎樣都無法用網頁介面上傳資料到Proxmox VE。這時候你可以考慮透過SSH的SFTP上傳樣板檔案。

image

Proxmox VE安裝完成之後,除了網頁管理介面之外,它也提供了SSH的服務。預設連接埠22,以root跟安裝時的密碼登入。我通常會用FileZilla以SFTP連到Proxmox VE管理來大型檔案。

Proxmox VE擺設樣板的路徑為「/var/lib/vz/template/cache/」,你也可以在該路徑底下看到Proxmox VE已經下載的樣板喔。

使用樣板建立虛擬機器

image

當你已經將樣板儲存到Proxmox VE之後,在VM Manager –> Virtual Machines –> Create頁面中,你就可以從Template選擇要使用的樣板。上圖可以看到我剛剛上傳的Joomla跟Moodle都在列表中。然後其他參數設定設定,你就可以建立一台具備Joomla或Moodle網站功能的虛擬機器囉。

2011-11-19_155257 joomla - mask

至於要怎麼使用樣板呢?大部分網站服務為主的樣板,架設完成之後,只要以該虛擬機器的IP為網址,直接用瀏覽器開啟,你就可以看到虛擬應用樣板的服務。但如果不是網站服務的樣板,那你就要從詳細介紹中看看如何使用的說明囉。


結語:虛擬應用是新時代趨勢

對於Proxmox VE在使用OpenVZ必須要使用樣板建立虛擬機器這點,其實很多人不太能習慣這個步驟

大多數安裝電腦的人,幾乎都是先接手一台沒有作業系統的空機器,從光碟開始一步一步慢慢地安裝,然後再安裝網站伺服器、資料庫,配置網站的程式碼,花了許多時間才能夠架設出一台可以用的伺服器。

即使是會使用VirtualBox或VMware等全虛擬化技術的人,也都會習慣先建立一個空的虛擬機器,配置好光碟機、網路卡等虛擬硬體設備,再掛載ISO光碟映像檔。然後就跟一般安裝電腦一樣,從光碟一步一步安裝起。

然而科技演進到現代,不論是Proxmox VE的虛擬應用樣板,或是VMware的虛擬應用,他們都是想要讓架設虛擬機器就像是在電腦上安裝應用程式一樣簡單。仔細看看上述我的介紹,整個架設Joomla的動作也不過是 1. 下載樣板 2. 安裝樣板 3. 建立虛擬機器 4. 開始使用,就這樣簡單。而且不管是Joomla還是Moodle,他們都可以用同樣的方式來架設,你不需要因為使用不同的系統而學習另一種架設手續。

時代的趨勢就是讓人們更容易使用科技。即使是伺服器服務這麼複雜的東西,Proxmox VE也要讓它簡單能夠使用。這也是我喜愛Proxmox VE的地方。

如何建立自己特製的樣板

雖然要在Proxmox VE使用虛擬應用樣板很簡單,但要從頭建立自訂功能的樣板,可就沒這麼容易了。

OpenVZ介紹了如何從實體電腦(physical)轉換到容器(container,也就是此篇文章講的樣板template)。轉換手續非常地多,似乎並不容易使用。

Proxmox VE介紹了以Debian作業系統建立虛擬應用樣板的Debian Appliance Builder,我還沒嘗試過,不過看起來並不複雜。

還有一種方式,就是直接「複製」已經建立好的OpenVZ虛擬機器。這只要使用vzdump匯出與vzrestore還原即可,操作方式可以看OpenVZ的說明。改天有空的時候我再來介紹如何在Proxmox VE中進行這樣的操作。

(more...)

GPLI 登入就開啟知識庫

布丁布丁吃布丁

0 Comments

GPLI 登入就開啟知識庫

image

GLPI是一套資產管理系統。我們主要側重於他的知識庫(knowledge base)功能,但是因為每次開啟時,預設都是先開啟中控台(central.php),這讓我們覺得有點煩。我順手把他的登入功能改成預設開啟知識庫,省下大家很多麻煩。

以下介紹的是GLPI 0.80.2登入就進入知識庫的程式安裝方法。

  • 檔案下載:login.php
    檔案位置:[GLPI]/login.php

[GLPI]表示GLPI網頁目錄的路徑。以Linux預設Apache安裝GLPI的話,目錄路徑就是/var/www/html/glpi。換句話說,完整路徑就是/var/www/html/glpi/login.php。

這樣就完成了。

(more...)

Proxmox VE新增登入的方式

布丁布丁吃布丁

Proxmox VE新增登入的方式

image

Proxmox VE是一套開放原始碼的虛擬機器環境。儘管在虛擬機器的管理上提供了網頁介面的管理功能(Web GUI),可是在登入的連接埠、帳號與密碼卻無法直接設定。

本篇是以Proxmox VE 1.8來跟大家說明如何新增自己熟悉的登入方式,包括新增進入的連接埠而不只使用預設的443,以及建立的可登入的帳號與密碼而不是root。


新增帳號與密碼

Proxmox VE預設是使用「root」跟安裝時建立的密碼登入。如果你想要新增一個你自己習慣使用的帳號的話,可以新增一位使用者,使其群組編號為0,即root群組。這樣在網頁管理介面中,就能使用新增的帳號登入。具體來說,以下以新增帳號「pudding」為例,作法如下:

首先,先以root登入指令列端。然後使用useradd指令新增使用者,並搭配-g 0參數,將群組設為root。指令如下:

proxmox:~# useradd -g 0 pudding

接著是設定pudding的密碼,指令為passwd,系統會要你輸入兩次該帳號的密碼:

proxmox:~# passwd pudding
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
proxmox:~#

ok,這樣就完成了。

image

以pudding成功登入。

新增登入的連接埠

這邊使用的是iptables的連接埠轉遞功能,用來新增可以連入的連接埠,而不只有使用預設的443。

我習慣將iptables的指令寫在一個腳本檔中,然後再執行該腳本檔。確定沒問題之後,再到開機檔案/etc/rc.local當中。

首先,先新增一個檔案:/root/iptables.port-forward-webgui.rule。我習慣使用vim,指令如下:

proxmox:~# vim iptables.port-forward-webgui.rule

這邊要讓eth0網路卡的64443轉遞到443連接埠,並限定來源IP為192.168.11.0/24的範圍,而Proxmox VE的IP位置為192.168.11.13。請在root/iptables.port-forward-webgui.rule檔案中輸入以下內容:

iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.11.0/24 --dport 64443 -j DNAT --to-destination 192.168.11.13:443

然後改變該檔案的權限為771,使用chmod指令:

proxmox:~# chmod 771 /root/iptables.port-forward-webgui.rule

接著執行該腳本檔,看看是否能夠順利把64443轉到443連接埠去;

proxmox:~# /root/iptables.port-forward-webgui.rule

接著以HTTPS通訊協定與64443連接埠開啟Proxmox VE網頁管理介面看看。

image 

如上圖,注意網址中的連接埠,現在是以64443連到Proxmox VE的網頁管理介面囉。

確認沒問題之後,我們最後在開機時會執行的腳本檔 /etc/rc.local 最後一行加入執行該腳本檔的指令:/root/iptables.port-forward-webgui.rule

重開機看看,順利的話,那重開機之後依然可以以64443登入喔。重開機的指令為reboot:

proxmox:~# reboot 

不過就算經過這樣的設定,原本的443連接埠依然可以登入。用連接埠轉遞的方式似乎沒辦法只允許64443而不用443的樣子。


結語:資安與管理之間的取捨

上面介紹這些方法,並沒有取消原本預設的登入方式,而是新增其他的登入管道。站在資安的角度來看,等於是多增加一個讓人入侵的漏洞。不過這邊我是站在管理的角度來看,當你系統一多的時候,要背下各種不同的登入連接埠、使用者帳號名稱與密碼,這是很痛苦的一件事情。如果能把這些登入連接埠、帳號與密碼做個統一,那麼管理上會輕鬆許多。

當然,這也代表了一旦被人知道統一的登入連接埠、帳號與密碼的話,那整個組織的系統就完了。所以為了避免外部網路的駭客惡意入侵,在這邊有多做一個來源IP的限制,以防萬一。

如果你想要再更進一步提高Proxmox VE的資安防護,建議你參考我另一篇SSH資安防護建議,提高Proxmox VE的SSH資安防護能力吧。

(more...)

IPFire 修改預設登入方法

布丁布丁吃布丁

IPFire 修改預設登入方法

image

IPFire是一套小巧簡單易用的防火牆套件。他使用的是我們熟悉的CentOS,操作上也算是挺直覺得,也不會用常見的登入方式,以提高資安防護。預設登入方法很特殊,如果不記錄的話很容易就會忘記,這邊介紹IPFire 2.9版(安裝光碟ipfire-2.9.i586-full-core51.iso)如何自訂修改其登入的方法。


預設登入方法

預設登入的方法是在Green網卡 (內部區域網路)中透過HTTPS連線與444連接埠登入,而登入時會出現Apache認證,需要輸入帳號密碼才能進入IPFire管理畫面。

image

Apache認證需要輸入使用者名稱「admin」跟安裝IPFire時使用的密碼。

然而由於IPFire使用的登入方法比較特殊,我想要改成自己習慣的登入方式,所以打算進行以下修改:

  1. 增加另一個我自訂的連接埠
  2. 增加另一個登入的使用者名稱與密碼

以下詳細說明各個步驟。

增加自訂連接埠:透過Port Forwarding的方法

這方法比較簡單,但原本444連接埠依然可以連線,等於是另外多加一個自訂的連接埠。

image

進入上方導覽列的 firewall ,到side menu的port forwarding中,新增一個新的規則。規則如下:

  • Protocol: TCP
  • Alias IP: DEFAUL IP
  • Source port: 63443 (這個是你自訂的連接埠)
  • Destination IP: 你現在IPFire所在的IP
  • Destination port: 444
  • Remark: IPFire admin webpage (說明這個連接埠轉遞的用意)
  • Source IP, or network: 是否要限定範圍的IP才能連線,建議是設定,例如140.119.61.0/24僅供140.119.61.0~140.119.61.254連線,以提高資安保護

確定好之後就新增。

image

然後設定External Access,開放444連接埠供外部連線(也就是透過Red網卡連線)。

這樣就可以了。

有人會提出疑問,為何不修改Apache設定呢?這是因為Apache設定要調整的地方比較多,不熟悉的人做起來會很頭痛,所以在這邊並不推薦修改Apache設定。

增加使用者名稱與密碼

這邊開始要進入Linux指令列操作。

修改Apache設定檔

首先先修改Apache的設定檔。檔案位置是「/etc/httpd/conf/vhosts.d/ipfire-interface-ssl.conf」,將看到「Require user」開頭的地方最後都加入空白與你要使用的帳號,例如我要使用的是pudding,那麼就改成「Require user adminpudding」。

共有四處要修改,我這邊各別是:

  • 29行:Require user admin pudding
  • 38行:Require user adminpudding
  • 52行:Require user admin pudding
  • 61行:Require user dial adminpudding
新增Apache認證檔

然後再來新增Apache認證檔的使用者名稱與密碼。認證檔的位置在「/var/ipfire/auth/users」,設定認證檔的指令為「htpasswd」。如果要新增pudding帳號,則下以下指令:

[root@ipfire /]# htpasswd /var/ipfire/auth/users pudding

接著Linux會問你密碼,請輸入兩次相同密碼作為確認。

重新啟動Apache,完成

接著是重新啟動Apache,指令如下:

[root@ipfire /]# /etc/init.d/apache restart

或著你也可以重新啟動IPFire也無所謂。

image

這樣就可以用你剛剛設定的使用者名稱與密碼登入了。


結語

如何有效管理網路仍是每個網管致力不懈的難題。儘管IPFire特殊的方式提高了資安防護,但也讓一般人容易忘記怎麼連線。那麼還是要手動調整成符合當地文化的登入方式,這樣子就比較令人安心了。

(more...)

GLPI 強化知識庫目錄功能

布丁布丁吃布丁

0 Comments

GLPI 強化知識庫目錄功能

image

雖然GLPI提供了知識庫的功能,但是說實在的並不是很好操作。我修改了知識庫的目錄功能,讓他更容易使用。以下說明安裝方式跟強化的功能。這邊所說的是GLPI 0.80.2版本,安裝在Linux (CentOS)作業系統預設的Apache伺服器上,Windows作業系統的路徑並不一樣,請自行找尋位置。


安裝

※ [GLPI]請取代掉GLPI網頁目錄中的相對應位置。

Linux預設Apache的話,網頁檔案的位置在/var/www/html/glpi/。換句話說,完整路徑就是/var/www/html/glpi/inc/knowbaseitemcategory.class.php

功能

  • 知識庫的類別可以顯示備註的完整內容。
    image
  • 知識庫的類別具備直接編輯的連結。(開新視窗)
    image
  • 從類別路徑可以直接新增知識庫文章。
    image
  • 新增知識庫文章之後,跳到該類別的列表中,而不是回到知識庫首頁。 (2011/11/17)
  • 知識庫文章列表可以直接修改與跳到上傳檔案的位置。(2011/11/18)
    image

就這樣簡單的功能,可是卻能省下許多管理上的麻煩。

如果要新增子類別(子項)的話,可以到編輯類別的功能中操作。如下圖:

image

(more...)

在 PHP 使用 YUI Compressor 壓縮 JavaScript 跟 CSS

在 PHP 使用 YUI Compressor 壓縮 JavaScript 跟 CSS

2011-11-14_232832 yui logo

我在寫程式的時候,習慣搭配程式註解一併撰寫。寫JavaScript就搭配JSDoc,寫CSS就搭配CSSDoc,寫著寫著程式碼就會非常非常地龐大,造成使用者每次都要下載過大的檔案內容而效率緩慢。

YUI是一套開放原始碼的JavaScript與CSS框架,以BSD授權條款開放使用。它其中一個相當知名的功能是JavaScript與CSS的壓縮器(compressor)。這篇是要教你如何在PHP的環境中使用YUI Compressor來壓縮JavaScript與CSS。


安裝配置

由於這篇的目的是使用PHP作為開發環境,相信你已經有了一個運作PHP的環境。我自己的測試環境是以XAMPP 1.7.0架設,使用PHP 5.2.8。

首先,你要準備一個資料夾,用來擺放YUI Compressor與相關檔案。

再來將以下檔案下載到該資料夾中:

安裝Java

由於YUI Compressor使用Java,你必須確保你的環境中安裝了JDK才行。請到Java網站下載Java Platform (JDK),他有提供Windows與Linux各種版本。

然而我在CentOS作業系統中安裝JDK 7u1時不知為何地失敗了,所以我又回頭去裝了JDK 6u12。

下載之後,請調整該檔案的權限為755,然後執行該檔案。舉例來說指令如下:

[root@dspace ~]# chmod 755 jdk-6u12-linux-i586-rpm.bin
[root@dspace ~]# ./jdk-6u12-linux-i586-rpm.bin

如要確認Java能夠使用,請輸入以下指令並可能會看到如下訊息:(可能是因為我先裝7u1失敗的關係,以下版本顯示的是7u1而不是6u12)

[root@dspace ~]# java -version
java version "1.7.0_01"
Java(TM) SE Runtime Environment (build 1.7.0_01-b08)
Java HotSpot(TM) Client VM (build 21.1-b02, mixed mode)

這樣就完成配置囉。


壓縮使用

使用YUI Compressor時,要先引用Minify_YUICompressor.php,然後透過它的靜態方法minifyJs()跟minifyCss()來輸入要壓縮的程式碼,並取得壓縮過後的程式碼。

以下是minifyJs跟minifyCss的用法:

/**
* Minify a Javascript string
*
* @param string $js
*
* @param array $options (verbose is ignored)
*
* @see http://www.julienlecomte.net/yuicompressor/README
*
* @return string
*/
public static function minifyJs($js, $options = array())

/**
* Minify a CSS string
*
* @param string $css
*
* @param array $options (verbose is ignored)
*
* @see http://www.julienlecomte.net/yuicompressor/README
*
* @return string
*/
public static function minifyCss($css, $options = array())

使用範例

為了讓大家更容易理解如何使用,請下載以下兩個範例檔案到上述Minify_YUICompressor.php跟yuicompressor-2.4.6.jar的同一個資料夾中。

我們先看一下blogger-template.css的原始碼,這是一個沒有經過壓縮的CSS程式,大概長得像下面這樣子,程式碼大小為19.9KB:

2011-11-14_232059 blogger-template.css

然後我們再透過minifyCss.php看一下壓縮過的樣子,壓縮過後程式碼大小為13.4KB,足足有67.3%的壓縮率:

2011-11-14_232133 minifyCss.php

以下是minifyCss.php的程式碼內容。這裡面包括了在HTTP標頭輸出為CSS格式的指令,以協助瀏覽器正確判斷資料內容。

<?php
header('Content-type: text/css', TRUE);

include("Minify_YUICompressor.php");
$script = file_get_contents("blogger-template.css");
$packed = Minify_YUICompressor::minifyCss($script);
echo $packed;

而JavaScript也是以此類推,以下是minifyJs.php壓縮JavaScript的標頭輸出與壓縮寫法:

<?php
header('Content-type: text/javascript', TRUE);

include("Minify_YUICompressor.php");
$script = file_get_contents("puliBloggerDigest.js");
$packed = Minify_YUICompressor::minifyJs($script);
echo $packed;


致謝與修改過程

YUI Compressor雖然一般是要透過Java以指令列的方式運作,不過多虧了minify專案開發了Minify_YUICompressor.php,讓我們得以輕易地以PHP使用YUI Compressor。

然而由於原本的Minify_YUICompressor.php需要將YUI Compressor跟暫存目錄指定為絕對路徑,我覺得不是很好用,所以將暫存目錄改為系統自訂的暫存目錄、YUI Compreesor改為跟Minify_YUICompressor.php相同的目錄,讓我們只要把兩個檔案擺在一起就能夠使用。這樣在程式碼轉移的時候特別方便,例如將PHP系統從Windows轉移到Linux的時候。

結語:最好搭配快取機制一起使用

YUI Compressor的壓縮功能雖然挺好用的,搭配上Minify程式之後就更容易讓PHP取用,但是運作效率卻有待堪慮。我在Windows環境中請YUI Compressor壓縮1MB左右的JavaScript的時候,通常會延遲個3秒鐘左右才完成。儘管這是因為我檔案太大的關係,但是如果太過頻繁的壓縮,恐怕仍會帶來效率上的問題。

我建議在使用YUI Compressor的時候,同時搭配一些快取機制(cache),將YUI Compressor的壓縮結果另存為一個靜態的JavaScript或CSS程式碼。下次就能讓系統直接讀取壓縮結果,而不需要經過YUI Compressor的壓縮。

(more...)