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		

你可能感兴趣的:(linux)