一、历史记录history
1.清空历史命令(缓存)
history -c
2.清空历史命令文件
[root@localhosts]# > ~/.bash_history
3.用户最近登录历史查询
lastlog ##只显示用户是否登录和最后一次登录时间
last ## 显示用户登录终端的具体内容
4.设置历史记录的时间
vi /etc/profile
export HISTSIZE="10000" #默认保留10000条。
二、设置用户登录有效期
chage –l 账户名称 #查看账户信息
chage –E 时间 账户名称 #修改账户有效期
例子:
chage -E 2015-05-15 zhangsan #限制zhangsan 2015年5月15号失效
chage -E 2019-12-31 zhangsan //修改失效日期
三、定义密码默认有效期
cat /etc/login.defs
PASS_MAX_DAYS 99999 ##密码最长有效期
PASS_MIN_DAYS 0 ##密码最短有效期
PASS_MIN_LEN 5 ##密码最短长度
PASS_WARN_AGE 7 ##密码过期前几天提示警告信息
UID_MIN 1000 ##UID最小值
UID_MAX 60000 ##UID最大值
四、临时锁定用户zhangsan的账户,使其无法登录.
passwd -l zhangsan ##锁定用户账号lock
passwd -u zhangsan ##解锁用户账号
passwd -S zhangsan ##查看状态
zhangsan LK ##锁定状态
zhangsan PS ##解锁状态
五、修改tty登录的提示信息,隐藏系统版本
cat /etc/issue ##确认原始文件
cp /etc/issue /etc/issue.origin ##备份文件
vim /etc/issue ##修改文件内容
参考(纯属娱乐):
//
// _oo8oo_
// o8888888o
// 88" . "88
// (| -_- |)
// 0\ = /0
// ___/'==='\___
// .' \\| |// '.
// / \\||| : |||// \
// / _||||| -:- |||||_ \
// | | \\\ - /// | |
// | \_| ''\---/'' |_/ |
// \ .-\__ '-' __/-. /
// ___'. .' /--.--\ '. .'___
// ."" '< '.___\_<|>_/___.' >' "".
// | | : `- \`.:`\ _ /`:.`/ -` : | |
// \ \ `-. \_ __\ /__ _/ .-` / /
// =====`-.____`.___ \_____/ ___.`____.-`=====
// `=---=`
//
//
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//
// 佛祖保佑 永不宕机/永无bug
//```
六、锁定文件(root同样受限制)
chattr +i 文件名 ##锁定文件(无法修改、删除等)
chattr -i 文件名 ##解锁文件
chattr +a 文件名 ##锁定后文件仅可追加
chattr -a 文件名 ##解锁文件
lsattr 文件名 ##查看文特殊属性
七、使用sudo分配管理权限
whoami ##查看现在登录的用户是谁
su - -c "systemctl restart sshd" ##普通用户用root重启服务(不安全,而 且麻烦,需要root密码)
允许softadm管理系统服务的权限
修改/etc/sudoers配置,为softadm授予相关脚本的执行权限.
vim /etc/sudoers
softadm ALL=(ALL) /usr/bin/systemctl
##授权softadm以root身份执行systemctl命令(ALL包括root)
切换用户后执行sudo systemctl restart httpd重启成功.
八、允许用户useradm通过sudo方式添加/删除/修改除root以外的用户账号
为useradm授予用户管理相关命令的执行权限,例外程序以!符号取反,放在后面。在执行相关程序时,可以利用通配符*。
vim /etc/sudoers
.. ..
useradm ALL=(ALL) /usr/bin/passwd,!/usr/bin/passwd root,/usr/sbin/user*,
!/usr/sbin/user* * root
九、允许wheel组成员以特权执行所有命令(不建议操作)
vim /etc/sudoers
.. ..
%wheel ALL=(ALL) ALL
usermod -a -G wheel zengye
用户 zengye 可以在该主机上运行以下命令:
(root) /bin/*
十、为sudo机制启用日志记录,以便跟踪sudo执行操作
修改/etc/sudoers配置,添加日志设置
visudo
Defaults logfile="/var/log/sudo"
.. ..
root查看sudo权限
sudo -l //查看授权的sudo操作
普通用户查看权限
sudo systemctl status httpd //查看授权的sudo操作
十一、提高SSH服务安全
配置基本安全策略
vim /etc/ssh/sshd_config
.. ..
Protocol 2 ##SSH协议
PermitRootLogin no ##禁止root用户登录
PermitEmptyPasswords no ##禁止密码为空的用户登录
UseDNS no ##不解析客户机地址
LoginGraceTime 1m ##登录限时
MaxAuthTries 3 ##每连接最多认证次数
.. ..
十二、针对SSH访问采用仅允许的策略,未明确列出的用户一概拒绝登录
vim /etc/hosts.allow ##允许的地址
sshd:192.168.0.*:allow ##仅允许192.168.0.1-254进行ssh访问
vim /etc/hosts.deny ##拒绝的地址
sshd:all:deny ##拒绝了所有sshd远程连接.:deny可以省略.
注:当hosts.allow和 host.deny相冲突时,以hosts.allow设置为准。
修改后必须重启sshd服务才能生效.
十三、实现密钥对验证登录(私钥口令)、免密码登入
ssh-keygen ##生成密钥
ssh-copy-id root@ip ##自己的公钥部署到别的服务器
确认密钥验证使用正常后,禁用口令验证和首次登录免输入yes
vim /etc/ssh/sshd_config
PasswordAuthentication no ##将此行yes改成no
StrictHostKeyChecking no ##将ask改为no