1. 账号安全基本措施
1.1将用户设置为无法登录
shell------/sbin/nologin却比较特殊,所谓"无法登陆"指的仅是这个用户无法使用bash或其他shell来登陆系统而已,并不是说这个账号就无法使用系统资源。举例来说,各个系统账号中,打印作业有lp这个账号管理,www服务器有apache这个账号管理,他们都可以进行系统程序的工作,但就是无法登陆主机而已。
[root@localhost
#查看liwu的属性
[root@localhost ~]# usermod -s /sbin/nologin liwu
#修改liwu的shell属性
Changing shell for liwu.
Shell changed.
[root@localhost ~]# tail -1 /etc/passwd
#查看liwu的属性
liwu:x:1001:1001::/home/lisi:/sbin/nologin
1.2锁定用户
可以使用passwd -l 和usermod -L 来锁定用户使用户不能登录账户
passwd-u 和sermod -U 可以用来解锁
1.3删除账户
userdel -r 用户名
家目录
家目录 无主文件 前主人的uid
1.4 锁定配置文件
格式: chattr 选项 文件名 -a 让文件或目录仅供附加用途。只能追加
-i 不得任意更动文件或目录
1.5密码安全控制
1.5.1对于新建用户可以修改的密码规则
可以修改/etc/login.defs 文件里的内容来设置密码规则
1.5.2 对已有用户
可以使用chage命令
ini
chage [选项] 用户名
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
[root@localhost ~]# chage -d 0 liwu
#强制liwu下一次登录一定修改密码(密码符合复杂性要求)
[root@localhost ~]#chage -M 30 liwu
#设置密码有效期为30天
[root@localhost ~]#cat /etc/shadow|tail -1
lisi:!!:19055:0:30:7:::
1.6 命令历史
Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在 的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在 命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。 Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为 1000 条。通 过修改/etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。例如,可以设 置最多只记录 200 条历史命令。
1.可以使用history -c 来清理历史命令
2.使用HISTSIZE来控制命令的历史记录从源头消除
ini
[root@localhost ~]#vim /etc/profile
.............................
export HISTSIZE=200
3.退出后清除 vim .bash_logout
echo " " >~/.bash_history
4.开机后清除vim .bashrc
echo " " >~/.bash_history
添加配置文件
1.7 切换用户
su 【选项】 【要切换的用户名】
- "-":登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
- 不加"-":非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
1.8 limit
功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间
修改限制的实现方式:
ulimit命令
ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。
ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。
ulimit只影响shell进程及其子进程,用户登出后失效。
可以在profile中加入ulimit的设置,变相的做到永久生效
选项:
diff
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-u size:最大用户进程数
-v size:设置虚拟内存的最大值.单位:kbytes
unlimited 是一个特殊值,用于表示不限制
ulimit -a 可以查看系统相关资源限制的设置
ulimit -n 10000 临时修改
如果要永久修改需要进入vim /etc/security/limits.conf 这个配置文件 添加信息
之后重启使用ulimit -a 查看就可以看到设置完成
limitl生产中的建议设置
markdown
* soft core unlimited
* hard core unlimited
* soft nproc 1000000
* hard nproc 1000000
* soft nofile 1000000
* hard nofile 1000000
* soft memlock 32000
* hard memlock 32000
* soft msgqueue 8192000
* hard msgqueue 8192000
1.9 sudo
sudo即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性在最早之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。
sudo特性:
- sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
- sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
- sudo使用时间戳文件来执行类似的"检票"系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票
- sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440
csharp
[root@localhost ~]#vim /etc/sudoers 进入文件中设置权限
[root@localhost ~]#visudo 这个命令也能进
#语法检查
visudo -c
#检查语法
进入到第93行进行设置
makefile
#用户 登入主机 = (代表用户) 命令
#user host = (runas) command
root ALL=(root) A
user: 运行命令者的身份
host: 通过哪些主机 多个 192.168.91.100 - 110 localhost
(runas):以哪个用户的身份
command: 运行哪些命令
举例: 1.输入复制配置文件命令,规定liwu使用,保存退出
2.切换到liwu输入命令,这边的命令要一模一样,不能少一个斜杠
ini
#也可以对组进行操作
%在前表示组
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
[root@localhost ~]#gpasswd -a liwu wheel
正在将用户"liwu"加入到"wheel"组中
wheel组表示管理员组是比较特殊的一个组,在wheel组中的成员可以使用任何命令
1.10 grub加密
[root@localhost ~]#grub2-setpassword
#直接设置密码
1.11 端口号
服务 | 端口号 |
---|---|
HTTP | 80 |
HTTPS | 443 |
Telnet | 23 |
FTP | 21 |
SSH(安全登录)、SCP(文件传输)、端口重定向 | 22 |
SMTP | 25 |
POP3 | 110 |
WebLogic | 7001 |
TOMCAT | 8080 |
WIN2003远程登录 | 3389 |
Oracle数据库 | 1521 |
MS SQL* SEVER数据库sever | 1433 |
MySQL 数据库sever | 3306 |