1 路漫漫其修远兮,吾将上下而求索
2 DNS服务器
作用:负责域名解析的服务器,将域名解析为IP地址
/etc/resolv.conf:指定DNS服务器地址配置文件
3 常用的网络工具
ip命令(Linux最基础的命令)
1.查看IP地址
[root@server ~]# ip address show
[root@server ~]# ip a s
2.临时添加IP地址
[root@server ~]# ip address add 192.168.10.1/24 dev eth0
[root@server ~]# ip a a 192.168.20.1/24 dev eth0
[root@server ~]# ip a s
3.删除临时IP地址
[root@server ~]# ip address del 192.168.10.1/24 dev eth0
[root@server ~]# ip a s
ping 命令,测网络连接
-c 指定ping包的个数
[root@server ~]# ping -c 2 192.168.88.240
[root@server ~]# ping -c 3 192.168.88.2
[root@server ~]# ping -c 4 192.168.88.3
4 日志管理
•常见的日志文件
/var/log/messages 记录内核消息、各种服务的公共消息
/var/log/dmesg 记录系统启动过程的各种消息
/var/log/cron 记录与cron计划任务相关的消息
/var/log/maillog 记录邮件收发相关的消息
/var/log/secure 记录与访问限制相关的安全消息
•通用分析工具
–tail、tailf、less、grep等文本浏览/检索命令
–awk、sed等格式化过滤工具
tailf:实时跟踪文件内容
[root@server /]# echo 123456 > /opt/1.txt
[root@server /]# tailf /opt/1.txt
•users、who、w 命令
–查看已登录的用户信息,详细度不同
•last、lastb 命令
–查看最近登录成功/失败的用户信息
[root@server /]# users
[root@server /]# who
pts:图形命令行终端
[root@server /]# last #登录成功的用户
[root@server /]# lastb #登录失败的用户
Linux内核定义的事件紧急程度(了解)
–分为 0~7 共8种优先级别
–其数值越小,表示对应事件越紧急/重要
0 EMERG(紧急) 会导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况
3 ERR(错误) 运行出现错误
4 WARNING(提醒) 可能会影响系统功能的事件
5 NOTICE(注意) 不会影响系统但值得注意
6 INFO(信息) 一般信息
7 DEBUG(调试) 程序或系统调试信息等
5 系统安全保护
SELinux概述
•Security-Enhanced Linux
–美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系
–集成到Linux内核(2.6及以上)中运行
–基于SELinux体系针对用户、进程、目录和文件提供了预设的保护策略,以及管理工具
•SELinux的运行模式
–enforcing(强制)、permissive(宽松)
–disabled(彻底禁用)
任何模式变成disabled模式,都要经历重启系统
•切换运行模式
–临时切换:setenforce 1或0
–固定配置:/etc/selinux/config 文件
虚拟机A
[root@server /]# getenforce #查看当前运行模式
Enforcing
[root@server /]# setenforce 0 #修改当前运行模式
[root@server /]# getenforce
Permissive
[root@server /]# vim /etc/selinux/config
SELINUX=permissive #需改配置
虚拟机B:同上
虚拟机C:同上
6 破解root密码思路
前提:必须是服务器的管理者,涉及重启服务器
1)重启系统,进入 救援模式
[root@A ~]# reboot
开启虚拟机A,在此界面按e键
在linux开头的该行,将此行的ro修改为rw 然后空格输入 rd.break
按 ctrl x 启动,会看到switch_root:/#
2)切换到硬盘操作系统环境
# chroot /sysroot #切换环境,切换到硬盘操作系统的环境
3)重新设置root的密码
sh-4.2# echo 1 | passwd --stdin root
4)如果SELinux是强制模式,才需要SELinux失忆,其他模式不需要让SELinux进行失忆
sh-4.2# touch /.autorelabel #让SELinux失忆
或者可以修改SELinux运行模式,修改成宽松模式即可
sh-4.2# vim /etc/selinux/config #查看SELinux开机的运行模式
5)强制重启系统完成修复
sh-4.2# reboot -f #-f强制重启系统 才能
密码防护(了解)
1.设置救援模式密码
[root@A ~]# grub2-setpassword
Enter password: #输入密码,密码不显示
Confirm password: #重新输入密码,密码不显示
[root@A ~]# cat /boot/grub2/user.cfg #存放grub密码的文件
7 构建Web服务
Web服务:提供一个页面内容的服务
提供Web服务的软件:httpd、Nginx、tomcat
http协议:超文本传输协议
daemon(守护神)
英 [ˈdiːmən] 美 [ˈdiːmən]
n.(古希腊神话中的)半神半人精灵
虚拟机A:
1.安装软件包
[root@server ~]# yum -y install httpd
2.运行提供Web服务程序
]# /usr/sbin/httpd #绝对路径运行程序
]# pgrep -l httpd #查看进程信息
4.书写一个页面文件
]# vim /var/www/html/index.html
haha阳光明媚
5.本机浏览器访问测试
]# curl 192.168.88.240
haha阳光明媚
8 构建FTP服务
FTP协议:文本传输协议
实现FTP服务功能的软件:vsftpd
默认共享数据的主目录:/var/ftp/
虚拟机A
1.安装软件包
[root@server ~]# yum -y install vsftpd
[root@server ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES #开启无需密码验证功能
2.运行程序
[root@server ~]# /usr/sbin/vsftpd
[root@server ~]# pgrep -l vsftpd #查看进程信息
[root@server ~]# touch /var/ftp/dcc.txt
3.本机访问测试
[root@server ~]# curl ftp://192.168.88.240
-rw-r--r-- 1 0 0 0 May 16 06:42 dcc.txt
drwxr-xr-x 2 0 0 6 Oct 13 2020 pub
9 防火墙的策略管理
作用:隔离,严格过滤入站,放行出站
•系统服务:firewalld ----》iptables(底层防火墙)
•管理工具:firewall-cmd、firewall-config(图形)
•根据所在的网络场所区分,预设区域
- public:仅允许访问本机的ssh、dhcp、ping服务
- trusted:允许任何访问
- block:拒绝任何来访请求,明确拒绝客户端
- drop:丢弃任何来访的数据包,不给任何回应
•防火墙判定原则:
1.查看客户端请求中来源IP地址,查看自己所有区域中规则,那个区域中有该源IP地址规则,则进入该区域
2.进入默认区域(默认情况下为public)
10 防火墙默认区域的修改
虚拟机A
]# firewall-cmd --get-default-zone #查看默认区域
虚拟机B
]# curl 192.168.88.240 #失败
]# curl ftp://192.168.88.240 #失败
]# ping -c2 192.168.88.240 #成功
虚拟机A:修改默认区域
]# firewall-cmd --set-default-zone=trusted
虚拟机B
]# curl 192.168.88.240 #成功
]# curl ftp://192.168.88.240 #成功
11 防火墙public区域添加规则
虚拟机A:添加允许的协议
]# firewall-cmd --set-default-zone=public
]# firewall-cmd --zone=public --add-service=http
]# firewall-cmd --zone=public --list-all
虚拟机B
]# curl http://192.168.88.240 #成功
]# curl ftp://192.168.88.240 #失败
虚拟机A:添加允许的协议
]# firewall-cmd --zone=public --add-service=ftp
]# firewall-cmd --zone=public --list-all
虚拟机B
]# curl http://192.168.88.240 #成功
]# curl ftp://192.168.88.240 #成功
12 防火墙public区域添加规则(永久)
-永久(--permanent 破门能它)
]# firewall-cmd --reload #加载防火墙永久策略
]# firewall-cmd --zone=public --list-all
]# firewall-cmd --permanent --zone=public --add-service=http #永久添加http协议
]# firewall-cmd --permanent --zone=public --add-service=ftp #永久添加ftp协议
]# firewall-cmd --reload #加载防火墙永久策略
]# firewall-cmd --zone=public --list-all
13 防火墙单独拒绝PC2所有的访问
虚拟机A:
[root@server ~]# firewall-cmd --zone=block --add-source=192.168.88.2
虚拟机A:删除策略
[root@server ~]# firewall-cmd --zone=block --remove-source=192.168.88.2
14 三台虚拟机,卸载防火墙软件
[root@server ~]# yum -y remove firewalld
15 服务管理:程序的运行
手动方式:
/usr/sbin/httpd #绝对路径运行
killall httpd #手动杀死
systemd方式:
用户--->systemd--->找到相应的进程或程序
用户--systemctl--->systemd--服务启动配置文件--->找到相应的进程或程序
服务启动配置文件目录:/lib/systemd/system/
systemctl restart 服务名 #重起服务
systemctl start 服务名 #开启服务
systemctl stop 服务名 #停止服务
systemctl status 服务名 #查看服务当前的状态
systemctl enable 服务名 #设置服务开机自启动
systemctl disable 服务名 #设置服务禁止开机自启动
systemctl is-enabled 服务名 #查看服务是否开机自启
]# yum -y install httpd
]# killall httpd #杀死手动启动的httpd
]# systemctl restart httpd #重启httpd服务
]# systemctl status httpd #查看服务httpd状态
]# systemctl enable httpd #设置httpd开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
]# systemctl is-enabled httpd #查看httpd是否是开机自启动
]# systemctl disable httpd #关闭httpd开机自启动
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
]# systemctl is-enabled httpd #查看httpd是否是开机自启动
16 管理运行级别
5与6系列:运行级别 300服务
0:关机 0个服务 相当于poweroff
1:单用户模式(基本功能的实现,破解Linux密码) 50个服务
2:多用户字符界面(不支持网络) 80个服务
3:多用户字符界面(支持网络)服务器默认运行级别 100个服务
4:未定义 0个服务
5:图形界面 300个服务
6:重启 0个服务 相当于reboot
切换运行级别:init 数字
7与8系列:运行模式(运行级别)
字符模式:multi-user.target
图形模式:graphical.target
当前直接切换到字符模式
]# systemctl isolate multi-user.target #相当于原来的init 3
当前直接切换到图形模式
]# systemctl isolate graphical.target #相当于原来的init 5
查看每次开机默认进入模式
[root@server /]# systemctl get-default
设置永久策略,每次开机自动进入字符模式
[root@server /]# systemctl set-default multi-user.target
[root@server /]# reboot
设置永久策略,每次开机自动进入图形模式
[root@server /]# systemctl set-default graphical.target
[root@server /]# reboot
17 真机传递数据到虚拟机
真机为windows:windterm软件,效果如图-1、图-2、图-3所示。
18 补充内容
杀死一个用户开启的所有进程
命令格式:pkill -9 -u 用户名 -t 终端
[root@pc2 ~]# who #查看正在登录的用户
[root@pc2 ~]# pkill -9 -u root -t pts/1
19 案例1:启用SELinux保护
19.1 问题
本例要求为虚拟机 svr1、ps2 配置SELinux:
- 确保 SELinux 处于宽松模式
- 在每次重新开机后,此设置必须仍然有效
19.2 方案
SELinux,Security-Enhanced Linux:是由美国NSA国家安全局提供的一套基于内核的增强的强制安全保护机制,针对用户、进程、文档标记安全属性并实现保护性限制。
SELinux安全体系直接集成在Linux内核中,包括三种运行模式:
- disabled:彻底禁用,内核在启动时不加载SELinux安全体系
- enforcing:强制启用,内核加载SELinux安全体系,并强制执行保护策略
- permissive:宽松模式,内核加载SELinux安全体系,只记录不执行
执行getenforce可以查看当前所处的模式。
在disabled模式与enforcing、permissive模式之间切换时,需要重新启动Linux系统;而在enforcing模式与permissive模式之间切换时,并不需要重启,可以直接执行setenforce 1|0操作。
19.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:调整当前的SELinux运行模式
1)查看当前模式
[root@server0 ~]# getenforce
Enforcing //表示当前为强制模式
若上述操作显示的结果为Disabled,表示SELinux机制已被禁用,只能通过步骤修改固定配置后再重启;若显示的结果为Enforcing,表示已经处于强制启用模式。
2)切换为permissive强制启用模式
[root@server0 ~]# setenforce 0 //设置宽松模式
[root@server0 ~]# getenforce //确认切换结果
Permissive
如果在操作1)中显示的结果为Disabled,则无法使用setenforce命令:
[root@desktop0 ~]# getenforce
Disabled
[root@desktop0 ~]# setenforce 1
setenforce: SELinux is disabled
步骤二:为SELinux运行模式建立固定配置
1)修改配置文件/etc/selinux/config
[root@server0 ~]# vim /etc/selinux/config
SELINUX=permissive
.. ..
2)重启验证结果
[root@server0 ~]# reboot
.. ..
[root@server0 ~]# getenforce
permissive