這篇文章主要為大家展示了“Linux服務器如何實現(xiàn)安全初始化Shell腳本”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Linux服務器如何實現(xiàn)安全初始化Shell腳本”這篇文章吧。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,隆德企業(yè)網(wǎng)站建設,隆德品牌網(wǎng)站建設,網(wǎng)站定制,隆德網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,隆德網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
使用方法:將其復制,保存為一個shell文件,比如security.sh。將其上傳到linux服務器上,執(zhí)行sh security.sh,就可以使用該腳本了。建議大家在系統(tǒng)初始化后立即執(zhí)行,然后創(chuàng)建了用戶帳號和密碼后就不要再改動了,以免影響重要文件的初始md5值。
腳本內(nèi)容(源腳本來自曉輝的博客。以下內(nèi)容為了方便閱讀,對注釋進行了翻譯):
#!/bin/sh # desc: setup linux system security # author:coralzd # powered by www.freebsdsystem.org # version 0.1.2 written by 2011.05.03 #設置賬號 passwd -l xfs passwd -l news passwd -l nscd passwd -l dbus passwd -l vcsa passwd -l games passwd -l nobody passwd -l avahi passwd -l haldaemon passwd -l gopher passwd -l ftp passwd -l mailnull passwd -l pcap passwd -l mail passwd -l shutdown passwd -l halt passwd -l uucp passwd -l operator passwd -l sync passwd -l adm passwd -l lp # 用chattr給用戶路徑更改屬性。chattr命令用法參考文末說明[1] chattr +i /etc/passwd chattr +i /etc/shadow chattr +i /etc/group chattr +i /etc/gshadow # 設置密碼連續(xù)輸錯3次后鎖定5分鐘 sed -i 's#auth required pam_env.so#auth required pam_env.so\nauth required pam_tally.so onerr=fail deny=3 unlock_time=300\nauth required /lib/security/$ISA/pam_tally.so onerr=fail deny=3 unlock_time=300#' /etc/pam.d/system-auth # 5分鐘后自動登出,原因參考文末說明[2] echo "TMOUT=300" >>/etc/profile # 歷史命令記錄數(shù)設定為10條 sed -i "s/HISTSIZE=1000/HISTSIZE=10/" /etc/profile # 讓以上針對 /etc/profile 的改動立即生效 source /etc/profile # 在 /etc/sysctl.conf 中啟用 syncookie echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf sysctl -p # exec sysctl.conf enable # 優(yōu)化 sshd_config sed -i "s/#MaxAuthTries 6/MaxAuthTries 6/" /etc/ssh/sshd_config sed -i "s/#UseDNS yes/UseDNS no/" /etc/ssh/sshd_config # 限制重要命令的權限 chmod 700 /bin/ping chmod 700 /usr/bin/finger chmod 700 /usr/bin/who chmod 700 /usr/bin/w chmod 700 /usr/bin/locate chmod 700 /usr/bin/whereis chmod 700 /sbin/ifconfig chmod 700 /usr/bin/pico chmod 700 /bin/vi chmod 700 /usr/bin/which chmod 700 /usr/bin/gcc chmod 700 /usr/bin/make chmod 700 /bin/rpm # 歷史安全 chattr +a /root/.bash_history chattr +i /root/.bash_history # 給重要命令寫 md5 cat > list << "EOF" && /bin/ping /usr/bin/finger /usr/bin/who /usr/bin/w /usr/bin/locate /usr/bin/whereis /sbin/ifconfig /bin/vi /usr/bin/vim /usr/bin/which /usr/bin/gcc /usr/bin/make /bin/rpm EOF for i in `cat list` do if [ ! -x $i ];then echo "$i not found,no md5sum!" else md5sum $i >> /var/log/`hostname`.log fi done rm -f list
知識點[1]:有關chattr命令
chattr命令可以修改文件屬性,達到保護文件和目錄的作用。相比改變文件讀寫、執(zhí)行權限的chmod命令,chattr命令可以控制更底層的文件屬性。該命令十分強大,其中一些功能是由Linux內(nèi)核版本來支持的,如果Linux內(nèi)核版本低于2.2,那么許多功能不能實現(xiàn)。同樣-D檢查壓縮文件中的錯誤的功能,需要2.5.19以上內(nèi)核才能支持。另外,通過chattr命令修改屬性能夠提高系統(tǒng)的安全性,但是它并不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var目錄。
此類屬性的查看可以通過lsattr命令完成。
chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files...
最關鍵的是在[mode]部分,,即文件屬性部分。[mode]部分是由+-=和[ASacDdIijsTtu]這些字符組合的。
+ :在原有參數(shù)設定基礎上,追加參數(shù)。
- :在原有參數(shù)設定基礎上,移除參數(shù)。
= :更新為指定參數(shù)設定。
A:文件或目錄的 atime (access time)不可被修改(modified), 可以有效預防例如手提電腦磁盤I/O錯誤的發(fā)生。
S:硬盤I/O同步選項,功能類似sync。
a:即append,設定該參數(shù)后,只能向文件中添加數(shù)據(jù),而不能刪除,多用于服務器日志文 件安全,只有root才能設定這個屬性。
c:即compresse,設定文件是否經(jīng)壓縮后再存儲。讀取時需要經(jīng)過自動解壓操作。
d:即no dump,設定文件不能成為dump程序的備份目標。
i:設定文件不能被刪除、改名、設定鏈接關系,同時不能寫入或新增內(nèi)容。i參數(shù)對于文件 系統(tǒng)的安全設置有很大幫助。
j:即journal,設定此參數(shù)使得當通過mount參數(shù):data=ordered 或者 data=writeback 掛 載的文件系統(tǒng),文件在寫入時會先被記錄(在journal中)。如果filesystem被設定參數(shù)為 data=journal,則該參數(shù)自動失效。
s:保密性地刪除文件或目錄,即硬盤空間被全部收回。
u:與s相反,當設定為u時,數(shù)據(jù)內(nèi)容其實還存在磁盤中,可以用于undeletion.
各參數(shù)選項中常用到的是a和i。a選項強制只可添加不可刪除,多用于日志系統(tǒng)的安全設定。而i是更為嚴格的安全設定,只有superuser (root) 或具有CAP_LINUX_IMMUTABLE處理能力(標識)的進程能夠施加該選項。
應用實例:
1、用chattr命令防止系統(tǒng)中某個關鍵文件被修改
# chattr +i /etc/fstab
然后試一下rm mv rename等命令操作于該文件,都是得到Operation not permitted 的結果
2、讓某個文件只能往里面追加內(nèi)容,不能刪除,一些日志文件適用于這種操作
# chattr +a /data1/user_act.log
以上是“Linux服務器如何實現(xiàn)安全初始化Shell腳本”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!