Linux相关的系统安全

目录

前言:

一、账号安全的控制:

1、系统账号清理:

2、密码安全控制:

3、命令历史限制:

4、用户切换与提高权限:

5、Linux中pam安全认证:

6、开关机安全控制:

8、弱口令检测、端口扫描:

9、网络扫描—NMAP:

总结:


前言:

Linux是企业中服务器常用到的系统,他的安全则显得尤为重要,因此维护Linux系统的安全与应用是一项重大的项目;

基本的系统安全为物理安全和登入安全,包括:禁用root登录和sudo,可插拔认证模块(PAM)等;


一、账号安全的控制:

1、系统账号清理:

(1)将非登录用户的Shell设为/sbin/nologin;

如:usermod -s /sbin/nologin

系统账号的shell使用 /sbin/nologin ,此时无法登陆系统,即使给了密码也不行。

 (2)锁定长期不使用的账号:

usermod  -L 用户名   锁定用户
passwd  -l  用户名    锁定用户
passwd  -S  用户名   显示密码信息
passwd  -u  用户名    解锁用户   或  usermod  -U  用户名
删除无用的账号(userdel  -r):userdel -r 用户

(3)锁定账号文件passwd(用户信息)、 shadow(密码信息):

chattr +i  /etc/passwd  /etc/shadow  #锁定用户信息文件
Isattr  /etc/passwd  /etc/shadow   #查看用户信息状态
chattr -i  /etc/passwd  /etc/shadow   #解锁用户信息文件

 2、密码安全控制:

(1)设置密码有效期;

[root@localhost ~]# vim /etc/login.defs 
适用于新建用户
[root@localhost ~]# chage -M 30 lisi
适用于已有用户

 

 (2)要求用户下次登录时修改密码;

[root@localhost ~]# cat /etc/shadow | grep "lisi"
lisi:$6$S7dzxAc5$de/fN/Pk5vB9Fv3THqdmu53PxQhYBCUgKE33VaM8dwUP1YOtAiHhzujocvfyo75695xDrADQXL3L8cfEMLUg/0:18892:0:30:7:::

[root@localhost ~]# chage -d 0 lisi    //强制用户在下次登录时更改密码;
[root@localhost ~]# cat /etc/shadow | grep "lisi"
lisi:$6$S7dzxAc5$de/fN/Pk5vB9Fv3THqdmu53PxQhYBCUgKE33VaM8dwUP1YOtAiHhzujocvfyo75695xDrADQXL3L8cfEMLUg/0:0:0:30:7:::

3、命令历史限制:

(1)减少记录的命令条数;

(2)注销时自动清空命令历史;

(3)终端自动注销(闲置600秒后自动注销);

1.减少记录命令的条数:
[root@localhost ~]# vim /etc/profile  进入配置文件修改限制命令条数,适合新用户,对以存在的用户不会修改
HISTSIZE=200     修改限制命令为200条,系统默认是1000条profile
[root@localhost ~]# source /etc/profile 刷新配置文件,使文件生效
 
        
2. 注销时自动清空命令:
[root@localhost ~]# vim ~/.bashrc
echo "" > ~/.bash_history

3.闲置600秒后自动注销:
[root@localhost ~]# vim ~/.bash_ profile
......
export TMOUT=600
[root@localhost ~]# source .bash_profile   //刷新文件
[root@localhost ~]# echo $TMOUT   //查看自动注销时间
600

[root@localhost ~]# cat bash_ history

4、用户切换与提高权限:

(1)su命令--切换用户;

格式:su - 目标用户  (注意:- 表示切换到目标用户的家目录)

注意:

a):root用户切换到任意用户,不用验证密码;

b):普通用户切换到其他用户需要验证目标用户的密码;

查看当前用户是谁:
[root@localhost ~]# whoami
root

(2)限制用户使用 su 命令:

a):将允许使用的 su 命令的用户加入wheel组;

[root@localhost ~]# vim /etc/pam.d/su
把第六行注释去掉,保存退出
# gpasswd -a lisi wheel
将lisi用户加入到wheel组中

b):启用pam_wheel认证模块;

c):查看su操作记录:

安全日志文件:cat /var/log/secure

(3)sudo命令--提升执行权限:

sudo命令的用途及用法:
用途:以其他用户身份(如root)执行授权命令
用法:sudo 授权命令
visudo 或者 vim /etc/sudoers   //配置sudo授权
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。
Host_Alias MYHOST= localhost  主机名
 User_Alias MYUSER = zhangsan,lisi  需要授权的用户   
 Cmnd_Alias MYCMD = /sbin/*,/usr/bin/passwd  授权
 MYUSER  MYHOST = NOPASSWD : MYCMD  授权格式

5、Linux中pam安全认证:

(1)su命令的安全隐患:

●默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险;

●为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换;

(2)PAM可插拔式认证模块:

●是一种高效而且灵活便利的用户级别的认证方式;

●也是当前Linux服务器普遍使用的认证方式;

(3)PAM认证原理:

●PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_*.so;,

●PAM认证首先要确定哪一项应用服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认 模块(位于/lib64/security/下)进行安全认证。

●用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。

●如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/。

ls /etc/pam.d/ | grep su

●PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用。

 

查看su的pam配置文件:
[root@localhost ~]# cat /etc/pam.d/su
auth		sufficient	pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth		sufficient	pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth		required	pam_wheel.so use_uid
auth		substack	system-auth

每一行都是一个独立的认证过程;
每一行可以区分为三个字段:认证类型,控制类型,PAM模块及其参数

6、开关机安全控制:

(1)调整BIOS引导设置原则:

  • 将第一引导设备设为当前系统所在硬盘;

  • 禁止从其他设备(光盘、 U盘、网络)引导系统;

  • 将安全级别设为setup,并设置管理员密码。

    禁用重启热键:Ctrl+Alt+Delete 避免因用户误操作重启

 (2)GRUB菜单设置:

  • 未经授权禁止修改启动参数

  • 未经授权禁止进入指定系统

 (3)GRUB限制的实现:

直接设置grub2—setpasswd 设置grub密码;

(4)禁止普通用户登入:

  • 建立/etc/nologin文件

  • [root@localhost ~]# touch /etc/nologin
    
  •  删除nologin文件或者重启后即恢复正常;

  •  rm -rf /etc/nologin

 8、弱口令检测、端口扫描:

(1)弱口令检测—Joth the Ripper;

  • 一款密码分析工具,支持字典式的暴力破解;

  • 通过对shadow文件的口令分析,可以检测密码强度;

 9、网络扫描—NMAP:

  • 一款强大的网络扫描、安全 检测工具;

SY:建立链接

ACK:确认

FIN:结束断开

PSH:传送 0 数据缓存 上层应用协议

RST:重置

URG :紧急

常用格式:

nmap [扫描类型]  [选项]  <扫描目标>

netstat natp                                            #查看正在运行的使用TCP协议的网络状态信息

netstat -natp | grep httpd                          #实际操作(httpd换成80也可以)

netstat -naup                                           #查看正在运行的使用UDP协议的网络状态信息

[root@localhost run]#rpm -qa|grep nmap   查看nmap

[root@localhost run]#yum install -y nmap   安装nmap

查看本机开放的TCP端口、UDP端口:
[root@localhost ~]# nmap -sT 127.0.0.1
检测192.168.59.0/24网段有哪些存活主机
[root@localhost ~]# nmap -n -sP 192.168.59.0/24


总结:

1、账号基本安全措施:

系统账号清理,密码安全控制,命令历史清理,自动注销;

2、用户切换与提权:

su,sudo

3、开关机安全控制:

bios引导设置,禁止ctrl+alt+del快捷键,grub菜单设置密码;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值