UNIX安全技术.ppt
《UNIX安全技术.ppt》由会员分享,可在线阅读,更多相关《UNIX安全技术.ppt(45页珍藏版)》请在冰豆网上搜索。
UNIX安全技术,信息安全技术培训教材之四,提纲,系统安全配置文件系统安全性常见服务的安全配置,系统安全配置,Linux账号安全性,使用change命令修改Linux账号、密码属性失败的登陆企图(/var/log/messages,/var/log/btmp)限制root登陆Linux:
/etc/securityUnix:
/etc/default/login,系统启动的安全性,设置BIOS密码以防通过改变启动介质,而可以从软盘启动。
设置/etc/lilo.conf启动密码并设置为root只读在“/etc/lilo.conf”文件中加入下面三个参数:
time-out,restricted,password,并执行/sbin/lilo命令使其生效。
这三个参数可以使你的系统在启动lilo时就要求密码验证。
增强配置,/etc/login.defs设置密码策略编辑/etc/inetd.conf或xinetd.d目录下的telnettelnetstreamtcpnowaitroot/usr/sbin/tcpdin.telnetd-h在最后加“-h”可以使当有人登陆时只显示一个login:
提示,而不显示系统欢迎信息。
Su限制,禁止任何人通过su命令改变为root用户。
编辑/etc/pam.d/su,添加下面两行:
authsufficient/lib/security/pam_rootok.sodebugauthrequired/lib/security/Pam_wheel.sogroup=wheel这表明只有wheel组的成员可以使用su命令成为root用户。
你可以把用户添加到“wheel”组,以使它可以使用su命令成为root用户。
隐藏系统信息,编辑“/etc/rc.d/rc.local”文件,注释下面的行。
#Thiswilloverwrite/etc/issueateveryboot.So,makeanychangesyou#wanttomaketo/etc/issuehereoryouwilllosethemwhenyoureboot.#echo/etc/issue#echo$R/etc/issue#echoKernel$(uname-r)on$a$(uname-m)/etc/issue#cp-f/etc/issue/etc/#echo/etc/issue删除/etc目录下的“”和issue文件:
rootkapil/#rm-f/etc/issuerootkapil/#rm-f/etc/,Unix的安全模块-PAM,PAM(PluggableAuthenticationModules)是由Sun提出的一种认证机制。
它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序。
PAM最初是集成在Solaris中,目前已移植到其它系统中,如Linux、SunOS、HP-UX9.0等。
以下主要是针对Linux的。
Unix的安全模块,PAM相关文件/lib/libpam.so.*PAM共享库/etc/pam.conf或者/etc/pam.d/PAM配置文件/lib/security/pam_*.so可动态加载的PAM模块其它系统的文件可能在/usr/lib/目录下。
PAM的配置:
第一种是通过单个配置文件/etc/pam.conf另外一种是通过配置目录/etc/pam.d/第二种的优先级要高于第一种。
Unix的安全模块,使用配置文件/etc/pam.conf该文件是由如下的行所组成的:
service-namemodule-typecontrol-flagmodule-patharguments,Unix的安全模块,service-name服务的名字,比如telnet、login、ftp等,服务名字“OTHER”代表所有没有在该文件中明确配置的其它服务。
module-type模块类型有四种:
auth、account、session、password。
同一个服务可以调用多个PAM模块进行认证,这些模块构成一个stack。
control-flag用来告诉PAM库该如何处理与该服务相关的PAM模块的成功或失败情况。
它有四种可能的值:
required,requisite,sufficient,optional。
Unix的安全模块,arguments是用来传递给该模块的参数。
一般来说每个模块的参数都不相同,可以由该模块的开发者自己定义,但是也有以下几个共同的参数:
debug用syslog()将调试信息写入到系统日志文件中。
no_warn表明该模块不应把警告信息发送给应用程序。
use_first_pass表明该模块不能提示用户输入密码,而应使用前一个模块从用户那里得到的密码。
try_first_pass表明该模块首先应当使用前一个模块从用户那里得到的密码,如果该密码验证不通过,再提示用户输入新的密码。
use_mapped_pass该模块不能提示用户输入密码,而是使用映射过的密码。
expose_account允许该模块显示用户的帐号名等信息,一般只能在安全的环境下使用,因为泄漏用户名会对安全造成一定程度的威胁。
Unix的安全模块,例:
通过/etc/pam.conf配置ftpd的认证方式。
下面是ftpd服务利用PAM模块进行用户认证的三个步骤。
首先用pam_ftp模块检查当前用户是否为匿名用户,如果是匿名用户,则sufficient控制标志表明无需再进行后面的认证步骤,直接通过认证;否则继续使用pam_unix_auth模块来进行标准的unix认证,即用/etc/passwd和/etc/shadow进行认证;通过了pam_unix_auth模块的认证之后,还要继续用pam_listfile模块来检查该用户是否出现在文件/etc/ftpusers中,如果是则该用户被deny掉。
ftpdauthsufficient/usr/lib/security/pam_ftp.softpdauthrequired/usr/lib/security/pam_unix_auth.sose_first_passftpdauthrequired/usr/lib/security/pam_listfile.soonerr=succeeditem=usersense=denyfile=/etc/ftpusers,TCPwrappers,TCPwrapper使得系统可以在请求登录或者输入口令之前拒绝进来的连接TCPwrapper的两个配置文件/etc/hosts.deny满足条件则拒绝/etc/hosts.allow满足条件则允许配置规则:
service:
host(s):
action两个工具tcpdchk,检查配置文件有没有错误,是否与其他文件冲突tcpdmatch,模拟规则是否如期起作用,Hosts.deny和Hosts.allow文件,实现TCPWrapper的关键具有“service:
host”的规则形式如果两个文件都丢失,则相应的访问总是被允许的如果没有匹配项,则缺省总是被允许,Hosts.deny/allow文件语法,Service-list:
Hosts-list,ALLUNKNOWNTelnetdFtpd,ALLUNKNOWNLOCALIPIP/mask,Xinetd(eXtendInterNETDaemon),作为inetd的高级替换版本,但和inetd完全不兼容语法完全不兼容本质上是hosts.deny和hosts.allow、inetd.conf的组合,可以使用itox工具转换常见与高版本Linux中拥有为数不少的优点支持TCP、UDP、RPC等有效防止DoS,对堆栈作优化限制同一类型的服务器数目可作代理,Xinetd.conf文件语法,serviceservice-nameProperty1=Property2+=Property3-=Property4=,Xinetd.conf的defaults项,提供了创建属性默认值的方法无需使用service关键字作前导举例,defaultsLog_type=SYSLOGlocal4.infoLog_on_success=PIDHOSTEXITDURATIONLog_on_failure=HOSTInstances=8Disabled=in.tftpdinrexecd,Xinetd.conf的servers项,主要功能:
查阅进程的确切信息列表,serviceserverstype=INTERNALUNLISTEDSocket_type=streamProtocol=tcpPort=9997Wait=noOnly_from=172.17.33.111Wait=no,Xinetd.conf的Services项,serviceservicestype=INTERNALUNLISTEDSocket_type=streamProtocol=tcpPort=8099Wait=noOnly_from=topcat,提纲二,文件系统安全,文件系统安全性,查找并删除无用的suid程序文件find/-typef(-perm-4000-o-perm-2000)-execls-lg;find/-typef(-perm-4000)|xargslsachmodu-sg-s,文件系统安全性,检查所有只管理员才能访问的文件目录查找属非有效用户或组的文件/目录查找所有人都可写的文件和目录,日志管理工具,logrotate压缩旧日志,创建新日志/etc/logrotate.confswatch实时监视日志的perl程序批处理方式和监控方式logcheck检查日志文件的异常记录,Tripwire,文件系统完整性检查工具支持MD4、MD5、SNCFRN、CRC32、SHA工作模式数据库生成、完整性检查、数据库更新、交互更新数据库要根据情况及时更新数据库处配置文件应存储到安全介质,提纲三,常见服务的安全配置,FTP的安全性配置,Linux/Unix系统常采用Wu-ftpd提供FTP服务在wu-ftpd中,是通过特定的配置文来控制ftp访问的,主要的配置文件包括/etc/ftpusersetc/ftpgroups/etc/ftphosts/etc/ftpconversions/etc/ftpaccess,/etc/ftpusers,#catftpusersroothenrytestJacky-zhu,/etc/ftpcoversions,:
.Z:
/bin/compress-d-c%s:
T_REG|T_ASCII:
O_UNCOMPRESS:
UNCOMPRESS:
.Z:
/bin/compress-c%s:
T_REG:
O_COMPRESS:
COMPRESS:
.gz:
/bin/gzip-cd%s:
T_REG|T_ASCII:
O_UNCOMPRESS:
GUNZIP:
.gz:
/bin/gzip-9-c%s:
T_REG:
O_COMPRESS:
GZIP:
.tar:
/bin/tar-c-f-%s:
T_REG|T_DIR:
O_TAR:
TAR:
.tar.Z:
/bin/tar-c-Z-f-%s:
T_REG|T_DIR:
O_COMPRESS|O_TAR:
TAR+COMPRESS:
.tar.gz:
/bin/tar-c-z-f-%s:
T_REG|T_DIR:
O_COMPRESS|O_TAR:
TAR+GZIP:
.crc:
/bin/cksum%s:
T_REG:
CKSUM:
.md5:
/bin/md5sum%s:
T_REG:
MD5SUM,用来配置压缩/解压缩程序,/etc/ftpaccess文件
(1),classallreal,guest,anonymous*