文章目录
前言
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.超时,登录失败锁定
(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账号
设置只允许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.删除与设备运行,维护,工作无关的账号
删除用户:
#userdel 用户名;
锁定用户:
#usermod -L 用户名
只有具备超级用户权限的使用者方可使用
解锁用户
#usermod -U 用户名
4.普通用户授权sudo权限
(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访问
(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服务