Ubuntu系统安全合规配置

文章目录

前言

一、Ubuntu系统密码策略

1.密码复杂度策略

2.密码生存周期策略

二、Ubuntu系统用户限制策略

1.超时,登录失败锁定

2.限制用户su到root账号

3.删除与设备运行,维护,工作无关的账号

4.普通用户授权sudo权限

5.禁止root用户远程telnet登录,限制samba访问

6.仅允许指定用户,IP,IP段通过ssh远程登录

总结


前言

Ubuntu系统作为主流的linux系统分支,目前广泛部署应用于服务器作为服务器系统使用,为了提高服务器系统的安全行,需要根据自身安全工作需求,进一步对安装的Ubuntu系统进行简单的配置,来提高安全性,本文主要是总结工作中的一些简单安全配置


一、Ubuntu系统密码策略

1.密码复杂度策略

(1)安装PAM的cracklib模块

#apt-get install libpam-cracklib

(2) 设置密码复杂度(使用root用户给普通用户设置时无效,即不符合规则也可成功设置密码)

#vim /etc/pam.d/common-password

参考如下截图,添加如下配置:password requisite pam_cracklib.so retry=3 minlen=8 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

参数说明:minlen=8 最短密码长度为 8 ;ucredit=-1 一个大写字母;lcredit=-1 一个小写字母;dcredit=-1 一个数字;ocredit=-1 一个特殊字符;remember=5 禁止使用最近使用过的5个密码,最近使用的密码保存在/etc/security/opasswd文件中

2.密码生存周期策略

#vim /etc/login.dfs

二、Ubuntu系统用户限制策略

1.超时,登录失败锁定
bash 复制代码
(1)设置登录账号超时
#vim /etc/profile
export TMOUT=600  #表示用户无操作动作10分钟后超时
#source /etc/profile
>echo "$TMOUT"
结果显示为:600

(2)配置用户登录失败锁定
限制用户从tty登录失败锁定
vim /etc/pam.d/login
在第二行添加如下配置,
auth required pam_tally2.so deny=5 unlock_time=600 even_deny_root root_unlock_time=600

字符说明:
even_deny_root    也限制root用户;
deny              设置普通用户和root用户连续错误登陆的最大次数,超过最大次数,则锁定该用户;
unlock_time       设定普通用户锁定后,多少时间后解锁,单位是秒;
root_unlock_time  设定root用户锁定后,多少时间后解锁,单位是秒;

限制ssh远程登录
#vim /etc/pam.d/sshd
第二行添加
auth required pam_tally2.so deny=5 unlock_time=600 even_deny_root root_unlock_time=600
#systemctl restart sshd
或者#service sshd restart

远程ssh的时候,输入密码错误超过五次但是没有提示,但是只要超过设定的值,输入正确的密码也是登陆不了的!还是要等到设定的时间在重新尝试输入正确密码进行登录认证。

root账号下查看用户是否被锁和解锁命令如下:
使用#pam_tally2 -u username命令查看
使用#pam_tally2 -r -u username或者pam_tally2 -u username -r --reset命令解锁用户 
2.限制用户su到root账号
bash 复制代码
设置只允许wheel组的成员可以通过su命令切换到root账号

#vim /etc/pam.d/su
在auth sufficient pam_rootok.so下添加如下配置

auth required pam_wheel.so use_uid 

#这表明只有wheel组的成员可以使用su命令成为root用户
你可以把用户添加到wheel组,以使它可以使用su命令成为root用户

#添加方法为:
#usermod --G wheel username
#为用户创建账号: 
#useradd username  #创建账号 
#passwd username   #设置密码 
#修改权限: 
#chmod 750 directory  #其中750为设置的权限,可根据实际情况设置相应的权限,directory是要更改权限的目录) ,使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。
3.删除与设备运行,维护,工作无关的账号
bash 复制代码
删除用户:
#userdel 用户名;
锁定用户:
#usermod -L 用户名
只有具备超级用户权限的使用者方可使用
解锁用户
#usermod -U 用户名  
4.普通用户授权sudo权限
bash 复制代码
(1)可以配置wheel用户组,将用户添加到wheel用户组,也可自行创建其它用户组然后配置权限,即可拥有使用sudo执行root命令的权限
 
   Ubuntu系统的/etc/sudoers文件没有默认配置wheel用户组有sudo权限
 
   #cat /etc/sudoers   
 
   需要添加配置

   %wheel   ALL=(ALL)     ALL 
 
   然后将要配置sudo权限的用户加入到wheel用户组
 
   #usermod -aG wheel username
 
   查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
   
   # ls -l /etc/sudoers
 
   #chmod 777 /etc/sudoers
   
   #ls -l /etc/sudoers
  
   保存退出,并恢复/etc/sudoers的访问权限为440
 
   chmod 440 /etc/sudoers
 
 (2)可以给指定的用户配置sudo权限
 
   #vim /etc/sudoers   
 
   #添加如下配置,保存退出
 
   username     ALL=(ALL)       ALL
 
  补充:
 
   添加普通用户的sudo权限,可以操作root能够操作的所有指令,同时禁止其关机操作,同时取消sudo的密码交互
 
   #vim /etc/sudoers
 
   username   ALL=(ALL)   NOPASSWD: ALL,  !SHUTDOWN
 
   参数说明:
 
   NOPASSWD是取消sudo时需要输入用户密码
 
   ALL是具有所有权限
 
   !SHUTDOWN是限制SHUTDOWN变量所限定的操作。
  
  #配置允许指定用户关机,重启操作
  username     ALL=(root)      /sbin/shutdown * ,/sbin/reboot *
  username为用户名,ALL为主机名,ALL代表所有主机,如果你想在指定主机有效,
  那就把ALL换成指定的主机名,(ROOT)代表以何种身份执行,
  root为以root身份执行,/sbin/shutdonw *代表授权shutdown * 的权限, 
  使用逗号来授权多个命令,因为是只读文件,更改完之后wq!保存退出
5.禁止root用户远程telnet登录,限制samba访问
bash 复制代码
(1)禁止root用户telnet登录

#vim /etc/pam.d/login
auth    required     pam_securetty.so  

(2)限制samba访问

#vim /etc/samba/smb.conf

 在共享目录的配置中添加hosts allow = ip  #多个IP用空格隔开

 例如:

 [Share]
 public = yes
 hosts allow = 192.168.1.10 192.168.1.20 
6.仅允许指定用户,IP,IP段通过ssh远程登录
复制代码
(1)仅允许指定用户通过ssh远程登录

 #vim /etc/ssh/sshd_config

 在空白处添加如下配置,允许指定用户远程,不限制IP

 AllowUsers   用户名1  用户名2

(2)仅允许指定用户IP远程

 #vim /etc/ssh/sshd_config
 
 AllowUsers   用户名@IP

保存退出,重启ssh服务
#systemctl restart ssh

(3)限制IP,IP段登录

 先配置允许访问的IP或IP段

 #vim /etc/hosts.allow
 
 添加允许的IP,多个IP用英文字符逗号隔开
 sshd:ip1,ip2,ip3:allow
 例如:sshd:192.168.1.10,192.168.10.20,192.168.1.30:allow
 或者
 sshd:192.168.0.1/24,192.168.0.,192.168.1.:allow
 无需重启ssh服务

相关推荐
喜欢你,还有大家3 小时前
FTP文件传输服务
linux·运维·服务器·前端
czhc11400756633 小时前
LINUX99 centos8:网络 yum配置;shell:while [ $i -ne 5 ];do let i++ done
linux
会开花的二叉树5 小时前
彻底搞懂 Linux 基础 IO:从文件操作到缓冲区,打通底层逻辑
linux·服务器·c++·后端
呼啦啦5615 小时前
【Linux】权限
linux·权限
晨曦5432106 小时前
零基础12周精通Linux学习计划
linux
linux修理工6 小时前
n1 Armbian OS 24.11.0 noble 安装suricata
linux·运维·服务器
傅里叶6 小时前
sudo启动Flutter程序AMD初始化失败
linux·flutter
笨鸟贤妃6 小时前
Ubuntu 22.04 安装 Docker & Compose 最新最简单完整指南
ubuntu·docker·compose
bug攻城狮6 小时前
CentOS 7 出现 “Could not resolve host“ 错误的修复方案
linux·运维·centos