- 論壇徽章:
- 0
|
如何對solaris進行簡單網絡防護!
Solaris安全配置手冊
作者:e4gle <e4gle@netguard.com.cn>;
前言:針對solaris7,8操作系統(tǒng)的一個完全的安全配置手冊,供系統(tǒng)管理員參考。
Solaris安全配置流程1
一,solaris系統(tǒng)安裝3
系統(tǒng)patch3
建立/var分區(qū)3
二,系統(tǒng)4
eeprom安全4
置核心大小為零4
三,用戶管理4
禁止所有的系統(tǒng)賬戶(system accounts)4
用強壯的密碼設置程序5
設置默認的密碼參數5
設置密碼的最大生存周期5
設定離用戶密碼過期的天數,當系統(tǒng)啟動時提醒用戶。5
設定最小用戶密碼長度6
防止遠程的root登陸6
紀錄所有root的登陸情況6
設置登陸會話超時時間6
設置默認的屏蔽掩碼6
設置root的umask6
確定登陸需要密碼驗證7
設置shell的環(huán)境變量7
檢查每個用戶的密碼檔設置7
去掉所有path環(huán)境變量里的“.”7
限制su命令,添加可以su的用戶到sugroup里7
四,inetd超級進程8
注釋掉所有確實不需要的服務8
對inetd的服務實現TCP wrapper8
加固inetd8
關于xinetd8
五,系統(tǒng)啟動服務(rc.X)9
去掉不需要的啟動服務9
禁止DMI服務9
禁止默認的mounting suid features9
檢查所有的.rhosts文件10
禁止基于rhosts的用戶認證10
檢查信任關系10
啟動服務腳本的屏蔽掩碼10
六,網絡接口的調整和安全11
縮短ARP緩存的存在周期11
縮短條目在arp-table里刷新的時間11
禁止回應廣播的的請求來防止一些特殊的具有危害性的ping包11
啟動時禁止源路由11
防止系統(tǒng)在啟動時啟動ip轉發(fā)11
設置系統(tǒng)禁止ip包轉發(fā)12
設置系統(tǒng)精確的多路尋址12
保證系統(tǒng)不響應icmp網絡掩碼請求12
防止系統(tǒng)響應icmp的時間戳請求12
防止系統(tǒng)響應icmp時間戳廣播12
防止系統(tǒng)發(fā)送icmp轉發(fā)信息13
改變TCP初始序列號生成參數13
設置in.routed在靜態(tài)模式13
禁止路由13
八,小型服務14
1,NFS14
2,NIS,NIS+15
3,MAIL15
4,FTP16
5,TELNET17
九,X-Windows17
十,文件許可權限18
去掉不用的suid文件18
去掉不用的sgid程序18
刪除一切/etc目錄下的組用戶可寫的文件19
移除/etc目錄下一切對用戶可寫的文件19
改變所有文件的rw-rw-rw權限為rw-r-r-19
改變文件的rwxrwx???19
找出可寫的目錄20
確定所有應用服務的啟動腳本的用戶屬主和用戶組是root20
打開cron程序的記賬20
檢查utmp,utmpx的權限20
尋找沒有用戶關聯(lián)的文件21
尋找沒有組關聯(lián)的文件21
檢查/var/cron的權限21
十一,登錄和記賬21
設置cronlogfile的保存空間為2m21
記賬所有的inetd服務22
修改syslog.conf文件22
安裝tripwire22
IDS22
日志文件觀察者(swatch)22
禁止telnet遠程管理,用ssh23
十二,其他23
設置啟動標示23
一 solaris系統(tǒng)安裝
系統(tǒng)patch
解決方案:
連接站點http://sunsolve.sun.com尋找solaris的最新補丁路徑
showrev -p [安裝的補丁列表命令]
建立/var分區(qū)
解決方法:
/var分區(qū)是存放logfile以及系統(tǒng)變動文件的文件系統(tǒng),因為它的易變化性,以及在系統(tǒng)運作過程中的不斷擴大,所以不要把/var文件系統(tǒng)包括再root分區(qū)里,以免有惡意程序惡意擴大日志文件來dos根分區(qū)。
1)在系統(tǒng)安裝之初解決這個問題。
2)劃分較小的獨立的文件系統(tǒng)給/var
3)并掛接在/下。
二 系統(tǒng)
eeprom安全
安全層面:本地
解決方法:
先解釋一下openboot安全級別:
none 不需要任何口令
command 除了boot和go之外的所有命令都需要口令。
Full 除了go命令之外的所有openboot命令都需要openboot口令
好!用# eeprom security-mode=command命令來改變openboot的安全級別到command級。當然,你首先得要用# eeprom security-password命令來給openboot設置強壯口令。
為什么要這樣做:因為能夠訪問openboot的用戶可以從幾乎所有的scsi設備(外部硬盤或cdrom)上引導系統(tǒng),這樣用戶如果從他們自己的媒體來引導系統(tǒng)的話,就等于完全控制了系統(tǒng)。同樣,用戶能夠用stop-A停止系統(tǒng),可以修改所有openboot環(huán)境變量。這是非常危險的事情。
置核心大小為零
安全層面:本地
解決方法:
添加行到:/etc/system文件里:
set sys:coredumpsize = 0
我建議這樣做,因為你需要去分析內核,這樣做可以防止由于你的誤操作而損壞你的硬盤。
參考腳本:
disable-core.sh
三 用戶管理
禁止所有的系統(tǒng)賬戶(system accounts)
安全層面:本地
解決方法:
編輯/etc/passwd文件使所有系統(tǒng)賬戶沒有shell。如:noaccess 60002:60002:No Access User:/:/sbin/noshell
noshell.c應該這樣寫:
#include <stdio.h>;
void main() {
printf(“sorry!no shell with this account\n”);
return 0;
}
gcc -o ./noshell ./noshell. c
cp /sbin/noshell /sbin/noshell.solaris
cp ~/noshell /sbin/noshell
禁止不需要的系統(tǒng)賬戶,在/etc/shadow文件中用NP標志放在那些用戶的密碼段,這樣那些用戶就被禁止了。
基本的sys V unix系統(tǒng)賬戶:
bin, daemon,adm,lp,smtp,sys,uucp,nuucp,nobody,noaccess
用強壯的密碼設置程序
安全層面:遠程
解決方法:
對于所有用戶賬戶而言都應該用強壯的密碼,在solaris下有一個叫npasswd的工具運行的很好,利用npasswd代替passwd程序來讓用戶設置密碼,它附帶了一個配置文件,可以讓用戶設定密碼的長度,字符,期限等控制信息。
設置默認的密碼參數
安全層面:本地
解決方法:
添加或編輯/etc/default/passwd文件如下入口:
PWMIN= 1 #密碼可以被改變的最小時段
設置密碼的最大生存周期
安全層面:本地
解決方法:
添加或編輯/etc/default/passwd文件如下入口:
PWMAX= 13 #密碼的最大生存周期
設定離用戶密碼過期的天數,當系統(tǒng)啟動時提醒用戶。
安全層面:本地
解決方法:
添加或編輯/etc/default/passwd文件如下入口:
PWWARN= 4
設定最小用戶密碼長度
安全層面:本地
解決方法:
添加或編輯/etc/default/passwd文件如下入口:
PWLEN= 8 #設定最小用戶密碼長度為8位
防止遠程的root登陸
安全層面:本地
解決方法:
添加或編輯/etc/default/login文件如下入口:
LCONSOLE=/dev/console #這樣root只能從/dev/console這個設備登陸
紀錄所有root的登陸情況
安全層面:本地
解決方法:
添加或編輯/etc/default/login文件如下入口:
LSYSLOG= YES #syslog紀錄root的登陸失敗,成功的情況
設置登陸會話超時時間
安全層面:本地
解決方法:
添加或編輯/etc/default/login文件如下入口:
LTIMEOUT= 120
設置默認的屏蔽掩碼
安全層面:本地
解決方法:
添加或編輯/etc/default/login文件如下入口:
LUMASK= 027 #這將設定標準掩碼為:750,也可以將這行加到/etc/.login /etc/profile /etc/skel/local.cshrc /etc/skel/local.login /etc/skel/local.profile這些文件里
設置root的umask
安全層面:本地
解決方法:
確定root的umask是027或077
檢查root的.profile
確定登陸需要密碼驗證
安全層面:本地
解決方法:
添加或編輯/etc/default/login文件如下入口:
LPASSREQ= YES
設置shell的環(huán)境變量
安全層面:本地
解決方法:
添加或編輯/etc/default/login文件如下入口:
LALTSHELL= YES
檢查每個用戶的密碼檔設置
安全層面:本地
解決方法:
檢查/etc/passwd;/etc/shadow文件里的每個用戶的加密行,如:
user:lRs.8R9EfQXx.:11137:0:10000::::
加密段有無被修改的跡象
去掉所有path環(huán)境變量里的“.”
安全層面:本地
解決方法:
從用戶及root的初始化腳本中的path變量里去除“.”,比如如下腳本:
/.login /etc/.login /etc/default/login /.cshrc /etc/skel/local.cshrc
/etc/skel/local.login /etc/skel/local.profile /.profile /etc/profile
限制su命令,添加可以su的用戶到sugroup里
安全層面:本地
解決方法:
1)在/etc/group文件里建立一個特殊的組
2)使你的admin賬號在這個組里
3)改變/bin/su的權限為:r-sr-sr-x 1 root sugroup
# chmod 550 /bin/su
# chmod +s /bin/su
# chown root:sugroup /bin/su
# ls -al /bin/su
-r-sr-s--- 1 root sugroup 18360 Jan 15 1998 /bin/su
# grep sugroup /etc/group
sugroup::600:root,httpadm,wsphere
只有是sugroup組里的用戶才可以使用su命令
四 inetd超級進程
注釋掉所有確實不需要的服務
安全層面:遠程
解決方法:
用grep -v “^#”/etc/inetd.conf命令來察看你當前沒有注釋的服務
去掉一切你不是真正需要的服務,并且是那些沒有注釋的服務保護在tcp_wrapper之下。
對inetd的服務實現TCP wrapper
安全層面:遠程
解決方法:
編譯安裝tcpd到/usr/local/bin目錄下,編輯/etc/inetd.conf如下:
ftp stream tcp nowait root /usr/local/bin/ tcpd in.ftpd
telnet stream tcp nowait root /usr/local/bin/ tcpd in.telnetd
加固inetd
安全層面:遠程
解決方法:
檢查/etc/hosts.deny和/etc/hosts.allow文件,確定如下格式:
/etc/hosts.deny
ALL:ALL
開啟的服務:
/etc/hosts.allow
<service>;:<source-ip>;
關于xinetd
安全層面:本地
解決方法:
xinetd有這比inetd更強大的靈活性和安全性,所以盡量用xinetd來代替inetd。
五 系統(tǒng)啟動服務(rc.X)
去掉不需要的啟動服務
安全層面:遠程
解決方法:
用mv命令來去掉不需要的啟動服務,一個例子如下:
mv /etc/rc3.d/S92volmgt /etc/rc2.d/not_usedS92volmgt
這樣vlomgt這個服務就被禁止啟動了
下面一些服務最好禁止啟動(不過具體情況具體決定):
snmpdx
autofs(Automounter)
volmgt(Volume Deamon)
lpsched(LP print service)
nscd (Name Service Cache Daemon)
Sendmail
Keyserv
禁止rpcbind服務,如果它不是一定需要的話。(以上列表可以代表所有不需要的服務,但具體情況請進入到rc.X目錄里自行決定哪些服務需要,哪些不需要)
禁止DMI服務
安全層面:遠程
解決方法:
禁止所有的dmi服務:mv /etc/rc3.d/S??dmi /etc/rc3.d/D??dmi
DMI服務通過/etc/init.d/init.dmi里的幾個bin文件來運行:
/usr/lib/dmi/dmispd
/usr/lib/dmi/snmpXdmid
/etc/dmi/ciagent/ciinvoke
禁止默認的mounting suid features
安全層面:遠程
解決方法:
在/etc/rmmount.Conf文件里添加行:
mount hsfs -o nosuid
mount ufs -o nosuid
檢查所有的.rhosts文件
安全層面:遠程
解決方法:
.rhosts文件允許用戶或遠程主機訪問系統(tǒng)而不經過密碼驗證。假如一臺遠程的主機被攻破,這將成為極大的安全隱患。建議禁止任何.rhosts文件。
禁止基于rhosts的用戶認證
安全層面:遠程
解決方法:
更改并刪除/etc/pam.conf文件里的:
rlogin auth sufficient /usr/lib/security/pam_rhosts_auth.so.1
改變rsh行:
rsh auth required /usr/lib/security/pam_unix.so.1
參考腳本:
pam-rhosts-2. 6.sh
檢查信任關系
安全層面:遠程
解決方法:
確定/etc/hosts.equiv文件為空。
啟動服務腳本的屏蔽掩碼
安全層面:遠程
解決方法:
在每個rc.X目錄中建立S00umask文件:
/etc/rc0.d/S00umask.sh
/etc/rc1.d/S00umask.sh
/etc/rc2.d/S00umask.sh
/etc/rc3.d/S00umask.sh
/etc/rcS.d/S00umask.sh
/etc/init.d/umask
參考腳本:
add-umask.sh
六 網絡接口的調整和安全
縮短ARP緩存的存在周期
安全層面:遠程
解決方法:
在/etc/rc2.d/S??inet腳本中添加如下:
ndd -set /dev/arp arp_cleanup_interval 60000 /* 1 min (default is 5 min)*/
縮短條目在arp-table里刷新的時間
安全層面:遠程
解決方法:
在/etc/rc2.d/S??inet腳本中添加如下:
ndd -set /dev/ip ip_ire_flush_interval 60000 /* 1 min (default is 20 min)*/
禁止回應廣播的的請求來防止一些特殊的具有危害性的ping包
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_respond_to_echo_broadcast 0 # default is 1
啟動時禁止源路由
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_forward_src_routed 0 # default is 1
防止系統(tǒng)在啟動時啟動ip轉發(fā)
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_forwarding 0 # default is 1
設置系統(tǒng)禁止ip包轉發(fā)
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_ignore_redirect 1 # default is 0
(adds it into /etc/init.d/nddconfig)
設置系統(tǒng)精確的多路尋址
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_strict_dst_multihoming 1 # default is 0
(adds it into /etc/init.d/nddconfig)
保證系統(tǒng)不響應icmp網絡掩碼請求
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_respond_to_address_mask_broadcast= 0 # default is 0
(adds it into /etc/init.d/nddconfig)
防止系統(tǒng)響應icmp的時間戳請求
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_ip_respond_to_timestamp= 0 # default is 1
(adds it into /etc/init.d/nddconfig)
防止系統(tǒng)響應icmp時間戳廣播
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_ip_respond_to_timestamp_broadcast= 0 # default is 1
(adds it into /etc/init.d/nddconfig)
防止系統(tǒng)發(fā)送icmp轉發(fā)信息
安全層面:遠程
解決方法:
添加或修改/etc/rc2.d/S??inet如下:
ndd -set /dev/ip ip_send_redirects= 0 # default is 1
(adds it into /etc/init.d/nddconfig)
改變TCP初始序列號生成參數
安全層面:遠程
解決方法:
改變/etc/default/inetinit文件的條目:
TCP_STRONG_ISS= 2
設置in.routed在靜態(tài)模式
安全層面:遠程
解決方法:
按如下步驟建立in.routed -q(靜態(tài)模式):
mv /usr/sbin/in.routed to /usr/sbin/in.routed.orig
建立/usr/sbin/in.routed如下內容:
#! /bin/sh
/usr/sbin/in.routed.orig -q
更改這個文件的權限:
chmod 0755 /usr/sbin/in.routed
#動態(tài)的路由模式容易遭受到惡意的路由信息的親篇和攻擊,所以建議寧愿用靜態(tài)路由,(路由的增加通過啟動文件的route命令)也不建議用動態(tài)路由守護進程
禁止路由
安全層面:遠程
解決方法:
touch /etc/notrouter
八,小型服務
1,NFS
移除NFS
安全層面:遠程
解決方法:
建議在DMZ中不要運行NFS服務,所以如果它運行著的話,建議移除它。如下步驟:
移除/etc/dfs/dfstab中的所有共享定義
殺掉NFS守護進程:lockd, nfsd, statd, mountd
重命名NFS的啟動腳本:/etc/rc3.d/S??nfs.server 和 /etc/rc2.d/S??nfs.client
設置NFS的特定tcp端口
安全層面:遠程
解決方法:
執(zhí)行如下命令:
ndd -set /dev/tcp tcp_extra_priv_ports_add 2049
設置NFS的特定udp端口
安全層面:遠程
解決方法:
執(zhí)行如下命令:
ndd -set /dev/udp udp_extra_priv_ports_add 2049
開啟NFS端口監(jiān)聽
安全層面:遠程
解決方法:
添加行到/etc/system文件:
set nfssrv: nfs_portmon = 1
set nfs: nfs_portmon = 1
確定你的/etc/system文件的訪問權限為644:
# chmod 644 /etc/system
一些nfs相關的服務
安全層面:遠程
解決方法:
關掉如下服務:
nfsd
mountd
rpc.boot
in.rarpd
rpld
2,NIS,NIS+
去除NIS,NIS+
安全層面:遠程
解決方法:
我們建議不要運行NIS,NIS+服務,所以按一下步驟移除它:
在文件/etc/domainname里移除域名:
你可以察看NIS大體的服務列表:
# pkginfo |grep NIS
# pkgrm <NIS-Package>;
system SUNWypr NIS Server for Solaris (root)
system SUNWypu NIS Server for Solaris (usr)
移除NIS,NIS+,DNS Lookup
安全層面:遠程
解決方法:
編輯/etc/nsswitch.conf如下:
passwd: files
group: files
hosts: files
networks: files
protocols: files
rpc: files
ethers: files
netmasks: files
bootparams: files
publickey: files
netgroup: files
automount: files
aliases: files
services: files
sendmailvars: files
如果需要dns的話,可以再次修改這個文件
3,MAIL
停止綁定在25端口的sendmail服務
安全層面:本地
解決方法:
禁止sendmail服務,你的用戶依然可以發(fā)信。意思是,sendmail仍然安裝了,只是不要作為守護進程存在,你可以在sendmail.cf文件里限制你的用戶的權限。
mv /etc/rc2.d/S88sendmail /etc/rc2.d/not_usedS88sendmail
注釋所有的并行郵件別名
安全層面:遠程
解決方法:
檢查 /ect/aliases |可以并列。用#號注解。
限制sendmail的expn和vrfy兩個命令來收集系統(tǒng)信息
安全層面:遠程
解決方法:
在/etc/senmmail.cf文件中修改如下限制遠程連接25端口使用expn和vrfy命令:
# O PrivacyOptions=authwarnings, goaway
Opgoaway
# O PrivacyOptions=noexpn, novrfy, authwarnings
O LogLevel=5
隱藏smtp版本信息
安全層面:遠程
解決方法:
在/etc/mail/sendmail.cf文件里找到smtp版本信息,修改如下:
# SMTP login message
禁止郵件轉發(fā)
安全層面:遠程
解決方法:
普通用戶不可以選擇轉發(fā)者,而root可以通過/usr/local/forward/.forward.$u來控制郵件轉發(fā),修改/etc/sendmail.cf如下行:
O ForwardPath=/usr/local/forward/.forward.$u
設置/usr/local/forward正確的權限
接收郵件
安全層面:本地
解決方法:
如果真要在自己的系統(tǒng)上接收外來的郵件(監(jiān)聽在25端口)。我們建議利用spam或smtpd/smtpfwdd來保證郵件服務的安全(加上anti-spam,安全配置)。
4,FTP
安全FTP
安全層面:遠程
解決方法:
建立或修改/etc/default/ftpd文件增加屏蔽碼和ftp標志信息:
UMASK= 077
BANNER="/bin/cat /etc/ftp-banner"
修改/etc/default/ftpd權限:
chmod 644 /etc/default/ftpd
建立ftp標示信息
安全層面:遠程
解決方法:
建立/etc/ftp-banner文件滿足如下:
例如:This system is for authorized users only. Monitoring may occur
修改/etc/ftp-banner文件的權限:
chmod 644 /etc/ftp-banner
創(chuàng)建/etc/ftpusers文件
安全層面:遠程:
解決方法:
創(chuàng)建/etc/ftpusers文件,把所有的系統(tǒng)賬戶加入到這個文件里
例如如下賬戶:
root daemon sys bin adm lp smtp uucp nuucp listen
nobody noaccess news ingres audit admin sync nobody4
修改/etc/ftpuser文件的權限:
chmod 644 /etc/ftpusers
5,TELNET
防止telnet程序現實系統(tǒng)版本信息
安全層面:遠程
解決方法:
移除/etc/default/telnetd文件里的信息:
Banner=””
加入/etc/default/telnetd文件不存在,按如下步驟操作:
touch /etc/default/telnetd
echo "BANNER=\"\"">;>; /etc/default/telnetd
chmod 444 /etc/default/telnetd
九,X-Windows
設置CDE為不接受任何XDMCP登陸連接
安全層面:遠程
解決方法:
假如/usr/dt/config/Xaccess存在,則如下操作:
cat <<EOF >;/usr/dt/config/Xaccess
# disable all XDMCP connections
!*
EOF
假如/etc/dt/config/Xaccess存在,則如下操作:
cat <<EOF >;/etc/dt/config/Xaccess
# disable all XDMCP connections
!*
EOF
十,文件許可權限
去掉不用的suid文件
安全層面:本地
解決方法:
許多運行在solaris上的suid程序都只屬于root,檢查這些程序,有沒有是屬于其他用戶的:
步驟:
1)找出所有的suid程序
2)創(chuàng)建備3)份目錄(如:/opt/backup/usr/local/bin)
4)把這些suid程序備5)份在以上目錄里
6)把這些程序用tar打成包(使find程序在備7)份目錄里找不8)到這些程序)
9)刪掉備10)份目錄
11)去掉所有的suid程序的s權位
12)只保留一些必須的suid程序。如:passwd,13)su等
14)再次執(zhí)行一遍find程序,15)看看輸出情況
必須用到的一些命令:
find / -type f\( -perm -4000 \) |xargs ls -a
find / -type f\( -perm -4000 \) |xargs chmod -s
去掉不用的sgid程序
安全層面:本地
解決方法:
許多運行在solaris上的sgid程序都只屬于root,檢查這些程序,有沒有是屬于其他用戶的:
1)出所有的sgid程序
2)創(chuàng)建備3)份目錄(如:/opt/backup/usr/local/bin)
4)把這些sgid程序備5)份在以上目錄里
6)把這些程序用tar打成包(使find程序在備7)份目錄里找不8)到這些程序)
9)刪掉備10)份目錄
11)去掉所有的sgid程序的s權位
12)只保留一些必須的sgid程序。如:passwd,13)su等
14)再次執(zhí)行一遍find程序,15)看看輸出情況
必須用到的一些命令:
find / -type f\( -perm -2000 \) |xargs ls -a
find / -type f\( -perm -2000 \) |xargs chmod -s
刪除一切/etc目錄下的組用戶可寫的文件
安全層面:本地
解決方法:
檢查/etc目錄下所有的組可寫文件:
find /etc -type f\( -perm 20 \) | xargs ls -las
不需要組的可寫權限,修改如下:
find /etc -type f\( -perm 20 \) | xargs chmod g-w
移除/etc目錄下一切對用戶可寫的文件
安全層面:本地
解決方法:
檢查/etc目錄下對用戶可寫文件:
find /etc -type f\( -perm 2 \) | xargs ls -las
不需要用戶的可寫權限,修改如下:
find /etc -type f\( -perm 2 \) | xargs chmod g-w
改變所有文件的rw-rw-rw權限為rw-r-r-
安全層面:本地
解決方法:
首先列出文件:
find / -type f -perm 666 |xargs ls -al >; perm-666-before-change.txt
改變權限:
find / -type f -perm 666 |xargs chmod 644
find / -type f -perm 666 |xargs ls -al >; perm-666-after-change.txt
改變文件的rwxrwx???
安全層面:本地
解決方法:
首先列出文件:
find / -type f -perm 777 |xargs ls -al >; perm-777-before-change.txt
改變權限:
find / -type f -perm 777 |xargs chmod 755
find / -type f -perm 777 |xargs ls -al >; perm-777-after-change.txt
找出可寫的目錄
安全層面:
本地
解決方法:
find / -type d\( -perm 2 \)
改變你所需要的權限設置
確定所有應用服務的啟動腳本的用戶屬主和用戶組是root
(這些可以影響補丁的程序和出錯信息)
安全層面:本地
解決方法:
檢查啟動腳本的文件屬主:
find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp|Mail" | xargs ls -al >; rc-files-before-change.txt
改變這些文件的文件屬主:
find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp|Mail" | xargs chown
root:root
find /etc -type f -print | grep rc | egrep -v "skel|tty|mail|snmp|Mail" | xargs ls -al >; rc-files-after-change.txt
ls -al /etc/ init. d >; etc-init.d-before.change.txt
chown root:root /etc/ nit.d
ls -al /etc/init.d >; etc-init.d-after-change.txt
經過這樣的改變,所有的rcX.d里的腳本的文件屬主都為root,所有的/etc/init.d目錄里的腳本的文件屬主文件組都是root了,為了防止特洛伊木馬。
打開cron程序的記賬
安全層面:本地
解決方法:
確定/etc/default/cron文件里有如下行:
CRONLOG=YES
檢查utmp,utmpx的權限
安全層面:本地
解決方法:
檢查/var/adm目錄下的文件權限:
find /var/adm -type f\( -perm 2 \) | xargs ls -las
修改文件:
chmod 644 /var/adm/utmp
尋找沒有用戶關聯(lián)的文件
安全層面:本地
解決方法:
find / -type f -nouser
如下步驟:
1) find / -type f -nouser >; files-nouser-before-change
2) find / -type f -nouser | xargs chwon nobody:nobody
3) find / -type f -nouser >; files-nouser-after-change
尋找沒有組關聯(lián)的文件
安全層面:本地
解決方法:
find / -type f -nogroup
如下步驟:
1) find / -type f -nogroup >; files-nogroup-before-change
2) find / -type f -nogroup | xargs chgrp nobody
3) find / -type f -nogroup >; files-nogroup-after-change
檢查/var/cron的權限
安全層面:本地
解決方法:
如果/etc/cron文件的文件屬主不是root,組不是sys,修改該文件的權限:
chmod 700 /var/cron && chown root /var/cron && chgrp sys /var/cron
十一,登錄和記賬
設置cronlogfile的保存空間為2m
安全層面:本地
解決方法:
修改/etc/cron.d/logchecker如下:
LIMIT=4096
記賬所有的inetd服務
安全層面:本地
解決方法:
修改/etc/init.d/inetsvc文件如下:
/usr/sbin/ifconfig -au netmask + broadcast +
/usr/ bin/inetd -s -t
假如你運行了named,dhcpd, multicast,你必須作如上改動
修改syslog.conf文件
安全層面:遠程
解決方法:
編輯/etc/syslog.conf文件,讓日志進程紀錄更多的系統(tǒng)信息。
添加如下行:
*.debug /var/adm/compass.messages
安裝tripwire
安全層面:遠程
解決方法:
tripwire是一個特洛伊木馬檢查程序,他工作在提供的二進制文件的md5碼的數據庫以及你的配置上,建議每6個小時運行一次tripwire。
IDS
安全層面:遠程
解決方法:
建議安裝運行snort工具來監(jiān)測你的網絡可能收到的如下攻擊:
- cgi-scan
- portscans
- virus
根據你的需要參看/root/config/snort.rules文件。
日志文件觀察者(swatch)
安全層面:遠程
解決方法:
建議安裝運行swatch工具來監(jiān)測你的日志文件,你可以在你的系統(tǒng)上啟動多個監(jiān)測進程,例如:
- /var/adm/compass.messages
- /var /adm/snort_portscan.log
- /opt/AppServer/WebSphere/log/????
Swatch是一個用perl寫的工具,所以你必須安裝PERL MODULES。
禁止telnet遠程管理,用ssh
安全層面:遠程
解決方法:
安裝openssl,openssh的最新版本來代替telnetd,密切關注最新版本的security report。
十二,其他
設置啟動標示
安全層面:本地
解決方法:
修改/etc/default/telnetd文件設置啟動banner,格式如下:
BANNER=”…..”
創(chuàng)建/etc/issue文件編輯啟動信息。
|
|