ubuntu 服務(wù)器管理
安裝 Ubuntu 以后,需要對系統(tǒng)的安全性進(jìn)行加固,并在日常使用中時刻關(guān)注系統(tǒng)安全。本篇內(nèi)容包括:日志查看監(jiān)控、加強(qiáng)SSH安全、使用ufw防火墻等。
查看用戶活動
w 當(dāng)前登錄用戶的詳細(xì)狀態(tài)
ac 用戶總的連接時間。從/var/log/wtmp文件獲取信息
last 所有用戶登陸記錄。從/var/log/wtmp文件獲取信息
lastb 所有失敗的、錯誤的登錄
日志查看與監(jiān)控
系統(tǒng)日志
/var/log/auth.log
/var/log/kern.log
/var/log/daemon.log
/var/log/debug
/var/log/dmesg # Kernel Ring Buffer
/var/log/messages
/var/log/syslog
logger ...
logrotate
/etc/syslog.conf
/etc/logrotate.conf
/etc/cron.daily/logrotate
/etc/cron.daily/sysklogd
應(yīng)用日志
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/rkhunter.log
~/.bash_history #bash命令歷史
~/.mysql_history #mysql命令歷史
日志查看
cat 和 grep
tail 和 head
less 和 more
dmesg | less
dmesg | grep pnp | less
grep sshd /var/log/auth.log | less
history # shell命令歷史
faillog # /var/log/faillog
lastlog # /var/log/lastlog
who # /var/log/wtmp
日志監(jiān)控
tail -f example.log #跟蹤文件,Ctrl+C退出
分析系統(tǒng)日志, 可提取并郵件發(fā)送重要信息
sudo aptitude install logwatch
ls -l /usr/share/logwatch/scripts/services
sudo cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
sudo vi /etc/logwatch/conf/logwatch.conf
sudo logwatch | less
屏蔽IP防密碼破解
sudo apt-get install fail2ban
sudo vi /etc/fail2bin/jail.conf
sudo /etc/init.d/fail2ban restart
創(chuàng)建管理帳號,禁用root
創(chuàng)建管理帳號
useradd -m -s /bin/bash abc
gpasswd -a abc sudo #加入sudo組
passwd abc
su - abc
創(chuàng)建管理組
sudo groupadd -r admin
sudo usermod -aG admin YOUR_ADMIN_USERNAME
限制su使用
sudo dpkg-statoverride --update --add root admin 4750 /bin/su
sudo dpkg-statoverride --list
禁用root
sudo passwd -l root
加強(qiáng) SSH 安全
在服務(wù)端生成密鑰
su - abc
# 建立公鑰與私鑰
ssh-keygen -t rsa
# 密鑰文件,可直接回車使用默認(rèn)的文件名
Enter file in which to save the key (/home/abc/.ssh/id_rsa):
# 輸入passphrase,僅供密鑰登錄使用,加強(qiáng)安全,可以為空
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
# 改名為sshd支持的默認(rèn)公鑰文件名
mv ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 設(shè)置授權(quán)公鑰文件權(quán)限,只可以被自己訪問
chmod 600 ~/.ssh/authorized_keys
# 下載私鑰(可遠(yuǎn)程scp獲?。﹦h除備份
rm –rf ~/.ssh/id_rsa
或在客戶端生成密鑰
ssh-keygen -t rsa -C "youremail@example.com"
scp ~/.ssh/id_rsa.pub user@server:/tmp/user.pub 或
cat ~/.ssh/id_rsa.pub
# 服務(wù)端登錄SSH所用帳戶
su - abc
mkdir .ssh
chmod 700 .ssh
vi .ssh/authorized_keys
# 粘貼公鑰到此文件,并保存退出,或
cat /tmp/user.pub >> ~/.ssh/authorized_keys
chmod 600 .ssh/authorized_keys
# 保護(hù)好私鑰(~/.ssh/id_rsa)
修改SSH配置文件
sudo vi /etc/ssh/sshd_config
Port 1234 # 更改端口 1024-65535
PermitRootLogin no # 禁用root登錄
PasswordAuthentication no # 禁用密碼登錄(小心)
:wq 保存退出,重啟 sshd:
sudo service ssh restart
測試SSH登錄
ssh -p 1234 abc@ip # or
ssh abc@ip -i id_rsa -p 1234
提示:PasswordAuthentication no 配置,一定要在生成key并測試成功之后再使用,否則會導(dǎo)致無法登錄。
使用 ufw 防火墻
UFW(Uncomplicated Firewall,簡單防火墻)是用于配置 iptable 的一個簡單接口。iptable 控制 Netfilter,Netfilter 內(nèi)置于內(nèi)核之中。
端口信息查看
less /etc/services #服務(wù)與端口列表
sudo netstat -anpt | grep LISTEN #查看在用端口
安裝配置 ufw
sudo apt-get install ufw
sudo vi /etc/default/ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ls -l /etc/ufw/applications.d/
sudo ufw app list #可用服務(wù)
sudo ufw show #可用命令
網(wǎng)絡(luò)連接管理
sudo ufw [delete] allow 1234/tcp
sudo ufw [delete] allow 80/tcp
sudo ufw [delete] deny ...
sudo ufw show added
sudo ufw enable
sudo ufw status [verbose]
sudo ufw status numbered
sudo ufw delete [number]
ufw 控制
sudo ufw reset
sudo ufw reload
sudo service ufw restart
sudo ufw disable && sudo ufw enable
保護(hù)共享內(nèi)存
攻擊一個運(yùn)行中的服務(wù)(如httpd)經(jīng)常要使用 /dev/shm,修改 /etc/fstab 使其更安全(需要reboot)。
sudo vi /etc/fstab
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0