1、北京#有限公司版本 v1.0.0LINUX 操 作 系 统安 全 加 固 手 册前言 -I-目录1 概述 11.1 适用范围 .11.2 外部引用说明 .11.3 术语和定义 .11.4 符号和缩略语 .12 LINUX 主机安全加固 12.1 身份鉴别 .12.1.1 为空口令用户设置密码 .12.1.2 缺省密码长度限制 .22.1.3 缺省密码生存周期限制 .22.1.4 口令过期提醒 .22.1.5 限制超级管理员远程登录 .32.1.6 使用 ssh 加密传输 .32.2 访问控制 .32.2.1 为不同的管理员分配不同的账号 .32.2.2 去除不需要的帐号、修改默认帐号的 she
2、ll 变量 .42.2.3 对系统账号进行登录限制 .42.2.4 除 root 之外 UID 为 0 的用户 .52.2.5 设置关键目录的权限 .52.2.6 修改 umask 值 .52.2.7 设置目录权限 .62.2.8 设置关键文件的属性 .62.2.9 对 root 为 ls、 rm 设置别名 .72.2.10 使用 PAM 禁止任何人 su 为 root.72.3 安全审计 .82.3.1 启用日志记录功能 .82.3.2 记录系统安全事件 .82.3.3 启用记录 cron 行为日志功能 .82.3.4 增加 ftpd 审计功能 .92.4 剩余信息保护 .92.5 入侵防范
3、 .92.5.1 设置访问控制列表 .92.5.2 更改主机解析地址的顺序 .102.5.3 打开 syncookie.102.5.4 不响应 ICMP 请求 .112.5.5 防 syn 攻击优化 .112.5.6 补丁装载 .112.5.7 关闭无效服务 .112.5.8 关闭无效服务和进程自动启 .132.5.9 禁止 /etc/rc.d/init.d 下某些脚本的执行 .132.5.10 加固 snmp 服务 .13前言 -II-2.5.11 修改 ssh 端口 .142.6 恶意代码防范 .142.7 资源控制 .152.7.1 隐藏系统提示信息 .152.7.2 设置登录超时时间
4、.152.7.3 资源限制 .163 推荐安装工具 17前言 -I-前言近几年来 Internet 变得更加不安全了。网络的通信量日益加大,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。只要有值得偷窃的东西就会有想办法窃取它的人。Internet 的今天比过去任何时候都更真实地体现出这一点,基于 Linux 的系统也不能摆脱这个“普遍规律”而独善其身。因此,优秀的系统应当拥有完善的安全措施,应当足够坚固、能够抵抗来自 Internet 的侵袭,这正是 Linux 之所以流行并且成为Internet 骨干力量的主要原因。但是,如果你不适当地运用 Linux 的
5、安全工具,它们反而会埋下隐患。配置拙劣的安全系统会产生许多问题,本文将为你解释必须掌握的 Linux 安全知识。 本文讲述了如何通过基本的安全措施,使Linux 系统变得可靠。正文 第 1 页/共 17 页1 概述1.1 适用范围1.2 外部引用说明1.3 术语和定义1.4 符号和缩略语(对于规范出现的英文缩略语或符号在这里统一说明。 )缩写 英文描述 中文描述正文 第 2 页/共 17 页2 LINUX 主机安全加固本规范所指的设备为采用 LINUX 操作系统的设备。本规范提出的安全配置要求,在未特别说明的情况下,均适用于采用 LINUX 操作系统的设备。本规范从运行 LINUX 操作系统设
6、备的身份鉴别、访问控制、安全审计、剩余信息保护、入侵防范、恶意代码防范、资源控制七个方面提出安全配置要求。2.1 身份鉴别2.1.1为空口令用户设置密码实施目的 禁止空口令用户,存在空口令是很危险的,用户不用口令认证就能进入系统检测方法 查看文件中每行的第二个值是为空还是“X ”, “X”则有密码,空则为无密码。如 example:3:3:example:/bin/example操作指南 root 身份登录后,在命令行状态下可直接输入命令,或在图形界面状态下右键点击桌面空白处,选择 “打开终端 ”,执行下列命令#cat /etc/passwd查看文件中每行的第二个值是为空还是 “X”, “X”
7、则有密码,空则为无密码。使用 passwd 命令,给空密码的用户添加密码。2.1.2缺省密码长度限制实施目的 防止系统弱口令的存在,减少安全隐患。对于采用静态口令认证技术的设备,口令长度至少 8 位。检测方法 cat /etc/login.defs查看是否有如下行:PASS_MIN_LEN 8操作指南 1、参考配置操作 # vi /etc/login.defs 把下面这行 PASS_MIN_LEN 5 改为 PASS_MIN_LEN 8正文 第 3 页/共 17 页2.1.3缺省密码生存周期限制实施目的 对于采用静态口令认证技术的设备,帐户口令的生存期不长于 90 天,减少口令安全隐患。检测方
8、法 运行 cat /etc/login.defs 查看是否有如下行:PASS_MAX_DAYS 90 PASS_MIN_DAYS 0操作指南 1、 参考配置操作 # vi /etc/login.defs PASS_MAX_DAYS 90 PASS_MIN_DAYS 02.1.4口令过期提醒实施目的 口令到期前多少天开始通知用户口令即将到期检测方法 运行 cat /etc/login.defs 查看是否有如下行:PASS_WARN_AGE 7操作指南 2、 参考配置操作 # vi /etc/login.defs PASS_WARN_AGE 7 2.1.5限制超级管理员远程登录实施目的 限制具备超
9、级管理员权限的用户远程登录。远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账。检测方法 /etc/ssh/sshd_config 中 PermitRootLogin no操作指南 1、 参考配置操作 SSH: #vi /etc/ssh/sshd_config 把 PermitRootLogin yes 改为 PermitRootLogin no 重启 sshd 服务#service sshd restart CONSOLE: 在 /etc/securetty 文件中配置: CONSOLE = /dev/tty01正文 第 4 页/共 17 页2.1.6使用 ssh
10、 加密传输实施目的 提高远程管理安全性检测方法 运行 # ps elf|grep ssh 查看状态,是否存在 ssh 进程。操作指南 1、 参考配置操作 #service sshd restart 2.2 访问控制2.2.1为不同的管理员分配不同的账号实施目的 根据不同类型用途设置不同的帐户账号,提高系统安全检测方法 cat /etc/passwd 查看当前用户列表操作指南 1、参考配置操作 为用户创建账号: #useradd username #创建账号 #passwd username #设置密码 修改权限: #chmod 750 directory #其中 755 为设置的权限,可根据实
11、际情况设置相应的权限, directory 是要更改权限的目录 ) 使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。2.2.2去除不需要的帐号、修改默认帐号的 shell 变量实施目的 删除系统不需要的默认帐号、更改危险帐号缺省的 shell 变量检测方法 cat /etc/passwd 记录当前用户列表, cat /etc/shadow 记录当前密码配置操作指南 1、参考配置操作 # userdel lp # groupdel lp 如果下面这些系统默认帐号不需要的话,建议删除。 lp, sync, shutdown, halt, news, uucp, operator,
12、 games, gopher 等 修改一些系统帐号的 shell 变量,例如 uucp,ftp 和 news 等,还有一些仅仅需要 FTP 功能的帐号,一定不要给他们设置/bin/bash 或者 /bin/sh 等 Shell 变量。可以在 /etc/passwd 中将它们的 shell 变量设为 /bin/false 或者 /dev/null 等,也可以使用usermod -s /dev/null username 命令来更改 username 的 shell为 /dev/null。正文 第 5 页/共 17 页2.2.3对系统账号进行登录限制实施目的 对系统账号进行登录限制,确保系统账号仅
13、被守护进程和服务使用检测方法 /etc/passwd 中的禁止登陆账号的 shell 是 /sbin/nologin操作指南 1、 参考配置操作 Vi /etc/passwd 例如修改 lynn:x:500:500:/home/lynn:/sbin/bash 更改为: lynn:x:500:500:/home/lynn:/sbin/nologin 该用户就无法登录了。禁止所有用户登录。 touch /etc/nologin 除 root 以外的用户不能登录了。 2、补充操作说明 禁止交互登录的系统账号,比如 daemon,bin,sys、 adm、 lp、uucp、 nuucp、 smmsp
14、等等2.2.4除 root 之外 UID 为 0 的用户实施目的 帐号与口令-检查是否存在除 root 之外 UID 为 0 的用户检测方法 awk -F: ($3 = 0) print $1 /etc/passwd返回值包括“root”以外的条目,则低于安全要求操作指南 删除 处 root 以外的 UID 为 0 的用户。2.2.5设置关键目录的权限实施目的 在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。检测方法 运行 ls al /etc/ 记录关键目录和文件的权限操作指南 1、参考配置操作 通过 chmod 命令对目录的权限进行实际设置。 2、补充操作说明 etc/pa
15、sswd 必 须 所 有 用 户 都 可 读 , root 用 户 可 写 rw-rr /etc/shadow 只有 root 可读 r- /etc/group 必 须 所 有 用 户 都 可 读 , root 用 户 可 写 rw-rr 使用如下命令设置: chmod 644 /etc/passwd 正文 第 6 页/共 17 页chmod 600 /etc/shadow chmod 644 /etc/group 如果是有写权限,就需移去组及其它用户对 /etc 的写权限(特殊情况除外) 执行命令 #chmod -R go-w /etc2.2.6修改 umask 值实施目的 控制用户缺省访问
16、权限,当在创建新文件或目录时,屏蔽掉新文件或目录不应有的访问允许权限。防止同属于该组的其 它用户及别的组的用户修改该用户的文件或更高限制。检测方法 more /etc/profile more /etc/csh.login more /etc/csh.cshrc more /etc/bashrc 检查是否包含 umask 值操作指南 1、参考配置操作 设置默认权限: vi /etc/profile vi /etc/csh.login vi /etc/csh.cshrc vi /etc/bashrc 在末尾增加 umask 027 修改文件或目录的权限,操作举例如下: #chmod 444 di
17、r ; #修改目录 dir 的权限为所有人都为只读。 根据实际情况设置权限; 2、补充操作说明 如果用户需要使用一个不同于默认全局系统设置的 umask,可以在需要的时候通过命令行设置,或者在用户的 shell 启动文件中配置 3、补充说明 umask 的默认设置一般为 022,这给新创建的文件默认权限755( 777-022=755) ,这会给文件所有者读、写权限,但只给组成员和其他用户读权限。 umask 的计算: umask 是使用八进制数据代码设置的,对于目录,该值等于八进制数据代码 777 减去需要的默认权限对应的八进制数据代码值;对于文件,该值等于八进制数据代码 666 减去需要的
18、默认权限对应的八进制数据代码值。2.2.7设置目录权限实施目的 设置目录权限,防止非法访问目录检测方法 查看重要文件和目录权限:ls l正文 第 7 页/共 17 页判断 /etc/init.d/* 下的文件权限 750 以下操作指南 1、参考配置操作 查看重要文件和目录权限: ls l 更改权限: 对于重要目录,建议执行如下类似操作: # chmod -R 750 /etc/init.d/* 这样只有 root 可以读、写和执行这个目录下的脚本。2.2.8设置关键文件的属性实施目的 增强关键文件的属性,减少安全隐患。 使 messages 文件只可追加。 使轮循的 messages 文件不可
19、更改。检测方法 # lsattr /var/log/messages # lsattr /var/log/messages.* # lsattr /etc/shadow # lsattr /etc/passwd # lsattr /etc/group判断属性操作指南 1、参考配置操作 # chattr +a /var/log/messages # chattr +i /var/log/messages.* # chattr +i /etc/shadow # chattr +i /etc/passwd # chattr +i /etc/group 建议管理员对关键文件进行特殊设置(不可更改或只能
20、追加等) 。2.2.9对 root 为 ls、rm 设置别名实施目的 为 ls 设置别名使得 root 可以清楚的查看文件的属性(包括不可更改等特殊属性) 。 为 rm 设置别名使得 root 在删除文件时进行确认,避免误操作。检测方法 查看当前 shell: # echo $SHELL 如果是 csh: # vi /.cshrc 如果是 bash: # vi /.bashrc查看内容是否有alias ls=ls -aol alias rm =rm i 类似的定义正文 第 8 页/共 17 页操作指南 1、参考配置操作 查看当前 shell: # echo $SHELL 如果是 csh: #
21、vi /.cshrc 如果是 bash: # vi /.bashrc 加入 alias ls = ls -aol alias rm = rm -i 重新登录之后查看是否生效。2.2.10 使用 PAM 禁止任何人 su 为 root实施目的 避免任何人可以 su 为 root,减少安全隐患。检测方法 cat /etc/pam.d/su操作指南 1、参考配置操作 编辑 su 文件 (vi /etc/pam.d/su),在开头添加下面两行: auth sufficient /lib/security/pam_rootok.so auth required /lib/security/pam_whe
22、el.so group=wheel 这表明只有 wheel 组的成员可以使用 su 命令成为 root 用户。你可以把用户添加到 wheel 组,以使它可以使用 su 命令成为root 用户。添加方法为: # chmod G10 username2.3 安全审计2.3.1启用日志记录功能 实施目的 登陆认证服务记录检测方法 运行 cat /etc/syslog.conf 查看状态,是否有如下行authpriv.* /var/log/secure 操作指南 1、 参考配置操作 cat /etc/syslog.conf # The authpriv file has restricted acce
23、ss. authpriv.* /var/log/secure * auth, authpriv:主要认证有关机制,例如 telnet, login, ssh 等需要认证的服务都是使用此一机制正文 第 9 页/共 17 页2.3.2记录系统安全事件实施目的 通过设置让系统记录安全事件,方便管理员分析检测方法 Cat /etc/syslog.conf 是否记录系统安全事件操作指南 1、参考配置操作 修改配置文件 vi /etc/syslog.conf, 配置如下类似语句: *.err;kern.debug;daemon.notice; /var/adm/messages 定义为需要保存的设备相关安
24、全事件。 2.3.3启用记录 cron 行为日志功能实施目的 对所有的 cron 行为进行审计。检测方法 Cat /etc/syslog.conf | grep cron操作指南 1、 参考配置操作 Vi /etc/syslog.conf # Log cron stuff cron.* /var/log/cron 2.3.4增加 ftpd 审计功能实施目的 增加 ftpd 审计功能,增强 ftpd 安全性。检测方法 Cat /etc/inetd.conf 是否有如下行:ftpd -l -r -A S cat /etc/syslog.conf 是否有如下行:ftp.* /var/log/ftpd
25、操作指南 1、参考配置操作 # vi /etc/inetd.conf ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l -r -A -S 其中: -l 成功 /失败的 ftp 会话被 syslog 记录 -r 使 ftpd 为只读模式,任何命令都不能更改文件系统 -A 允许 anonymous 用户登录, /etc/ftpwelcome 是欢迎信息 -S 对 anonymous ftp 传输进行记录 在 /etc/syslog.conf 中,增加 ftp.* /var/log/ftpd 使日志产生到 /var/log/ftpd 文件 重新
26、启动 inetd 进程: 正文 第 10 页/共 17 页# kill -1 cat /var/run/inetd.pid2.4 剩余信息保护暂无。2.5 入侵防范2.5.1设置访问控制列表实施目的 设置访问控制列表,使得只有可信主机才能访问服务器在/etc/(x)inetd.conf 中启用的特定网络服务。检测方法 查看/etc/hosts.allow 和/etc/hosts.deny 2 个文件的配置状态,并记录。操作指南 1、参考配置操作 使用 TCP_Wrappers 可以使系统安全面对外部入侵。最好的策略就是阻止所有的主机(在 “/etc/hosts.deny”文件中加入“ ALL:
27、ALLALL, PARANOID ” ) , 然 后 再 在“/etc/hosts.allow” 文件中加入所有允许访问的主机列表。 第一步: 编辑 hosts.deny 文件( vi /etc/hosts.deny) ,加入下面该行: # Deny access to everyone. ALL: ALLALL, PARANOID 第二步: 编辑 hosts.allow 文件( vi /etc/hosts.allow) ,加入允许访问的主机列表,比如: ftp: 202.54.15.99 202.54.15.99 和 是允许访问 ftp 服务的 IP 地址和主机名称。 第三步: tcpd
28、chk 程序是 TCP_Wrapper 设置检查程序。它用来检查你的 TCP_Wrapper 设置,并报告发现的潜在的和真实的问题。设置完后,运行下面这个命令: # tcpdchk2.5.2更改主机解析地址的顺序实施目的 更改主机解析地址的顺序,减少安全隐患。检测方法 Cat /etc/host.conf/etc/host.conf order bind,hosts nospoof on操作指南 “/etc/host.conf” 说明了如何解析地址。编辑 “/etc/host.conf” 正文 第 11 页/共 17 页文 件 ( vi /etc/host.conf ) , 加 入 下 面 该
29、 行 : # Lookup names via DNS first then fall back to /etc/hosts. order bind,hosts # We have machines with multiple IP addresses. multi on # Check for IP address spoofing nospoof on 第一项设置首先通过 DNS 解析 IP 地址,然后通过 hosts 文件解析。第二项设置检测是否 “/etc/hosts”文件中的主机是否拥有多个 IP 地址(比如有多个以太口网卡) 。第三项设置说明要注意对本机未经许可的 IP 欺骗。2.
30、5.3打开 syncookie实施目的 打开 syncookie 缓解 syn flood 攻击检测方法 Cat /proc/sys/net/ipv4/tcp_syncookies 值为 1操作指南 # echo 1 /proc/sys/net/ipv4/tcp_syncookies 可以加入 /etc/rc.d/rc.local 中。2.5.4不响应 ICMP 请求实施目的 不响应 ICMP 请求,避免信息泄露检测方法 Cat /proc/sys/net/ipv4/icmp_echo_ignore_all 返回 1操作指南 不响应 ICMP 请求: # echo 1 /proc/sys/ne
31、t/ipv4/icmp_echo_ignore_all2.5.5防 syn 攻击优化实施目的 提高未连接队列大小检测方法 sysctl net.ipv4.tcp_max_syn_backlog 值为 2048 操作指南 1、参考配置操作 sysctl -w net.ipv4.tcp_max_syn_backlog=“2048“ 2.5.6补丁装载实施目的 可以使系统版本为最新并解决安全问题检测方法 Uname a Rpm qa cat /proc/version查看 http:/ 正文 第 12 页/共 17 页比较补丁修复情况操作指南 1、参考配置操作 补丁地址: http:/ RPM 包:
32、 # rpm -Fvh 文件名 请慎重对系统打补丁,补丁安装应当先在测试机上完成。补丁安装可能导致系统或某些服务无法工作正常。 在下载补丁包时,一定要对签名进行核实,防止执行特洛伊木马。2.5.7关闭无效服务实施目的 关闭无效的服务,提高系统性能,增加系统安全性。检测方法 在/etc/inetd.conf 文件中禁止下列不必要的基本网络服务。 ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth, sendmail, nfs 标记用户用途,定期建立用户列表,比较是否有非法用户操作指南 1、参
33、考配置操作 取消所有不需要的服务,编辑 “/etc/inetd.conf”文件,通过注释取消所有你不需要的服务(在该服务项目之前加一个“#”) 。 第一步: 更改 “/etc/inetd.conf”权限为 600,只允许 root 来读写该文件。 # chmod 600 /etc/inetd.conf 第二步: 确定 “/etc/inetd.conf”文件所有者为 root。 # chown root /etc/inetd.conf 第三步: 编辑 /etc/inetd.conf 文件( vi /etc/inetd.conf) ,取消不需要的服务,如: ftp, telnet, shell,
34、login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth 等等。把不需要的服务关闭可以使系统的危险性降低很多。 第四步: 给 inetd 进程发送一个 HUP 信号: # killall -HUP inetd 第五步: 用 chattr 命令把 /ec/inetd.conf 文件设为不可修改。 # chattr +i /etc/inetd.conf /etc/inetd.conf 文件中只开放需要的服务。 对于启用的网络服务,使用 TCP Wrapper 增强访问控制和日志审计功能。 建议使用 xinetd 代替 inetd,前者在访
35、问控制和日志审计方面有较大的增强。 这样可以防止对 inetd.conf 的任何修改(以外或其他原因) 。唯一可以取消这个属性的只有 root。如果要修改正文 第 13 页/共 17 页inetd.conf 文件,首先要取消不可修改属性: # chattr -i /etc/inetd.conf portmap(如果启动使用 nfs 等需要 rpc 的服务,建议关闭portmap 服务 cups 服务( Common Unix Printing Service,用于打印,建议关闭)named 服务(除非主机是 dns 服务器,否则关闭 named 服务)apache( http)服务 xfs(
36、X Font Service)服务 vsftpd lpd linuxconf identd smb补充说明:Redhat 下面关闭服务可通过: service 服务名 stop 2.5.8关闭无效服务和进程自动启实施目的 禁止系统不需要启动的服务,减少安全隐患。防止黑客获取更多的系统信息。检测方法 判断/etc/rc.d/rc0-9.d 下脚本文件名的状态操作指南 1、参考配置操作 进入相应目录,将脚本开头大写 S 改为大写 K 即可。 如: # cd /etc/rc.d/rc3.d # mv S45dhcpd K45dhcpd也可用: chkconfig level 3 dhcpd off2
37、.5.9禁止/etc/rc.d/init.d 下某些脚本的执行实施目的 禁止系统开机时不需要启动的服务,减少安全隐患。防止黑客获取更多的系统信息。检测方法 cat /etc/rc.d/init.d/* 查看并记录当前的配置,停止不需要的服务的启动脚本操作指南 1、参考配置操作 # cd /etc/rc.d/init.d 在不需要开机自动运行的脚本第一行写入 exit 0。 则开机时该脚本 exit 0 之后的内容不会执行。 需要更改的服务包括: identd lpd linuxconf netfs portmap routed rstatd 正文 第 14 页/共 17 页rwalld rwh
38、od sendmail ypbind yppasswdd ypserv 具体操作时根据主机的角色请于管理员确认后再实施。2.5.10 加固 snmp 服务实施目的 减少安全隐患避免信息泄露检测方法 Cat /etc/snmp/snmpd.conf/etc/snmp/snmpd.conf 中 com2sec notConfigUser default xxxxx view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc access notConfigGroup “ any noauth exact mib2 none none ps elf
39、| grep snmp 查看是否有服务操作指南 1、参考配置操作 chkconfig snmpd off chkconfig snmptrapd off /etc/rc.d/init.d/snmpd stop /etc/rc.d/init.d/snmptrapd stop 如果需要 SNMP 服务 如下方式修改 /etc/snmp/snmpd.conf 文件 A、修改默认的 community string com2sec notConfigUser default public 将 public 修改为你才知道的字符串 B、把下面的 #号去掉 #view mib2 included .iso
40、.org.dod.internet.mgmt.mib-2 fc C、把下面的语句 access notConfigGroup “ any noauth exact systemview none none 改成: access notConfigGroup “ any noauth exact mib2 none none 3、重启 snmpd 服务 #/etc/rc.d/init.d/snmpd restart2.5.11 修改 ssh 端口实施目的 隐藏 ssh 信息检测方法 Cat /etc/ssh/sshd_config 判断 port 字段操作指南 Vi /etc/ssh/sshd_
41、config 修改 Port 22 修改成其他端口,迷惑非法试探者 Linux 下 SSH 默认的端口是 22,为了安全考虑,现修改 SSH的端口为 1433,修改方法如下 : /usr/sbin/sshd -p 1433正文 第 15 页/共 17 页2.6 恶意代码防范暂无。2.7 资源控制2.7.1隐藏系统提示信息实施目的 减少系统提示信息,降低安全隐患。检测方法 Cat /etc/rc.d/rc.local Cat /etc/issue 注释住处信息操作指南 1、参考配置操作 在缺省情况下,当你登录到 linux 系统,它会告诉你该 linux 发行版的名称、版本、内核版本、服务器的名
42、称。应该尽可能的隐藏系统信息。 首先编辑 “/etc/rc.d/rc.local” 文件,在下面显示的这 些行前加一个 “#”,把输出信息的命令注释掉。 # This will overwrite /etc/issue at every boot. So, make any changes you want to make to /etc/issue here or you will lose them when you reboot. #echo “ /etc/issue #echo “$R“ /etc/issue #echo “Kernel $(uname -r) on $a $(unam
43、e -m)“ /etc/issue #cp -f /etc/issue /etc/ #echo /etc/issue 其次删除 “/etc“目录下的 和 issue 文件: # mv /etc/issue /etc/issue.bak # mv /etc/ /etc/.bak2.7.2设置登录超时时间实施目的 对于具备字符交互界面的设备,应配置定时帐户自动登出检测方法 查看/etc/profile 文件的配置状态,查看是否有如下行:TMOUT=180操作指南 1、参考配置操作 在 unix 系统中 root 账户是具有最高特权的。如果系统管理员在离开系统之前忘记注销 root 账户,那将会带
44、来很大的安全隐患,应该让系统自动注销。通过修改账户中 “TMOUT”参数,可以实现此功能。 TMOUT 按秒计算。编辑 profile 文件( vi /etc/profile) ,在 “HISTFILESIZE=”后面加入下面这行: 正文 第 16 页/共 17 页TMOUT=180 表示 180 秒,也就是表示 3 分钟。这样,如果系统中登录的用户在 3 分钟内都没有动作,那么系统会自动注销这个账户。也可以在个别用户的 “.bashrc”文件中添加该值,以便系统对该用户实行特殊的自动注销时间。 改变这项设置后,必须先注销用户,再用该用户登录才能激活这个功能。2.7.3资源限制实施目的 限制用
45、户对系统资源的使用,可以避免拒绝服务(如:创建很多进程、消耗系统的内存,等等)这种攻击方式。这些限制必须在用户登录之前设定检测方法 Cat /etc/security/limits.conf Cat /etc/pam.d/login/etc/security/limits.conf 中包含 hard core 0 * hard rss 5000 * hard nproc 20 的定义 /etc/pam.d/login 中包含 session required /lib/security/pam_limits.so操作指南 1、参考配置操作 第一步 编辑 “limits.conf”文件 ( vi
46、 /etc/security/limits.conf) ,加入或改变下面这些行: * soft core 0 * hard core 0 * hard rss 5000 * hard nproc 20 如果限制 limitu 用户组对主机资源的使用, 加入: limitu soft core 0 limitu hard nproc 30 limitu - maxlogins 5 这些行的的意思是: “core 0”表示禁止创建 core 文件;“nproc 20”把最多进程数限制到 20; “rss 5000”表示除了 root 之外,其他用户都最多只能用 5M 内存。上面这些都只对登录到系统
47、中的用户有效。通过上面这些限制,就能更好地控制系统中的用户对进程、 core 文件和内存的使用情况。星号“*”表示的是所有登录到系统中的用户。 第二步 必须编辑 “/etc/pam.d/login”文件,在文件末尾加入下面这一行:session required /lib/security/pam_limits.so 正文 第 17 页/共 17 页补充说明: 加入这一行后 “/etc/pam.d/login”文件是这样的: #%PAM-1.0 auth required /lib/security/pam_securetty.so auth required /lib/security/pa
48、m_pwdb.so shadow nullok auth required /lib/security/pam_nologin.so account required /lib/security/pam_pwdb.so password required /lib/security/pam_cracklib.so password required /lib/security/pam_pwdb.so nullok use_authtok md5 shadow session required /lib/security/pam_pwdb.so session required /lib/security/pam_limits.so #session optional /lib/security/pam_console.sodaemon 统计进程数量 ps ax | grep httpd | wc -l3 推荐安装工具3.1Linux 下推荐安装的工具工具名称 TCP Wrapper 工具用途 该软件为大多数网络服务提供访问控制与日志记录的功能。 工具名称 Tripwire 工具用途 该工具为关键文件