1.0
作者: Andrew Colin Kissa <andrew [at] topdog [dot] za [dot] net>
最後編輯日期 03/08/2008

nicaliu 發表在 痞客邦 留言(0) 人氣()

譯者:Nica
如果知道一些小技巧的話,Linux 的網路設定可以更簡單、網路更安全! Jack Wallen 分享了一些觀點,讓管理者能夠一一攻破 Linux 網路設定的任務 - 只要稍稍用心就作得到。
網路連線是各方面運算作業之必備,無論是在家或公司,網路連線在運算世界裡的一個定位就是任務失敗的兇手 (deal breaker)【譯註:一般用法譯為交易破壞者】。然而,只要些許協助,Linux 作業系統也能在網路世界裡佔有一席之地 - 不但好用,而且安全。這不代表一般使用者 (有時是水準之上的使用者) 不能利用一些協助。下面這些技巧,應能讓你的 Linux 網路連線設定更順利。
注意:本內容亦提供【 PDF 版本 】。

#1
活用你的 /etc/hosts 檔

hosts 檔是用來指定靜態主機名稱,並提供快速建立網路連線的捷徑。你在 Linux 機器裡首先要完成的工作之一,就是將各個機器加入到 /etc/hosts 檔裡。這麼作可以節省我們打一堆 IP 位址的時間。檔案的位址格式如下:
IP_ADDRESS NICKNAME
例如,若我在備份的地方用了一台機器,它的 IP 位址是 192.168.1.101,可以輸入:
192.168.1.101  backups
這麼一來,假設我要透過 secure shell 連結到那台機器,就只要輸入 ssh -v -l username bacukups 即可建立連結。
【譯註:username 輸入的是你的使用者帳號,backups 為你已經在 hosts 裡指定 IP 的那台主機名稱。】
#2
利用 /etc/hosts.deny 隔絕你不想要的使用者

還有另一個好用的 "hosts" 檔:hosts.deny。此檔可利用客戶端或伺服器端的主機名稱,建立存取控制。這在很多狀況都用得上,可以封鎖正在取得你網路存取控制的黑名單網域名稱,或是封鎖正取得某機器存取權的某位使用者。無論你要怎麼利用它,格式都一樣。
假設你要封鎖網域 bad.domain.name,不讓他們取得機器的存取權。請先開啟 /etc/hosts.deny 檔 (你若不是 root 也要有 sudo 的權限),再在檔案末端加入這個:
All: bad.domain.name
檔案儲存後,就行了。
#3
讓 WICD 解決你的無線災難

有多少次我發現自已正對著伺服器的機架在撞,全都是因為長久以來 Linux 與無線網路就是不合! 不過這很快就要成為過去式了,現今的分支套件,在無線網卡的偵測上已經不太需要花心思,這裡的問題是在加密這件事。
很多 Linux 無線網路工具程式在含括加密功能後都有問題。而 WICD 工具程式就是來解決這個的。現在要連到 WPA 或 WPA2 加密無線網路很簡單,你只要透過 WICD 提供的簡易 GUI 界面,就可以將它從你的煩惱清單勾除。
#4
下載安裝 iptables 的前端操控界面

不能以為只要用了 Linux 就是安全的。你仍需要一些安全性考量,在 Linux 之下,最佳的安全性工具就是 iptables 了。iptables 唯一問題在於操控它的挑戰 (特別是針對新手而言)。幸好,有許多設計精良的 iptables 圖形化前端程式可選擇。最佳選擇之一就是【 Firestarter】  了,這個前端程式讓套用 iptables 成為一個簡單的動作,所以你不必再將安全性議題排除在你的學習曲線之外了。
#5
瞭解命令列工具程式

面對現實吧:若你要用 Linux,總是會遇到必須啟新啟動網路但不想用到 GUI 的狀況吧。在這種特殊狀況下,知道應使用 /etc/rc.d/network restart 就能解決這個問題。當然,這不是唯一的網路命令列工具程式,你還得知道像 dhclint、traceroute、samba、ping,以及 netstat 這些工具程式。
#6
固定 DNS 伺服器位址

有好幾次,我的網路出問題皆肇因於直接指向了一個找不到的 DNS 伺服器位址。為此,我養成一個將我的 DNS 伺服器寫入 /etc/resolv.conf 的習慣。範例格式是這樣:
nameserver IP_ADDRESS
IP_ADDRESS 之處為你名稱伺服器的確切位址。你可以視需求而定,要設幾個就設定幾個名稱伺服器。
#7
安裝 ClamAV

如果有執行郵件伺服器,那防毒就非作不可。即便你的作業系統是 Linux,也瞭解你的郵件伺服器可免除 99.9999999% 的病毒攻擊,但這不表示所有自你伺服器下載郵件的客戶端也能免除。基於此,若你將 ClamAV 這類的防毒軟體裝到 Linux 郵件伺服器裡,你的管理生涯會輕鬆得多。它帶給你心靈上的平靜,及足夠的安全性 - 足以確保你的使用者不會一天到晚來敲門要你解決問題。
#8
知曉如何手動組態 IP 位址

沒錯,是有 GUI 工具可以作這件事,也都作得很好。不過,如果你管理任何作業系統夠久的話,最終會發現,手上有個備胎工具程式來幫助你完成工作絕不是件壞事。以 Linux 網路連結而言,最佳備胎工具程式就是 ifconfig 命令了。不單單只是因為這個命令可以回傳你網路卡的資訊給你 (在未加任何參數下),它也可以讓你手動設定網路卡組態。就像這麼作:
/sbin/ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
當然,你將加入的會是你特定的資訊,就類似上述組態。
【譯註:/sbin/ifconfig 為命令的絕對路徑;eth0 為裝置名稱;192.168.1.0 為該裝置-網路卡的 IP 位址;netmask 255.255.255.0 指的是子網路遮罩設定為 255.255.255.0;broadcast 192.168.1.255 指的是廣播位址設定為 192.168.1.255】
#9
瞭解你的 /etc/interface (Ubuntu) 或 /etc/sysconfig/network=scripts (Red Hat/Fedora) 檔

這個(或這些) 檔案存放的是各個網路介面的資訊,格式會像這樣:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
auto eth2
iface eth2 inet dhcp
auto ath0
iface ath0 inet dhcp
auto wlan0
iface wlan0 inet dhcp
如上所示,我所有的介面都設定為 dhcp 指定,這是我筆記電腦裡的網路設定,由於我會帶著它四處跑,所以設為 dhcp 是必要的。但若我只在某個地方使用有線的介面呢? 在這種情況下,我可以在 eth0 介面下,設定固定的網路資訊,像這樣 (以 Ubuntu 為例):
【譯註:設為 dhcp 表示由網域裡的 dhcp 伺服器為你指定網路連線的相關設定。】
iface eth0 inet static
        address 192.168.1.10
        netmask 255.255.255.0
        broadcast 192.168.1.255
        network 192.168.1.104
        gateway 192.168.1.1
 
或者 (以 Red Hat/Fedora 為例):
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.10
NETMASK=255.255.255.0
NETWORK=192.168.1.104.0
ONBOOT=yes
再重複一次,在這裡你必須插入適於你網路與裝置的特定資訊。
#10
別忘了在架設 Samba 時設定 smbpasswd

幾乎每次使用者來找我問 Samba 時,問題都出在他們沒有新增使用者,並用 smbpasswd 為他們設定密碼。沒作這件事,使用者就不能對 Samba 伺服器進行認證。使用 smbpasswd 為新的使用者設定密碼時,必須加入 -a 切換,像這樣:
smbpasswd -a USERNAME
在按完 Enter 後,你將被詢問使用者的密碼 (會問兩次)。請注意:你必須擁有 root 的存取權 (或 sudo) 才能作這些事。
這 10 個速成小技巧應能幫助你在 Linux 網路連線的各方面設定上更得心應手。你永遠不會知道何時需要仰賴命令列、何時需要圖形前端界面程式協助你設定 iptables。而今,只要你需要,就知道應如何完成它了。
原文出處:
10 quick tips to make Linux networking easier
如有版權問題,請來信 (nicaliu at gmail dot com) 告知,謝謝。

nicaliu 發表在 痞客邦 留言(0) 人氣()



譯者:Nica
clive 乃開發源碼之命令列工具程式,用途為影像檔解壓縮,它也能規避影像共享網站對於檢視使用者貢獻之內容的 Adobe Flash 需求。Clive 支援的有 Youtube, GoogleVideo, Dailymotion, metacafe, Guba, Sevenload, Myvideo。它將下載的 Flash Video 轉檔為 MP4,就不需要用 Flash Video Player 才能看了。
感謝推薦此工具的 Pascal Bleser  。
安裝 Clive
Packman 以 YaST Meta Packager 檔存放,提供"隨點即裝"(1-click installation) 的功能;此功能在 openSUSE 11.0, openSUSE 10.3, openSUSE 10.2, SuSE 10.1, SuSE 10.0 這些作業系統下皆支援。
點選 「packman.links2linux.org/install/clive」

nicaliu 發表在 痞客邦 留言(0) 人氣()

1.0 版

作者: Andrew Colin Kissa <andrew [at] topdog [dot] za [dot] net>

最後編輯日期 03/08/2008

譯者:Nica

nicaliu 發表在 痞客邦 留言(0) 人氣()


承前文:【自動備份 @ Linux -- Part I】
四、執行 ssh-agent 讓機器自動存取
ssh-agent 程式扮演的是守門員的角色,在需要的時侯,以安全的方式提供存取所需的安全金鑰。ssh-agent 啟動後將於背景執行,供其它 OpenSSH 應用程式 - 像是 ssh 與 scp 程式使用。這樣的作法可令 ssh 程式要求一個已經加密後的金鑰,而無須每次皆向使用者要求提供私密金鑰的安全 passphrase。
ssh-agent 執行時將產生以下輸出:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 7. ssh-agent in action
   [offsite]$ ssh-agent
   SSH_AUTH_SOCK=/tmp/ssh-XX1O24LS/agent.14179; export SSH_AUTH_SOCK;
   SSH_AGENT_PID=14180; export SSH_AGENT_PID;
   echo Agent pid 14180;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
我們可以利用 eval 命令,指定 shell 執行 ssh-agent 所顯示的輸出指令:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 [offsite]$ eval `ssh-agent`
Agent pid 14198
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
eval 會要求 shell 執行由 ssh-agent 程式所產生的命令,請務必注意這裡使用的是反引號字元 (`),而不是單引號。執行 eval `ssh-agent`  會回傳代理程式的程序辯識碼。在執行過程的背後,SSH_AUTH_SOCK 與SSH_AGENT_PID 這兩個 shell 變數將 export 出來為可用狀態,你可以執行下面指令查看它們的值:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 [offsite]$ echo $SSH_AUTH_SOCK
/tmp/ssh-XX7bhIwq/agent.14197
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(註:反引號字元 ` 指的是與鍵盤上的「 ~ 」同屬一個鍵的那個符號。)
$SSH_AUTH_SOCK ( SSH Authentication Socket 的縮寫 ) 指的是本地端 socket 的位置,這是應用程式用來與 ssh-agent 交談所用。為確保 SSH_AUTH_SOCK 與 SSH_AGENT_PID 變數要使用時皆已註冊過,請將 eval `ssh-agent` 這段語法加在你的 ~/.bash_profile 裡。
ssh-agent 於背景執行後,欲查看請使用 top 與 ps 命令。
到此,我們已經準備好透過 ssh-agent 分享 passphrase 了。接下來就是使用 ssh-add 這個程式,將我們的 passphrase 加入 (傳送) 給執行中的 ssh-agent 程式。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 8. ssh-add for hassle-free login
   [offsite]$ ssh-add
   Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase)
   Identity added: /home/accountname/.ssh/id_dsa
   (/home/accountname/.ssh/id_dsa)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
如今當我們存取 server1,不會再被提示要求 passphrase 了:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 [offsite]$ ssh accountname@server1.com
[server1]$ exit
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
若你有所懷疑,可以試試砍掉 ssh-agent 的程序,再連接一次 server1,這麼一來你就會發現 server1 會向你要私密金鑰的 passphrase 了:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 [offsite]$ kill -9 $SSH_AGENT_PID
[offsite]$ ssh accountname@server1.com
Enter passphrase for key '/home/accountname/.ssh/id_dsa':
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
五、keychain 可以簡化金鑰的存取
至此我們已經學到數個 OpenSSH 程式 ( ssh, scp, ssh-agent 以及 ssh-add ),並新建/安裝完私密與公開金鑰,啟動安全、自動的登入程序了。你會發現在這有很多的步驟都只需要作過一次就可以,像是建立金鑰安裝它們、讓 ssh-agent 能透過 .bash_profile 裡的設定執行。
較不完美的就是 ssh-add 必須在我們每次簽入 offsite 的機器就執行一次,且 ssh-agent 無法立即與我們自動化備份所要用到的 cron 排程程序相容。 cron 程序無法與 ssh-agent 溝通的原因在於 cron job 乃以 cron 的子程序執行,但它不繼承 $SSH_AUTH_SOCK 這個 shell 變數。
幸好還有一個解決方案可以解決這裡 ssh-agent 與 ssh-add 的關連性問題,還能讓我們得以透過 cron 將所有必須的安全性備份的程序全部自動化。在 2001 年所推出的 OpenSSH key management,Daniel Robbins 將此 shell script 稱之為 keychain,此乃 ssh-add 與 ssh-agent 的前端程式,能簡化整個無須密碼介入的程序。keychain 經過時間的淬練,現由 Aron Griffis 進行維護,截至 2004 年 6 月 17 日,已釋出至 2.3.2-1 版。
keychain 看起來是一套有點大型的 shell script,不過一個好的 script 本來就應該含括很多的錯誤檢查、豐富的說明文件,以及完整的跨平台程式碼。
(註:你可以到【keychain】這個網站下載它。)
當你下載並安裝完 keychain 後,你會發現它非常容易上手。只要輕鬆登入每台機器,將下列兩行加進它們的 .bash_profile 裡:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 keychain id_dsa
. ~/.keychain/$HOSTNAME-sh
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
第一次登入回每一台機器時,keychain 都會向你要求 passphrase,不過它不會在接下來的每一次登入都跟你要 passphrase - 除非那台機器重新開機。更棒的是:cron 現在已經能夠使用 OpenSSH 的指令,讓你在不需要使用 passphrase 與機器互動的情況下,進行安全的遠端存取了。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 9. Initializing keychain on each machine
   KeyChain 2.3.2; http://www.gentoo.org/projects/keychain
   Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the
   GPL
   * Initializing /home/accountname/.keychain/localhost.localdomain-sh
   file...
   * Initializing /home/accountname/.keychain/localhost.localdomain-csh
   file...
   * Starting ssh-agent
   * Adding 1 key(s)...
   Enter passphrase for /home/accountname/.ssh/id_dsa: (enter passphrase)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
六、將備份程序寫成 script
接下來的工作就是建立一些 shell script 了,用 script 來為你完成必要的備份作業。我們的目標是要完成 Server1 與 2 完整的資料庫備份。在本範例中,每台伺服器皆執行 MySQL 資料庫伺服器,而我們也將使用 mysqldump 命令列工具,將一些資料庫表單匯至 SQL 輸入檔。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 10. The dbbackup.sh shell script for server 1
   #!/bin/sh
   # change into the backup_agent directory where data files are stored.
   cd /home/backup_agent
   # use mysqldump utility to export the sites database tables
   mysqldump -u sitedb -pG0oDP@sswrd --add-drop-table sitedb --tables
   tbl_ccode tbl_machine tbl_session tbl_stats > userdb.sql
   # compress and archive
   tar czf userdb.tgz userdb.sql
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在 server2 我們也置入類似的 script 備份站台資料庫裡的那些表單。每一個 script 皆須設定為可執行:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 [server1]:$ chmod +x dbbackup.sh
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
完成後 server1 與 2 上的 dbbackup.sh 檔後,回到 offsite date server,我們將在那裡建立呼叫遠端 dbbackup.sh script 的 shell script,以便開始進行壓縮檔資料檔 (.tgz) 的傳輸。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 11. backup_remote_servers.sh shell script for use on the offsite data server
   #!/bin/sh
   # use ssh to remotely execute the dbbackup.sh script on server 1
   /usr/bin/ssh backup_agent@server1.com "/home/backup_agent/dbbackup.sh"
   # use scp to securely copy the newly archived userdb.tgz file
   # from server 1.  Note the use of the date command to timestamp
   # the file on the offsite data server.
   /usr/bin/scp backup_agent@server1.com:/home/backup_agent/userdb.tgz
   /home/backups/userdb-$(date +%Y%m%d-%H%M%S).tgz
   # execute dbbackup.sh on server 2
   /usr/bin/ssh backup_agent@server2.com "/home/backup_agent/dbbackup.sh"
   # use scp to transfer transdb.tgz to offsite server.
   /usr/bin/scp backup_agent@server2.com:/home/backup_agent/transdb.tgz
   /home/backups/transdb-$(date +%Y%m%d-%H%M%S).tgz
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
backup_remote_servers.sh 使用 ssh 命令執行遠端伺服器裡的 script。由於我們建立了無須密碼的存取方式,ssh 便能夠從 offsite server 上,要求 server1 與 2 執行命令。整個身份認可的程序現已完全自動化,感謝有 keychain !
七、排程
最後的工作就是呼叫排程工作執行 offsite 資料儲存伺服器上的 backup_remote_servers.sh shell script 了。我們會加兩項到 cron 排程伺服器,要求它在每天 3:34 am 以及 8:34 pm 的時侯執行備份 script。於 offsite 伺服器上呼叫 crontab 程式編輯選項:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 [offsite]:$ crontab -e
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
crontab 會呼叫預設的編輯程式 - 這在 VISUAL 或 EDITOR 的環境變數裡已指定。接下來加入這兩行後即可關閉檔案。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 12. Crontab entries on the offsite server
   34 3 * * * /home/backups/remote_db_backup.sh
   34 20 * * * /home/backups/remote_db_backup.sh
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
crontab 的設定行列可分為兩個段落:時間區段,接著是命令區段。時間區段的各個欄位皆有其意義,用以指定何時執行命令區段裡的指令:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 13. Crontab format
          +---- 分鐘
          | +----- 時
          | | +------ 日
          | | | +------ 月
          | | | | +---- 週
          | | | | | +-- 執行之命令
          | | | | | |
         34 3 * * * /home/backups/remote_db_backup.sh
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
八、確認備份的動作
你應該養成定期檢查備份的習慣,以確保程序確切運作。自動化的程序可省去日常單調沉悶的一些工作,但也別因此偷懶 !
也可以考慮加一條 cron job 提醒你自已至少一個月檢查一次備份的資料。除此之外,也建議你每隔一段時間就變更你的安全性金鑰,同樣地,你也可以設定 cron job 提醒你作這件事。
九、其它的安全性注意事項
為了更安全,建議你在每台機器上安裝入侵偵測系統 Intrusion Detection System (IDS),例如 Snort。它可以提醒你是否機器發生被入侵的情況。
原文參考:【Automate backups on】
如有版權問題,請來信 (nicaliu at gmail dot com) 告知,謝謝。

nicaliu 發表在 痞客邦 留言(3) 人氣()


一、簡單備份觀念
++++++++++++++++++++++++++++++++++++++++++++++++
Listing 1. The arc shell script
   #!/bin/sh
   tar czvf $1.$(date +%Y%m%d-%H%M%S).tgz $1
   exit $?
++++++++++++++++++++++++++++++++++++++++++++++++
此 script 接收單一的檔案或目錄為參數,建立一個壓縮後的檔案,檔名則以日期為元素。
date 命令嵌入了日期與時間,可幫助你管理檔案。這裡用到秒的單位或許有點誇張,不過你可以自已 man date,決定使用的方式。如果你的命令不加 -v,tar 就會默默作完它的工作不顯示額外資訊。
假定你要打包 beoserver 這個目錄:
++++++++++++++++++++++++++++++++++++++++++++++++
Listing 2. Archiving the beoserver directory
   $ ls
   arc  beoserver
   $ ./arc beoserver
   beoserver/
   beoserver/bookl.dat
   beoserver/beoserver_ab_off
   beoserver/beoserver_ab_on
   $ ls
   arc  beoserver  beoserver.20040321-014844.tgz
++++++++++++++++++++++++++++++++++++++++++++++++
二、進階備份
簡單備份雖然有用,但仍是得手動進行備份的動作。以公司行號來說,建議你要經常的備份、要置放在多個媒體裡、要收放在不同的地理位置。目的就是要避免仰賴單一媒體或單一位置。
這篇文章將規劃,以一台 administator 的機器透過 internet 連上帶有 DB 的 server1 與 server2,另有一台遠端的 offsite storage server 相互連接。
Server 1 與 Server 2 要備份的檔案都會以安全的方式傳送至 offsite storage server,整個備份過程無須人工/人力的介入。此處將使用標準工具,包括部份 Open Secure Shell 工具組 (OpenSSH)、tar 打包工具、cron 工作排程。計劃將使用 cron 排程,透過 shell 與 secure shell copy (scp) 自動化檔案的傳輸。
三、利用公開/私密金鑰,讓遠端存取動作更安全
在數位安全的世界裡,金鑰 (key) 指的是一段資料,以此加密/解密其它的資料。公開與私密金鑰最棒的設計就在於用公開金鑰加密的資料只有與之相關的私密金鑰才解得開。在本文就是以建立與使用公開/私密金鑰來建立一個高安全性的分散式備份解決方案。
在此解決方案裡的每一台機器都必須跑 OpenSSH secure shell service (sshd),其通訊埠 22 須能通過所有居中的防火牆。
最終,是要提供一個無須手動提供密碼就能達成安全性存取的解決方案,不過若你覺得最簡單的方式就是無須提供密碼,這:萬萬不可啊! 相對地,我們在這使用的方式會花費比較多的時間,建立一套提供所有便利性的 passphraseless 帳號系統,而這麼作其實是具有高度安全性的。
(註:passphraseless 查到的中譯為:無口令,指的是不需要密碼或字串。)
首先,確認所有系統皆已安裝 OpenSSH,並瞭解其安裝版本:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$ ssh -V
OpenSSH_3.5p1, SSH protocols 1.5/2.0, OpenSSL 0x0090701f
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ssh -V 是我們在命令列所下的指令。OpenSSH 開頭的行列為回應的版本資訊,若此處回覆的版本大於 2.x,那麼就可行了! 相對的,若是 2.x 之前的版本,我們會建議你更新到最近一次釋出的穩定版 (stable release),這對安全性相關軟體而言是很重要的。
接下來,使用有權限存取 server 1 與 server 2 的帳號,登入 offsite storage server 的機器。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
$ ssh accountname@somedomain.com
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
登入後,使用 ssh-keygen 程式,指定 -t dsa 選項建立一對公開/私密金鑰。-t 為必要選項,它是用來指定我們所要產生之金鑰的型態,此處使用的 Digital Signature Algorithm (DSA) 可用於較新的 SSH2 通訊協定,你可以參考 ssh-keygen的 man page 瞭解更多資訊。
 
執行 ssh-keygen 的過程中,在要求你輸入 passphrase 前會提示詢問金鑰的存放位置,你只要按下 【Enter】 ,套用 ssh-keygen 程式為你建立的隱藏目錄 .ssh 即可,此時將產生兩個檔案:公開金鑰檔與私密金鑰檔。
(註:passphrase 指的是用來存取電腦系統、程式或資料的一串字)
需留意的一點是:當 ssh-keygen 提示你輸入 passphrase ,而你只是簡單按下 【Enter】 也是可行的,只是這時 ssh-keygen 為你產生的是一個未加密過的金鑰,這樣太不安全了 !! 所以當要求輸入 passphrase 時,請確認你輸入的是一個合理的、長串的、記得住的字串訊息,它可以包含字母與數字字元,請不要簡單輸入一個密碼字串就了事。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 3. Always choose a good passphrase
   [offsite]:$ ssh-keygen -t dsa
   Generating public/private dsa key pair.
   Enter file in which to save the key (/home/accountname/.ssh/id_dsa):
   Enter passphrase (empty for no passphrase): (輸入 passphrase)
   Enter same passphrase again: (輸入 passphrase)
   Your identification has been saved in /home/accountname/.ssh/id_dsa.
   Your public key has been saved in /home/accountname/.ssh/id_dsa.pub.
   The key fingerprint is:
   7e:5e:b2:f2:d4:54:58:6a:fa:6b:52:9c:da:a8:53:1b accountname@offsite
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
由於 ssh-keygen 產生的隱藏檔為 . 開頭的目錄,你在 ls 時要加上 -a 才看得到:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[offsite]$ ls -a
. .. .bash_logout .bash_profile .bashrc .emacs .gtkrc .ssh
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
進 .ssh 目錄看看裡頭有什麼:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 [offsite]$ cd .ssh
[offsite]$ ls -lrt
id_dsa id_dsa.pub
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
此時在 .ssh 目錄下我們已擁有了私密金鑰 (id_dsa) 與公開金鑰 (id_dsa.pub)。你可以用文字編輯 vi 或 emcacs 或者簡單的 less 或 cat 命令查看它的內容。你會發現這裡面的內容是以 base64 編碼的。
接下來就是將公開金鑰複製並安裝至 server 1 與 2 的時侯了。不要使用 ftp ! 請用安全的複製程式將公開金鑰傳送至遠端系統:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 4. Installing the public keys on the remote servers
   [offsite]$ scp .ssh/id_dsa.pub accountname@server1.com:offsite.pub
   accountname@server1.com's password: (輸入密碼,而不是剛剛那個新的 passphrase!)
   id_dsa.pub 100% |*****************************| 614 00:00
   [offsite]$ scp .ssh/id_dsa.pub accountname@server2.com:offsite.pub
   accountname@server2.com's password: (輸入密碼,而不是剛剛那個新的 passphrase!)
   id_dsa.pub 100% |*****************************| 614 00:00
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
安裝好新公開金鑰後,我們就可以使用剛剛建立公開/私密金鑰的那組 passphrase 簽入每台機器了。之後,登入每台機器,將 offsite.pub 檔的內容,添增到一個叫 authorized_keys 的檔案尾端,authorized_keys 就存放在各台遠端機器的 .ssh 目錄下。你可使用文字編輯程式或簡單的用 cat 命令就完成這件事:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 5. Add offsite.pub to your list of authorized keys
   [offsite]$ ssh accountname@server1.com
   accountname@server1.com's password: (enter password, not new
   passphrase!)
   [server1]$ cat offsite.pub >> ./ssh/authorized_keys
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
接下來的動作就牽涉到一些安全性的觀念了。首先,將 .ssh 目錄的權限改到只有擁有者可以讀、寫與執行。然後確保 authorized_keys 這個檔只有擁有者可以存取,最後移除先前上傳的 offsite.pub 金鑰檔,因為已不再需要它了。存取權的確認非常重要,因為 OpenSSH 伺服器會拒絕使用非安全存取權限的金鑰。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listing 6. Changing permissions with chmod
   [server1]$ chmod 700 .ssh
   [server1]$ chmod 600 ./ssh/authorized_keys
   [server1]$ rm offsite.pub
   [server1]$ exit
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
也在 server 2 完成上述動作後,就可以回到 offsite storage 系統去測試新的 passphrase 型態存取方式。你可以在 offiste 伺服器上,輸入:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 [offsite]$ ssh -v accountname@server1.com
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
用 -v 選項可以在確認此帳號能否透過新的 passphrase 存取遠端伺服器時,看到除錯的訊息。除錯的輸出訊息不但會顯示重要資訊,還能讓你更進一步瞭解認證程序是如何運作。不過之後作連結的動作就不需要用到 -v 了。
接下來的主題:
四、使用 ssh-agent 讓機器自動存取
五、keychain 可以簡化金鑰的存取
六、將備份程序寫成 script
七、排程
八、確認備份的動作
九、其它的安全性注意事項
【自動備份 @ Linux -- Part II】
原文參考:

nicaliu 發表在 痞客邦 留言(0) 人氣()



版本:1.0
作者: Falko Timme <ft [at] falkotimme [dot] com>
最後編輯:06/26/2008
本指導手冊旨在說明建置提供所有 IPS 及網站站主所有服務之 CentOS 5.2 伺服器的方式,使用元件包括了 Apache 網頁伺服器 ( 啟用 SSL 功能 )、提供 SMTP-AUTH 與 TLS 功能的 Postfix 郵件伺服器、BIND DNS 伺服器、Proftpd FTP 伺服器、MySQL 伺服器、Dovecot POP3/IMAP、Quota、Firewall (防火牆) 等等。這篇文章以 CentOS 5.2 的 32 位元版為背景撰寫,不過要套用在 64 位元的版本上,也只需作小小修改即可。
我將使用下列軟體:
.網頁伺服器:Apache 2.2 with PHP 5.1.6
.資料庫伺服器: MySQL 5.0
.郵件伺服器:Postfix
.DNS 伺服器:BIND9 (chrooted)
.FTP 伺服器: Proftpd
.POP3/IMAP 伺服器: Dovecot
.網站統計功能軟體 Webalizer
這麼作就可以產生一套穩健的系統,如果你喜歡,也可以安裝自由/免費的網站管理控制介面 ISPConfig (http://www.ispconfig.org/)。
要說在前頭的是:本文內容並非建置此類系統唯一方式。有很多方法能達成同樣目的,只是我是這樣作的而已,當然,我也不保證這樣的方式一定適合你。
一、必要條件
要安裝這樣的系統,你得:
.自最接近你的映射站台 ( 在 http://isoredirect.centos.org/centos/5/isos/i386/ 裡可找到映射站台清單 ) 下載 CentOS 5.2 DVD 或六片 CentOS 5.2 的 CD。
.快速的網路連結
二、準備動作
本手冊中,我使用主機名稱 server1.example.com,將之 IP 位址設定為 192.168.0.100、閘道器為 192.168.0.1。此設定可能與你不同,請將之置換為適當的設定。
三、安裝基本系統
使用第一片 CentOS 5.2 CD 或 CentOS 5.2 DVD 開機,然後在開機提示下,按 Enter 鍵。
參考圖示:http://images.howtoforge.com/images/perfect_server_centos_5.2/1.png
這個過程可能會花較長的時間測試你的安裝媒體,所以我們在此選擇跳過此測試:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/2.png
CentOS 安裝程式的歡迎畫面出現後,按【Next】:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/3.png
接下來選擇你的語系:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/4.png
選擇鍵盤配置:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/5.png
我將 CentOS 5.2 安裝在一個全新的系統上,因此當它問我是否初始化此磁碟、抹除所有資料 (Would you like to initialize this drive, erasing ALL DATA?) 時,我的回答是【Yes】:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/6.png
至此,到了必須選擇此次安裝的磁碟分割規劃方式的時侯了。為了省事,我選擇移除選定之磁碟中的所有 linux 分割區,並建立預設的配置方式 (Remove linux partitions on selected drives and create default layout)。這麼的結果將產生一個小的 /boot 、大的 / 分割區,以及 swap 分割區。當然,你有權決定你所想要的分割方式,選擇完成後按【Next】即可:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/7.png
回答下列問題 (你確定要這麼作? Are you sure you want to do this?) - 按下【Yes】:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/8.png
接下來的網路設定裡,預設設定為透過 DHCP 為網路介面進行組態,但我們現在要安裝的是伺服器,所以使用固定 IP 位址會比較好…請點選畫面右上的【Edit】:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/9.png
在跳出來的視窗中,將「使用動態 IP 組態 (DHCP) (dynamic IP configuration (DHCP)) 與啟用 IPv6 支援 (Enable IPv6 support) 」的選項取消勾選,再為你的網卡設定固定 IP 位址 (在本手冊中,我使用 IP 位址 192.168.0.100 以利說明 ),並輸入確切的網路遮罩 (例如255.255.255.0,若你不確定這是不是正確的值,這個網站 http://www.subnetmask.info/ 或許能幫上你的忙)
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/10.png
手動設定主機名稱,例如 server1.example.com,然後輸入閘道器 (例如 192.168.0.1) 以及兩台 DNS 伺服器 (例如:213.191.92.86 與145.253.2.75):
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/11.png
選擇你的時區:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/12.png
給 root 設定密碼:
參考圖示:
http://images.howtoforge.com/images/perfect_server_centos_5.2/13.png
完整文章參考:
    * The Perfect Server - CentOS 5.2 - Page 2
    * The Perfect Server - CentOS 5.2 - Page 3
    * The Perfect Server - CentOS 5.2 - Page 4
    * The Perfect Server - CentOS 5.2 - Page 5
    * The Perfect Server - CentOS 5.2 - Page 6
    * The Perfect Server - CentOS 5.2 - Page 7
本文譯自 http://www.howtoforge.com/perfect-server-centos-5.2 (原文出處)

nicaliu 發表在 痞客邦 留言(2) 人氣()


Control Your Linux Server Remotely with GnuPG, procmail, and PHP
建構一套機制,讓你能在安全的前提下,透過 email 與 Linux 伺服器進行交談 - 只要有 email 用戶端程式、GunPG、procmail 以及 PHP。
這樣的狀況你遇過幾次:想存取遠端伺服器,但因為它藏在防火牆後頭而無法作業 ? 當我需要存取連接在 Internet 上的 Linux 伺服器時,就常遇上這樣的狀況,所以我想要有一套系統,可透過遠端簡單 email 的方式,起始我伺服器的控管作業。
當然,這個解決方案的必要條件就是:它必須是安全的。伺服器必須只回應經過辯識與認可的傳送者 (sender);傳送到伺服器端的命令及其對應的相關輸出訊息,都必須透過線路以加密的型式傳送。為達成此安全性需求,我用的是自由/免費的 GNU Privacy Guard 以及一些非對稱的加密技術 ( 見 Sidebar 1. Asymmetric Cryptography in This Solution  )。
GnuPG 乃為 OpenPGP 安全性軟體的開放源碼應用,任務在執行訊息的加密,我套用的是 GnuPG 裡免專利權的演算法 - ElGamal 加密系統。
本文旨在說明如何使用我這樣的系統,執行遠端伺服器控管,以批次模式,使用簽章且加密後的 email 達成此目的。
此處使用虛構的認證後 email sender ( sender@example.com ) 以及遠端範例伺服器 ( machine@example.com ) 提供予 sender 使用。伺服器執行的是 Debina Linux。
大致程序如下:
下面的幾個步驟即為透過 email 控制伺服器的程序:
一、建立完整的認可指令傳送之傳送者清單 ( 例如:sender@example.com )
二、讓傳送者產生透過 GnuPG 作成的私有/公開金鑰組。
三、使用 GnuPG 產生伺服器的私有/公開金鑰組 - 裡頭需含括 email address machine@example.com
四、在伺服器匯入傳送者的公開金鑰、在傳送者處匯入伺服器的公開金鑰。
五、讓傳送者將要傳至遠端伺服器的命令簽章並加密,將之嵌入至 email 裡,然後傳送至伺服器 address。
六、讓伺服器下載 email 訊息,並透過下面這樣的 script 程序處理:

nicaliu 發表在 痞客邦 留言(0) 人氣()



DiDerWii
http://diderwii.wow-jnt.net/
一個走到哪拍到哪的手機程式
一個炫耀用的定位程式
一個吃喝玩樂不可或缺的好幫手
有了 Google Android
DiDerWii 將更發光發熱!!!!

nicaliu 發表在 痞客邦 留言(2) 人氣()

---- 安全化 Linux 桌面環境的十個小技巧
一應俱全的 Linux 桌面環境,其安全性已遠高於其它選擇
本篇所提及的安全性層級無須透過傳統保全/安全化軟體或技巧才能達成;有時侯,安全性的意義,指的就是我們最容易忘記的那些。
或許你會發現這些建議不過都是些基本常識,也可能你會發現這些安全性議題是你從未曾想過的。若你是 Linux 新手,這裡會是個很好的開始 - 可以讓你有個美好的 Linux 體驗。
以下就是十個確保 Linux 桌面環境安全的步驟。
一、鎖定螢幕與登出是很重要的事
二、隱藏檔案與資料夾是個特效藥

nicaliu 發表在 痞客邦 留言(2) 人氣()


摩托羅拉悄悄推出三隻以 Linux 為作業系統的 PDA 手機。現在在中國可以使用,亦通過 FCC 認可,可用於美國。MotoMing a1600 與 a1800 為較 a1200 高階的版本,而 a810 則為 Ming 系列新加入的低階機種。
新 Ming 系列手機延續了 Ming a1200 的熱度,據 Canalys study 所示,光 2006 年第二季就賣出了百萬隻以上。雖然正式的版本只在亞洲發售,但未鎖碼的 a1200 多年來在美國的 eBay 買家心目中已成為主流商品了,因為這隻手機所提供的智豐手機功能套件,比 Motorola 針對美國市場所提供的 Linux 手機還要豐富。
詳細內容/原文出處:http://www.linuxdevices.com/news/NS8225433949.html
MotoMing a1600 與 a1800 功能如下:
    * Display -- 2.4-inch TFT; 262K colors; 240 x 240 normal resolution; 240 x 320 full-screen
    * Multimedia -- video capture at about 15fps; playback of MPEG4/H.263 at 39fps; video streaming/program download
    * Web browser -- Opera browser, supporting SMS, MMS, and EMS/WAP 2.0
    * MicroSD -- 1 x slot, up to 4GB storage
    * USB -- 1 x micro-USB connector
    * Bluetooth -- Class 2; supports A2DP profile
    * GPS -- AGPS/GPS with mapping app
    * Camera -- 3-megapixels with 8x zoom; CMOS AF with macro capacity; LED flash
    * OCR -- handwriting recognition and onboard camera scans; business card
      reader
    * Other features -- FM radio; talking dictionary; MotoSync for contacts/calendar; alarm clock, calculator, Java ME games
    * Dimensions -- 3.8 x 2.0 x 0.7 inches (95.5 x 52.3 x 17.5mm); 82 cc
    * Weight -- 4.2 oz. (120g)
    * Software -- Java ME; CLDC 1.1 and MIDP 2.0 compliant
    * Operating system -- Linux
點【這裡 】 看 a1600

nicaliu 發表在 痞客邦 留言(1) 人氣()


快到 【這裡】下載 Firefox 3
一起創金氏紀錄吧
你也可以從尼卡首頁的火狐小圖點進企!~
稍早,美國 Mozilla 網站的小小問題 delay 了 Firefox 應有的 release 時間
尼卡在
【Firefox 3 Is Given to the World--Or Maybe Not

nicaliu 發表在 痞客邦 留言(0) 人氣()

1 2 3
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。