系统安全及应用
一.账号安全的基本措施
1.将用户设置为无法登入
2.锁定用户
useradd [用户名] 创建用户
passwd [用户名] 设置密码
/etc/passwd 中可以修改账户的权限
3.删除用户
4.锁定配置文件
chattr 选项 文件名
-a 让文件或目录仅供附加用途。只能追加
-i 不得任意更动文件或目录
5.密码安全控制
5.1对于新建用户可以修改的密码规则
可以修改/etc/login.defs 文件里的内容来设置密码规则
5.2 对已有用户
可以使用chage命令
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:::
6.命令历史
Shell 环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在 的风险。只要获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在 命令行输入明文的密码,则无意之中服务器的安全壁垒又多了一个缺口。 Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为 1000 条。通 过修改/etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。例如,可以设 置最多只记录 200 条历史命令。
1.可以使用history -c 来清理历史命令
2.使用HISTSIZE来控制命令的历史记录从源头消除
[root@localhost ~]#vim /etc/profile
.............................
export HISTSIZE=200
3.退出后清除 vim .bash_logout
echo " " > ~/.bash_history
4.开机后清除vim .bashrc
echo " " > ~/.bash_history
添加配置文件
7.切换用户
su 【选项】 【要切换的用户名】
“-”:登录式切换,会读取目标用户的配置文件,切换至自已的家目录,即完全切换
不加“-”:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
8.limit
功能:在用户级别实现对其可使用的资源的限制,例如:可打开的文件数量,可运行的进程数量,可用内存空间
修改限制的实现方式:
ulimit命令
ulimit是linux shell的内置命令,它具有一套参数集,用于对shell进程及其子进程进行资源限制。
ulimit的设定值是 per-process 的,也就是说,每个进程有自己的limits值。使用ulimit进行修改,立即生效。
ulimit只影响shell进程及其子进程,用户登出后失效。
可以在profile中加入ulimit的设置,变相的做到永久生效
选项:
-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生产中的建议设置
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
9.sudo
sudo即superuser do,允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性在最早之前,一般用户管理系统的方式是利用su切换为超级用户。但是使用su的缺点之一在于必须要先告知超级用户的密码。
sudo特性:sudo能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器
sudo使用时间戳文件来执行类似的“检票”系统。当用户调用sudo并且输入它的密码时,用户获得了一张存活期为5分钟的票
sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440
[
进入到第93行进行设置
#用户 登入主机 = (代表用户) 命令
#user host = (runas) command
root ALL=(root) A
user: 运行命令者的身份
host: 通过哪些主机 多个 192.168.91.100 - 110 localhost
(runas):以哪个用户的身份
command: 运行哪些命令
10.grub加密
[root@localhost ~]#grub2-setpassword
#直接设置密码
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 |