Linux 系統安全規範

基本原則: a. 及時更新所有的服務,以防止最新的威脅
                   b. 儘可能使用安全的協議
                   c. 儘可能讓每臺機只提供一種服務
                   d. 嚴格監控所有機器以及時發現惡意行爲
                   e. 訂閱系統相關的安全郵件列表
一.帳戶和口令
   (). 帳戶
       1.爲每個系統維護人員建立一個獨立的普通權限帳號,爲監控機建立監控
      帳號,分別用於日常系統維護和系統監控;
       2FTP 服務器配置虛擬帳號;
       3.禁止除root 帳號, 系統維護人員帳號和監控機帳號之外所有帳號使用
      SHELL的權限;
       4.鎖定所有在安裝系統時自動建立的帳號;
          a. 查找出未鎖定的系統帳號:egrep -v '.*:\*|:\!' /etc/shadow | awk -F: '{print $1}'
          b. 鎖定:usermod –L <username>
   (). 口令
       1.強度:a. 10位以上;包含了字母(大寫字母和小寫字母),數字和特殊符號;不允許包含英文單詞;
                          b. 配置:在文件/etc/pam.d/system-auth中配置;
                                          password  requisite  /lib/security/$ISA/pam_cracklib.so retry=3 minlen=10  lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1
       2.更改頻率:a. 120天;
                    b. 配置新建帳戶的默認更改頻率:在文件/etc/login.defs中設置 pass_max_days=120

                    c. 修改當前用戶的更改頻率: chage –M 120 <username>
       3.歷史:a. 10
                b. 配置:在文件/etc/pam.d/system-auth中配置
                  password  requisite  /lib/security/$ISA/pam_cracklib.so  retry=3  minlen=10 lcredit=-1  ucredit=-1  dcredit=-1  ocredit=-1  difok=3

password  sufficient  /lib/security/$ISA/pam_unix.so  nullok  use_authtok  md5  shadow  remember=10

       4.推薦的選擇口令的方法:想出一個句子,用其中每個單詞的首字母及其包含的符合,並將字母替換爲跟其相似的數字或符號來生成口令;
       5.好的口令舉例:Zhongguoliantong10010!))!), Beijingquhao010)!)
二.遠程登錄
   (). SSH
       1.只支持SSH v.2
       2.禁止直接使用root帳號登錄,只允許使用普通權限帳號直接登錄;
       3.更改默認端口(改爲22222);
   (). 登錄banner
        1. /etc/issue文件里加入登錄警告
           #cat > /etc/issue << EOF
           =======================================
           Warning: The system is owned by xxxxxx,
                   Unauthorized access to this system is prohibited!!!
           =======================================

 

        2. /etc/motd文件里加入對登錄成功者的警告
          #cat > /etc/motd << EOF
           =======================================
           Warning: The system is owned by xxxxxx,
                   What you do will be monitored and logged!!!
           =======================================
三.內核參數
    1.調整如下內核參數,以提高系統防止IP欺騙及DOS***的能力:
        net.ipv4.ip_forward = 0   # 對於LVS,網關或***服務器,要設置爲1

      net.ipv4.tcp_syncookies = 1

      net.ipv4.conf.all.accept_source_route = 0

      net.ipv4.conf.all.accept_redirects = 0

      net.ipv4.conf.all.rp_filter = 1   # 對於LVS 後端服務器
                                        # 要設置爲0

      net.ipv4.icmp_echo_ignore_broadcasts = 1

      net.ipv4.icmp_ignore_bogus_error_responses = 1

      net.ipv4.conf.all.log_martians = 1

       

      kernel.sysrq = 0

      kernel.core_uses_pid = 1

四.文件系統
1mount 選項:/           ro            # 先將 /root 目錄移到/home/root
                               /boot    ro
  /usr      ro
   /var       noexec, nosuid
  /tmp       noexec, nosuid
   2SUID,SGID文件:每天運行一個cron任務,看是否有新的SUID/SGID文件出現,
                   如果有,則發e-mail 給維護人員;
   3.所有人都可以寫的目錄:每天運行一個cron任務,看是否有新的所有人都可以
                         寫的目錄出現,如果有,則發e-mail 給維護人員;
   4ACL:在爲多個用戶分配某個文件或目錄的權限時,禁止使用修改用戶所屬組
          實現,使用ACL實現;
   5. umask:配置爲0022 0055(在/etc/bashrc中配置);
五.日誌
1.日誌集中存放到日誌主機上, 本地保存4周的日誌備份;
2.日誌客戶機配置:參考<<linux 系統規範>> 8. 配置系統日誌;
3.日誌主機配置:參考<<linux 日誌主機配置指南>>
六.應用程序
   (). MySQL
       1.以mysql用戶運行MySQL
       2.給管理員帳戶root改名(ht-mysql-admin)
       3.給管理員帳戶設置強鍵的口令;
       4.刪除數據庫test
       5.刪除MySQL安裝過程中自動創建的不需要的帳戶,
      禁止創建非絕對必需的帳戶;
       6.禁止存放任何純文本口令在數據庫中;
       7.禁止從字典裏選擇口令;
       8.嚴格控制用戶權限:僅給予用戶完成其工作所需的最小的權限;
                      禁止授予PROCESS, SUPER, FILE 權限給非管理帳戶;
       9.禁止將MySQL數據目錄的讀寫權限授予給mysql用戶外的其它OS 用戶;
       10.訂閱郵件列表:MySQL Announcements
   (). Resin
       1.以用戶resin運行resin
       2.跟APACHE集成使用,禁止運行在standalone 模式直接提供WEB服務
   (). Apache
       1.只編譯必須使用的模塊;
       2.以daemon組的daemon用戶運行APACHE
       3.關閉所有的診斷頁面和自動目錄索引服務;
       4.刪除cgi-bin目錄和manul目錄;
       5.儘可能不要暴露自己的真實身份;
       6.使用chrooting 限制apache對文件系統的訪問(在使用了集中存儲的情況下
比較難以實現);
       7.安裝modsecurity模塊;
       8.運用基於主機的身份驗證控制對管理頁面的訪問;
       9.日誌集中存放和分析;
      10.訂閱郵件列表:Apache HTTP Server Announcements List
七.防火牆
一).軟件:iptables
 ().  規則
                1.加載重要的iptables 模塊:ip_tables, iptable_filter, ip_conntrack,
                                                                        ip_conntrack_ftp
2.按網卡接口(eth0, eth1,…)和數據包類型(TCP,UDP,ICMP
   自定義規則集;
3.配置每個規則集的 policy ACCEPT,但一定要在每個規則集的末尾顯式DROP任何匹配該規則集但不允許的數據包(iptables –A <rule-set name> -j DROP);
4DROP 無效數據包,IP spoof 數據包;
5.只開放能滿足業務需求的最少的端口;
 ().  配置
      參考<< linux 系統規範 >> 10. 配置安全 3)防火牆;
八.***檢測和防護
1.工具:OSSEC
2.策略:在某臺服務器上安裝OSSEC HIDS 服務器,在需要作主機***檢查和防護及文件完整性檢測的服務器上安裝OSSEC HIDS 代理,代理將相關信息發送到HIDS服務器,由服務器統一分析處理;
3.配置:參考<< HIDS OSSEC安裝指南>>
九.安全審計
    ---------------------------------------------------------------
審計對象          工具                     頻率
-----------------------------------------------------------
Linux 系統        nmap                     1個月
                           Nessus                  3個月
                          自動日誌分析      實時
                           人工日誌分析     必要時
口令文件          John the ripper     3個月
APACHE          nikto                       6個月
                           Appscan                6個月
------------------------------------------------------------
注:新安裝的服務器必須經過安全審計才允許投入產品環境;
        新發布了應用後,必須立即進行安全審計;
.安全郵件列表和網站
1.訂閱郵件列表:[url]www.securityfocus.com[/url] Bugtraq, Focus-Linux, Web
                                    Application Security

 
 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章