强行更改linux服务器时间,加强Linux服务器安全的20项建议
一般情況下用 Linux 做桌面在默認(rèn)配置下是很安全的,我在一定程度上同意這個(gè)說法(很值得商榷的話題)。不過 Linux 內(nèi)置的安全模型和工具做得確實(shí)很到位,用戶只需進(jìn)行簡單的調(diào)整和自定義就可以加強(qiáng) Linux 服務(wù)器安全。
與惡意用戶做斗爭對于所有 Linux 系統(tǒng)管理員來說都是一項(xiàng)艱巨的任務(wù),本文我們將介紹如何加強(qiáng) Linux 服務(wù)器安全的 20 項(xiàng)建議,希望對保護(hù)你的系統(tǒng)有所幫助。
1.物理安全
在服務(wù)器 BIOS 中禁用光驅(qū)、軟驅(qū)、U盤等可引導(dǎo)的外部設(shè)備,并啟用 BIOS 密碼及 GRUB 密碼來限制對系統(tǒng)的物理訪問。
2.磁盤分區(qū)
我們可以通過使用不同的分區(qū)來分散存儲數(shù)據(jù)以獲得更高的數(shù)據(jù)安全性,當(dāng)發(fā)生任何災(zāi)難時(shí),由于數(shù)據(jù)是隔離存儲的,會將數(shù)據(jù)損失的幾率降到最低。
3.盡量減少軟件包以減少漏洞
建議管理員盡量避免在 Linux 中安裝非必要的軟件包,而且不要使用來源不明的包,以盡可能的避免程序漏洞。當(dāng)一個(gè)服務(wù)出問題時(shí),很可能會波及到其它服務(wù)甚至整個(gè)系統(tǒng),所以「非必要的服務(wù)就不運(yùn)行」這是一個(gè)鐵則。
對于 CentOS 系統(tǒng)可以使用 chkconfig 來查看運(yùn)行在 runlevel 3 的服務(wù):
/sbin/chkconfig --list |grep '3:on'
一旦發(fā)現(xiàn)有不需要的服務(wù)正常運(yùn)行,可以使用如下命令禁用:
chkconfig serviceName off
對于使用 RPM 包或 DEB 安裝的服務(wù)可以使用 yum 或 apt-get 找出包名稱并用如下命令移除:
yum -y remove package-name
sudo apt-get remove package-name
4.查看網(wǎng)絡(luò)偵聽端口
使用 netstat 命令可以看到什么樣的網(wǎng)絡(luò)應(yīng)用正在偵聽哪些端口,找出不必要的程序之后再用上面的方面來處理。
netstat –tulpn
5.使用安全的遠(yuǎn)程連接(SSH)
Telnet 和 rlogin 都使用明文的協(xié)議,而且已被證實(shí)存在多種已經(jīng)安全漏洞,SSH 是一種安全的協(xié)議,它可以使用加密技術(shù)與服務(wù)器進(jìn)行通訊。
非必要時(shí),不要使用 root 賬戶登錄 SSH,要習(xí)慣使用 sudo 來切換身份。
SSH 22 端口目標(biāo)過于明顯,建議大家改成一個(gè)不常用的高端口并在 vi /etc/ssh/sshd_config 配置文件中至少配置如下選項(xiàng):
#禁用root登錄
PermitRootLogin no
#僅允許特定用戶
AllowUsers username
#SSH協(xié)議版本
Protocol 2
6.保持系統(tǒng)更新
盡量始終保持系統(tǒng)內(nèi)核、應(yīng)用補(bǔ)丁及安全修復(fù)處在最新狀態(tài):
yum updates
yum check-update
7.鎖定定時(shí)任務(wù)
cron 可以指定哪些用戶可以使用,只需將允許的用戶添加到 /etc/cron.allow 或?qū)⒔玫挠脩籼砑拥?/etc/cron.deny 中即可。如果希望禁用所有用戶使用任務(wù)計(jì)劃,只需將ALL添加到cron.deny文件當(dāng)中。
echo ALL >>/etc/cron.deny
8.禁用USB存儲設(shè)備檢測
很多時(shí)候我們都需要禁用 USB 存儲設(shè)備以防數(shù)據(jù)拷出,此時(shí)可以創(chuàng)建一個(gè)/etc/modprobe.d/no-usb文件并填入如下內(nèi)容即可禁用 USB 存儲設(shè)備檢測:
install usb-storage /bin/true
9.啟用SELinux
安全增強(qiáng)型 Linux(SELinux)是在內(nèi)核中提供的強(qiáng)制訪問控制的安全機(jī)制。很多網(wǎng)絡(luò)文章為了方便配置都建議大家禁用 SELinux 功能,我在這里到是建議大家在考慮關(guān)閉 SELinux 前應(yīng)該三思。
SELinux 提供用戶三種基本操作模式:
Enforcing:啟用和執(zhí)行機(jī)器上的 SELinux 策略(默認(rèn)配置)
Permissive:在此種模式下,SELinux 不會強(qiáng)制執(zhí)行系統(tǒng)上的安全策略,只會產(chǎn)生相應(yīng)日志和警告。Permissive 模式在 SELinux 排錯時(shí)經(jīng)常會乃至。
Disabled:禁用 SELinux 功能
如果你想查看當(dāng)前系統(tǒng) SELinux 的狀態(tài)可以使用:
sestatus
如果要從禁用狀態(tài)啟用 SELinux 可以使用:
setenforce enforcing
以上配置只對當(dāng)前系統(tǒng)狀態(tài)有用,重啟會失效。要一勞永逸開關(guān) SELinux 可以更改其配置文件/etc/selinux/config。
10.移除KDE/GNOME桌面
不論你是運(yùn)行 LAMP 的專屬服務(wù)器還是其它類型服務(wù)器,KDE 或 GNOME 這樣 X Window 桌面環(huán)境是沒多大必要使用的,禁用之后可以提高服務(wù)器性能和增強(qiáng)安全性。使用如下命令即可完全卸載:
yum groupremove "X Window System"
11.禁用IPv6
IPv6 目前還沒有大規(guī)模普及,如果你不使用 IPv6 協(xié)議,可以在 /etc/sysconfig/network 配置文件中將其禁用。
NETWORKING_IPV6=no
IPV6INIT=no
12.限制用戶重復(fù)使用舊密碼
很多用戶習(xí)慣在強(qiáng)制定期更換密碼時(shí)重復(fù)循環(huán)使用以前的密碼,這對于服務(wù)器管理員來說是一種非常不好的習(xí)慣。因此建議大家限制用戶重復(fù)使用舊密碼,該功能可以通過 PAM 來實(shí)現(xiàn)。
RHEL/CentOS/Fedora:/etc/pam.d/system-auth
Ubuntu/Debian/Linux Mint:/etc/pam.d/common-password
在上述配置文件中的auth區(qū)塊添加一行:
auth ? ? ? ?sufficient ? ?pam_unix.so likeauth nullok
在password區(qū)塊添加一行:
password ? sufficient ? ?pam_unix.so nullok use_authtok md5 shadow remember=5
配置好后,服務(wù)器會禁止使用最近 5 個(gè)被使用過的用戶密碼。
13.配置密碼過期策略
Linux 中,用戶密碼是被加密存儲到/etc/shadow文件當(dāng)中的,要配置密碼過期的詳細(xì)信息需要用到change命令。例如要查看某個(gè)賬戶的密碼過期日期和時(shí)間,可以使用如下命令:
chage -l username
要更改密碼過期策略可以使用類似如下命令:
chage -M 60 username
chage -M 60 -m 7 -W 7 username
-M 密碼使用最長天數(shù)
-m 密碼使用最短天數(shù)
-W 密碼過期提示天數(shù)
14.手動鎖定或解鎖賬戶
在不從系統(tǒng)中移除賬戶的情況下,對賬戶進(jìn)行鎖定和解鎖是非常有用的一個(gè)安全手段。需要鎖定一個(gè)賬戶時(shí),可以使用如下命令:
passwd -l accountname
賬戶鎖定同樣適用于 root 賬戶,當(dāng)某賬戶被鎖定時(shí)會增加 (!) 字串,賬戶解鎖時(shí)移除 (!) 字串。需要解鎖時(shí)使用如下命令:
passwd -u accountname
15.強(qiáng)制使用強(qiáng)密碼
弱密碼或用生日密碼之類的密碼太容易被字典和社會工程學(xué)攻破了,所以建議大家打開強(qiáng)密碼要求。Linux 中的強(qiáng)密碼要求還是使用 PAM 模塊,只需編輯/etc/pam.d/system-auth文件:
/lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1
16.啟用Iptables
強(qiáng)烈建議大家使用 Iptables 來保護(hù) Linux 服務(wù)器安全,Iptables 可以在不同的鏈上配置不同的規(guī)則來處理數(shù)據(jù)包。
17.在Inittab中禁用Ctrl+Alt+Delete
大多數(shù) Linux 發(fā)行版中按下「Ctrl+Alt+Delete」時(shí)都會重啟系統(tǒng),對于 Linux 生產(chǎn)服務(wù)器來說,這幾乎是一個(gè)白癡設(shè)計(jì)。如果你希望關(guān)閉這個(gè)默認(rèn)重啟功能,可以將/etc/inittab配置文件中的如下兩千注釋掉:
# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
18.查看空密碼賬戶
如果系統(tǒng)中存在有權(quán)限的空密碼賬戶,就相當(dāng)于開了一扇門。所以建議大家仔細(xì)清查一下:
cat /etc/shadow | awk -F: '($2==""){print $1}'
19.忽略ICMP或廣播請求
要忽略 ICMP 或廣播請求我們可以編輯/etc/sysctl.conf配置文件:
net.ipv4.icmp_echo_ignore_all = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
配置文件改好之后使用如下命令載入生效:
sysctl –p
20.定期審查日志
建議大家將日志文件進(jìn)行專門的集中存放和處理,這樣可以比較有效避免入侵者對日志進(jìn)行篡改,下面是 Linux 常見的默認(rèn)日志路徑:
/var/log/message – 系統(tǒng)日志或當(dāng)前活動日志
/var/log/auth.log – 驗(yàn)證日志
/var/log/kern.log – 內(nèi)核日志
/var/log/cron.log – 任務(wù)計(jì)劃日志
/var/log/maillog – 郵件服務(wù)器日志
/var/log/boot.log – 系統(tǒng)啟動日志
/var/log/mysqld.log – MySQL 服務(wù)器日志
/var/log/secure – 包含驗(yàn)證和授權(quán)方面信息
/var/log/utmp或/var/log/wtmp – 登錄記錄文件
相關(guān)主題
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的强行更改linux服务器时间,加强Linux服务器安全的20项建议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 页面加载速度-合并资源文件
- 下一篇: Python导入运行的当前模块报错