萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> 25個Linux服務器安全小技巧

25個Linux服務器安全小技巧

   大家都認為Linux 默認是安全的,我大體是認可的(這是個有爭議的話題)。Linux默認確實有內置的安全模型。你需要打開它並且對其進行定制,這樣才能得到更安全的系統。Linux更難管理,不過相應也更靈活,有更多的配置選項。

  對於系統管理員而言,讓產品的系統更安全,免於駭客和黑客的攻擊,一直是一項挑戰。本文將介紹25個有用的技巧和竅門 ,幫助你讓Linux系統更加安全。希望下面的這些技巧和竅門可以幫助你加強你的系統的安全。

  1. 物理系統的安全性

  配置BIOS,禁用從CD/DVD、外部設備、軟驅啟動。下一步,啟用BIOS密碼,同時啟用GRUB的密碼保護,這樣可以限制對系統的物理訪問。

  2. 磁盤分區

  使用不同的分區很重要,對於可能得災難,這可以保證更高的數據安全性。通過劃分不同的分區,數據可以進行分組並隔離開來。當意外發生時,只有出問題 的分區的數據才會被破壞,其他分區的數據可以保留下來。你最好有以下的分區,並且第三方程序最好安裝在單獨的文件系統/opt下。

  /

  /boot

  /usr

  /var

  /home

  /tmp

  /opt

  3. 最小包安裝,最少漏洞

  你真的需要安裝所有的服務麼?建議不要安裝無用的包,避免由這些包帶來的漏洞。這將最小化風險,因為一個服務的漏洞可能會危害到其他的服務。找到並去除或者停止不用的服務,把系統漏洞減少到最小。使用‘chkconfig’命令列出運行級別3的運行所有服務。

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

  當你發現一個不需要的服務在運行時,使用下面的命令停止這個服務。

  # chkconfig serviceName off

  使用RPM包管理器,例如YUM或者apt-get 工具來列出所有安裝的包,並且利用下的命令來卸載他們。

  # yum -y remove package-name

  # sudo apt-get remove package-name

  4. 檢查網絡監聽端口

  在網絡命令‘netstat’的幫助下,你將能夠看到所有開啟的端口,以及相關的程序。使用我上面提到的‘chkconfig’命令關閉系統中不想要的網絡服務。

  # netstat -tulpn

  5. 使用 SSH(Secure Shell)

  Telnet 和 rlogin 協議只能用於純文本,不能使用加密的格式,這或將導致安全漏洞的產生。SSH 是一種在客戶端與服務器端通訊時使用加密技術的安全協議。

  除非必要,永遠都不要直接登錄 root 賬戶。使用 “sudo” 執行命令。sudo 由 /etc/sudoers 文件制定,同時也可以使用 “visudo”工具編輯,它將通過 VI 編輯器打開配置文件。

  同時,建議將默認的 SSH 22 端口號改為其他更高的端口號。打開主要的 SSH 配置文件並做如下修改,以限制用戶訪問。

  # vi /etc/ssh/sshd_config

  關閉 root 用戶登錄

  PermitRootLogin no

  特定用戶通過

  AllowUsers username

  使用第二版 SSH 協議

  Protocol 2

  6. 保證系統是最新的

  得一直保證系統包含了最新版本的補丁、安全修復和可用內核。

  # yum updates

  # yum check-update

  7. 鎖定 Cron任務

  Cron有它自己內建的特性,這特性允許定義哪些人能哪些人不能跑任務。這是通過兩個文件/etc/cron.allow 和 /etc /cron.deny 控制的。要鎖定在用Cron的用戶時可以簡單的將其名字寫到corn.deny裡,而要允許用戶跑cron時將其名字加到 cron.allow即可。如果你要禁止所有用戶使用corn,那麼可以將“ALL”作為一行加到cron.deny裡。

  # echo ALL >>/etc/cron.deny

  8. 禁止USB探測

  很多情況下我們想去限制用戶使用USB,來保障系統安全和數據的洩露。建立一個文件‘/etc/modprobe.d/no-usb’並且利用下面的命令來禁止探測USB存儲。

  install usb-storage /bin/true

  9.打開SELinux

  SELinux(安全增強linux)是linux內核提供的一個強制的訪問控制安全機制。禁用SELinux意味著系統丟掉了安全機制。要去除SELinux之前仔細考慮下,如果你的系統需要發布到網絡,並且要在公網訪問,你就要更加注意一下。

  SELinux 提供了三個基本的操作模式,他們是:

  強制執行:這是默認是模式,用來啟用和強制執行SELinux安全措略。

  許可模式:這種模式下SELinux不會強制執行安全措略,只有警告和日志記錄。這種模式在SELinux相關問題的故障排除時候非常有用。

  關閉模式:SELinux被關閉。

  你可以使用命令行‘system-config-selinux’, ‘getenforce’ 或 ‘sestatus’來浏覽當前的SEliux的狀態。

  # sestatus

  如果是關閉模式,通過下面的命令開啟SELinux

  # setenforce enforcing

  你也可以通過配置文件‘/etc/selinux/config’來進行SELinux的開關操作。

  10. 移除KDE或GNOME桌面

  沒必要在專用的LAMP服務器上運行X Window桌面比如KDE和GNOME。可以移掉或關閉它們,以提高系統安全性和性能。打開/etc/inittab然後將run level改成3就可以關閉這些桌面。如果你將它徹底的從系統中移走,可以用下面這個命令:

  # yum groupremove "X Window System"

  11. 關閉IPv6

  如果不用IPv6協議,那就應該關閉掉它,因為大部分的應用和策略都不會用到IPv6,而且當前它不是服務器必需的。可以在網絡配置文件中加入如下幾行來關掉它。

  # vi /etc/sysconfig/network

  NETWORKING_IPV6=no

  IPV6INIT=no

  12. 限制用戶使用舊密碼

  如果你不希望用戶繼續使用老密碼,這一條很有用。老的密碼文件位於/etc/security/opasswd。你可以使用 PAM 模塊實現。

  RHEL / CentOS / Fedora 中打開‘/etc/pam.d/system-auth’文件。

  # vi /etc/pam.d/system-auth

  Ubuntu/Debian/Linux Mint 中打開‘/etc/pam.d/common-password’文件。

  # vi /etc/pam.d/common-password

  在‘auth’塊中添加下面一行。

  auth sufficient pam_unix.so likeauth nullok

  在‘password’塊添加下面一行,禁止用戶重新使用其過去最後用過的 5個密碼。

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

  服務器只記錄最後的 5 個密碼。如果你試圖使用曾用的最後 5個老密碼中的任意一個,你將看到如下的錯誤提示。

  Password has been already used. Choose another.

  13. 如何檢查用戶密碼過期?

  在 Linux 中,用戶的密碼以加密的形式保存在‘/etc/shadow’文件中。要檢查用戶的密碼是否過期,你需要使用‘chage’命令。它將顯示密碼的最後修改日期及密碼期限的細節信息。這些細節就是系統決定用戶是否必須修改其密碼的依據。

  要查看任一存在用戶的老化信息,如 過期日 和 時長,使用如下命令。

  #chage -l username

  要修改任一用戶的密碼老化,使用如下命令。

  #chage -M 60 username

  #chage -M 60 -m 7 -W 7 userName

  參數

  -M 設置天數最大數字

  -m 設定天數最小數字

  -W 設定想要的天數

  14. 手動鎖定或解鎖用戶賬號

  鎖定和解鎖功能是非常有用的,你可以鎖定一個賬號一周或一個月,而不是將這個賬號從系統中剔除。可以用下面這個命令鎖定一個特定用戶。

  # passwd -l accountName

  提示:這個被鎖定的用戶僅對root用戶仍然可見。這個鎖定是通過將加密過的密碼替換成(!)來實現的。如果有個想用這個賬號來進入系統,他會得到類似下面這個錯誤的提示。

  # su - accountName

  This account is currently not available.

  解鎖一個被鎖定的賬號時,用下面這個命令。這命令會將被替換成(!)的密碼改回來。

  # passwd -u accountName

  15. 增強密碼

  有相當數量的用戶使用很弱智的密碼,他們的密碼都可以通過字典攻擊或者暴力攻擊攻破。‘pam_cracklib’模塊存於在PAM 中,它可以強制用戶設置復雜的密碼。通過編輯器打開下面的文件。

  # vi /etc/pam.d/system-auth

  在文件中增加一行,使用認證參數(lcredit, ucredit, dcredit 或者 ocredit 對應小寫字母、大寫字母,數字和其他字符)

  /lib/security/$ISA/pam_cracklib.so retry=3 minlen=8 lcredit=-1 ucredit=-2 dcredit=-2 ocredit=-1

  16. 啟用Iptable(防火牆)

  高度推薦啟用linux防火牆來禁止非法程序訪問。使用iptable的規則來過濾入站、出站和轉發的包。我們可以針對來源和目的地址進行特定udp/tcp端口的准許和拒絕訪問。

  17. 禁止Ctrl+Alt+Delete重啟

  在大多數的linux發行版中,按下‘CTRL-ALT-DELETE’將會讓你的系統重啟。只說生產服務器上這是不是一個很好的做法,這可能導致誤操作。

  這個配置是在‘/etc/inittab’文件,如果你打開這個文件,你可以看到下面類似的段落。默認的行已經被注釋掉了。我們必須注釋掉他。這個特定按

copyright © 萬盛學電腦網 all rights reserved