伺服器的安全問題並不是很複雜,採取下面的原則阻止最常見的攻擊行為。
經驗豐富的管理員都知道,隨著伺服器數量和使用者的增加,使用者管理成本會原來越大
以下命名以ubuntu為例,其它版本linux會有所不同。
passwd
首先將root密碼改的很複雜,因為你不需要記住它,只需要在安全的地方儲存它即可。
apt-get update
apt-get upgrade
更新軟體源列表,更新軟體包。
安裝Fail2ban
apt-get install fail2ban
fail2ban可以監視你的系統日誌,然後匹配日誌的錯誤資訊(正則式匹配)執行相應的屏蔽動作(一般情況下是調用防火牆iptables屏蔽),如:當有人在試探你的SSH、SMTP、FTP密碼,只要達到你預設的次數,fail2ban就會調用防火牆屏蔽這個IP,而且可以發送e-mail通知系統管理員,是一款很實用、很強大的軟體!
配置登入使用者,假如使用者名稱為deploy
useradd deploy
mkdir /home/deploy
mkdir /home/deploy/.ssh
chmod 700 /home/deploy/.ssh
使用public key認證,更安全,更方便
PublicKey是用來公開的,可以將其放到SSH伺服器自己的帳號中,而PrivateKey只能由自己保管,用來證明自己身份,在伺服器上添加id_rsa.pub內容,並配置許可權。
vim /home/deploy/.ssh/authorized_keys
chmod 400 /home/deploy/.ssh/authorized_keys
chown deploy:deploy /home/deploy -R
測試新使用者&允許Sudo
為登入的使用者佈建sudo密碼
passwd deploy
給deploy使用者配置授權
visudo
#添加如下
root ALL=(ALL) ALL
deploy ALL=(ALL) ALL
啟動或禁止SSH使用者及IP的登入
阻止密碼和root登陸,同時允許指定ip
vim /etc/ssh/sshd_config
#添加如下行
PermitRootLogin no
PasswordAuthentication no
AllowUsers deploy@(your-ip) deploy@(another-ip-if-any)
#修改完成後重啟
service ssh restart
設定防火牆
ubuntu提供了ufw命令,讓防火牆配置更簡單。
ufw allow from {your-ip} to any port 22
ufw allow 80
ufw allow 443
ufw enable
以上根據自己實際需求配置。
自動進行安全更新
安裝unattended-upgrades可以進行自動更新,或者有選擇性的安全更新。
apt-get install unattended-upgrades
vim /etc/apt/apt.conf.d/10periodic
#更新如下內容
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
更新設定檔50unattended-upgrades,只進行安全更新。
Unattended-Upgrade::Allowed-Origins {
"Ubuntu lucid-security";
// "Ubuntu lucid-updates";
};
安裝Logwatch
Logwatch能夠對Linux 的記錄檔進行分析,並自動發送mail給相關處理人員,可定製需求,這樣你可立馬跟蹤和檢測到攻擊行為。
apt-get install logwatch
vim /etc/cron.daily/00logwatch
#添加如下
/usr/sbin/logwatch --output mail --mailto test@gmail.com --detail high
ok,以上配置,你只需花5分鐘,就能讓你的伺服器防禦大部分攻擊並且易於維護