增強服務器安全性能,加強Linux服務器安全的20項建議

9013c46d4cceb47fbb3dba9b397288b5.png

很多人都說 Linux 在默認配置下很安全,我在一定程度上同意這個說法(很值得商榷的話題)。不過 Linux 內置的安全模型和工具做得確實很到位,用戶只需進行簡單的調整和自定義就可以加強 Linux 服務器安全。

與惡意用戶做斗爭對于所有 Linux 系統管理員來說都是一項艱巨的任務,本文我們將介紹如何加強 Linux 服務器安全的 20 項建議,希望對保護你的系統有所幫助。

1. 物理安全

在服務器 BIOS 中禁用光驅、軟驅、U盤等可引導的外部設備,并啟用 BIOS 密碼及 GRUB 密碼來限制對系統的物理訪問。

2. 磁盤分區

我們可以通過使用不同的分區來分散存儲數據以獲得更高的數據安全性,當發生任何災難時,由于數據是隔離存儲的,會將數據損失的幾率降到最低。

3. 盡量減少軟件包以減少漏洞

建議管理員盡量避免在 Linux 中安裝非必要的軟件包,而且不要使用來源不明的包,以盡可能的避免程序漏洞。當一個服務出問題時,很可能會波及到其它服務甚至整個系統,所以「非必要的服務就不運行」這是一個鐵則。

對于 CentOS 系統可以使用 chkconfig 來查看運行在 runlevel 3 的服務:

/sbin/chkconfig --list |grep '3:on'

一旦發現有不需要的服務正常運行,可以使用如下命令禁用:

chkconfig serviceName off

對于使用 RPM 包或 DEB 安裝的服務可以使用 yum 或 apt-get 找出包名稱并用如下命令移除:

yum -y remove package-name

sudo apt-get remove package-name

4. 查看網絡偵聽端口

使用 netstat 命令可以看到什么樣的網絡應用正在偵聽哪些端口,找出不必要的程序之后再用上面的方面來處理。

netstat –tulpn

5. 使用安全的遠程連接(SSH)

Telnet 和 rlogin 都使用明文的協議,而且已被證實存在多種已經安全漏洞,SSH 是一種安全的協議,它可以使用加密技術與服務器進行通訊。

非必要時,不要使用 root 賬戶登錄 SSH,要習慣使用 sudo 來切換身份。

SSH 22 端口目標過于明顯,建議大家改成一個不常用的高端口并在 vi /etc/ssh/sshd_config 配置文件中至少配置如下選項:

#禁用root登錄

PermitRootLogin no

#僅允許特定用戶

AllowUsers username

#SSH協議版本

Protocol 2

6. 保持系統更新

盡量始終保持系統內核、應用補丁及安全修復處在最新狀態:

yum updates

yum check-update

7. 鎖定定時任務

cron 可以指定哪些用戶可以使用,只需將允許的用戶添加到 /etc/cron.allow 或將禁用的用戶添加到 /etc/cron.deny 中即可。如果希望禁用所有用戶使用任務計劃,只需將ALL添加到cron.deny文件當中。

echo ALL >>/etc/cron.deny

8. 禁用USB存儲設備檢測

很多時候我們都需要禁用 USB 存儲設備以防數據拷出,此時可以創建一個/etc/modprobe.d/no-usb文件并填入如下內容即可禁用 USB 存儲設備檢測:

install usb-storage /bin/true

9. 啟用SELinux

安全增強型 Linux(SELinux)是在內核中提供的強制訪問控制的安全機制。很多網絡文章為了方便配置都建議大家禁用 SELinux 功能,我在這里到是建議大家在考慮關閉 SELinux 前應該三思。

SELinux 提供用戶三種基本操作模式:

Enforcing:啟用和執行機器上的 SELinux 策略(默認配置)

Permissive:在此種模式下,SELinux 不會強制執行系統上的安全策略,只會產生相應日志和警告。Permissive 模式在 SELinux 排錯時經常會乃至。

Disabled:禁用 SELinux 功能

如果你想查看當前系統 SELinux 的狀態可以使用:

sestatus

如果要從禁用狀態啟用 SELinux 可以使用:

setenforce enforcing

以上配置只對當前系統狀態有用,重啟會失效。要一勞永逸開關 SELinux 可以更改其配置文件/etc/selinux/config。

10. 移除KDE/GNOME桌面

不論你是運行 LAMP 的專屬服務器還是其它類型服務器,KDE 或 GNOME 這樣 X Window 桌面環境是沒多大必要使用的,禁用之后可以提高服務器性能和增強安全性。使用如下命令即可完全卸載:

yum groupremove "X Window System"

11. 禁用IPv6

IPv6 目前還沒有大規模普及,如果你不使用 IPv6 協議,可以在 /etc/sysconfig/network 配置文件中將其禁用。

NETWORKING_IPV6=no

IPV6INIT=no

12. 限制用戶重復使用舊密碼

很多用戶習慣在強制定期更換密碼時重復循環使用以前的密碼,這對于服務器管理員來說是一種非常不好的習慣。因此建議大家限制用戶重復使用舊密碼,該功能可以通過 PAM 來實現。

RHEL/CentOS/Fedora:/etc/pam.d/system-auth

Ubuntu/Debian/Linux Mint:/etc/pam.d/common-password

在上述配置文件中的auth區塊添加一行:

auth sufficient pam_unix.so likeauth nullok

在password區塊添加一行:

password sufficient pam_unix.so nullok use_authtok md5 shadow remember=5

配置好后,服務器會禁止使用最近 5 個被使用過的用戶密碼。

13. 配置密碼過期策略

Linux 中,用戶密碼是被加密存儲到/etc/shadow文件當中的,要配置密碼過期的詳細信息需要用到change命令。例如要查看某個賬戶的密碼過期日期和時間,可以使用如下命令:

chage -l username

要更改密碼過期策略可以使用類似如下命令:

chage -M 60 username

chage -M 60 -m 7 -W 7 username

-M 密碼使用最長天數

-m 密碼使用最短天數

-W 密碼過期提示天數

14. 手動鎖定或解鎖賬戶

在不從系統中移除賬戶的情況下,對賬戶進行鎖定和解鎖是非常有用的一個安全手段。需要鎖定一個賬戶時,可以使用如下命令:

passwd -l accountname

賬戶鎖定同樣適用于 root 賬戶,當某賬戶被鎖定時會增加 (!) 字串,賬戶解鎖時移除 (!) 字串。需要解鎖時使用如下命令:

passwd -u accountname

15. 強制使用強密碼

弱密碼或用生日密碼之類的密碼太容易被字典和社會工程學攻破了,所以建議大家打開強密碼要求。Linux 中的強密碼要求還是使用 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

強烈建議大家使用 Iptables 來保護 Linux 服務器安全,Iptables 可以在不同的鏈上配置不同的規則來處理數據包。

17. 在Inittab中禁用Ctrl+Alt+Delete

大多數 Linux 發行版中按下「Ctrl+Alt+Delete」時都會重啟系統,對于 Linux 生產服務器來說,這幾乎是一個白癡設計。如果你希望關閉這個默認重啟功能,可以將/etc/inittab配置文件中的如下兩千注釋掉:

# Trap CTRL-ALT-DELETE

#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

18. 查看空密碼賬戶

如果系統中存在有權限的空密碼賬戶,就相當于開了一扇門。所以建議大家仔細清查一下:

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. 定期審查日志

建議大家將日志文件進行專門的集中存放和處理,這樣可以比較有效避免入侵者對日志進行篡改,下面是 Linux 常見的默認日志路徑:

/var/log/message – 系統日志或當前活動日志

/var/log/auth.log – 驗證日志

/var/log/kern.log – 內核日志

/var/log/cron.log – 任務計劃日志

/var/log/maillog – 郵件服務器日志

/var/log/boot.log – 系統啟動日志

/var/log/mysqld.log – MySQL 服務器日志

/var/log/secure – 包含驗證和授權方面信息

/var/log/utmp或/var/log/wtmp – 登錄記錄文件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533081.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533081.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533081.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql禁用歷史命令_如何禁止mysql記錄歷史命令

如何禁止mysql記錄歷史命令?在執行 SQL命令時,mysql會將歷史命令記錄到~/.mysql_history文件中,因此我們用上下鍵就可以翻閱歷史命令了。也許某些特殊需要我們可能需要不讓它記錄這些歷史命令,我們可以這樣作:[rootTes…

陰陽師師徒系統不同服務器,陰陽師體服師徒系統未收錄改為隨機SSR

昨天下午,受到很多爭議的體服“師徒系統”更新啦!新版的“師徒系統”修改了徒弟的條件,總的來說能剔除壓級大佬,并且之前獎勵未收錄SSR降低為隨機SSR式神,難怪很多陰陽師都說:“大快人心!”的確…

Mysql union聯合查詢_Mysql聯合查詢union和union all的使用介紹

一、UNION和UNION ALL的作用和語法UNION 用于合并兩個或多個 SELECT 語句的結果集,并消去表中任何重復行。UNION 內部的 SELECT 語句必須擁有相同數量的列,列也必須擁有相似的數據類型。同時,每條 SELECT 語句中的列的順序必須相同.SQL UNION…

ios 查看同文件名_實戰恢復cisco 2950交換機的IOS

本來想用兩臺思科交換機做實驗的,可是通過console口進入其中一臺交換機后卻發現這個臺交換機的IOS文件丟失了。本來正常進入交換機后應該是首先進入到用戶模式的,而且提示符應該是“>”,而現在提示符卻成了“:”,如…

repositoryitemlookupedit根據每行的id綁定數據_一種根據數據庫自增ID生成唯一ID的解決方案...

在我們的開發過程中,經常會遇到ID生成的問題,那么這里就介紹一種解決方案,注意這里只適合混淆ID規則,也就是說生成的ID沒有任何規則,不適用于訂單ID。一般有序自增主鍵的ID,極易被爬蟲抓取數據,…

bootstracp實現樹形列表_Java實現一致性哈希算法,并搭建環境測試其負載均衡特性...

實現負載均衡是后端領域一個重要的話題,一致性哈希算法是實現服務器負載均衡的方法之一,你很可能已在一些遠程服務框架中使用過它。下面我們嘗試一下自己實現一致性哈希算法。一. 簡述一致性哈希算法這里不詳細介紹一致性哈希算法的起源了,網…

c# mysql數據庫查詢語句_C# mysql 查詢

展開全部|mysql> select * from test_book1;-------------------------------------------------|e68a84e8a2ad3231313335323631343130323136353331333335303534 id | name | data |-------------------------------------------------| …

系統分析師和系統架構設計師難度比較_系統架構設計師,馬上開課了!

一年只考一次的系統架構設計師7月7日通關指南開課系統架構設計師考試,是2009年11月計算機資格考試新增專業,這個級別屬于高級資格考試。與該考試同級別的還有系統分析師、信息系統項目管理師、系統規劃與管理師以及網絡規劃設計師。系統架構設計師每年考…

運維人員mysql如何訪問_mysql 運維常見操作

MySQL密碼的恢復方法之一1.首先確認服務器出于安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。 因為在重新設置MySQL的root密碼的期間,MySQL數據庫完全出于沒有密碼保護的 狀態下,其他的用戶也可以任意地登錄和修改MySQL的信…

mocha 測試 mysql_node項目mocha自動化測試的疑問

測試框架:mocha數據庫:mysql和mongodb疑問1. 如何控制多個測試用例的運行順序?用例寫多了,A用例把數據變成了狀態1,有些后面的用例基于這個狀態1的數據進行查詢判斷,才能使得后面的用例正常運行&#xff0c…

pythonhelloworld實例_Python基于Tkinter的HelloWorld入門實例

本文實例講述了Python基于Tkinter的HelloWorld入門實例。分享給大家供大家參考。具體分析如下:初學Python,打算做幾個Tkinter的應用來提高。剛學的HelloWorld,秀一下。我用Python3.2的,Windows版本的。源代碼如下: #導…

tensorflow提取mel譜特征_【腦電信號分類】腦電信號提取PSD功率譜密度特征

點擊上面"腦機接口社區"關注我們更多技術干貨第一時間送達本文是由CSDN用戶[frostime]授權分享。主要介紹了腦電信號提取PSD功率譜密度特征,包括:功率譜密度理論基礎、matlab中PSD函數的使用介紹以及實驗示例。感謝 frostime!1. 序…

mysql用戶可以localhost登陸_【單選題】登陸MySQL服務器,默認的用戶名為 A. user B. pwd C. root D. localhost...

功能清利濕熱、利膽退黃的藥物是A、茵陳蒿B、豬苓C、澤瀉D、滑石E、關木通舌尖上對酸味特別敏感的部位是_____。EDI的中文名稱是什么?什么維生素能促進血液的凝固?當輸油噴射泵故障時,Ⅱ組油箱是如何向Ⅲ組油箱供油的?A.通過溢油口…

從mysql中取出代理ip_GitHub - lican09/IPProxyTool: 抓取大量免費代理 ip,提取有效 ip 使用...

IPProxyTool使用 scrapy 爬蟲抓取代理網站,獲取大量的免費代理 ip。過濾出所有可用的 ip,存入數據庫以備使用。可以訪問我的個人站點,查看我的更多有趣項目 awolfly9個人項目歡迎加微信吐槽如果在使用中有任何疑問,或者項目中有任…

docker卸載 windows版本_DevOps系列 006 - Docker安裝

這是DevOps系列的第六節,我們開始安裝DockerDebian 上安裝可以基于最新debian10的發行版,我現在還用著debian9,不過隨后,我會發出Windows / macOs / Ubuntu的參考。安裝如果您已經是root用戶,則無需使用sudo1、卸載任何…

mysql設置success信息_【原創】MySQL Cluster安裝部署(Success)

參考:http://www.cnblogs.com/zhoulf/archive/2013/01/30/2883207.html安裝要求安裝環境:centos6.3(X64)軟件名稱 :mysql-cluster-gpl-7.3.8-linux-glibc2.5-x86_64.tar.gz (通用版)管理節點IP:10.61.5.51數據節點-SQL節點IP:10.61.5.52數據節…

tab vue 豎排_vue 實現tab切換保持數據狀態

頁面做tab切換,由于組件每一次切換都會重新實例化組件,我們想要頁面不論怎么切換都仍然保持tab里面的內容不會刷新,減少頁面重新渲染以及減少請求實現方法:使用包裹組件 列表頁面跳轉詳情 ,列表頁面保持上一次操作狀態…

multisim連接MySQL_首次使用Multisim軟件進行電路仿真設計

第一次接觸使用Multisim進行電路仿真設計,通過使用這款軟件,從中也學習到了很多東西,在這里想簡單介紹一下這款軟件的最主要也是最重要的功能和特點。創建電路,必定要放置元器件,這就需要用到元器件工具欄,…

mysql到pg怎么高效_干貨 | Debezium實現Mysql到Elasticsearch高效實時同步(示例代碼)

題記來自Elasticsearch中文社區的問題——MySQL中表無唯一遞增字段,也無唯一遞增時間字段,該怎么使用logstash實現MySQL實時增量導數據到es中?logstash和kafka_connector都僅支持基于自增id或者時間戳更新的方式增量同步數據。回到問題本身&a…

mysql怎么復制信息_mysql關于復制的一些信息參考

1.主庫的復制用戶密碼修改后,在備庫修改復制:stop slave;change master to master_user‘username‘, master_password‘password‘;start slave;2.創建復制子用戶及其授權:GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO ‘repl‘‘%…