Linux系统安全加固手册.doc_第1页
Linux系统安全加固手册.doc_第2页
Linux系统安全加固手册.doc_第3页
Linux系统安全加固手册.doc_第4页
Linux系统安全加固手册.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LINUX 评估加固手册 第 1 页 共 14 页 密密 级:商业秘密级:商业秘密 LINUXLINUX 评估加固手册评估加固手册 安氏领信科技发展有限公司 二一九二一九年十月 LINUX 评估加固手册 第 2 页 共 14 页 目 录 1、系统补丁的安装、系统补丁的安装3 2、帐户、口令策略的加固、帐户、口令策略的加固3 21、删除或禁用系统无用的用户3 22、口令策略的设置4 23、系统是否允许ROOT远程登录.4 24、ROOT的环境变量设置5 3、网络与服务加固、网络与服务加固5 31、RC?.D中的服务的设置.5 32、/ETC/INETD.CONF中服务的设置.6 33、NFS 的配置.8 34、SNMP 的配置8 35、SENDMAIL的配置9 36、DNS(BIND)的配置.9 37、网络连接访问控制的设置9 4、信任主机的设置、信任主机的设置10 5、日志审核的设置、日志审核的设置11 6、物理安全加固、物理安全加固11 7、系统内核参数的配置、系统内核参数的配置12 8、选装安全工具、选装安全工具13 LINUX 评估加固手册 第 3 页 共 14 页 1、系统补丁的安装、系统补丁的安装 RedHat 使用 RPM 包实现系统安装的管理,系统没有单独补丁包(Patch) 。如 果出现新的漏洞,则发布一个新的 RPM 包,版本号(Version)不变,Release 做相应的调整。因此检查 RH Linux 的补丁安装情况只能列出所有安装的软件, 和 RH 网站上发布的升级软件对照,检查其中的变化。 通过访问官方站点下载最新系统补丁,RedHat 公司补丁地址如下: rpm -qa 查看系统当前安装的 rpm 包 rpm -ivh package1 安装 RPM 包 rpm -Uvh package1 升级 RPM 包 rpm -Fvh package1 升级 RPM 包(如果原先没有安装,则不安装) 2、帐户、口令策略的加固、帐户、口令策略的加固 2 21 1、删除或禁用系统无用的用户、删除或禁用系统无用的用户 询问系统管理员,确认其需要使用的帐户 如果下面的用户及其所在的组经过确认不需要,可以删除。 lp, sync, shutdown, halt, news, uucp, operator, games, gopher 修改一些系统帐号的 shell 变量,例如 uucp,ftp 和 news 等,还有一些仅 仅需要 FTP 功能的帐号,检查并取消/bin/bash 或者/bin/sh 等 Shell 变量。可 以在/etc/passwd 中将它们的 shell 变量设为/bin/false 或者/dev/null 等。 也可以通过 passwd groupdel 来锁定用户、删除组。 passwd -l user1 锁定 user1 用户 passwd -u user1 解锁 user1 用户 groupdel lp 删除 lp 组。 LINUX 评估加固手册 第 4 页 共 14 页 2 22 2、口令策略的设置、口令策略的设置 RedHat Linux 总体口令策略的设定分两处进行,第一部分是在/etc/login.defs 文 件中定义,其中有四项相关内容: PASS_MAX_DAYS 密码最长时效(天) PASS_MIN_DAYS 密码最短时效(天) PASS_MIN_LEN 最短密码长度 PASS_WARN_AGE 密码过期前 PASS_WARN_AGE 天警告用户 编辑/etc/login.defs 文件,设定: PASS_MAX_DAYS=90 PASS_MIN_DAYS=0 PASS_MIN_LEN=8 PASS_WARN_AGE=30 另外可以在/etc/pam.d/system-auth 文件中的 cracklib 项中定义口令强度: difok minlen dcredit ucredit lcredit ocredit 使用 vi 编辑/etc/pam.d/system-auth 文件,设置 cracklib 的属性 #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required /lib/security/pam_env.so auth sufficient /lib/security/pam_unix.so likeauth nullok auth required /lib/security/pam_deny.so account required /lib/security/pam_access.so account required /lib/security/pam_unix.so password required /lib/security/pam_cracklib.so retry=3 type= difok=4 minlen=12 dcredit=1 ucredit=2 lcredit=2 ocredit=1 password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shado w password required /lib/security/pam_deny.so LINUX 评估加固手册 第 5 页 共 14 页 session required /lib/security/pam_limits.so session required /lib/security/pam_unix.so 2 23 3、系统是否允许、系统是否允许 rootroot 远程登录远程登录 RedHat 在文件/etc/securetty 中定义 root 用户可以登录的端口;默认其中只包含 vc/1-11 和 tty1-11,即 root 用户只能从本地登录。 2 24 4、rootroot 的环境变量设置的环境变量设置 系统的环境变量在下列文件中设置: Bash: /etc/profile /.bash_profile /.bash_login /.profile /.bashrc /etc/bashrc Tcsh/Csh: /etc/csh.cshrc /etc/csh.login /.tcshrc 或/.cshrc /.history /.login /.cshdirs printenv 查看用户的环境变量 检查环境变量 PATH,确保其中不包含本地目录(.) 。 3、网络与服务加固、网络与服务加固 3 31 1、rc?.drc?.d 中的服务的设置中的服务的设置 LINUX 评估加固手册 第 6 页 共 14 页 RedHat 的服务主要由/etc/inittab 和/etc/rc?.d/S*文件启动,事实上,/etc/inittab 的 主要任务是为每一个 runlevel 指定启动文件,从而启动/etc/rc?.d/S*文件。例如, 在默认的运行级别 3 中系统将运行/etc/rc3.d/目录中所有 S 打头的文件。 runlevel 检查当前运行级别(第一项是 pre-runlevel,第二项是当前的 runlevel) chkconfig list 检查所有级别中启动的服务情况 chkconfig list |grep 3:on 检查某一级别(例如级别 3)中启动的服务 chkconfig sendmail off 将 sendmail 从启动目录中除去 检查以下服务,如果不需要,关闭之在(/etc/inittab 中注释掉) ;否则,参照 3.3 3.4 3.5 3.6 进行配置: portmap(启动 rpcbind/portmap 服务) nfslock (启动 rpc.lockd 和 rpc.statd) httpd (启动 apache) named (启动 bind) sendmail (启动 sendmail) smb (启动 samba 服务) snmpd (启动 snmp 服务) snmptrapd (启动 snmp trap 服务) nfs (启动 nfs 服务) 3 32 2、/etc/inetd.conf/etc/inetd.conf 中服务的设置中服务的设置 由 INETD 启动的服务在文件/etc/inetd.conf 定义。 建议关闭由 inetd 启动的所有服务;如果有管理上的需要,可以打开 telnetd、ftpd、rlogind、rshd 等服务。 可从/etc/inetd.conf 中删除的服务(在/etc/inetd.conf 中注释掉): shell kshell login klogin exec LINUX 评估加固手册 第 7 页 共 14 页 comsat uucp bootps finger systat netstat tftp talk ntalk rpc.rquotad rpc.rexd rpc.rusersd rpc.ttdbserver rpc.sprayd rpc.cmsd rpc.rwalld rpc.pcnfsd rpc.rstatd rpc.ssalld echo discard chargen daytime time comsat websm instsrv imap2 pop3 LINUX 评估加固手册 第 8 页 共 14 页 kfcli xmquery RedHat Linux 7.3 以后使用了新版本的 xinetd 取代了老版本的 inetd,在配置方 面最大的不同在于使用了/etc/xinetd.d/配置目录取代了/etc/inetd.conf 配置文件。 每一项服务/etc/xinetd.d/中都有一个相应的配置文件,例如 telnetd 的配置文件是 /etc/xinetd.d/telnet。查看每一个配置文件 disable 属性的定义(yes/no)就可以确 定该服务是否启动(默认是 yes) 。 使用 vi 编辑/etc/xinetd.d/中的配置文件,在不需要启动的服务配置文件中添加 disable=yes。建议关闭所有服务,如果管理需要,则可以打开 telnetd 和 ftpd 服 务。 使用 vi 编辑/etc/xinetd.d/rlogin 文件,控制 rlogin 服务的启动状态 # default: on # description: rlogind is the server for the rlogin(1) program. The server # provides a remote login facility with authentication based on # privileged port numbers from trusted hosts. service login disable = yes socket_type = stream wait = no user = root log_on_success += USERID log_on_failure += USERID server = /usr/sbin/in.rlogind 3 33 3、NFSNFS 的配置的配置 NFS 系统的组成情况: nfsd NFS 服务进程,运行在服务器端,处理客户的读写请求 mountd 加载文件系统服务进程,运行在服务器端,处理客户加载 nfs 文件 系统的请求 /etc/exports 定义服务器对外输出的 NFS 文件系统 /etc/fstab 定义客户端加载的 NFS 文件系统 如果系统不需要 NFS 服务,可以使用 chkconfig 关闭 NFS 服务;如果不能关闭, 使用 showmount -e 或直接查看/etc/exports 文件检查输出的文件系统是否必要, LINUX 评估加固手册 第 9 页 共 14 页 以及属性是否妥当(readonly 等) 。 chkconfig -list nfs 显示 NFS 服务是否在系统启动时启动 /etc/init.d/nfs start|stop 启动|停止 nfs 服务 showmount -e 显示本机输出的 NFS 文件系统 mount 显示本机加载的文件系统(包括 NFS 文件系统) 3 34 4、SNMPSNMP 的配置的配置 如果系统不需要 SNMP 服务,可以关闭该服务(使用 chkconfig 命令) ;如果不 能关闭,需要在/etc/snmpd.conf 中指定不同的 community name。 chkconfig -list snmpd 显示 snmpd 服务是否在系统启动时启动 chkconfig snmpd off 将 snmpd 服务从启动目录中去掉 /etc/init.d/snmpd start|stop 启动|停止 snmpd 服务 3 35 5、SendmailSendmail 的配置的配置 如果系统不需要 Sendmail 服务,可以关闭该服务(使用 chkconfig 命令) ;如果 不能关闭,将 sendmail 服务升级到最新,并在其配置文件/etc/sendmail.cf 中指 定不同 banner(参见示例) 。 chkconfig -list sendmail 显示 sendmail 服务是否在系统启动时启动 chkconfig sendmail off 将 sendmail 服务从启动目录中去掉 /etc/init.d/sendmail start|stop 启动|停止 sendmail 服务 3 36 6、DNSDNS(BindBind)的配置)的配置 如果系统不需要 DNS 服务,可以关闭该服务(使用 chkconfig 命令) ;如果不能 关闭,将 DNS 服务升级到最新,并在其配置文件修改版本号(参见示例) 。 chkconfig -list named 显示 named 服务是否在系统启动时启动 chkconfig named off 将 named 服务从启动目录中去掉 /etc/init.d/named start|stop 启动|停止 named 服务 LINUX 评估加固手册 第 10 页 共 14 页 3 37 7、网络连接访问控制的设置、网络连接访问控制的设置 RedHat 7.3 以后版本中存在以下集中方式可以对网络连接设置访问控制: 1、使用 iptable 或 ipchains 进行网络访问控制;参见 iptables 和 ipchains 的 manual。 2、使用 xinetd 本身的访问控制机制对 xinetd 启动的服务进行网络访问控制; xinetd 可以在其配置文件中使用 only_from 和 no_access 指令限制可以访问该 服务的主机,tcpd 的配置文件是/etc/hosts.allow 和/etc/hosts.deny;具体配置 方法参见 manual。 使用 xinetd 自带的访问控制机制控制对 telnet 服务的访问 # default: on # description: The telnet server serves telnet sessions; it uses # unencrypted username/password pairs for authentication. service telnet disable = no flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID # allow access from host freebsd and network /24 only_from = freebsd /24 # also allow access from host 59 only_from += 59 # deny access from host freebsd if uncomment the following line # no_access = freebsd 3、使用 pam 系统中的 pam_access 模块提供的访问控制机制;配置文件是 /etc/security/access.conf,该文件中提供了该文件的语法。 使用 pam_access 进行网络访问控制 在 pam 文件中添加 pam_access 模块(以 system-auth 文件为例) #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required /lib/security/pam_env.so auth sufficient /lib/security/pam_unix.so likeauth nullok auth required /lib/security/pam_deny.so account required /lib/security/pam_access.so account required /lib/security/pam_unix.so password required /lib/security/pam_cracklib.so retry=3 type= difok=4 mi LINUX 评估加固手册 第 11 页 共 14 页 nlen=12 dcredit=1 ucredit=2 lcredit=2 ocredit=1 password sufficient /lib/security/pam_unix.so nullok use_authtok md5 shado w password required /lib/security/pam_deny.so session required /lib/security/pam_limits.so session required /lib/security/pam_unix.so 4、信任主机的设置、信任主机的设置 参照 3.2(/etc/inetd.conf 中服务的启动情况)检查 rlogin、rsh、rexec 服务是否 启动。如果启动,查看配置文件/etc/hosts.equiv(全局配置文件)和 /.rhosts(单独用户的配置文件)文件,检查文件是否配置妥当。 建议关闭 R 系列服务(rlogin、rsh、rexec) ;如果不能关闭,则需要检查配置文 件,确保没有失当的配置(不能存在”+”或”+ +”,如果存在,咨询系统管理员 是为何这样配置) 。 5、日志审核的设置、日志审核的设置 对 ssh、su 登录日志进行记录 编辑 syslogd 配置文件 # vi /etc/syslog.conf 加入以下信息,使和登陆验证有关的日志信息记录到 secure 文件中 # The authpriv file has restricted access. authpriv.* /var/log/secure 重新启动 syslogd: # /etc/rc.d/init.d/syslog restart 6、物理安全加固、物理安全加固 启动 LILO 时需要密码 LINUX 评估加固手册 第 12 页 共 14 页 第一步:编辑 lilo.conf 文件(vi /etc/lilo.conf) ,加入或改变这三个参数 (加#的部分): boot=/dev/hda prompt timeout=00 # 把该行改为 00,系统启动时将不再等待,而直接启动 LINUX message=/boot/message linear default=linux restricted # 加入该行 password= is-0ne # 加入该行并设置自己的密码(明文) image=/boot/vmlinuz-2.4.18 label=linux root=/dev/hda6 read-only 第二步:因为“/etc/lilo.conf”文件中包含明文密码,所以要把它设置为 root 权限读取。 # chmod 0600 /etc/lilo.conf 第三步:更新系统,以便对“/etc/lilo.conf”文件做的修改起作用。 # /sbin/lilo -v 第四步:使用“chattr”命令使“/etc/lilo.conf”文件不可改变。 # chattr +i /etc/lilo.conf 这样可以在一定程度上防止对“/etc/lilo.conf”任何改变(意外或其他 原因) 最后将/etc/lilo.conf 文件权限改为 600 LINUX 评估加固手册 第 13 页 共 14 页 # chmod 600 /etc/lilo.conf password 用于系统启动时应当输入密码; restricted 用于命令行启动系统时(如:进入单用户模式)需要输入密码。 7、系统内核参数的配置、系统内核参数的配置 RedHat Linux 使用 sysctl 命令控制内核参数,并可以在/etc/sysctl.conf 中设置启 动的内核参数。比较重要的网络安全参数有: net.ipv4.conf.default.accept_source_route=0 不接收源路由 ip 包 net.ipv4.conf.default.send_redirects=0 不发送重定向 ip 包 net.ipv4.conf.default.accept_redirects=0 不接收重定向 ip 包 net.ipv4.icmp_echo_ignore_broadcasts=1 忽略 icmp 广播包 net.ipv4.ip_forward=0 禁止 ip 转发 sysctl -a 查看所有的内核参数 sysctl -w net.ipv4.ip_forward=0 禁止 ip 转发 使用 vi 编辑/etc/sysctl.conf 文件,添加网络安全参数 # For binary values, 0 is disabled, 1 is enabled. S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论