发帖
 找回密码
 立即注册
搜索
0 0

分享 20250303Web系统班第五课 樊子健

技术分享 1149 0 2025-3-14 23:13:47
本帖最后由 forlife 于 2025-3-14 23:45 编辑

Linux权限&系统管理&安全加固

Linux权限&系统管理

Linux权限管理

用户管理、所有者所属组

文件类型                属主权限                       属组权限                                            其他用户权限

     -                           rwx                              r--                                                    r-x

普通文件             读取,编辑,执行            只能读取,不能编辑,不能执行              能读取,不能编辑,可以执行



系统状态管理

01 Linux进程管理:
无论是 Linux 系统管理员还是普通用户,监视系统进程的运行情况并适时终止一些失控的进程,是每天的例行事务。和 Linux 系统相比,进程管理在 Windows 中更加直观,它主要是使用"任务管理器"来进行进程管理的。

通常,使用"任务管理器"主要有 3 个目的:
1.利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程;

                                                             2.利用"性能"和"用户"标签来判断服务器的健康状态;

                                                             3.在"应用程序"和"进程"标签中强制中止任务和进程;


Linux 中虽然使用命令进行进程管理,但是进程管理的主要目的是一样的,即查看系统中运行的程序和进程、判断服务器的健康状态和强制中止不需要的进程。


重点:
了解进程 进程是正在执⾏的⼀个程序或命令,每个进程都是⼀个运⾏的实体,都有⾃⼰的地址空间,并占⽤⼀定的系统资源。程序是⼈使⽤计算机语⾔编写的可以实现特定⽬标或解决特定问题的代码集合。
查看进程  ps

ps -l 将⽬前属于你这次登⼊的PID与相关信息展示出来
ps -le 查看进程详细信息


查找指定进程
ps -ef | grep 进程关键字
ps -ef | grep ssh
ps -u ⽤户名
ps -u xiaoming


ps aux 列举所有正在内存当中的程序




进程:正在执⾏的⼀个程序或命令
⽗进程 包含⼦进程
例如:微信--》⽗进程
             微信截图---》⼦进程
             微信内置浏览器(子进程)
              微信视频聊天功能(子进程)


F 进程标志
1 进程可以被复制,但是不能被执⾏
4 进程使⽤超级⽤户权限(root权限)
S 进程状态
UID 运⾏这个进程的⽤户id
PID 进程的id
PPID
⽗进程id
C
这个进程cpu的使⽤率
PRI
进程优先级NI 进程优先级
ADDR 进程在内存中在什么位置
SZ
占⽤多⼤内存
WCHAN
是否在运⾏
TTY
这个进程由哪个终端产⽣
TIME
占⽤cpu的运算时间
CMD
产⽣此进程的命令名


USER:该 process 属于那个使⽤者账号的
PID :该 process 的号码
%CPU:该 process 使⽤掉的 CPU 资源百分⽐
%MEM:该 process 所占⽤的物理内存百分⽐
VSZ :该 process 使⽤掉的虚拟内存量 (Kbytes)
RSS :该 process 占⽤的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上⾯运作,若与终端机⽆关,则显示 ?,另外, tty1-tty6 是本机上⾯的登⼊者程
序,若为 pts/0 等等的,则表示为由⽹络连接进主机的程序。
STAT:该程序⽬前的状态,主要的状态有
R :该程序⽬前正在运作,或者是可被运作
S :该程序⽬前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序⽬前正在侦测或者是停⽌了
Z :该程序应该已经终⽌,但是其⽗程序却⽆法正常的终⽌他,造成 zombie (疆⼫) 程序的状态
START:该 process 被触发启动的时间
TIME :该 process 实际使⽤ CPU 运作的时间
COMMAND:该程序的实际指令
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 193952 4656 ? Ss 00:51 0:02 /usr/lib/systemd/systemd --swit
root 2 0.0 0.0 0 0 ? S 00:51 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 00:51 0:00 [kworker/0:0H]
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 4046 4039 0 80 0 - 29136 do_wai pts/0 00:00:00 bash
4 S 1000 5658 5657 0 80 0 - 29138 do_wai pts/0 00:00:00 bash
0 T 1000 6136 5658 0 80 0 - 37375 do_sig pts/0 00:00:00 vim
0 T 1000 6187 5658 0 80 0 - 37384 do_sig pts/0 00:00:00 vim
STAT
进程状态。常⻅的状态有以下⼏种:
1. -D:不可被唤醒的睡眠状态,通常⽤于 I/O 情况。
2. -R:该进程正在运⾏。
3. -S:该进程处于睡眠状态,可被唤醒。
4. -T:停⽌状态,可能是在后台暂停或进程处于除错状态。
5. -W:内存交互状态(从 2.6 内核开始⽆效)。6. -X:死掉的进程(应该不会出现)。
7. -Z:僵⼫进程。进程已经中⽌,但是部分程序还在内存当中。
8. -<:⾼优先级(以下状态在 BSD 格式中出现)。
9. -N:低优先级。
10. -L:被锁⼊内存。
11. -s:包含⼦进程。
12. -l:多线程(⼩写 L)。
13. -+:位于后台。



02 杀死进程

终⽌进程 kill


kill ⽤于删除执⾏中的程序或⼯作(进程)
kill -9 PID号




-9 强制结束进程
-15 正常结束进程



03 linux定时任务

linux中crontab的正如闹钟对于日常生活的重要性一样,linux crontab 定时任务在开发中是必不可少的工具,诸如:每六个月清理一次日志,每天凌晨 12.00 启服务等多种场景,都可以用 crontab 搞定。
CroCrontab命令常用选项及功能
选项
功能
-u
user
用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo
用户的 crontab 服务,此选项一般有 root 用户来运行。
-e
编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l
显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r
从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i
在删除用户的 crontab 文件时,给确认提示。

crontab 时间表示
项目
含义
范围
第一个”*”
一小时当中的第几分钟(minute)
0~59
第二个”*”
一天当中的第几小时(hour)
0~23
第三个”*”
一个月当中的第几天(day)
1~31
第四个”*”
一年当中的第几个月(month)
1~12
第五个 “*”
一周当中的星期几(week)
0~7(0和7都代表星期日)
时间特殊符号
特殊符号
含义
*(星号)
代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。
,(逗号)
代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠)
代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线)
代表每隔多久执行一次。比如"*/10****命令",代表每隔 10 分钟就执行一次命令。

crontab举例
时间
含义
45 22 * * * 命令
在 22 点 45 分执行命令
0 17 * * 1命令
在每周一的 17 点 0 分执行命令
0 5 1,15 * * 命令
在每月 1 日和 15 日的凌晨 5 点 0 分执行命令
40 4 * * 1-5 命令
在每周一到周五的凌晨 4 点 40 分执行命令
*/10 4 * * * 命令
在每天的凌晨 4 点,每隔 10 分钟执行一次命令
0 0 1,15 * 1 命令
在每月 1 日和 15 日,每周一个 0 点 0 分都会执行命令,注意:星期几和几日最好不要同时出现,因为它们定义的都是天,非常容易让管理员混淆
04 linux相关日志

系统中的重要日志文件
日志文件
     
/var/log/messages
它是核心系统日志文件,其中包含了系统启动时的引导信息,以及系统运行时的其他状态消息。I/O 错误、网络错误和其他系统错误都会记录到此文件中。其他信息,比如某个人的身份切换为 root,已经用户自定义安装软件的日志,也会在这里列出。
/var/log/secure
记录验证和授权方面的倍息,只要涉及账户和密码的程序都会记录,比如系统的登录、ssh的登录、su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中
/var/log/wtmp
永久记录所有用户的登陆、注销信息,同时记录系统的后动、重启、关机事件。同样,这个文件也是二进制文件.不能直接用Vi查看,而要使用last命令查看
/var/tun/ulmp
记录当前已经登录的用户的信息。这个文件会随着用户的登录和注销而不断变化,只记录当前登录用户的信息。同样,这个文件不能直接用Vi查看,而要使用w、who、users等命令查看

安全加固
01口令锁定策略


设置口令认证失败后的锁定策略 为了保障用户系统的安全,建议用户设置口令出错次数的阈值,以及由于口令尝试被锁定用户的自动解锁时间。用户锁定期间,任何输入被判定为无效,锁定时间不因用户的再次输入而重新计时;解锁后,用户的错误输入记录被清空。通过上述设置可以有效防范口令被暴力破解,增强系统的安全性。
修改方法:例如设置口令最大的出错次数 5 次,系统锁定后的解锁时间为 180 秒 在配置文件/etc/pam.d/system-auth 中添加
vim /etc/pam.d/system-auth
auth        required      pam_tally2.so onerr=fail deny=5 unlock_time=600 root_unlock_time=600


02设置密码复杂度


编辑/etc/security/pwquality.conf 文件,修改以下内容:

minlen = 8 口令长度至少包含 8 个字符
dcredit = -1 口令包含N个数字
ucredit = -1 口令包含N大写字母
ocredit = -1 口令包含N个特殊字符
lcredit = -1 口令包含N个小写字母


03设置密码有效期
编辑login.defs
vim /etc/login.defs
login.defs 配置项说明
#密码的最大有效期
                               PASS_MAX_DAYS   180
        #是否可修改密码,多少天后可修改
                               PASS_MIN_DAYS   0
        #密码最小长度,pam_pwquality设置优先
                        PASS_MIN_LEN    8
        #密码失效前多少天在用户登录时通知用户修改密码
                        PASS_WARN_AGE   15
04删除无关账户
在/etc/passwd 或者 /etc/shadow 文件下查找无关账户(userdel-r+用户名)




05禁止存在空密码的帐号

安全起见,在/etc/passwd 中用户的密码是被保护的状态,即使用了*号来隐藏。而实际的密码内容是加密后保存在/etc/shadow 文件中,我们确认是否存在空口令的用户就确认该文件中密码对应字段的长度是否为 0, 如果为 0 则证明该用户密码为空。通过使用命令来查找是否存在该字段长度为 0 的用户

awk -F: 'length($2)==0 {print $1}' /etc/shadow                        //查找空密码用户指令

06禁止wheel组以外的用户使用 su root

使用 PAM 认证模块进行 su 权限控制,禁止 wheel 用户组之外的用户使用 su - root 命令/etc/pam.d/su
修改或添加配置文件的条目:
auth sufficient pam_rootok.so auth required pam_wheel.so group=wheel 或 auth required pam_wheel.so use_uid
限制使用 su 命令的账户 说明:su 命令用于在不同账户之间切换。为了增强系统安全性,有必要对 su 命令的使用权进行控制,只允许 root 和 wheel 群组的账户使用 su 命令,限制其他账户使用。


07限制root用户ssh远程登录

修改 /etc/ssh/sshd_config

PermitRootLogin no


08一键安全加固脚本使用


通过shell编程把所有需要设置的地方。全部写成一个shell脚本。然后运行shell脚本即可









5节课作业
1、rwx分别代表什么权限?
r-读取
w-编辑
x-执行
2、权限标识600711422777分别代表什么?
600代表所有者有rw权限,组和其他用户无权限
711代表所有者有rwx权限,组和其他用户只有x执行权限
422代表所有者有r权限,组和其他用户有w权限
777代表所有者和组及其他用户都有rwx权限
3、linux上查看进程有什么作用?
01利用"应用程序"和"进程"标签来査看系统中到底运行了哪些程序和进程;
02利用"性能"和"用户"标签来判断服务器的健康状态;
03在"应用程序"和"进程"标签中强制中止任务和进程;
Linux 中虽然使用命令进行进程管理,但是进程管理的主要目的是一样的,即查看系统中运行的程序和进程、判断服务器的健康状态和强制中止不需要的进程。
4、安全加固分为哪些?列出四个
01口令锁定策略
02设置密码复杂度
03设置密码有效期
04删除无关账户
05禁止存在空密码的帐号
06禁止wheel组以外的用户使用 su root
07限制root用户ssh远程登录
5、linux中定时任务的五* 分别代表什么?
第一个一小时中的第几分钟
第二个一天当中的第几小时
第三个一个月当中的第几天
第四个一年中的第几个月
第五个一周中的星期几
6、linux中想在 1212日和 1213日的35分运行脚本的写法是?
5 3 12,13 12 *

──── 0人觉得很赞 ────
免责声明:
1、本论坛中所有用户发布的内容仅代表作者个人观点,与本网站立场无关,本站不对其真实性、完整性或观点承担任何责任。
2、本论坛所提供的全部信息与内容,不保证其准确性、完整性或时效性。因阅读或使用本站内容而产生的任何误导、损失或风险,本站概不承担任何连带或法律责任。
3、当国家司法、行政机关依照法定程序要求本论坛披露用户信息时,本站予以配合并因此免责。
4、因网络线路故障、技术问题、不可抗力或本站无法控制的其他原因导致的服务中断或暂停,本站不承担由此造成的任何直接或间接损失。
5、对于任何通过技术手段破坏、攻击本论坛系统或扰乱正常秩序的行为,本站有权采取包括但不限于限制账号、封禁账号、追究法律责任等措施。
您需要登录后才可以回帖 立即登录
高级模式
返回