1CISP-UNIX操作系统安全2目录UNIX基本安全知识UNIX常见应用服务及其安全UNIX系统安全安装和设置入侵防护与恢复3UNIX系统安全基本知识4UNIX综述5UNIX系统的安全特征按照可信计算机评价标准(TCSEC)达到C2级有控制的存取保护9访问控制9个人身份标识与认证9审计记录9操作的可靠性6UNIX系统的安全模型7Unix系统结构8文件系统基础9文件系统安全是UNIX系统安全的核心。9在UNIX中,所有的事物都是文件。用户数据的集合是文件,目录是文件,进程是文件,命令是文件,设备是文件、甚至网络连接也是文件。9文件系统结构10文件系统结构11文件系统类型9正规文件:(ASCII文本文件,二进制数据文件,二进制可执行文件等)9目录9特殊文件9链接(硬链接、软链接)9Sockets(进程间通信时使用的特殊文件)12UNIX文件系统的权限Jack$ls–la.txt-rwxr-xr-x3jackroot1024Sep1311:58a.txt123456789101:目录或文件(文件类型),-普通文件,b块文件,c字符设备,d目录,l符号链接234:用户rwx(所有者许可)567:组rwx(组许可)8910:其他rwx(其他人许可)3:链接数jack:用户Root:组1024:字节数Sep1311:58:昀后修改时间a.txt:名字13UNIX文件系统的权限Chmod/chown/chgrpSuid:set-user-id,4000,使程序以所有者身份运行,而忽略实际执行该程序的用户身份。Sgid:2000,使程序以所有者的组身份运行,而忽略实际执行该程序的用户的组。14UNIX的密码系统/etc/passwd;/etc/shadow;/etc/master.passwd用户密码的强度问题Shell的控制密码过期的优缺点PAM认证系统15UNIX的系统服务/etc/inetd.conf/etc/service/etc/Rc*.d16UNIX常见应用服务及其安全防护17常见UNIX应用服务及其安全要点DNSFTPTELNETSSHMAILWebSamba18DNSDNS(域名系统)适用于域名和IP地址之间的相互转换协议,BIND(BerkeleyInternetNameDomain)则是Internet上应用昀广泛的DNS服务器。19基本措施安装或者升级到昀新的bind划分DNS禁止或限制DNSzone传输关闭递归查询设计备用DNS限制动态更新Chroot的DNS环境20FTPFTP(文件传输协议)适用于主机之间传输文件的协议,而Wuftp是Unix和Linux中应用昀广泛的FTP后台程序;了解那些FTP有安全问题proftppre3remoteshellProftppre10DoSWuftp2.4.18Wuftp2.5Wuftp2.6SunftpcoreOld:cd~root21FTP安全要点使用昀新版本://用ftpuser限制ftp用户ftpaccess控制用户行为,流量等,不允许root、bin和httpd用户进入FTP服务器。ftp的chroot使用ssh或sftp代替ftp改变服务器标识如果允许匿名上传,则上传得文件必须是隐藏的,同时应该禁止下载上传得文件,否则,FTP服务器很有可能被入侵者利用。22TELNETtelnet:用来登陆远程机器的明文协议;不安全的telnettelnet历史上的安全问题使用ssh代替telnetSSH:用于数据交换的安全协议,由于其通信是保密的,因此成为telnet、rlogin、FTP的替代品。Ssh的安全问题Ssh的其他作用23SSHSSH:用于数据交换的安全协议,由于其通信是保密的,因此成为telnet、rlogin、FTP的替代品。确保禁用版本号为1的SSH协议,sshd_config文件必须含有以下命令行:Protocol2不允许根用户通过SSH登陆服务器,确保sshd_config文件必须含有以下命令行:PermitRootLoginnoSSH私钥文件只允许根用户读取。24MAILSendmail是Internet上昀流行的MTA(邮件传输代理)通过修改sendmail.cf文件改变SMTP的欢迎信息;通过修改sendmail.cf文件编辑expn和vrfy命令,将其关闭;检查/etc/mail/access内容,该文件包含可以通过sendmail进行中继的主机名,切勿添加不信任的主机名;关闭relay的功能;其他:邮件大小控制,黑名单…由于sendmail易受远程攻击,可以考虑使用qmail作为替代,可以从上获取。25WebApache:是现在应用昀广泛的Web服务器。改变HTTP标语;关闭自动索引功能;将Apache配置为不提供敏感信息文件,如:*.inc、*.jsp、*.java、*.php文件;删除默认的手动文件;删除默认和示范的CGI脚本及应用;确保Apache在非根权限下运行:在httpd.conf文件里察看用户(User)和组(Group)的设置,确保设为非根账户,如httpd或apache。使用相关log文件,并确保已经在httpd.conf文件里设置妥当;禁用非必需的模块,在httpd.conf文件里注释掉相应的AddModule和LoadModule指令。26SambaSamba:使用SMB(ServerMessageBlock)协议通过网络共享文件及打印机:修改服务器字符串:编辑smb.conf将serverstring=sambaserver修改为:serverstring=noinformation编辑smb.conf设置hostsallow选项来限制可以连接到服务器的主机数;使用密码加密。在smb.conf文件中将encyptpasswords设置为yes。27UNIX系统安全安装和设置28系统安全配置工作安全的安装和规划unix系统本地策略系统服务的清理系统服务的升级和配置昀新安全补丁的获得和使用29UNIX安全配置stepbystep简单的说:就是如何在不使用任何第三方工具的情况下,如何从头开始配置一台相对安全的unix系统。30系统安全配置工作分区,分区的好处1.部分防止DOS攻击2.部分防止suid程序的滥用3.快速的启动时间4.容易备份和升级5.更好的控制mount文件系统6.限制每一种文件系统的特性31系统安全配置工作以一个30G的SCSI硬盘为例分区,用的系统是redhatLinux/boot500M/usr/5G/home5G10X50(50用户)/chroot5G如果想运行chroot的环境,如DNS/http/cache3G如果想装squid之类的proxy/var2G如果log量巨大,可以分得更大一些swap1024Mswap分区一般和内存一样大或2倍/tmp1G/1G根分区可以分更多的chroot或cache分区,如dns和http分别一个chroot的环境(分区)32Solaris基本安全配置stepbystep系统启动与系统分区系统安装与基本网络配置系统启动服务清理文件系统配置日志系统配置帐户安全策略其他配置与清理33系统启动与系统分区以昀新的cdrom发布启动系统选择安装网络服务器选择“none”fornameserver选择standalone安装方式选择coresystemsupport增加一个“terminalinformation”34系统启动与系统分区注意:安装方式选择从严格的安全考虑,使用coresystem,但是一般情况下,使用enduser的方式比较合适。35基本网络设置与系统安装设置一个尽可能复杂的root口令设置默认路由/etc/defaultrouter设置dns/etc/resolv.conf设置/etc/nsswitch.confHost:filesdns36系统启动服务清理清理/etc/rc2.d值得注意的•nfs.*•S71RPC清理/etc/rc3.dSNMP使用的选择SNMP配置清理/etc/init.d/inetsvc禁止in.namedinetd–s–t启动禁止multicast37系统启动服务清理清理/etc/inetd.conf服务所有的TCP/UDP小服务所有的调试服务所以的R服务几乎所有的RPC服务使用必要的工具替换telnet,ftp必要的时候可以完全禁止inetd或用xinetd替换38启动网络参数设定设置/etc/init.d/inetinitndd-set/dev/tcptcp_conn_req_max_q010240ndd-set/dev/ipip_ignore_redirect1ndd-set/dev/ipip_send_redirects0ndd-set/dev/ipip_ire_flush_interval60000ndd-set/dev/arparp_cleanup_interval60ndd-set/dev/ipip_forward_directed_broadcasts0ndd-set/dev/ipip_forward_src_routed0ndd-set/dev/ipip_forwarding0(或/etc/notrouter)ndd-set/dev/ipip_strict_dst_multihoming139TCPSynfloodndd–set/dev/tcptcp_conn_req_max_q04096连接耗尽攻击ndd–set/dev/tcptcp_conn_req_max_q102440文件系统配置寻找无用的suid程序find/-typef\(-perm-4000\)|xargsls–a调整文件系统的权限/usr/sbin/var/log/etc…41日志系统配置/etc/syslog.conf增加的日志记录•auth.info/var/log/authlog输出到loghost输出到打印机增加对su和crontab的日志记录/etc/default/cron/etc/default/su42日志系统配置syslog.conf的格式如下,设备.行为级别[;设备.行为级别]记录行为注意各栏之间用[Tab]来分隔,用空格是无效的。43日志系统配置-设备auth认证系统,即询问用户名和口令cron系统定时系统执行定时任务时发出的信息daemon某些系统的守护程序的syslog,如由in.ftpd产生的logkern内核的syslog信息lpr打印机的syslog信息mail邮件系统的syslog信息mark定时发送消息的时标程序news新闻系统的syslog信息user本地用户应用程序的syslog信息uucpuucp子系统的syslog信息local0..7种本地类型的syslog信息,这些信息可以又用户来定义*:代表以上各种设备44日志系统配置-行为级别第二栏:行为级别描述(危险程度递加)debug程序的调试信息info信息消息notice要注意的消息warning警告err一般性错误crit严重情况alert应该立即被纠正的情况emerg紧急情况none指定的服务程序未给所选择的45日志系统配置-特殊配置loghost日志输出到打印机把打印机连接到终端端口/dev/ttya上,在/etc/syslog.conf中加入配置语句.Auth.notice/dev/ttya防火墙配置