1. 程式人生 > 其它 >[劍指 Offer II] 整數-001. 整數除法

[劍指 Offer II] 整數-001. 整數除法

一、基本系統安全

1、保護引導過程(以Grub引導為例)

在/etc/inittab中新增sp:S:respawn:/sbin/sulogin,以確保當切換到單使用者模式時執行級的配置要求輸入root密碼:

防止使用者使用Ctrl-Alt-Del進行重新引導:

在RHEL6.X和CentOS6.X下,該熱鍵的行為由'/etc/init/control-alt-delete.conf'控制。

註釋掉原來的改成:exec/usr/bin/logger-pauthpriv.notice-tinit"Ctrl-Alt-Delwaspressedandignored",這個配置會在每次按下Ctrl-Alt-Del時輸出日誌。

小提示:在終端登入的情況下,看不到效果,只有在機器面前,按下鍵盤上的Ctrl+Alt+del鍵,才會在/var/log/message裡面看到輸出日誌

2、關閉不使用的服務

首先檢視哪些服務是開啟的:

關閉郵件服務,使用公司郵件伺服器:

關閉nfs服務及客戶端:

3、增強特殊檔案許可權:

給下面的檔案加上不可更改屬性,從而防止非授權使用者獲得許可權。

注意:執行以上chattr許可權修改之後,就無法新增刪除使用者了。在後面的實驗過程中,如果修改不了上面設定過的檔案,記得取消只讀許可權chattr-i。

如果再要新增刪除使用者,需要先取消上面的設定,等使用者新增刪除完成之後,再執行上面的操作,例如取消只讀許可權chattr-i/etc/passwd。(記得重新設定只讀)

4、強制實行配額和限制:

LinuxPAM(插入式認證模組,PluggableAuthenticationModules)可以強制實行一些實用的限制,在/etc/security/limits.conf檔案中對此進行配置。

謹記,這些限制適用於單個對話。您可以使用maxlogins來控制總額限制。limits.conf中的條目有如下結構:username|@groupnametyperesourcelimit。

為了與username區別,groupname之前必須加@。型別必須是soft或者hard。軟限制(soft-limit)可以被超出,通常只是警戒線,而硬限制(hard-limit)不能被超出。resource可以是下面的關鍵字之一:

core-限制核心檔案的大小(KB)

data-最大資料大小(KB)

fsize-最大檔案大小(KB)

memlock-最大鎖定記憶體地址空間(KB)

nofile-開啟檔案的最大數目

rss-最大持久設定大小(KB)

stack-最大棧大小(KB)

cpu-以分鐘為單位的最多CPU時間

nproc-程序的最大數目

as-地址空間限制

maxlogins-此使用者允許登入的最大數目

下面的程式碼示例中,所有使用者每個會話都限制在10MB,並允許同時有四個登入。第三行禁用了每個人的核心轉儲。第四行除去了使用者bin的所有限制。ftp允許有10個併發會話(對匿名ftp帳號尤其實用);managers組的成員的程序數目限制為40個。developers有64MB的memlock限制,wwwusers的成員不能建立大於50MB的檔案。

要啟用這些限制,您需要在/etc/pam.d/login底部新增下面一行:sessionrequired/lib/security/pam_limits.so。

要為檔案系統啟用配額,您必須在/etc/fstab中為相應的那行新增一個選項。使用usrquota和grpquota來啟用使用者配額和組配額,像下面這樣:

然後,使用mount-a-oremount重新掛載相應的檔案系統,來啟用剛才新增的選項;然後使用quotacheck-cugvm建立一個二進位制配額檔案,其中包含了機器可讀格式的配額配置。這是配額子系統要操作的檔案。然後使用edquota-uusername為具體的使用者配額。

步驟二

二、使用者安全

1.禁用不使用的使用者

注意:不建議直接刪除,當你需要某個使用者時,自己重新新增會很麻煩。也可以usermod-L或passwd-luser鎖定。

2、ssh登陸安全

(1)修改ssh的預設埠22,改成如20002這樣的較大埠會大幅提高安全係數,降低ssh破解登入的可能性。(注意:本實驗環境不允許修改ssh埠,否則會造成服務斷開)

找到SSh服務配置檔案路徑一般都是在/etc/ssh這個目錄下面sshd_config這個檔案,在“#Port22”這一行下面新增一行,內容為port埠號。

然後重啟ssh服務即可。

只允許wheel使用者組的使用者su切換(這裡只是舉例,不一定要用這個使用者組名字)

其他使用者切換root,即使輸對密碼也會提示su:incorrectpassword

(3)登入超時(本實驗環境不允許這樣操作!!!)

使用者線上5分鐘無操作則超時斷開連線,在/etc/profile中新增:

(4) 禁止root直接遠端登入(本實驗環境不允許這樣操作!!!)

5)限制登入失敗次數並鎖定

在/etc/pam.d/login後新增:auth required pam_tally2.so deny=6 unlock_time=180 even_deny_root root_unlock_time=180

登入失敗5次鎖定180秒,根據需要設定是否包括root。

3、減少history命令記錄

執行過的歷史命令記錄越多,從一定程度上講會給維護帶來簡便,但同樣會伴隨安全問題。

vi/etc/profile

找到HISTSIZE=1000改為HISTSIZE=50。

執行 source /etc/profile生效

或每次退出時清理history命令:history–c。

步驟三

三、網路安全

1、禁用ipv6

IPv6是為了解決IPv4地址耗盡的問題,但我們的伺服器一般用不到它,反而禁用IPv6不僅僅會加快網路,還會有助於減少管理開銷和提高安全級別。以下幾步在CentOS上完全禁用ipv6。

禁止載入IPv6模組:

讓系統不載入ipv6相關模組,這需要修改modprobe相關設定檔案,為了管理方便,我們新建設定檔案/etc/modprobe.d/ipv6off.conf,內容如下:

禁用基於IPv6網路,使之不會被觸發啟動:

禁用網絡卡IPv6設定,使之僅在IPv4模式下執行:

關閉ip6tables:

重啟系統,驗證是否生效:

2、防止一般網路攻擊

網路攻擊不是幾行設定就能避免的,以下都只是些簡單的將可能性降到最低,增大攻擊的難度但並不能完全阻止。

(1)禁ping

阻止ping如果沒人能ping通您的系統,安全性自然增加了,可以有效的防止ping洪水。為此,可以在/etc/rc.d/rc.local檔案中增加如下一行:

或使用iptable禁ping,當然前提是你啟用了iptables防火牆。

(2)防止IP欺騙

編輯/etc/host.conf檔案並增加如下幾行來防止IP欺騙攻擊:

(3)防止DoS攻擊

對系統所有的使用者設定資源限制可以防止DoS型別攻擊,如最大程序數和記憶體使用數量等。

可以在/etc/security/limits.conf中新增如下幾行:

core0表示禁止建立core檔案;nproc128把最多的程序數限制到20;nofile64表示把一個使用者同時開啟的最大檔案數限制為64;*表示登入到系統的所有使用者,不包括root。

然後必須編輯/etc/pam.d/login檔案檢查下面一行是否存在:

limits.conf引數的值需要根據具體情況調整。

3、定期做日誌檢查

將日誌移動到專用的日誌伺服器裡,這可避免入侵者輕易的改動本地日誌。下面是常見linux的預設日誌檔案及其用處:

心得:通過這次實驗掌握了基本系統安全,使用者安全,網路安全。