目录
账号安全基本措施
系统账号清理
清楚历史命令
终端自动注销
密码安全控制
通过pam模块来防止暴力解密
使用chage命令
限制su命令用户
Sudo机制提升权限
Netstat命令
Nmap命令
查看用户命令 cat /etc/passwd
在使用yum install命令时他会自动给一个用户并且其shell设备为/sbin/nologin无法登录状态。
查看用户或者目录文件是否被锁。
Chattr +I /etc/passwd
对用户系统文件进行加锁,最终结果为无法再次创建用户
对文件进行加锁
查看结果
对这个文件进行修改已经无效了
删也删不掉限制的非常死
对其解锁
chattr -i /1.txt
3.删除无用的账号
History
限制history命令查看行数
Vim /etc/profile
/HISTSIZE找寻此关键词
如上,默认是保留history的1000条命令,修改其参数即可限制history
重新加载history配置文件让他在整个系统中识别
Source /etc/profile
再次使用history命令,发现的确是显示20条历史信息
清空history
History -c
永久清空:
Vim .bash_history
清空里面的配置文件
Vim .bash_logout
在里面输入
闲置n秒后自动注销
Vim /etc/profile
输入export TMOUT=40
Source /etc/profile重新激活其环境。
Vim /etc/login.defs
PASS_MAX_DAYS 30设置密码有效期30天默认99999
PASS_MIN_DAYS #表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是0
PASS_MIN_LEN 5#密码最小长度,对于root天效
注解:指定密码的最小长度↓默认不小于5位,但是现在用户登录时验证已经被PAM模块取代,所以这个选项并不生效,PASS_WARN_AGE 7“指定在密码到期前多少天,系统就开始提蘑用户密码即将到期,默认为7天。
Vim /etc/pam.d/sshd
在下面添加一行:
Auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=1200
说明:尝试登陆失败超过3次,普通用户600秒解锁,root用户1200秒解锁
手动解除锁定
查看某一用户错误登陆次数:
pam_tally2 –-user
例如,查看work用户的错误登陆次数:
pam_tally2 –-user root
清空所用户错误登陆次数:
pam_tally2 –-user –-reset
例如,清空 work 用户的错误登陆次数,
pam_tally2 –-user root –-reset
用于设置密码时限
chage -M 30 lisi表示该密码的最大有效天数
cat /etc/shadow | grep lisi
Chage -d 0 zhangsan
强制要求张三下次登录时重置密码
验证
重启后登录张三用户发现让你重新输入密码
值得一提的是在linux系统环境中,使用su命令登录用户的情况下,是可以使用exit退出的,在环境中是一层套一层的:
在/etc/pam.d/su文件里设置禁止用户使用su命令
vim /etc/pam.d/su
2 # auth sufficient pam_rootok.so
6 #auth required pam_wheel.so use_uid
两行都注释也是运行所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)
如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。
进行试验:
打开第一行也就是上述的2命令
如上所述在root用户下使用su命令切换到普通用户是不需要输入密码的
注释第一行打开第二行:
Zhangsan用户即不属于普通用户也不属于root用户所以其他用户使用su命令的时候是无效的。
通过su命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的登录密码。例如,若要从zhangsan 用户切换为 root 用户,必须知道 root 用户的密码。对于生产环境中的Linux 服务器,每多一个人知道特权密码,其安全风险也就增加一分。 有没有一种折中的办法,既可以让普通用户拥有一部分管理权限,又不需要将 root 用户的密码告诉他呢?答案是肯定的,使用 sudo命令就可以提升执行权限。不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户(或其他普通用户)的身份来执行哪些命令。
在生产环境中一般是不给用到root权限的,但是又又操作需要使用到root用户权限,解决方法:
例1:sudo cp /etc/sysconfig/network-scripts/ifcfg-ens33 ./
在正常使用命令前加sudo这样就可以即不用知道root用户密码也可以使用root用户权限了。但是这一切都得让管理员配置同意某个用户使用什么权限。
lisi 用户可以使用useradd usermod
需求:lisi root用户下的权限 useradd usermod
lisi ALL=(root) NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/usermod #前面不需要输入密码 ,后面需要输入密码
再次创建用户即不用输入密码。
而后面需要密码
netstat命令 | 查看当前操作系统的网络连接状态、路由表、接口统计等信息,它是了解网络状态及排除网络服务故障的有效工具
-r 显示路由表信息
-a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l 显示处于监听(Listening)状态的网络连接及端口信息。
-t 查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。
-u 显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。
-p 显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限
netstat -natp 查看正在运行的使用TCP协议的网络状态信息
netstat -naup 查看正在运行的使用UDP协议的网络状态信息
netstat -natlup最常使用的命令
-sS,TCP SYN 扫描(半开扫描):只向目标发出 SYN 数据包,如果收到 SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。 tcp确定三次握手
-sT,TCP 连接扫描:这是完整的 TCP 扫描方式,用来建立一个 TCP 连接,如果 成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sF,TCP FIN 扫描:开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU,UDP 扫描:探测目标主机提供哪些 UDP 服务,UDP扫描的速度会比较慢。
-sP,ICMP 扫描:类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描。
-P0,跳过 ping 检测:这种方式认为所有的目标主机是存活的,当对方不响应 ICMP 请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。
Nmap -sT 127.0.0.1 扫描本地连接状况
Nmap -sT 14.215.177.38 此ip地址为百度的ip地址,使用nmap命令去扫描于百度的连接状况:
可以看到的是百度的服务器中只打开了两个服务一个为http一个为https且扫描此ip地址使用了57.23秒其中有998个端口关闭,这个命令可以用来排除所有端口中哪个是打开哪个是关闭。