Linux伺服器安全需要注意到幾點事項小結

來源:互聯網
上載者:User

①首先要保證自己的伺服器的絕對安全,root密碼我一般設定為28位以上,而且某些重要的伺服器必須只有幾個人知道root密碼,這個根據公司許可權來設定,如果有公司的系統管理員離職,root密碼一定要更改;玩linux久了的人都應該知道,更改root密碼不會影響linux的crontab計劃任務,而windows2003就不一樣了,如果隨意更改administrator密碼,會直接影響其計劃任務運行。

②我的Nagios外網監控伺服器,剛開始測試時取的密碼是redhat,放進公網一天就被人改了,鬱悶死了;後來環境部署成熟以後發現仍然有不少外網ip在掃描和試探,看來不用點工具不行啊;呵呵,DenyHosts是用Python2.3寫的一個程式,它會分析/var/log/secure等記錄檔,當發現同一IP在進行多次SSH密碼嘗試時就會記錄IP到/etc/hosts.deny檔案,從而達到自動屏蔽該IP的目的。
  DenyHosts官方網站為:http://denyhosts.sourceforge.net
  一、檢查安裝條件
  1、首先判斷系統安裝的sshd是否支援tcp_wrappers(預設都支援)
  # ldd /usr/sbin/sshdlibwrap.so.0 => /usr/lib/libwrap.so.0 (0x0046e000)
  2、判斷預設安裝的Python版本
  # python -VPython 2.3.4
  二、已安裝Python2.3以上版本的情況
  1、安裝DenyHosts
  # cd /usr/local/src# wget http://jaist.dl.sourceforge.net/sourceforge/denyhosts/DenyHosts-2.6.tar.gz# tar zxf DenyHosts-2.6.tar.gz# cd DenyHosts-2.6# python setup.py install
  程式指令碼自動安裝到/usr/share/denyhosts
  庫檔案自動安裝到/usr/lib/python2.3/site-packages/DenyHosts
  denyhosts.py自動安裝到/usr/bin
  2、設定啟動指令碼
  # cd /usr/share/denyhosts/# cp daemon-control-dist daemon-control# chown root daemon-control# chmod 700 daemon-control# grep -v "^#" denyhosts.cfg-dist > denyhosts.cfg# vi denyhosts.cfg
  根據自己需要進行相應的修改
  ----------------denyhosts.cfg------------------------SECURE_LOG = /var/log/secure#RedHat/Fedora Core分析該記錄檔#其它版本linux根據denyhosts.cfg-dist內提示選擇。PURGE_DENY = 30m#過多久後清除DENY_THRESHOLD_INVALID = 1#允許無效使用者(/etc/passwd未列出)登入失敗的次數DENY_THRESHOLD_VALID = 5#允許有效(普通)使用者登入失敗的次數DENY_THRESHOLD_ROOT = 3#允許root登入失敗的次數HOSTNAME_LOOKUP=NO#是否做網域名稱反解----------------denyhosts.cfg------------------------
  如果需要DenyHosts隨系統重啟而自動啟動,還需做如下設定:
  # vi /etc/rc.local
  加入下面這條命令
  /usr/share/denyhosts/daemon-control start
  3、啟動
  # /usr/share/denyhosts/daemon-control start
  如果要使DenyHosts每次重起後自動啟動還需做如下設定:
  # cd /etc/init.d# ln -s /usr/share/denyhosts/daemon-control denyhosts# chkconfig --add denyhosts# chkconfig --level 345 denyhosts on
  然後就可以啟動了:
  service denyhosts start
  DenyHosts設定檔:
  vi /etc/denyhosts.cfg
  SECURE_LOG = /var/log/secure #ssh 記錄檔,它是根據這個檔案來判斷的。
  HOSTS_DENY = /etc/hosts.deny #控制使用者登陸的檔案
  PURGE_DENY = 5m#過多久後清除已經禁止的
  BLOCK_SERVICE = sshd#禁止的服務名
  DENY_THRESHOLD_INVALID = 1#允許無效使用者失敗的次數
  DENY_THRESHOLD_VALID = 10#允許普通使用者登陸失敗的次數
  DENY_THRESHOLD_ROOT = 5#允許root登陸失敗的次數
  HOSTNAME_LOOKUP=NO#是否做網域名稱反解
  DAEMON_LOG = /var/log/denyhosts#自己的記錄檔
  ADMIN_EMAIL = yuhongchun027@163.com#管理員郵件地址,它會給管理員發郵件

③伺服器上除root外,Linux使用者越少越好;如果非要添加授權使用者,請給他的登陸shell為nologin;終止未授權使用者,定期檢查系統有無多餘的使用者都是很必要的工作。

④分析系統的記錄檔,尋找入侵者曾經試圖入侵系統的蛛絲馬跡。last命令是另外一個可以用來尋找非授權使用者登入事件的工具
  lyychee pts/2 54.107.130.61.di Mon May 22 14:14 still logged inlyychee pts/2 51.107.130.61.di Thu May 18 18:36 - 18:42 (00:05)lyychee pts/2 61.130.107.51 Tue May 16 14:21 - 14:39 (00:18)root pts/2 61.130.107.58 Sat May 13 15:40 - 15:43 (00:02)lyychee pts/2 210.32.178.253 Fri May 12 00:53 - 01:16 (00:23)root pts/2 58.107.130.61.di Wed May 10 15:33 - 15:35 (00:01)root pts/2 61.130.107.58 Tue May 9 14:58 - 15:07 (00:08)root pts/2 59.78.34.62 Sun May 7 07:40 - 07:45 (00:05)lyychee pts/2 59.78.34.62 Sat May 6 23:50 - 00:27 (00:37)lyychee pts/2 222.64.24.144 Sat May 6 10:56 - 10:56 (00:00)root pts/2 192.168.0.111 Sat May 6 00:01 - 00:02 (00:01)lyychee pts/2 222.64.22.144 Thu May 4 12:41 - 12:43 (00:0root pts/2 59.78.34.62 Tue May 2 06:59 - 07:00 (00:00)
  以下是一台機器上的示範圖:
  
  last命令輸入的資訊來自/var/log/wtmp。這個檔案詳細地記錄著每個系統使用者的訪問活動。但是有經驗的入侵者往往會刪掉/var/log/wtmp以清除自己非法行為的證據,但是這種清除行為還是會露出蛛絲馬跡:在記錄檔裡留下一個沒有退出操作與之對應的登入操作(因為在你刪除wtmp的時候,你的登入記錄就沒有了,但是你待會兒登出,系統還是會把你記下來),不過再高明一點就用at或者cron等自己登出之後再刪檔案。(但是這種方法也還是可以查,總之linux沒有一種操作是最強的,強到沒有紕漏。就像古龍的小說一樣,沒有一個人是天下第一。這樣看起來才有勁)

⑤另外,可以用命令 grep error /var/log/messages檢查自己的伺服器是否存在著硬體損壞的情況。

⑥嘗試使用Chkrootkit應用程式對rootkit的蹤跡和特進行尋找,從它的報告中分析你的伺服器否已經感染木馬。

⑦嘗試使用AIDE來檢查檔案系統的完整性。

⑧推薦使用Snort自動檢測入侵,它整合了同類軟體中最先進行技術,並且是開放源碼的。

⑨以自己的郵件伺服器舉例說明,由於這是一個獨立的伺服器,所以前端並沒放置硬體防火牆及Web防火牆,所以一定要開啟iptables來防護,其/root/firewall.sh內容如下:
  #/bin/bashiptables -Fiptables -F -t natiptables -Xiptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEP#load connection-tracking modulesmodeprobe ip_conntrackmodprobe iptable_natmodprobe ip_conntrack_ftpmodprobe ip_nat_ftpiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -p tcp -m multiport --dport80,443,25,465,110,995,143,993,587,465,22 -j ACCEPT
  在另一台機器上用掃描之王nmap進行掃描
  [root@mail postfix]# nmap -P0 -sS 211.143.6.XStarting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-03-29 16:21 CSTInteresting ports on 211.143.6.X:Not shown: 1668 closed portsPORT STATE SERVICE22/tcp open ssh25/tcp open smtp80/tcp open http110/tcp open pop3111/tcp open rpcbind143/tcp open imap443/tcp open https465/tcp open smtps587/tcp open submission993/tcp open imaps995/tcp open pop3s1014/tcp open unknown
  lsof -i:1014,發現又是rpc.statd,這東東,每次用的連接埠都不一樣啊;它不能正確處理SIGPID訊號,遠程攻擊者可利用這個漏洞關閉進程,進行拒絕服務的攻擊;發現rpc.statd是由服務nfslock開啟,關閉它即可
  service nfslock stopchkconfig nfslock off

⑩停掉一些系統不必要的服務,強化核心;多關注下伺服器的核心漏洞,現在linux很多攻擊都是針對核心的,保證核心版本為2.6.9以上(不含2.6.9)。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.