linux安全基本配置

一、历史记录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