windows/Linux主机加固
1,账户安全
首先要确保电脑上的账户均为经常使用的账户,要禁止Guest用户,禁用其他无用账户,一段时间后无反馈即可删除,同时要留意是否有隐藏账户存在。
选择对应账户 双击后可以打开页面执行操作
如何查看隐藏用户
如图所示设置后我们就可以通过“计算机管理”中的“事件查看器”准确得知隐藏账户的名称,包括登陆的时间。即使将所有的登陆日志删除,系统还会记录是哪个账户删除了系统日志。这样就可以及时发现是否有隐藏账户登录。
2,密码安全
要开启密码复杂度要求,设置密码最长使用期限来定时更换密码,同时要避免将密码存储在设备上。
然后再进行账户锁定策略,设置无效登录次数可以有效防止暴力破解。
3,安全选项
安全选项如图设置,其中框中的选项比较重要。
4,审核策略
账户登录
账户管理
详细跟踪
登录/注销
我们可以在日志文件中查看被审核所记录的信息,以便于排查和管理
5,用户授权
我们应对用户的权限进行限制和分配
打开 控制面板 > 管理工具 > 本地安全策略,在 本地策略 > 用户权限分配
设置允许本地登录的用户组。
6,安装专业的杀毒软件以及开启windows防火墙。
安装企业版杀毒软件,并且定期扫描。此处应保证防火墙开启
7修改默认端口
如80端口 3389端口
通过注册表编辑器修改 win+R 输入 regedit打开
具体修改某项服务就找到对应的注册表,通过修改端口可以有效防止黑客入侵
关闭不必要的端口可大大降低风险和漏洞。
Linux主机加固
1,账号管理
和windows一样,减少不必要的账号,及时删除无用账户,可以有效地降低安全风险。要排查空口令账户,以及不明来源的用户和拥有root权限的用户。
使用 cat /etc/shadow 查看用多少用户
这里是我的主机上有的用户
分别是 root www test 三个用户
接下来检查是否存在空口令账户
使用命令 awk -F: '($2=="")' /etc/shadow 查看空口令账号。
Test为空口令用户,可以为其增加密码。
也可以将其删除
查看拥有root权限用户
使用命令 awk -F: '($3==0)' /etc/passwd 查看UID为零的账号。 //root权限的账户
用户账号的安全要求应是没有空口令和弱口令用户存在,没有不必要的账户,只有root用户有root权限。
2,口令策略
除了空口令,弱口令也容易被破解,应当使用较为复杂的口令,降低破解的可能性。
使用命令 vi /etc/login.defs 修改配置文件、
类比于windows可以增加账号锁定功能设置连续输错三次密码,账号锁定五分钟。
使用命令 vi /etc/pam.d/common-auth修改配置文件,在配置文件中添加 auth required pam_tally.so onerr=fail deny=3 unlock_time=300 这样可以有效防止暴力破解。
3限制用户提权。
应限制能够su到root的用户,指定那些组成员可以提权。
使用命令 vi /etc/pam.d/su修改配置文件,在配置文件中添加行。例如,只允许test组用户su到root,则添加 auth required pam_wheel.so group=test。
4禁止root用户直接登录
限制root用户直接登录。
创建普通权限账号并配置密码,防止无法远程登录;
使用命令 vi /etc/ssh/sshd_config修改配置文件将PermitRootLogin的值改成no,并保存,然后使用service sshd restart重启服务。
5服务
关闭不需要的服务
使用命令systemctl disable <服务名>设置服务在开机时不自动启动。
6 SSH服务安全
对于ssh服务的修改通过修改配置文件实现。
vim /etc/ssh/sshd_config
可以在此处修改ssh服务的默认端口
通过修改默认端口,可以有效地防止被入侵。
不允许root账号直接登录系统。
设置 PermitRootLogin 的值为 no。
修改SSH使用的协议版本。
设置 Protocol 的版本为 2。
修改允许密码错误次数(默认6次)。
设置 MaxAuthTries 的值为 3。
配置文件修改完成后,重启sshd服务生效。
7文件系统
设置umask值
设置默认的umask值,增强安全性。
操作步骤
使用命令 vi /etc/profile 修改配置文件,添加行 umask 027, 即新创建的文件属主拥有读写执行权限,同组用户拥有读和执行权限,其他用户无权限。
设置登录超时
设置系统登录后,连接超时时间,增强安全性。
操作步骤
使用命令 vi /etc/profile 修改配置文件,将以 TMOUT= 开头的行注释,设置为TMOUT=180,即超时时间为三分钟。
8 syslogd日志
启用日志功能,并配置日志记录。
操作步骤
Linux系统默认启用以下类型日志:
系统日志(默认)/var/log/messages
cron日志(默认)/var/log/cron
安全日志(默认)/var/log/secure
注意:部分系统可能使用syslog-ng日志,配置文件为:/etc/syslog-ng/syslog-ng.conf。
记录所有用户的登录和操作日志
通过脚本代码实现记录所有用户的登录操作日志,防止出现安全事件后无据可查。
操作步骤
运行 vim /etc/profile打开配置文件。
在配置文件中输入以下内容:
history
USER=`whoami`
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]; then
USER_IP=`hostname`
fi
if [ ! -d /var/log/history ]; then
mkdir /var/log/history
chmod 777 /var/log/history
fi
if [ ! -d /var/log/history/${LOGNAME} ]; then
mkdir /var/log/history/${LOGNAME}
chmod 300 /var/log/history/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +"%Y%m%d_%H:%M:%S"`
export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"
chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null
运行 source /etc/profile 加载配置生效。
注意: /var/log/history 是记录日志的存放位置,可以自定义。
通过上述步骤,可以在 /var/log/history 目录下以每个用户为名新建一个文件夹,每次用户退出后都会产生以用户名、登录IP、时间的日志文件,包含此用户本次的所有操作(root用户除外)。
9查看系统时间
通过校准系统时间可以精确定位日志中事件发生的准确日期,可以及时处理异常。
自我总结:
对于windows主机和Linux主机安全加固都应重点把控账户及密码安全,做到没有弱口令,空口令,对于密码应当按时更换。管理员权限应当限制一般用户登录和使用,应当保证主机上每个用户都有对应业务,按照业务对用户进行分组和权限分割。
对于服务以及端口应当按照具体业务所需进行开放。对于高危端口,应当进行更换或关闭,尽量修改默认端口。
不论是windows还是linux都应当注重日志的记录,确保可以查到何人何时做了何种操作,以便于应急响应和运营维护。