2021-04-25

操作系统安全加固

linux操作系统

1.用户账号配置

要求:不应存在超级管理员账户,应三权分立,并设置最小权限。
应配置secadm安全管理员 audadm审计管理员 sysadm系统管理员
(1)用户配置

cat /etc/passwd
#查看用户信息

例:root: x:0:0:root:/root:/bin/bash
account:password:UID:GID:GECOS:directory:shell (帐号:密码:用户ID:组ID:一般的信息:目录:shell)

在这里插入图片描述伪用户一般分为两种,一种是与linux系统相关的,一种是与程序服务相关的。比如使用shutdown关机的时候就会调用伪用户的身份。在linux系统里面任何一个进程操作都必须有一个用户身份,这个就通过调用伪用户。比如安装了apache,http的进程,启动以后也要对应一个用户身份,但是不能对应root启动这个进程,如果别人得到这个进程相当于窃取到管理员root的权限,这样很危险,所以都是通过一些伪用户,添加一些服务的伪用户,比如apache,mysql。这些实际上是这些进程启动之后调用的用户身份。

所以伪用户最大的作用就是在一些系统操作或一些应用服务的调用的身份而已。

useradd secadm
#创建安全管理账户
useradd audadm
#创建审计账户
passwd secadm
#设置secadm账号密码
passwd audadm
#设置audadm账号密码

删除账户

userdel secadm
#删除secadm账号,但此方法只删除了/etc/passwd、/etc/shadow、/etc/group/、/etc/gshadow四个文件里的该账户和组的信息。默认情况下创建一个用户账号,会创建一个家目录和一个用户邮箱(在/var/spool/mail目录以用户名命名)。此时useradd secadm会提示已有此组,无法创建。
userdel -r secadm
#此方法可以删除干净

更改shell

usermod -s /sbin/nologin secadm
#将secadm改为/sbin/nologin,一般创建账号默认为/bin/bash

改为/sbin/nologin后,账户无法登录。

2.密码复杂度设置

(1)密码长度不小于8位
(2)口令是字母、数字和特殊字符组成。
(3)口令不得与账户名相同。

#root用户:
vi /etc/pam.d/system-auth-ac

更改标记的那一条

#pam_cracklib.so后更改配置
passwd  requisite   pam_cracklib.so  minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1 retry=5 difok=3
#minlen不少于多少位
#dcredit=-1 --最少数字1个
#ucredit=-1--最少大写字母1个
#lcredit=-1 --最少小写字母1个
#ocredit-1 --最少特殊字符1个
#retry =5 --尝试次数5次
#difok=3 --最少3种不同字符

验证是否设置成功时,例建了test用户,如果在root账号下passwd test设置密码时,虽然你输入了简单的密码,会提示你密码过于简单,但是依旧可以成功。
在这里插入图片描述登录test用户,输入passwd设置密码时,如果不符合规则,是不允许保存密码的。
在这里插入图片描述

3.登录次数限制

要求:配置当用户连续认证失败次数超过5次,锁定该用户使用的账户10分钟

#root用户下
vi /etc/pam.d/system-auth
#添加
auth      required      pam_tally2.so    deny=5  unlock_time=60 even_deny_root root_unlock_time=60

注意:该命令必须输入在最前面,不然无法使用,输入到中间会出现登录超级用户密码输入正确也无法登录的情况,待查找原因。可以使用find命令查看时pam_tally.so还是pam_tally2.so
deny=5 允许错误次数5次
unlock_time=60 锁定60秒
even_deny_root 对root用户同样适用
root_unlock_time=60 root锁定60秒

4.用户口令有效期设置

要求:①口令 90 天定期更换
②口令过期前 10 天,应提示修改

su
vim /etc/login.defs
找到PASS_MAX_DAYS、PASS_MIN_LEN、PASS_WARN_AGE参数配
置,做出以下配置:
PASS_MAX_DAYS=90
PASS_MIN_LEN=8
PASS_WARN_AGE=10
保存并退出文件编辑。

对于在更改login.defs之前就已经存在的用户,修改该文件对他们不起作用。
此时需要
chage -l 用户名 #查看账户口令过期时间
chage -M 90 yonghuming #修改账户口令时间
在这里插入图片描述

5.桌面配置

1.系统桌面只显示业务系统软件,禁止除业务系统软件外的其他程序,如各类小游戏,远程运行软件
2.消除无关软件、程序

1.在桌面上删除其他文件
root权限:
#cd /home/d5000/desktop
#ls
查看目录下文件,不存在与D5000系统无关的程序及shell,若存
在,使用以下命令删除:
rm -rf 文件名

rpm -qa    
rpm -ql [package name]     
rpm -e [package name] --nodeps

rpm -qa --查询所有已安装的软件包
rpm -ql [package name] --查 看rpm包安装位置
rpm -e [package name] --nodeps --忽略依赖关系进行删除

6.禁止默认路由配置

su
route -n #查看路由表
route add -net IP地址 netmask 掩码 gw 网关
#此方法添加的路由重启后会消失
route del default gw 网关
#删除默认路由

vi /etc/rc.local
在文件未添加路由配置:
route add -net IP地址 netmask 掩码 gw 网关
保存文件并退出编辑。
#此方法可以设置永久路由

7.umask更改权限

umask是更改用户创建文件或文件夹时的默认权限,例如umask=002
那么所创建的文件权限为777-002=775

umask
#可以查看默认umask
umask 027 
#可以临时更改umask为027
su
vi /etc/bashrc
#最后一行添加
umask=027
#可以永久更改

8.安全内核

开启操作系统的安全内核。

root权限:
#vi /etc/selinux/config
找到“SELINUX=”字段,更改参数配置:
SELINUX=permissive
保存并退出文件编辑。

SELINUX=permissive
–允许用户执行操作,并进行日志记录

9. 禁用bluetooth USB 光驱

1.bluetooth

root权限:
lsmod | grep bluetooth  #查看模块挂在状态
uname -r  #查看内核版本
service bluetooth stop  #关闭bluetooth
mv /lib/modules/内核版本/kernel/drivers/bluetooth    /BAK  
#将bluetooth文件夹移走,既可以禁止该功能,也可以再以后需要时找回来
rmmod bluetooth #卸载模块

2.usb

root权限:
lsmod | grep usb_storage  #查看模块挂在状态
uname -r  #查看内核版本
mv /lib/modules/内核版本/kernel/drivers/usb/storage    /BAK  
#将storage文件夹移走,既可以禁止该功能,也可以再以后需要时找回来

3.光驱

root权限
lsmod | grep sr_mod
lsmod | grep cdrom
uname -r
mv /lib/modules/内核版本/kernel/drivers/scsi/sr_mod.ko /BAK
mv /lib/modules/内核版本/kernel/drivers/cdrom/cdrom.ko /BAK
rmmod sr_mod
rmmod cdrom

10. 关闭无用服务和端口

1.应禁止非必要的服务开启,关闭vsftp、telnet、login、SMTP/POP3、netbios、dns、dhcp,SNMPv3 以下版本等公共网络服务。

chkconfig --list  #查看服务目前状况
service 服务名称 stop  #当前将服务关闭
chkconfig --level 2345 服务名称 off   #将不同视图下的开机自启服务关闭

2.关闭135、445等高危的网络端口

root权限:
netstat -ano  #查看端口状态
在防火墙中禁用端口
iptables -A INPUT -p tcp --dport 135 -j DROP
iptables -A OUTPUT -p tcp --dport 135 -j DROP

11. 消除多余网络接口

service network status #查看哪些网口活跃期
ifconfig #查看网络配置
ifconfig 网口 stop #关闭网口
cd /etc/sysconfig/network-scripts  #进入网口文件夹,可以删除不用的网口文件

12. 限制远程管理地址配置

限制指定 IP 地址范围主机的远程登录。

root权限:
vi /etc/hosts.allow
#在文件末尾添加允许远程访问的地址
sshd:IP地址或IP地址段:allow
#保存文件并退出编辑。
vi /etc/hosts.deny
#在文件末尾添加拒绝远程访问的地址
sshd:IP地址或IP地址段:deny
或sshd:all:deny
#保存文件并退出编辑。

在这里插入图片描述在这里插入图片描述

13.设置ssh连接超时时间,不允许root远程

su
vi /etc/profile
#末尾添加
TMOUT=600
#10分钟后自动断开

vi /etc/ ssh/sshd_config
在这里插入图片描述
去掉#,并将yes改为no
service sshd restart 使配置生效

14.远程用户资源限制配置

su
vi /etc/security/limits_conf
加入以下内容
用户名 soft nproc 16384
用户名 hard nproc 16384
用户名 soft nofile 10240
用户名 hard nofile 65536
用户名 soft stack 10240
用户名 hard stack 32768
用户名 soft memlock unlimited
用户名 hard memlock unlimited
用户名 soft core unlimited
用户名 hard core unlimited

#soft表示警告,hard表示阻止
vi /etc/pam.d/login #编辑login文件,加入以下内容
session required pam_limits.so
#pam_limits.so加入启动文件中以确保配置生效。

15.消除无用日志

cd /var/log
find -mtime +365
rm -rf 文件名

只保留1年以内 的日志
进入/var/log/目录下 将路径下的超1年无价值日志进行删除
/var/log/secure 与安全相关的日志信息 /var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息查看各类事件的日志

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值