歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> solaris安全手冊

solaris安全手冊

日期:2017/2/27 17:44:34   编辑:Unix教程
手冊
  1,Preparation
  2,Initial OS installation
  3,Stripping/configuring OS: 1st pass
  4,Connect to test network
  5,Installing tools & sysadmin software
  6,Stripping/configuring OS: 2nd pass
  7,Create Tripwire image, backup, test
  8,Install, test, harden applications.
  9,Install on live network, test
  
  1. Preparation
  最小限度保證安全的方法是只在主機上運行一個或兩個服務。使用一個機器比只使用
  一個擁有所有權利的機器安全的多,因為這樣可以隔離,方便查找問題所在。總之:
  在你的機器上運行你一些最必要的服務。考慮拆除鍵盤,屏幕,這樣可以避免使用X1
  1和知道命令行所示,在一個隔離的信任的網絡段中進行測試。明確你的系統和硬件配
  置能產生什麼樣的結果,如在安裝SUN的Disksuite時要考慮
  你是否需要RPC服務,因為DISKSUITE必須使用RPC服務。明確各種應用程序是怎樣工作
  的如:使用什麼端口和文件.
  2,初始化安裝操作系統。
  連接串口控制台,開機,當出現OK提示時發送Stop-A信息(~#,~%b,或者F5,主要取決
  於你使用tip,cu或者vt100終端),然後開始安裝過程-"boot cdrom - install"
  使用最小安裝 end user bundle(除非你要額外的server/developer工具),設置主機
  名,終端,IP參數,時區等等,不要激活NIS或者NFS及不要激活電源管理。選擇手工
  劃分分區:把/usr和/opt和ROOT分離開來以便這些分區可以以只讀方式掛(mount)起來
  。考慮把大的/var文件系統和擁有較多的數據量如(web,ftp)劃分為獨立的分區。
  如果硬盤是2GB建議200MB / (+var), 200MB swap, 600MB /usr及 1GB 給 /opt
  如果硬盤是2GB建議300MB / (+var+opt), 200MB swap, 500MB /usr
  給ROOT設置一個7到8字符大小寫結合等比較強壯的密碼,再重啟動。
  接著安全由SUN的安全補丁。一般的在CD上就包含這些安全補丁包。重啟動及作為ROO
  T重啟動後,你可以使用showrev -p查看補丁列表。
  3,配置操作系統
  磁盤共享(mount):為了減少木馬和不授權的修改,在/etc/vfstab,在mount /時請使用
  "remount,nosuid"選項;在/var上請帶上"nosuid"選項;在/tmp後加上
  "size=100m,nosuid"選項(允許/tmp只能使用100M空間及不允許執行SUID程序);
  如果軟盤不需要的話再把"/dev/fd"行注釋掉。
  (下面的命令假定你使用的是c-shell)
  使NFS無效:
  rm /etc/rc2.d/{S73nfs.client,K28nfs.server} /etc/rc3.d/S15nfs.server /etc/
  dfs/dfstab使Sendmail守護程序無效,雖然sendmail不是作為一個守護程序來運行的
  ,但兩進制程序是依然存在的,EMAIL還可以通過它了發送(但不能接受)。設定只要一
  個主機來接受EMAIL,另必須使用smap或其他等同命令來把sendmail危險程度降低到最
  底。
  rm /etc/rc2.d/S88sendmail
  再在cron行中增加處理郵件隊列的命令:
  0 * * * * /usr/lib/sendmail -q
  在關閉一些其他的服務:
  rm /etc/rc2.d/{S74autofs,S30sysid.net,S71sysid.sys,S72autoinstall}
  rm /etc/rc2.d/{S93cacheos.finish,S73cachefs.daemon,S80PRESERVE}
  rm /etc/rc2.d/{S85power,K07dmi}
  rm /etc/rc3.d/S77dmi
  If you have server/developer packages:
  rm /etc/rc2.d/{S47asppp,S89bdconfig,S70uucp}
  使RPC無效:這一般來說是建議關閉此功能的,但一些程序如DISKSUITE會開啟RPC服務
  ,所以一般建議不使用DISKSUITE工具。如果你不想使RPC無效,則一定要使用信息包
  過濾器。
  rm /etc/rc2.d/S71rpc
  使打印服務無效(除非有一個本地打印機存在):
  rm /etc/rc2.d/{S80lp,S80spc}
  使naming Services Caching Daemon(名字服務緩沖守護程序)服務無效:
  mv /etc/rc2.d/S76nscd /etc/rc2.d/.S76nscd
  使CDE程序無效(除非你堅持要使用圖形控制台):
  rm /etc/rc2.d/S99dtlogin
  使NTP-NETWORK TIME PROTOCOL無效(NTP會增加帶寬和不安全的因素,建議使用
  rdate到一台使用NTP的機器來獲得精確時間):
  rm /etc/rc2.d/S74xntpd
  使SNMP無效:
  rm /etc/rc2.d/K07snmpdx /etc/rc3.d/S76snmpdx
  在Inetinit中是IP forwarding和sourec routing(源路)由無效(假如有超過一個網絡
  接口的話)。在/etc/init.d/inetinit中增加下面所示設置:
  ndd -set /dev/ip ip_forward_directed_broadcasts 0
  ndd -set /dev/ip ip_forward_src_routed 0
  ndd -set /dev/ip ip_forwarding 0
  根據RFC1948建議在/etc/default/inetinit中增加如下的生成初始化序列號設置來防
  止TCP序列號預測攻擊(ip欺騙):
  TCP_STRONG_ISS=2
  在/etc/system中增加如下設置來防止某些緩沖溢出攻擊。這些保護是那些需在堆棧中
  執行的攻擊方式。但需要硬件的支持(只在sun4u/sun4d/sun4m系統中有效):
  set noexec_user_stack=1
  set noexec_user_stack_log=1
  使用默認路由:在/etc/defaultrouter中增加IP地址,或使用"route"在/etc/rc2.d/
  S99static_routes中建立啟動文件。為了使動態路由無效:
  touch /etc/notrouter
  為了使多路廣播(multicasting)無效請在/etc/init.d/inetsvc中注解掉
  "route add 224.0.0.0"周圍的幾行。
  為了記錄INETD連接的所有信息,在inetd低端的啟動行中增加"-t"參數,
  即:: /usr/sbin/inetd -s -t
  在/etc/hosts中配置一些你想取捨的主機(一些你不想通過DNS解析的)。
  /etc/inetd.conf:
  先使所有服務無效;
  配置你真正需要的服務,但必須使用FWTK netacl或tcp wrappers來允許最小限度的I
  P地址訪問和各種記錄
  4,連接並測試網絡
  系統通過上面的安全剝離和篩選,你必須肯定系統能正常工作,把它連接到一個安全
  隔離的網絡。重起並以ROOT身份登錄控制台,檢查控制台啟動時的錯誤信息並根據需
  要進行修改。
  5,安裝系統管理工具軟件
  這部分將安裝標准的工具和實用程序。最重要的是SSH,這些工具必須在其他機器上編
  譯和精心測試過的。
  環境:
  DNS客戶端:在/etc/resolv.conf中增加域名和DNS服務;在/etc/nsswitch.conf中增
  加DNS入口的主機。
  EMAIL:如果主機不需要在子網外發送EMAIL,就不需要使用mailhost的別名。否則的
  話必須編輯/etc/mail/aliases,在/etc/hosts中設置mailhost,在/etc/mail/sendm
  ail.cf取消Dj行的注釋並把它設置為Dj$w.YOURDOMAIN.COM.
  如果DNS沒有配置,就在 /etc/hosts中增加這太機器的別名hostname.YOURDOMAIN.CO
  M。
  現在發送一封測試EMAIL:mailx -v -s test_email root 在/.cshrc/.profile中設置別名,變量如:VISUAL, EDITOR和PATH,但不要包含'.'號
  。
  
  為LOGIN登錄進程安裝SSH。配置SSH守護程序(/etc/sshd_config)以便訪問限制在帶有
  known public keys的主機(/etc/ssh_known_hosts)並使rhosts認證無效。如果遠程管
  理確實需要的話,使用.shosts要比.rhosts好的多。檢查Inetd中的telnetd/ftpd是否
  仍然激活,如果是的話請在/etc/inetd.conf中注釋掉,在進行SSH測試。
  
  安裝一些其他的一些必須工具如:gzip;traceroute;top(不帶SUID);lsof.
  
  安裝和建立Perl5到/bin/perl.
  
  在/secure中安裝安全腳本如:rotate_cron, rotate_log, wtrim.pl, rdistd
  並改變屬性來保護/secure:chmod -R 700 /secure; chown -R root /secure
  6,在次配置和篩選系統安全:
  許多在CD中OS的補丁是不夠及時的,因此從sunsolve.sun.ch中獲取patchdiag
  工具來查看安全補丁並下載安裝這些補丁。
  
  配置登錄記錄
  在/etc/default/su中使SU記錄有效。
  使用以下方法使嘗試登錄失敗記錄有效:
  touch /var/log/loginlog;
  chmod 600 /var/log/loginlog;
  chgrp sys /var/log/loginlog
  
  SYSLOG記錄:根據syslog.conf例子來分散LOG分析記錄,即把多項服務的記錄
  分散到各個獨立的LOG文件,有條件的話在(/etc/hosts)中指定一台機器作為loghost
  
  syslog "loghost"
  需要一個大的磁盤作為LOG記錄的存儲介質。
  建立空的LOGS文件並設立相應的權限:
  
  cd /var/log; touch daemonlog authlog kernlog userlog maillog lprlog
  cronlog newslog locallog alertlog;
  
  chmod 600 daemonlog authlog kernlog userlog maillog lprlog cronlog
  newslog locallog alertlog;
  
  kill -1 `pgrep syslogd`
  
  使用rotate_log來修剪和壓縮LOGS文件,在root cron中增加如下條目:
  ## Prune syslog logs weekly, keeping the last 6 months or so:
  55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 40 al
  ertlog
  55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 40 au
  thlog
  55 23 * * 6 /secure/rotate_log -L /var/log -c -m 600 -M 400 -c -s -n 20 cr
  onlog
  5
Copyright © Linux教程網 All Rights Reserved