1,禁止存在空口令用户 ? 检测方法: ? 使用命令awk -F: '($2=="!!") {print $1}' /etc/shadow查看空口令用户; ? 加固方法: ? 删除空口令账户或为空口令账户设置密码 2,设置帐户登录失败N次之后锁定账户以及锁定时间 ? 检测方法: ? 检查cat /etc/pam.d/system-auth或login中有无auth required pam_tally2.so条目的设置 ? 检查cat /etc/pam.d/sshd中有无auth required pam_tally2.so条目的设置 ? 加固方法: ? 1、执行命令 vim /etc/pam.d/system-auth或vim /etc/pam.d/ login ? 2、执行命令 vim /etc/pam.d/sshd ? 3、添加配置auth required pam_tally2.so onerr=fail deny=3 unlock_time=30 even_deny_root root_unlock_time=100设置为密码连续错误3次锁定,锁定时间30秒 root密码连续错误3次锁定,时间为 100秒 3,设置系统口令策略 ?#vim /etc/login.defs修改配置文件 ?PASS_MAX_DAYS 99999 #新建用户的密码最长使用天数 ?PASS_MIN_DAYS 0 #新建用户的密码最短使用天数 ?PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数 ?PASS_MIN_LEN 5 #最小密码长度5 4,禁止非wheel组用户切换到root ?#vi /etc/pam.d/su ?#auth required pam_wheel.so use_uid 删除该行注释符 5,设置关键目录的权限 ?目的:除设备本身需要权限外,根据用户的业务需要配置最小权限 ?检测方法:ls -al [目录名] ?加固方法: ?chmod对目录进行实际配置 ?示例 ?chmod 644 /etc/passwd ?chmod 600 /etc/shadow ?chmod 644 /etc/group 6,检测方法: ?#cat /etc/profile|grep umask 加固方法 ?#umask 027 临时生效,重启失效 ?#vi /etc/profile修改umask 为027重启生效 7,打开syncookie 目的: ? 打开syncookie 缓解syn flood攻击 检查方法: ? 执行 cat /proc/sys/net/ipv4/tcp_syncookies 命令查看是否为1 加固方法: ? 执行命令 echo 1>/proc/sys/net/ipv4/tcp_syncookies 8,防syn攻击优化 目的: ? 提高未连接对列大小 检查方法: ? 执行cat /proc/sys/net/ipv4/tcp_max_syn_backlog命令看值是否为2048 加固方法: ? 执行命令 ? echo 2048 >/proc/sys/net/ipv4/tcp_max_syn_backlog 9,配置命令详解 ? # yum install -y iptables 安装iptables ? # yum update iptables 升级iptables ? #yum install iptables-services 安装iptables-services ? # systemctl stop firewalld 停止firewalld服务 ? # systemctl mask firewalld 禁用firewalld服务 ? #iptables -L –n 查看iptables现有规则 10,iptables语法 ? iptables [-t table] <action> [pattern] [-j target] ? action包括: ? -A chain:在chain中增添一条规则 ? -D chain:在chain中删除一条规则 ? -L chain:列出chain中的规则 ? -F chain:清空chain中的规则 ? -P chain:为chain指定新的默认策略,可以是: – ACCEPT:未经禁止全部许可 – DROP:未经许口全部禁止 iptables语法 ? pattern包括: ? -s <ip地址>:来源地址 ? -d <ip地址>:目标地址 ? -p <协议>:指定协议,可以是tcp/udp/icmp ? --dport <端口> :目标端口,需指定-p ? --sport <端口>:来源端口,需指定-p ? target包括: ? DROP:禁止 ? ACCEPT:许可 filter table ? 用于过滤数据包的接送 ? chain INPUT: ? 设定远端访问主机时的规则 ? 来源是远端访问者,目标是本地主机 ? chain OUTPUT: ? 设定主机访问远端主机的规则 ? 来源是本地主机,目标是远端被访问主机 ? chain FORWARD: ? 设定主机为其他主机转发数据包时的规则 ? 来源是请求转发的主机,目标是远端被访问的主机 防火墙配置实例 ? 1、规则清零: ? iptables [-FXZ] ? 2、默认策略: ? iptables -P INPUT DROP ? iptables -P OUTPUT ACCEPT ? iptables -P FORWARD ACCEPT ? 3、 回应数据包: ? iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ? 4、添加自定义规则: ? iptables -A INPUT -p tcp --dport 80 -j ACCEPT ? iptables -A INPUT -p tcp -s 192.168.1.0 --dport 22 -j ACCEPT ? …… ? service iptables save ? service iptables restart ? chkconfig iptables on 常见日志文件 ? 1./var/log/message---系统启动后的信息和错误日志 ? 2./var/log/secure---与安全相关的日志信息 ? 3./var/log/maillog---与邮件相关的日志信息 ? 4./var/log/wtmp---该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件 ? 5.~/.bash_history---shell日志 ? 6./var/log/cron---计划任务日志 ? 7./var/log/httpd/*---apache日志 后门检测 ?查看是否存在网页木马 ?#find / -type f -name "*.jsp" | xargs grep -i "getRuntime" ?#find / -type f -name "*.asp" | xargs grep -i “wscript.shell" ?查看是否存在非授权的管理信息 ?#tail -n 10 /var/log/secure ?#last -f /var/log/wtmp ?查看临时目录是否存在攻击者入侵时留下的残余文件 ?#ls -la /tmp ?#ls -la /var/tmp ?查看计划任务是否正常 ?#cat /var/log/cron ?查看shell历史 ?#history 锁定不熟悉的用户登录, 根据用户信息和用户登录原地址及运行进程判断他们是否为非法用户。 ?#ps -ef |grep 用户名 查看用户运行的程序 ?#passwd -l 锁定用户名 ?#kill -9 pid 杀掉进程 ?#last 查看用户登录系统的日志及未授权的登录 ?#pidof 进程名 查找指定名称的进程的进程id号。 ?#netstat –ntl 通过指定端口或者tcp、 udp协议找到进程pid ?#which 进程名 查看文件安装路径 ?#whereis 进程名 定位源文件 检查文件属性是否发生变化是验证文件系统完好性最简单、最直接的方法、可以借助于linux的 rpm工具完成验证 ?rpm –V 已安装程序 ? S表示文件长度发生变化 ? M表示文件访问权限发生了变化 ? 5表示Md5校验发生了变化 ? D表示设备节点的属性发生了变化 ? L表示文件的符号链接发生了变化 ? U表示文件、子目录、设备节点的owner发生了变化 ? G表示文件、子目录、设备节点的group发生了变化 ? T表示文件最后一次修改时间发生了变化
原文始发于微信公众号(菜鸟小新):linux系统加固
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论