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

2014年4月6日 星期日

[LINUX]我的 CentOs-Server 安裝流程-part2-iptables


Linux核心中有著內建防火牆,iptables
防火牆乍聽之下難以親近,但iptables運作原理是很單純的
不外乎是正面列舉或是負面列舉的概念:
正面列舉:預設條件是全部拒絕,唯有滿足列舉出的條件方得通過
負面列舉:預設條件是全部接受,唯有滿足列舉出的條件會被拒於門外

如何?不難理解吧,那就開始操作iptable的設定吧!

首先先來讀看看預設的iptables規則如何設定,在此使用iptables-save來讀取目前的設定值
單純使用iptables-save指令時,目前的規則會顯示在主控台上
而為了基於目前的設定來作修改,我們把內容印在檔案中,之後改完檔案後再使用iptables-restore將規則存回,操作上方便很多。

將iptables規則重導向到文件內:
#iptables-save > 任意文件

使用vim讀看看預設的規則長何樣:
# Generated by iptables-save v1.4.7 on Thu Apr  4 20:20:29 2013
*filter
:INPUT ACCEPT [0:0]                                          //進入封包預設條件為全部通過
:FORWARD ACCEPT [0:0]                                  //轉發封包預設條件為全部通過
:OUTPUT ACCEPT [431:50629]                          //發出封包預設條件為全部通過
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
//已建立連線狀態的封包予以通過
-A INPUT -p icmp -j ACCEPT                             //icmp封包予以通過(讓別人可以ping你)
-A INPUT -i lo -j ACCEPT                                   //來自內部迴路的封包予以通過
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
// 欲建立於port-22的封包予以通過
-A INPUT -j REJECT --reject-with icmp-host-prohibited                   //不滿以上規則的統統拒絕!
-A FORWARD -j REJECT --reject-with icmp-host-prohibited          
COMMIT
# Completed on Thu Apr  4 20:20:29 2013

iptables的規則分為三群:
INPUT:進入系統的封包該受到何種過濾方法
OUTPUT:從系統發出的封包該受到何種過濾方法
FORWARD:從系統轉發的封包該受到何種過濾方法

而過濾流程是序列式的,照著規則由上至下判定條件並決定動作,動作就是 -j 所描述,條件就是動作以外的描述部份(很像C語言中的 if(條件){動作}語句塊),
你也可以視iptable照此scripts依序執行動作,所以設定規則的順序是很重要的!

從上面的預設規則可以看出,預設防火牆只允許SSH通過,為了之後能讓其他服務通過,有必要改一下預設設定。

宅哥家裡是以一台router連結所有區網內的電腦,目前不想對外部網路進行開放,想作出以下設定:
  • 預設政策為丟棄所有封包
  • 只開放內部網路(192.168.0.0/24)通過
  • 對於外部網路而言…好啦勉強能讓我連進ssh就好(至少留了一扇回家的門)
那麼我們就通過預設設定檔進行修改:
# Generated by iptables-save v1.4.7 on Thu Apr  4 21:38:30 2013
*filter
:INPUT DROP [15:888]                                                      // 進入封包預設為全部拒絕!
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [629:126630]
-A INPUT -i lo -j ACCEPT                                                // 來自內部迴路的封包予以通過
-A INPUT -s 192.168.0.0/24 -j ACCEPT                          // 來自區域網路的封包予以通過
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT  
// 欲建立於port-22的封包予以通過(來自外部網路也過的去喔)
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
// 已經建立連線的封包予以通過(這是讓SSH能維持連線的規則)
COMMIT
# Completed on Thu Apr  4 21:38:30 2013

很簡單的設定吧!然後將此設定載回iptables服務:
#iptables-restore < 新設定

設定完記得存個檔:
#iptables-save > 備份檔名

如此以來我的SERVER就在網際網路上隱形啦,應該變的比較安全
做完以上幾個動作之後會發現,疑,怎麼我重開機後,防火牆整個糟金(台語)去?
那是因為iptable又載入的規則啦!
所以我們要在開機自訂腳本內加上自己想跑的流程:
#vim /etc/rc.d/rc.local

加上:
iptables-restore < 新設定

後記:本來想嘗試開放特定硬體位址(MAC)通過,比方說我的筆電,希望能讓他也可以在任何網域也能進入這台伺服器,但最終得知受到路由器遮蔽的情形下,最後進入伺服器的封包硬體位址(MAC)會是路由器的,無法辨識出是不是來自特定設備,此解行不通,仍在想辦法…

接著準備來練習森巴舞了(Samba),彭掐掐、掐掐…

(To Be Continued)

2013年11月10日 星期日

[LINUX] CentOS x Canon-IP1800 網路印表機 安裝流程-part2




照著PART1的動作,我們成功在伺服器端佈署好本地印表機了
接著就是讓這台印表機能透過服務分享出去,供其他裝置當作網路印表機列印嚕。

此時得先釐清不同的遠端作業系統得靠什麼機制來存取這台印表機:

  • LINUX-直接透過CUPS
  • WINDOWS-透過Samba間接存取CUPS
  • OSX-透過Avahi-daemon間接存取CUPS
由此可知伺服器側的印表機資源基本上是由CUPS控制的,只是在網路上面對不同的作業系統時,必須再透過其他中介服務作格式轉譯的動作。

[LINUX篇]

若遠端機器是LINUX系統,很方便的是我們只要設定CUPS內容即可:
#vim /etc/cups/cupsd.conf

編輯以下設定:

確認監聽口有開啟
Listen localhost:631

確認已設定可分享的印表機是可以被瀏覽的
# Show shared printers on the local network.
Browsing On


確認遠端機器可存取,此設定值僅供內部網路存取嚕
# Restrict access to the server...
<Location />
  Order allow,deny
Allow From 127.0.0.0/8
Allow From 192.168.0.0/24
</Location>


基本上cupsd.conf很容易閱讀,設定項目也不多,有問題的話先確認這個檔案準沒錯

接著改變印表機分享設定:
#vim /etc/cups/printer.conf

找到你的對象印表機頁籤,讓印表機接受工作,且是可被分享的
<Printer IP1800-HomeServe>
Accepting Yes
Shared Yes

好啦,到此伺服器端的設定就完畢了
----------------------------------------------------

本地端部份的設定,必須先依循PART1的步驟安裝兩個rpm-package
# rpm -ivh cnijfilter-common-2.70-1.i386.rpm
# rpm -ivh cnijfilter-ip1800series-2.70-1.i386.rpm
仍然要注意本地端的glib gtk+ libxml libpng3 libtiff3 函式庫是否滿足,小茂的Fedora 19就沒有舊版本的libtiff3,必須自己建立連結檔。

接著加入印表機:
#lpadmin -p IP1800-homeserver -v http://192.168.0.105:631/printers/iP1800-series -m canonip1800.ppd
-p 設定此印表機在本地端的暱稱
-m 設定網路印表機位址(注意資料夾結構喔,小茂一開始沒有打/printers,鬼打牆似卡關很久)

如此設定本地端應該就加入完成了
打完收工!印起來吧!

WINDOWS篇待續…(睏)





2013年8月27日 星期二

[LINUX] CentOS x DLNA Server for PS3



何謂DLNA呢?

Digital Living Network Alliance
是咱們的音速小子寶貝- 索尼在1993年提出的多媒體共享"規格"

簡單的說,符合這規格的實作,是以主從的架構分享多媒體串流
儲存在A伺服器的多媒體可在支援DLNA的B、C、D裝置上觀看,實際解碼輸出串流的裝置是A伺服器,播放端不須特別安裝其他播放軟體或是解碼器,你只需要將網路頻寬保持通暢即可。

據宅哥所知,除了索尼自家的PS3,據說Android系的智慧型手機都有內建此功能(也許都是師出LINUX核心的關係所以有這樣的裙帶關係)

當然,咱們的CENT-OS伺服器亦有擔任DLNA server的能力,今天就是要介紹如何安裝
PS3 Media Server - DLNA伺服器軟體 for PS3

首先先到這裡(PS3 Media Server官網)下載安裝包 pms-1.90.1-generic-linux-unix.tar.gz

下載到後請解壓:
#tar -zxvf pms-1.90.1-generic-linux-unix.tar.gz

會在當前資料夾解出
pms-1.90.1 資料夾

前進一步,進去看看INSTALL.txt
發現PMS相依這些東東:

  • ffmpeg(影音解碼函式庫)
  • mediainfo(提供影音標頭資訊)
  • mencoder(影音編碼器)
  • openjdk-7-jre(JAVA 運行環境,PMS是由JAVA寫成)
問題來了,預設的yum資料庫沒有維護mplayer、mencoder、ffmpeg…等等,此時需要再對YUM做些其他動作 - 抓取非官方套件:

首先安裝protectBase
#yum install yum-protectbase

接著修改YUM資料庫設定
#vim /etc/yum.repos.d/CentOS-Base.repo

進去設定檔後,在[base] 、[update] 、[centosplus]三個段落加上
protect=1
在其他段落則加上
protect=0
然後在[centosplus]段落讓enable失效
#enable=0

好了,存檔離開設定檔,接著去以下網址抓rpmforge套件:
記得認清是32位元還是64位元喔,在他的description處有說明CENTOS版本與對應的硬體架構

接著將DAG公鑰弄進RPM系統:
#rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

開始安裝RPMFORGE套件:
#rpm -ivh rpmforge-release-0.5.3-1.el6.rf.i686.rpm
最後一步,更新一次YUM資料庫:
#yum check-update

應該可從螢幕輸出發現
13 packages excluded due to repository protections
此類的字樣,就表示你的資料庫裡有非官方套件了

接著的動作就簡單啦,回到剛剛的相依套件安裝,把PMS所需相依備齊:
#yum -y install mplayer mplayerplug-in
#yum install mencoder
#yum install java-1.6.0-openjdk

到此,若上述的相依套件都到位的話,基本上不須任何設定,就可以順利啟動PMS了,回到pms-1.90.1資料夾,透過PMS.sh啟動PMS服務:
#./PMS.sh

密密麻麻的訊息中,最後會出現:
#[main] The server should now appear on your renderer
這表示你的PMS伺服器啟動成功了!應該在遠端裝置上搜尋的到了

如果此時有裝置連線到這台伺服器,會出現類似這樣的訊息:
[pool-4-thread-1] Renderer Android found on this address: 192.168.0.108
[pool-4-thread-1] Address /192.168.0.108 has an estimated network speed of: 14 Mb/s
在PS3上發現伺服器

瀏覽資料夾的方式選擇影片

播放效果還蠻棒的!











[11/09 新增]

接著你會發現,照預設值啟動PMS,在DLNA設備上居然可從根目錄(/)瀏覽整個伺服器
不是很恰當對吧,此時要修改PMS資料夾下的PMS.conf
在註解< Shared folders >中改變此設定:
#folders = /home/nfs1,/home/special

在上面的範例裡我設定了兩個資料夾,nfs1/ 與 special/ 可供瀏覽,用逗號分開

另外分享Android手機上可連結到PMS的軟體 - MediaHouse
幾乎是免設定就可以直接連上剛才架好的PMS喔
就是灌這味
按剛剛設定的資料夾去瀏覽嚕




手機上播放的效果,棒!

以後就可以捧著智慧型手機在床上看謎之影片啦,嘻嘻
威!

2013年6月2日 星期日

[LINUX] CentOS x Canon-IP1800 網路印表機 安裝流程-part1

http://hargaprinterepson.blogspot.tw/2012/10/lampu-printer-canon-ip1880-berkedip.html






















今天要來分享安裝 印表機 在 CentOs伺服器上,最終目標是替家裡完成網路印表機服務。

印表機是採用 CANON PIXMA iP1880(產品介紹) 是小茂在五年前購入的高CP值平民印表機,穩定性高,噴墨品質也是相當優異,最棒的是有相當多的副廠套件(補充用墨水)讓當年的茂同學省了不少銀子。

封存至今日機構本身仍完好無缺,唯獨噴頭有些卡墨,但不成問題!只要泡泡熱水擦拭乾淨,補充上備用的副廠墨水仍然可以正常工作:) - 不浪費就是我的溫柔。

好啦!開始安裝:

首先前往CANON-SUPPORT下載驅動程式,照著對話框選擇 IP1880印表機支援與服務:

你需要下載common與IP1880套件(直接點下面比較快):

下載後到你的伺服器上,以RPM方式解開
# rpm -ivh cnijfilter-common-2.70-1.i386.rpm
# rpm -ivh cnijfilter-ip1800series-2.70-1.i386.rpm

這兩個套件相依於glib gtk+ libxml libpng3 libtiff3,基本上在CentOS安裝完並更新後,上述的相依套件應該都是存在的,但小茂還是遇到相依性問題而無法解開,此時就得在RPM命令中加入--nodep --force 選項:
# rpm -ivh cnijfilter-common-2.70-1.i386.rpm --nodeps --force
# rpm -ivh cnijfilter-ip1800series-2.70-1.i386.rpm --nodeps --force

關於libtiff3,現在多半更新到libtiff5以上,此時可以用symbolic link方式建立連結檔連結到libtiff5:
#ln -s /usr/lib/libtiff.so.3 /usr/libtiff.so.5

好啦!如此一來印表機驅動相關套件就佈署完畢了,接著重啓CUPS服務(UNIX通用列印系統 ):
#/etc/init.d/cups restart

然後登錄剛剛安裝好的印表機到CUPS,首先修改CUPS設定,使其可以接受FileDevice:
#vim /etc/cups/cupsd.conf

在任意位置加上此行:
#FileDevice Yes
(小茂也還在瞭解為何非得用FileDevice)

開始向CUPS建立印表機,打開印表機電源,輸入以下命令: #lpadmin -p IP1800 -m canonip1800.ppd -v /dev/usb/lp0 -E

設定IP1880為預設印表機:
#lpadmin -d IP1800

沒意外的話,可以用測試頁測試印表機工作是否正常:
#lpr /usr/share/cups/data/testpage

理論上要印出這個:
點我看圖片
宅哥印出這樣:

斷斷續續的表示噴頭又卡墨啦(又一兩個月沒用了),得拆噴頭下來泡熱水擦一擦。

下一步,安裝網路印表機服務!

(To Be Continued)

2013年5月12日 星期日

[LINUX]我的 CentOs-Server 安裝流程-part1




首先要來安裝LINUX作業系統啦,小茂這次選擇的是CentOS這個Distribution,雖說過去也有用過Ubuntu,但據信CentOS作為伺服器應用的話是相對優的版本。

認識一下什麼是CentOs:伺服器安裝第一首選 CentOS 6帶來寧靜革命


安裝版本:CentOS-6.2-i386-LiveCD.iso
義守大學伺服器

.iso 是光碟映像檔,在Windows上丟進Daemon Tool就可以燒成可開機的光碟,讓我們部署在新機器上啦。






接著把光碟放進目標,記得修改BIOS中的開機順序,光碟>硬碟,系統就會從CentOs中開機了!

接著會看到自動倒數的畫面,按個任意鍵讓他跳出開機/安裝菜單:



即便我們最終要建的是文字版操作界面,但這時候可千萬要選擇Install
(因為實測後發現Install才能自定分配磁碟空間,小茂覺得糊塗)

然後我們就順利進入安裝程序了,中間的過程基本都很好懂:
選擇語言、鍵盤系統、時區⋯這裡就不一一囉唆了

關鍵是磁碟分配:

唯有圖形安裝界面才會到這步呀(搔頭)
考慮到日後的維護還有擴充,小茂在此做了以下分配:

  • /boot 500MB
  • /        10GB
  • /usr    5G         (應用程式檔案放置的地方啦,獨立割出來便可以獨立備份啦)
  • /var    5G         (應用程式參考的資料庫,也是需要備份的)
  • 剩下的都留給LVM(拿來建立/home用的,用LVM利於擴充,放影片音樂的地方啦)

啪嗒,原則上過了磁碟分配後就沒有需要傷腦筋的地方了。

接著重新開機,取出光碟,讓系統從硬碟開機,與伺服器相見歡,由於剛剛是用圖形模式安裝的緣故,系統會理所當然的進入有GUI的CentOS

小茂希望系統開機後還是回歸文字模式,所以來做以下設定更動:

調整run level,使用vim 改變設定檔:

#vim etc/inittab

找到這行(預設是5,X-Window模式):
id:5:initdefault:

改成(多使用者文字模式)
id:3:initdefault:

重開機後系統的世界就是黑白的了!

然後,對於伺服器而言,第一重要的就是sshd服務了,這個服務可以讓我們透過網路,對伺服器進行遠端登入,不用坐在伺服器前也可以維護/設定主機,而且這項服務在window、MAC、Linux都可應用,簡單地說,只要龍五手上有電腦(加網路),誰都無法阻止他操作自己的伺服器!

好了,現在就來啟動伺服器上的sshd服務:
#/etc/init.d/sshd start

原則上這個服務不太需要設定即可馬上應用,接著用其他電腦對伺服器進行連線測試,如果你有LINUX或MAC,打開終端機輸入:
#ssh root@192.168.0.105 (我的伺服器在此區網IP的情況,)

如果是用windows,可先來此下載pietty
然後在主畫面上鍵入IP或是domain name,port 使用預設的22
就可以進入你的主機登入畫面了



好了,sshd也測試成功了,現在我們可以遠端登入了,可以來拔掉鍵盤還有螢幕了嗎?等等!要先確定重開機後系統也會自行啓動sshd服務,否則人還是要跑到機器前拜託他讓你連線,這樣似乎還是功敗垂成。

小茂的印象是這版CentOS的run level3預設是不會啟動sshd的,我們可以透過以下動作確認:

#vim /etc/rc3.d/

這檔案是敘述了系統run level3時,會載入/停止的服務清單,可以這樣的方式解讀:
[K或S]編號 服務名稱

其中K代表Stop(關閉服務)、S代表Start(啓動服務)

你可發現其中有一行:
#K25sshd

喔喔這可不妙,這代表系統預設重開機後不會載入sshd服務,龍五要死來了。

原則上,我們不要去修改rc3.d這預設的服務載入清單,以免未來經過修修改改導致系統發生問題時,系統回不到這最基本的可啓動狀態(瑞凡:系統回不去了)。

正確做法是,在自定服務載入清單內,加上自行想啟動的服務,來做以下設定:

#vim /etc/rc.local

這檔案就代表了自定啟動服務清單,在文件內加上先前操作過的指令:
#/etc/init.d/sshd start

如此一來系統會經由以下的順序,在開機時載入sshd服務了:

  1. inittabl    (進入run level3模式,並透過rc3.d啓動服務)
  2. rc3.d     (關閉xx服務⋯關閉sshd服務⋯開啟xx服務⋯執行rc.local)
  3. rc.local  (啟動sshd服務)

重開機後測試看看,果真有效!
之後可以翹腳捻鬍子在星巴克玩伺服器了,喔耶!


(To Be Continued)






2013年4月20日 星期六

[LINUX]我的 CentOs-Server 安裝流程-part0

哎呀呀,隨著科技的演進,家裡的PC地位是越來越不如了,家人們一個個淪陷成為低頭族或是平板族,可以舒服的躺在沙發,手指頭滑來滑去就可以看電影、FB,誰願意正經八百坐在電腦桌前操作PC哩?老夥伴們晚景淒涼,常使宅哥淚滿襟ˊ_>ˋ

不如就把PC們湊成一台伺服器吧!硬碟2、3顆搜集一下還是可以湊個1T,把大家的影片音樂湊在一起還綽綽有餘,跑LINUX伺服器也不用太好的硬體,
剩下的零件好好保存起來當作備品,機器有問題還有可以料件可以替換(就像國軍封存戰鬥機一樣⋯噓),太棒了!







馬上來規劃一下!目標如下:

  • 安裝一台在區網內可遠端控制(sshd)的伺服器(CentOS)
    • 設定完後不用螢幕鍵盤一樣可以透過網路維護伺服器,省了一組器材!
  • 網路印表機功能(Canon IP1880)
    • 印表機所有人用一台就夠啦!
    • 舊機再利用
  • 網路磁碟(nfs)的功能作為區網小雲端
    • 以UNIX-LIKE系統遠端看影片、聽音樂都是很容易的事喔。
    • 比方說MACBOOK-PRO
弄好了一定很棒,但想先來休息一下XD
To Be Continued⋯