一、用戶概述
默認狀況下,ubuntu server的root用戶是不啟用的,一般用戶通過在命令前加前綴”sudo”,來暫時獲得管理員權限。隨后會提示輸入password,此password與一般用戶的密碼一樣。也可以通過 sudo –i來將一般用戶提升為超級用戶。
啟用root帳號僅需運行sudo passwd root,然后根據(jù)提示輸入密碼即可激活root.如果要關閉root用戶,僅需運行 sudo passwd –l root即可。
Root帳號的密碼和普通用戶使用sudo的密碼沒有任何聯(lián)系。root帳號和普通帳號的sudo不同之處在于,使用root帳號登陸后權限始終為管理員權限,而普通帳號的sudo,僅在執(zhí)行某一命令時是管理員權限,當執(zhí)行完命令后又會自動降為普通用戶權限。
二、用戶密碼的設置與恢復
使用命令 sudo passwd user-name,然后根據(jù)提示輸入sudo密碼,如果驗證通過,則會提示為user-name輸入新密碼。此命令同樣可以為root設置和恢復密碼。
三、GRUB的安全性
GRUB用于引導系統(tǒng)及進行系統(tǒng)恢復??梢酝ㄟ^對其進行添加操作密碼的方式,來增加其安全性。主要是對”/boot/grub/menu.lst”進行修改。示例如下:
沒有修改前:
default 0 /p>
p>timeout 10 /p>
p>title Ubuntu,kernel 2.6.15-26-server-LAMP /p>
p>root (hd0,2) /p>
p>kernel /boot/vmlinuz-2.6.15-server root=/dev/hda3 ro quiet splash /p>
p>initrd /boot/initrd.img-2.6.15-server /p>
p>savedefault /p>
p>boot
修改后:
default 0 /p>
p>timeout 10 /p>
p>password=12345 /p>
p>title Ubuntu,kernel 2.6.15-26-server-LAMP /p>
p>lock /p>
p>root (hd0,2) /p>
p>kernel /boot/vmlinuz-2.6.15-server root=/dev/hda3 ro quiet splash /p>
p>initrd /boot/initrd.img-2.6.15-server /p>
p>savedefault /p>
p>boot
然后reboot系統(tǒng),待出現(xiàn)GRUB畫面時,將光標移到該選項處,按下‘p’,輸入密碼12345即可。通過這種方式,可以有效地防止通過recovery mode進行惡意破壞,如修改root密碼等。
由于以上方式的密碼是以明文的形式出現(xiàn)在menu.lst中,也具有危險性,因此可采取對其加密的方式。具體如下:
sudo grub-md5-crytp ,然后根據(jù)提示輸入兩遍 12345(請更改為任意字符),之后出現(xiàn)31個字符,記錄下該字符串。將password=12345 修改為password --md5 31位字符串,reboot系統(tǒng)即可。
四、使用救援光碟恢復系統(tǒng)
當忘掉GRUB密碼或因某種原因GRUB無法啟動,此時即可使用救援光碟。將光碟放入CDROM,reboot系統(tǒng),待出現(xiàn)啟動條目時,移動光標至”Resuce broken system”.隨后會自動監(jiān)測系統(tǒng)硬件,如語言種類、網(wǎng)路接口、硬盤等。最后將出現(xiàn)命令行選項:
Execute a Shell in /dev/discs/disc0/part1 /p>
p>Execute a Shell in the installer environment /p>
p>Reinstall GRUB boot loader /p>
p>Choose a different root file system /p>
p>Reboot the system
選擇第一項,隨后進入bash shell。
注意:/dev/discs/disc0/part1 中的part1表示欲恢復的系統(tǒng)安裝的分區(qū),應根據(jù)實際情況選擇。
五、Summary
處于安全考慮:
1 root帳戶應該disable;
2 GRUB應設置MD5密碼;
3 應設置BIOS,使禁止從CD-ROM啟動系統(tǒng)。
六、確保SSH的安全性
SSH對于遠程管理一臺服務器來說是一個好方法。然而,SSH仍然存在著諸多問題。服務器和客戶端的通信是安全的,不過這并不意味著涉及到的主機也是安全的。向外部世界打開一個SSH服務也就意味著允許強力攻擊。
我們可以采取一些極為簡單的方法來真正地強化經(jīng)由SSH的遠程訪問,特別是我們不能將這種服務與源端口的一個有限數(shù)量相聯(lián)系時。
先說一件重要的事情,sshd_config。在Ubuntu中,這通常在/etc/ssh中可以找到,它可以用于配置大量的特性。最簡單的往往是最好的。限制可以通過SSH登錄的用戶是一個首要的原則。這可以用如下兩種方法完成:根據(jù)用戶或者根據(jù)組。AllowGroups允許一個組的任何經(jīng)鑒定的用戶通過SSH訪問服務器。不過,一個更加精細的方法是使用AllowUsers選項。
另一個簡單的方法是將監(jiān)聽端口從22號端口移到某個其它的隨機指定的端口。這就減少了顯示SSHD運行狀態(tài)掃描的可能性。
我們還可以禁用對根的訪問,并禁用口令驗證而只使用密鑰驗證。
下一步就是使用一個稱為Denyhosts的小工具,大家可以從http://denyhosts.sourceforge.net/下載它。我們一定要保證啟用/etc/apt/source.list中的資源,然后鍵入下面的命令:
sudo apt-get update
sudo apt-get install denyhosts
DenyHosts意在由Linux系統(tǒng)管理員運行,以幫助其挫敗對SSH服務器的攻擊(也稱為基于字典的攻擊或強力攻擊)的企圖。
DenyHosts充當著一個對SSH和其它服務的動態(tài)阻擊器,它依靠/etc/hosts.deny和 hosts.allow進行工作,并能夠以動態(tài)方式構建重復地與我們的服務器連接的主機列表。默認情況下,這項服務會阻止來自那些不斷地試圖與我們的主機連接并實施訪問的IP地址源。Denyhosts的處理在/etc/denyhosts.conf中進行配置。
我們還可以通過Iptables行連接速率的限制,而且我們還應該在服務器上部署防火墻。
一旦這些布置停當,我們就會確信自己在一臺面向公眾的主機上擁有了一個更加安全的SSH。