九項(xiàng)實(shí)例技巧幫您保障Linux服務(wù)器安全
譯文【51CTO.com 快譯】任何一套關(guān)鍵性系統(tǒng)都需要高度重視服務(wù)器安全性,特別是在公有云環(huán)境當(dāng)中。在今天的文章中,我們將專(zhuān)注于基本原理與一般性最佳實(shí)踐層面對(duì)此加以解讀。
我在操作系統(tǒng)配置完成之后始終堅(jiān)持執(zhí)行的安全改進(jìn)舉措。
讓我們以Ubuntu 16.04為例:
1.保持內(nèi)核隨時(shí)更新。
環(huán)境雖然不應(yīng)該盲目更新,不過(guò)在剛剛安裝完成的服務(wù)器當(dāng)中,版本更新一般都能夠帶來(lái)更理想的安全成效。
其中一項(xiàng)常規(guī)建議是禁用各項(xiàng)未使用采取行動(dòng)。不過(guò)我個(gè)人非常信任發(fā)行版供應(yīng)商。一般來(lái)講,我認(rèn)為他們給出的默認(rèn)安裝及啟用選項(xiàng)還是相當(dāng)可靠的。
- apt-get -y update
 
2. 重置Root密碼。
我們有時(shí)候需要在ssh無(wú)法起效的情況下訪(fǎng)問(wèn)各虛擬機(jī)的網(wǎng)絡(luò)控制臺(tái),這類(lèi)狀況包括iptables規(guī)則將我們屏蔽、操作系統(tǒng)內(nèi)核出現(xiàn)問(wèn)題或者虛擬機(jī)神秘重啟等等。
- root_pwd="DevOpsDennyChangeMe1"
 - echo "root:$root_pwd" | chpasswd
 
3. 強(qiáng)化SSHD。
在keyfile當(dāng)中僅允許ssh訪(fǎng)問(wèn),這意味著黑客無(wú)法輕松猜到我們的密碼內(nèi)容。使用除端口22之外的其它ssh監(jiān)聽(tīng)端口,這能夠有效避免惡意ssh登錄嘗試。
- # Disable ssh by password
 - sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/g' \
 - /etc/ssh/sshd_config
 - sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' \
 - /etc/ssh/sshd_config
 - grep PasswordAuthentication /etc/ssh/sshd_config
 - # Use another ssh port
 - sshd_port="2702"
 - sed -i "s/^Port 22/Port $sshd_port/g" /etc/ssh/sshd_config
 - grep "^Port " /etc/ssh/sshd_config
 - # Restart sshd to take effect
 - service ssh restart
 
4.利用防火墻限制惡意訪(fǎng)問(wèn)。
這可能是大家應(yīng)當(dāng)采取的最為重要的安全改進(jìn)舉措了。
- # Disable ssh by password
 - sed -i 's/^#PasswordAuthentication yes/PasswordAuthentication no/g' \
 - /etc/ssh/sshd_config
 - sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' \
 - /etc/ssh/sshd_config
 - grep PasswordAuthentication /etc/ssh/sshd_config
 - # Use another ssh port
 - sshd_port="2702"
 - sed -i "s/^Port 22/Port $sshd_port/g" /etc/ssh/sshd_config
 - grep "^Port " /etc/ssh/sshd_config
 - # Restart sshd to take effect
 - service ssh restart
 - # Have a clean start with iptables
 - iptables -F; iptables -X
 - echo 'y' | ufw reset
 - echo 'y' | ufw enable
 - ufw default deny incoming
 - ufw default deny forward
 - # Allow traffic of safe ports
 - ufw allow 22,80,443/tcp
 - # Allow traffic from certain port
 - ufw allow 2702/tcp
 - # Allow traffic from trusted ip
 - ufw allow from 52.74.151.55
 
5.向命令歷史中添加時(shí)間戳。
通過(guò)這種方式,我們能夠查看哪些命令曾在何時(shí)得以執(zhí)行。
- echo export HISTTIMEFORMAT=\"%h %d %H:%M:%S \" >> /root/.bashrc
 
6.生成SSH密鑰對(duì)。
永遠(yuǎn)、永遠(yuǎn)不要在不同服務(wù)器之間共享同一ssh密鑰對(duì)!
- exec ssh-agent bash
 - # General new key pair
 - ssh-keygen
 - # Load key pair
 - ssh-add
 
7.高度關(guān)注var/log。
使用logwatch以自動(dòng)執(zhí)行檢查與分析任務(wù)。這是一套實(shí)用的解析型perl腳本,能夠分析系統(tǒng)日志活動(dòng)并生成報(bào)告。其中需要關(guān)注的重點(diǎn)日志文件包括:
◆/var/log/kern.log
◆/var/log/syslog
◆/var/log/ufw.log
◆/var/log/auth.log
◆/var/log/dpkg.log
◆/var/log/aptitude
◆/var/log/boot.log
◆/var/log/cron.log
◆/var/log/mailog
- exec ssh-agent bash
 - # General new key pair
 - ssh-keygen
 - # Load key pair
 - ssh-add
 - apt-get install -y logwatch
 - # Full check. Takes several minutes
 - logwatch --range ALL
 - # Only check log of Today
 - logwatch --range Today
 
8.運(yùn)行第三方安全檢查工具。
并不是每位用戶(hù)都具備強(qiáng)大的安全知識(shí)儲(chǔ)備。因此最好選擇可靠且多樣化的工具方案。Lynis易于使用且功能可靠——其僅作為單一bash文件存在。
- apt-get install -y lynis
 - # Run lynis to check security issues
 - lynis -c
 
9.適當(dāng)備份無(wú)法恢復(fù)的數(shù)據(jù)。
永遠(yuǎn)要籌備一套B計(jì)劃。作為最后補(bǔ)救手段,其應(yīng)該能夠?qū)⑾到y(tǒng)快速恢復(fù)至新服務(wù)器之上。
原文標(biāo)題:9 Useful Tips For Linux Server Security 作者:Denny Zhang
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】
















 
 
 





 
 
 
 