1. 程式人生 > 實用技巧 >14個Linux系統安全小妙招?

14個Linux系統安全小妙招?

1、物理安全

這應該說是對於伺服器安全保障的第一步。

硬體伺服器,首先得專業人的來做專業的維護。其次就是關閉從CD/DVD等這些方面的軟啟動方式。同時也可以設定BIOS密碼,並且要有限制訪問的策略與各類流程管控。

還可以禁用USB裝置來達到安全的目的:

vim /etc/modprobe.d/stopusb
install usb-storage /bin/true

或者使用下面的命令將USB的驅動程式刪除

[root@rs-server ~]# mv /lib/modules/3.10.0-693.el7.x86_64/kernel/drivers/usb/storage/usb-storage.ko.xz

2、保證系統最新

這個就是說要保證系統無其它漏洞存在,比如:已經有的漏洞要及時的修復。保證系統包含了最新版本的補丁、安全修復和可用核心。

yum updates
yum check-update

這個就需要管理員經常關注國內外關於、系統最新漏洞以及補丁釋出的資訊了:

3、最小化處理原則

無論是安裝系統,還是常用的軟體,都必須遵守這個原則:最小化安裝,同時也是減少漏洞存在的可能性。

對於系統一些不必要的服務、埠,建議關閉。

[root@rs-server ~]# chkconfig --list |grep "3:on"
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off

然後使用下面的命令關閉:

chkconfig service-name off

4、登入與連線

對於Linux伺服器來說,一般都是採用遠端登入(SSH)連線的方式去進行登入操作。因此:

第一步:就是除了非必要情況,杜絕使用root使用者登入,可以使用sudo來進行提權操作,然後利用系統命令將/etc/sudoers檔案鎖定(除root使用者之外的使用者無許可權修改)。

第二步:建議修改SSH配置檔案,比如預設埠號22,禁止root密碼登入(有些自有機房的還可以直接禁用root使用者通過SSH協議登入)等。

[root@rs-server ~]# vim /etc/ssh/sshd_config
#Port 22
可修改成其它埠號,民工哥常用IP+22混合使用
#PermitRootLogin yes
將yes改成No
#PermitEmptyPasswords no
開啟註釋即可
#AllowUsers username
指定特定的使用者通過SSH協議進行遠端連線

對於生產中的伺服器,我們還可以使用堡壘機進行連線限制:手把手從0開始教你搭建Jumpserver,為伺服器安全保駕護航!

5、使用者管理

Linux是一個可多使用者並行操作的系統,所以,系統也對使用者進行了劃分:超級使用者與普通使用者。兩者許可權不同,因此,能幹的事也有所不同,所以,對於使用者的管理也是非常重要的一步。

設定使用者密碼:

這個可以通過系統命令passwd來進行設定,一般建議使用強度比較複雜的密碼,且各個系統中相同的使用者使用不同的密碼(日常可以使用管理器來管理)。

[root@rs-server ~]# passwd mingongge
Changing password for user mingongge.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

臨時使用者管理:

對於這種需要的臨時使用者管理,一般是使用過後可以刪除,也可以在一段時間後將其鎖定不讓其再登入,在下次需要登入時再次開啟許可權。

刪除使用者很簡單,可以使用系統命令userdel -r username 進行刪除。

鎖定使用者其實就是修改使用者的屬性:

[root@rs-server ~]# usermod -L mingongge

我們開啟終端嘗試登入看看:

這時發現已經無法正常登入連線了,表明剛剛的配置是正確的。等到下次需要登入時,可以使用下面的命令進行解鎖:

[root@rs-server ~]# usermod -U mingongge
#-L lock
#-U unlock

6、檔案管理

這裡的檔案管理指的是儲存使用者資訊的重要檔案:/etc/passwd、/etc/shadow這兩個檔案。

[root@rs-server ~]# stat /etc/passwd
File: ‘/etc/passwd’
Size: 945 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17135889 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-08-06 01:14:37.439994172 +0800
Modify: 2019-08-06 01:14:37.440994172 +0800
Change: 2019-08-06 01:14:37.442994172 +0800
Birth: -
[root@rs-server ~]# stat /etc/shadow
File: ‘/etc/shadow’
Size: 741 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17135890 Links: 1
Access: (0000/----------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-08-06 01:14:37.445994172 +0800
Modify: 2019-08-06 01:14:37.445994172 +0800
Change: 2019-08-06 01:14:37.447994172 +0800
Birth: -

一般從上面的一些檔案屬性上可以看出是不是這些檔案遭遇篡改了,所以,一般情況建議將此兩個檔案鎖定除了root使用者之外的使用者無許可權修改與訪問。

7、啟用防火牆

利用系統的防火牆來過濾出入站的流量,這是一個很好的預防攻擊的策略,而且系統防火牆的規則可以逐條設定,非常強大,強裂建議開啟。

8、軟體包的管理

對於系統安裝的軟體,我們使用RPM包管理器來管理,對於使用yum或者apt-get命令列出來的軟體,在對其進行刪除、解除安裝時,一定要使用下面的命令進行:

yum -y remove software-package-name

sudo apt-get remove software-package-name

9、禁用Crtl+Alt+Del 重啟

多數伺服器在按下Crtl+Alt+Del組合鍵後,都會使用伺服器重啟,這個對於線上伺服器來說是絕對不友好的一個安全因素,必須禁止,否則一個誤操作就造成很大的影響。

#CentOS6 禁用Ctrl+Alt+Del重啟功能
#方法一:
vi /etc/init/control-alt-delete.conf
#start on control-alt-delete #註釋此行

#方法二:
mv /etc/init/control-alt-delete.conf /etc/init/control-alt-delete.conf.bak

#注:兩種方法都無需重啟系統即可生效

對於CentOS7 來說,方法有所不同:

[root@rs-server ~]# cat /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#
這個檔案裡已經說明了相關的介紹。

經過測試,如果將上面檔案中的配置註釋掉之後,reboot命令會不生效了:

[root@rs-server ~]# ll /usr/lib/systemd/system/ctrl-alt-del.target
lrwxrwxrwx. 1 root root 13 Mar 14 17:27 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target

這個ctrl-alt-del.target這是reboot.target的軟連結。所以,最終正確的方法是:移動掉這個檔案到其它目錄,然後過載配置檔案使用其它生效,如果再需要這個功能就只需要重新新增這個軟體連結即可。

10、監控使用者行為

如果你的系統中有很多的使用者,去收集每一個使用者的行為和和他們的程序消耗的資訊非常重要。可以隨後和一些效能優化和安全問題處理時進行使用者分析。但是如果監視和蒐集使用者行為資訊呢 ?有兩個很有用的工具‘psacct‘ 和 ‘acct‘可以用來監視系統中使用者的行為和程序。

[root@rs-server ~]# yum install psacct -y
使用方法如下:

ac 統計使用者連線時間
ac       #顯示所有使用者連線總時間
ac -p    #顯示每個使用者連線時間
ac -d    #顯示每天所有使用者連線總時間
ac silence      #顯示指定使用者連線時間
ac -d silence   #顯示指定使用者每天連線時間

sa 輸出使用者活動資訊
sa      #顯示所有使用者執行命令情況
sa -u   #按使用者顯示執行命令情況
sa -m   #按程序顯示執行命令情況
sa -p   #按使用率顯示執行命令情況

lastcomm 輸出最近執行命令資訊
lastcomm            #顯示所有執行命令
lastcomm silence    #顯示指定使用者執行命令
lastcomm ls         #顯示指定命令執行情況

其他
last        #檢視最近使用者登入成功列表
last -x     #顯示系統關機、重新開啟等資訊
last -a     #將IP顯示在最後一列
last -d     #對IP進行域名解析
last -R     #不顯示IP列
last -n 3   #顯示最近3條
lastb       #檢視最近使用者登入失敗的列表

具體的使用例子:
[root@rs-server ~]# ac -p
root 71.88
total 71.88
[root@rs-server ~]# sa -u
root 0.00 cpu 1043k mem 0 io accton 
root 0.00 cpu 3842k mem 0 io systemd-tty-ask 
root 0.03 cpu 72576k mem 0 io pkttyagent 
root 0.00 cpu 32112k mem 0 io systemctl 
root 0.00 cpu 2674k mem 0 io systemd-cgroups 
root 0.07 cpu 37760k mem 0 io ps 
root 0.00 cpu 28160k mem 0 io grep 
root 0.00 cpu 1080k mem 0 io ac 
root 0.14 cpu 0k mem 0 io kworker/u256:0 *
root 0.10 cpu 0k mem 0 io kworker/0:0 *
root 0.02 cpu 0k mem 0 io kworker/0:2 *

[root@rs-server ~]# lastcomm sa
sa root pts/0 0.00 secs Tue Aug 6 02:15

[root@rs-server ~]# last -x
root pts/0 192.168.1.14 Tue Aug 6 00:48 still logged in 
root tty1 Tue Aug 6 00:48 still logged in 

[root@rs-server ~]# lastb
mingongg ssh:notty 192.168.1.14 Tue Aug 6 01:11 - 01:11 (00:00)
mingongg ssh:notty 192.168.1.14 Tue Aug 6 01:11 - 01:11 (00:00)

btmp begins Tue Aug 6 01:11:27 2019

11、定期檢查日誌

將系統及其重要的日誌儲存在本伺服器之外的專業日誌伺服器上,從而避免黑客通過分析日誌來入侵系統及應用,以下是常見的日誌檔案:

12、資料備份

這個不用說都知道是非常重要的,尤其是重要的生產資料,必須本地、異地、不同介質備份及儲存,同時還需要定期檢查資料的完整性、可用性。

Xtrabackup實現資料的備份與恢復

高逼格企業級MySQL資料庫備份方案,原來是這樣....

關於資料誤刪後恢復:不小心執行了 rm -f,先別急著跑路 !

資源搜尋網站大全 https://www.renrenfan.com.cn 廣州VI設計公司https://www.houdianzi.com

13、安全工具

對於系統來說,常用的安全掃描工具是必備的,比如:掃描開放埠nmap。對於系統中的WEB應用等來說,可以使用一些開源的工具:IBM AppScan、SQL Map等,同樣這類的商用產品也很多,這裡就不做介紹了(又不給我廣告費)。

對於檔案有檔案加密工具,對於系統還有一些入侵檢測、漏洞掃描工具,無論是開源還是商業,都是可以根據實際需求與企業成本來決定使用哪一款工具。

14、管理方法

對於安全管理來說,好的流程與管理制度同樣也是必須的,否則,上述13點基本的作用為0,有方法,沒有制度去讓方法落地執行!!

所以,無論對於小企業、大企業來說,流程、管理制度始終是先行於所有的處理方法之前的。人才是世界上最不可控的因素!!

不掉坑,不背鍋!史上最全的伺服器安全管理規範開源了