关键词不能为空

当前您在: 主页 > 英语 >

教你如何配置安全的SOLARIS系统

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-14 02:56
tags:

-

2021年2月14日发(作者:步长)


教你如何配置安全的


SOLARIS


系统




一、帐号和口令安全策略



1.1


更改口令文件、影像文件、组文件的权限





/etc/passwd < /p>


必须所有用户都可读,


root


用户可写




rw-r



r






/etc/shadow


只有< /p>


root


可读




r--------




/etc/group


必须所有 用户都可读,


root


用户可写




rw-r



r< /p>





1.2


修改不必要的系统帐号





移去或者锁定那些系统帐号, 比如


sys



uucp



nuucp



listen



lp



ad m


等等,简单的办法


是在


/etc/s hadow



password


域中放 上


NP


字符。还可以考虑将


/etc/ passwd


文件中的


shell


域< /p>


设置成


/bin/false



1.3


修改口令策略





修改


/etc/default/passwd


文件





MAXWEEKS=4


口令至少每隔


4


星期更改一次





MINWEEKS=1


口令至多每隔


1


星期更改一次





WARNWEEKS=3


修改口令后第三个星期会收到快要修改口令的信息



PASSLENGTH=6


用户


口令 长度不少于


6


个字符





二、用户授权安全策略



2.1


移去组及其它用户对


/etc


的写权限。





执行命令


#chmod -R go-w /etc



2.2


禁止


root


远程登录






/etc/default/l ogin


中设置





CONSOLE=/dev/concle



2.3setuid



setgid


特殊权限。





Setuid


是指设置程序的有效执行用户身份


(uid)


为该文件 的属主


,


而不是调用该程序进程的用


户 身份。


Setgid


与之类似。


Set uid



setgid



1s


-1


显示出来为


s< /p>


权限


,


存在于主人和属组的执

< p>
行权限的位置上。系统设置特殊权限,使用户执行某些命令时


,

< p>
具有


root


的执行权限


,


命令执行


完成


,


root


身份也随之消失。因此特殊权限关系系统的安全,可执行命令


#find


/


-perm


-4000


-print


寻找系统 中具有


setuid


权限的文件,存为列表文件,定时检查有没 有这之外的文件被设


置了


setuid


权限。




2.4


审计并日志所有以


root


身份的登陆情况

< p>




添加或编 辑


/etc/default/login


文件如下:





SYSLOG= YES




syslog


记录


root

< p>
的登陆失败,成功的情况。




2.5


设置远程登陆会话超时时间





添加或编辑

< br>/etc/default/login


文件如下:





TIMEOUT= 300



2.6


确定登陆需要密码验证





添加或编辑

< br>/etc/default/login


文件如下:





PASSREQ= YES



2.7 UMASK


设置





umask


命令设置用户文件和目 录的文件创建缺省屏蔽值


,


若将此命令放入

.profile


文件


,


就可控< /p>


制该用户后续所建文件的存取许可


.umask

< br>命令与


chmod


命令的作用正好相反

< br>,


它告诉系统在创


建文件时不给予什么存取许可


.




安装 配置完操作系统之后确认


root



u mask


设置是


077


或者

< p>
027


,执行





/usr/bin/umask [-S]


确认。





2.7.1


增加或修改


/etc/default/login


文件中如下行





UMASK=027



2.7.2


并增加上行到如下的文件 中:





/etc/.login /etc/.profile /etc/skel/




/etc/skel/ /etc/skel/e



2.8


用户环境配置文件的


PATH


或者


L D_LIBRARY_PATH


中移去


―.‖















‖.‖,




root



PATH






设< /p>









< p>




/usr/bin :/sbin:/usr/sbin


,避免当前工作目录


.


出现在


PATH


环境变量中,这有助于对抗 特洛伊木


马。





#echo $$PATH | grep


确认






/.login /etc/.login






/etc/default/login






/.cshrc /etc/skel/e /etc/skel/




/.profile



/etc/skel/ /etc/profile




三、网络与服务安全策略



3.1


关闭不用的服务



3.1.1




中关闭不 用的服务





首先复制


/etc/inet/


< br>


#cp /etc/inet/ /etc/inet/


然后用


vi


编辑器编辑



文件,对于需要注释掉的服务在相应行开头标记


―#‖


字符即可。




3.1.2



Services


中关闭不用的服务





首 先复制


/etc/inet/services




#cp /etc/inet/services /etc/inet/


然后用


vi


编辑器编辑


Services


文件,对于需要注释掉的服务在相应行开头标记


―#‖


字符即可。






services

< br>中进行修改后,找到


inetd


进程的

< br>ID


号,用


kill


向其发送< /p>


HUP


信号进行


刷新。举例如下。





#ps -ef | grep inetd




#kill -HUP


进程号




/usr/sbin/inetd



s



t




增加


-t


选项以加强网络访问控制




3.1.3


根据需要关闭不用的服务





可关闭如下服务:

< p>
tftp



ypupdate(NIS

< p>
程序


)




dtspcd(


邮件收发程序


)



rquotad



name



uucp(


网络实用系统


)



snmp(


简单网络管理协议


)


等。




3.2


关闭系统的自启动服务





在系统


/etc/rc*.d


的目录下,根据需要停用以下服务


:




sendmail



/etc/rc2.d/S88sendmai


更名为


tc/rc2.d/X88sendmail




DNS



/etc/rc2.d/S72inetsv


注释掉



一项





lp



/etc/rc2.d/S8 0lp


更名为



/etc/rc2.d/X80lp




uucp


/etc/rc2.d/S70uucp


更名为


/etc/ rc2.d/x70uucp



< br>snmp



/etc/rc3.d/S76snmpdx




/etc/rc3.d/S77dmi


更名




/e tc/rc3.d/s76snmpdx



/etc/rc3. d/s77dmi




autoinstall



/etc /rc2.d/S72autoinstallg


更名为


/et c/rc2.d/s72autoinstall



3. 3


加强


FTP


服务安全



3.3.1


禁止系统用户的

FTP


服务





把所有的系统账户加入到


/etc /ftpusers(solaris


9


的该文件现更改为< /p>


/etc/ftpd/ftpusers)


件:





root



daemon

< p>


sys



bin



adm



lp



uucp



nu ucp



listen



nobody



3.3.2

< br>禁止


FTP&


服务暴露系统敏感信息






/etc/default/ftpd


< p>
















文< /p>









< p>
项:




BANNE R=XXXX(XXXX


可以任意改变为任何一个版本信息


)< /p>


,将该系统版本信息屏蔽


.



3.3.3ftp


服务会话日志记录





/etc/inet/


中的


ftpd


为(记录)




ftp stream tcp nowait root /usr/sbin/



dl



3.4


加强


Telnet


服务安全< /p>



3.4.1


禁止

< br>Telnet


服务暴露系统敏感信息







telnetd


banner










/etc/default/telnetd


文< /p>









< p>



BANNER=XXXX(XXXX


可以任意改变为任何一个版本信息


)


,将该系统 版本信息屏蔽


.



3.4.2< /p>


更改


Telnet


服务端口号

< p>




修改文件


/etc/services



Tel net


一项,将端口号改为非


23


,使 用


Telnet


服务时需注明端口


号。




3.5


加强


NFS


服务安全





检查


/etc/dfs/dfstab


文件


share


语句,缺省时共享目录为可读可写,加入



-


o‖


选项增加安全,



-


o rw‖


可读可写,



-


o ro‖


只读,可授权某系统和某用户。




3.6


防止


TCP


序列号预测攻击


(ip


欺骗


)





/etc/default/inetinit


< p>








TCP








(ip



)TCP_STRONG_ISS=2



3.7


系统路由安全





如果


Solaris


机器有超过一块的网卡的话,


它将会在不同网卡 间转发数据包,


这一行为可以在


/etc/init.d/in etinit


中得到控制。要在


Solaris


2.4


或者更低版本机器下关闭它,可以将


ndd


-set


/dev/ip ip_forwarding 0


添加于在


inetinit


文件未尾。



Solaris 2.5


以上,


只要


touch /et c/notrouter


.


网络系统用静态路由比较安全。




3.8


调整网络参数,加强网络安全





使


IP forwarding



sourec routing(


源路


)


由无效






I netinit


中使


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




禁止系统转发


IP


包:


#ndd -set /dev/ip ip_forwarding 0




缩短


ARP



cache


保存时间


: (default is 5 min)




#ndd -set /dev/arp arp_cleanup_interval 2 min




关闭


echo

广播来防止


ping


攻击(



# default is 1






#ndd -set /dev/ip ip_respond_to_echo_broadcast 0




四、防止堆栈缓冲益出安全策略





入侵者常常使用的一种利用系 统漏洞的方式是堆栈溢出,他们在堆栈里巧妙地插入一段代


码,


利用它们的溢出来执行,


以获得对系统的某种权限。


要让你的系 统在堆栈缓冲溢出攻击中更


不易受侵害,你可以在


/etc/s ystem


里加上如下语句:


set noexec_user_stack=1


set noexec_user_stack_log =1




第一句可以防止在堆栈中执行插入的代码,第二句则是在入 侵者想运行


exploit


的时候会做


记录。





五、日志系统安全策略



5.1


定时检查系统日志文件





Solaris


系统通过


syslogd


进程运行日志系统,配置文 件


/etc/


,可编辑此文件让日


志系 统记录更多信息,需重启


/usr/sbin/syslogd


进程,重读取配置文件。通常日志系统的文件分


别存放在两个位置,

/var/adm


保存本地系统日志,


/var/log< /p>


保存登录其它系统时日志。




5.2


设置


utmpx


wtmpx


文件权限,确保日志系统安全。





文件


/var/adm/utmpx


记录了所有当前登录到系统中的用户,


文件


/var/adm/wtmpx


记 录了系


统所有的登录和注销。这两个文件是以数据库的格式存在的。



设置权限


#chmod 544 /var/adm/utmpx






#chmod 544 /var/adm/wtmpx




六、其它系统安全设置



6.1 crontab


命令



6.1.1


不要使用


crontab



e


命令,因为它会在


/tmp


下建立所有用户都可读的


crontab


副本访问


cron


系统。用如下的方法:< /p>



编辑文件:


mycronfile


crontab



6.1.2



/etc/default/cron


文件中增加如下行:



CRONLOG=YES


记录所有的


crontab


行为




6.2



su


的纪录< /p>





创建


/etc/default/su


文件




SULOG=/var/adm/sulog




SYSLOG=YES




CONSOLE=/dev/console




PATH=/usr/bin:




SUPATH=/usr/sbin:/usr/bin



6.3



O penBoot


设置密码






Solaris


中设置密码





#eeprom security-password





OpenBoot


中设置密码





ok password





Solaris


中设置安全级别(< /p>


command






#eeprom security-mode=command





OpenBoot


中设置安全级别(


command






ok setenv security-mode command





OpenBoot


中设置安全级别(


full






ok setenv security-mode full



6.4


限制


.rhosts



/etc/


文件的使用





配置文件具有两种功能:


r


系列命令使用这些文件来访问系统


;


在某用户 的目录下存在


.rhosts


文件或


/ etc/


文件配有某系统,任何用户都可以通过


rlogin< /p>


不需要口令以该用户的身


份登录到系统。因此要为这些文件加锁,


先创建它们,然后修改其属性为零即可。这样除了


root


用户就没有其它用户能创建或修改它们了。





/usr/bin/touch





/.rhosts



/etc/




/usr/bin/chmod



0



/.rhosts



/etc/



.rhosts


文件可以作为 一个典型的后门文件使用,运行下面的命令全局查找


.rhosts

文件



#find -


name―.rhosts‖


-print



6.5


给系统打补丁





象其它的系统一样,


Solaris


系统也有它的漏洞,


其中的一些 从性质上来说是相当严重的。


SUN


公司长期向客户提供各种版 本的最新补丁,放在



网站。可用


#sh owrev



p


命令检查系统已打的 补丁或到


/var/sadm/patch


目录下查已打过的补 丁号,用


patchadd


命令


给系统 打补丁。



七、


Setuid


设置和


Solaris


操作系统安全






Solaris



,


文件除了读、写、执行权限外,还有一些特殊权限。



Setu id



setgid


是其中的


一类。它与


Solaris


系统的安全关系紧密 。




Setuid


是指设置程序的有效的执行用户身份



uid



为该文件的主人,

< br>而不是调用该程序的进


程的


uid



Setgid


与之类似。


Setu id



setgid



ls



l


显示出来为


s


权限,存在于主人和属组的执


行权限的位置 上。





这种权限的设置方法如下:





只设


setuid




chmod 4xxx filename (xxx


为一般读、写、执行权限


)




只设


setgid




chmod 2xxx filename



< br>同时设


setuid



setg id




chmod 6xxx filename




取消两种权限:



chmod 0xxx filename




这种权限怎么用?





举个例子来说,假如某一命令(程序)的主人是

< p>
root


用户,并且该文件有


setuid


属性,但


是该文件的读、写、执行权限的属性表明普通用户

< p>
user1


可以执行该命令,那么就表示:当该用


户执行该命令时,他具有


root


的执行身份,并获得相应的权 限。一旦该命令执行完成,该身份


也随之消失。





为什么系统中需要有这样的权限呢?请执行以下操作:





7.1. $$ ls



l /etc/shadow /bin/passwd




-r-sr- sr-x 3 root sys 99792 1999 2




12 /bin/passwd




-r-------- 1 root sys 261 1




3 13



12 /etc/shadow




/etc/shadow


文件由于存有用户的加密口令信息,对系统的安全至关重要, 因此权限很严,


只有


root


凭其对系 统的至高无上的权限才得以对


/etc/shadow


可读可写 。


但是系统必须允许普通


用户也能修改自己的口令。要让他们对


/etc/shadow


可写,又不能可读,而且可写又不能允 许他


们改别人的口令,怎么办?系统就采取这样一个办法:做一个程序,



也就是


/bin/passwd

,通过


它可以在不显示文件内容的情况下直接修改


/etc /shadow


文件。


可是这个程序怎么能有这样的权


限?因为系统赋予它


setuid


权限,而且它 属于


root.


这样,用户在使用


/b in/passwd


改口令时就



ro ot


权限


.


由于


/bin/passwd


命令本身功能的局限性,用户并不能用它做更多的不利于系统 安


全的事。





7.2.


用普通用户身份修改口令





$$ passwd




Enter login password: ****




New password:******




Re-enter new password:******




Passwd(SYSTEM): passwd successfully changed for xxx .





可以成功。





7.3.


用超级用户修改


/bin/passwd


的权限





# chmod 0555 /bin/passwd




7.4.


再重复


2

< br>,是否还成功?当然不。





7.5


.把


/bin/passwd


的权限恢复原状。




# chmod 6555 /bin/passwd





对此可以打一个生动的比喻:有一个绝密机关,不得已必须有一些不能见这些秘密的人进 来


做一些事情。于是授权一些特殊的



车辆



(没有窗户,门紧闭,所以看不到外面。只有一个小洞< /p>


允许乘坐的人伸出一只手臂)



带着所乘 坐的人开到要去的地方,


允许它办完事情马上带他出来。


这样是 不是很安全?不一定。如果



车辆


‖< /p>


没有经过精挑细选是有很多



门窗



,那系统可就危险


了。




这种安全威胁在< /p>


Solaris


中也有可能出现。比如做一下下面这个实验:


-


-


-


-


-


-


-


-



本文更新与2021-02-14 02:56,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/654257.html

教你如何配置安全的SOLARIS系统的相关文章