🗒️linux,windows安全加固学习
2023-12-6
| 2023-12-29
字数 1950阅读时长 5 分钟
type
status
date
slug
summary
tags
category
icon
password

linux加固

脚本仅限客户允许的情况下使用(需要工时):建议所有配置均使用手工方式

①>账号

  1. 验证空口令
    1. awk -F: '($2=="") {print $1}' /etc/shadow
      验证uid=0的账户(root权限)
      cat /etc/passwd | awk -F: '($3==0) {print $1}'
  1. 密码长度和有效期的检验
    1. PASS_MAX_DAYS 密码有效期 推荐90天
      cat /etc/login.defs | grep PASS_MAX_DAYS PASS_MIN_DAYS 修改密码的最短期限 推荐2天
      cat /etc/login.defs | grep PASS_MIN_DAYS PASS_MIN_LEN 密码的最小长度 推荐8位
      cat /etc/login.defs | grep PASS_MIN_LEN PASS_WARN_AGE 密码过期提醒 推荐7天
      cat /etc/login.defs | grep PASS_WARN_AGE
  1. 密码复杂度
    1. 推荐:至少包含大、小写、数字、特殊字符中的最少两种
      cat /etc/pam.d/system-auth | grep password
      unutun系统路径:cat /etc/pam.d/common-auth | grep password
      修改为如下配置:
      password requisite pam_cracklib.so minlen=8 difok=5 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
      try_first_pass 防止新设置的密码和旧密码相同 minlen=8 最小长度 difok=5 新密码、旧密码至少有5个字符不同 dcredit=-1 最少1个数字 lcredit=-1 最少一个小写字母 ucredit=-1 最少一个大写字母 ocredit=-1 最少一个特殊字符 retry=1 几次登录失败后返回错误信息 type=xxx 用来修改默认的密码提示文本信息
  1. 会话超时
    1. 推荐:5分钟
      echo "export TMOUT=300">>/etc/profile
  1. 防DNS欺骗(ip地址和主机名不匹配)
    1. echo "nospoof on">>/etc/host.conf
  1. 限制指定用户组的用户可通过su且为root
    1. 查找命令
      cat /etc/pam.d/system-auth | grep auth | grep required
      查找是否有以下输出,含义为:仅允许wheel组用户可通过su登录至root
      auth required pam_wheel.so user_uid
      wheel组在group文件中排第10位,以下命令添加用户
      usermod -G10 zhangsan 将zhangsan用户加到wheel组
  1. 查看是否存在suid和gid
    1. find / -perm -u=s -type f 2>/dev/null find / -perm -g=s -type f 2>/dev/null

②>系统访问和授权

  1. crontab
    1. 仅允许管理员(组),操作
      chown root:root /etc/crontab
      chown root:root /var/spool/cron
      chown root:root /etc/cron.*
      仅管理员root有读的权限 chmod 400 /etc/crontab
      chmod跟随用户可给适当权限/etc/crontab
  1. 守护进程,掩码
    1. /etc/bashrc /etc/profile 在上述文件的末尾增加umask 027,解释见chatgpt代码块
  1. 修改常用服务的默认端口
  1. 查看、关闭未知、不必要的服务
    1. service --status-all#查看所有服务
  1. 设置history命令时间戳
    1. echo 'export HISTTIMEFORMAT="%F %T whoami "' >> /etc/profile
      source /etc/profile
      之后输入history查看是否成功
  1. 设置登录失败锁定
    1. cat /etc/pam.d/system-auth | grep auth | grep required
      修改或添加
      auth required pam_tally2.so deny=5 even_deny_root unlock_time=1800 root_unlock_time=1800
  1. 禁止root用户通过ssh远程登录
    1. cat /etc/ssh/sshd_config |grep PermitRootLogin
      修改为no即可
  1. ssh其他配置(sshd_config)
    1. 禁止空密码登录:PermitEmptyPasswords no
      禁止ssh端口转发:
      AllowTcpForwarding no GatewayPorts no
  1. 隐藏操作系统版本信息
    1. sudo sh -c 'echo "" > /etc/issue.net && echo "" > /etc/issue'
  1. 最大文件打开数
    1. 设定所有用户的文件描述符(file descriptor)的软限制和硬限制为65535
      echo "* soft nofile 65535" >> /etc/security/limits.conf echo "* hard nofile 65535" >> /etc/security/limits.conf
  1. 用户最大进程数
    1. 修改unlimited为65535以下
      echo -e "root soft nproc 65535\nroot hard nproc 65535\n* soft nproc 65535\n* hard nproc 65535" | sudo tee /etc/security/limits.d/20-nproc.conf

③>linux杀毒工具

https://www.clamav.net/
有钱就用卡巴斯基

windows安全加固

一、身份鉴别

1.1用户必须使用用户名密码

win+R打开运行框,输入netplwiz
notion image
控制面板-》系统和安全-》管理工具-》本地安全策略-》账户策略-》密码策略
此处需注意:密码永不过期和密码最长使用期限逻辑冲突。 但是同时勾选后,密码永不过期生效,另一个不生效。
计算机管理--》本地用户和组----》用户,取消密码永不过期选项 非框选的也需要设置
 
notion image
notion image
每一个策略属性,都可以通过命令在账户中看见net user administrator

1.2登录失败,登录超时等

控制面板-》系统和安全-》管理工具-》本地安全策略-》账户策略-》账户锁定策略
notion image

1.3使用安全的远程管理方式

推荐使用堡垒机或vpn或rdp,禁止使用telnet,http等明文传输协议

二、用户权限,用户组方面

2.1登录用户需分配合适的权限账号

和客户沟通理清楚账号使用人的权限

2.2重命名默认账户和默认口令

重命名administrator,一般只有出厂做,因为在这里重命名后administrator文件夹不会重命名,会出现很多问题
notion image
默认口令通过命令更改net user administrator 111111

2.3急需时删除或停用过期、多余账户,禁止|避免共享账户的存在

和客户沟通理清楚账号使用人的权限

2.4用户权限最小化

限制普通用户的身份权限,控制访问内容和范围

2.4不显示上次登录

控制面板-》系统和安全-》管理工具-》本地安全策略
notion image

三、安全审计

3.1开启日志记录

计算机管理----系统工具----事件查看器
查看服务是否开启,服务-------windows event log
notion image
notion image

3.2保证日志的的记录足够详细

控制面板\系统和安全\管理工具\本地安全策略
notion image

3.3定期对日志进行备份

控制面板\系统和安全\管理工具\事件管理器
日志定期备份:实时备份(日志服务器),没钱才手动
存储路径:%SystemRoot%\System32\Winevt\Logs\Application.evtx
notion image

四、入侵防范

4.1关闭不需要的服务,默认共享的高危端口

netstat -ano查看开了哪些端口
也可通过ip安全策略关闭端口
notion image
查看正在运行的服务
任务管理器——》服务
计算机管理——》服务和应用程序 / 服务

4.2 防止syn

若无此配置则手动添加
notion image

五、杀软

杀毒软件需要升级病毒库,为最新

六、数据备份

国家要求运行数据最少备份六个月

七、资源控制

7.1限制远程登录空闲断开时间

notion image

7.2禁用为登陆前关机

notion image
 
  • 安服
  • frp连通vps和kali虚拟机mysql,apche安全加固学习
    Loading...