系统安全保护 系统故障修复 防火墙策略管理 服务管理
发布日期:2021-05-08 03:57:12 浏览次数:24 分类:精选文章

本文共 7373 字,大约阅读时间需要 24 分钟。

· 系统安全保护

· 系统故障修复
· 防火墙策略管理
· 服务管理

系统安全保护

SELinux安全机制

· Security - Enhanced Linux

  • 美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系
  • 集成到Linux内核(2.6及以上)中运行
  • RHEL7基于SELinux体系针对用户、进程、目录和文件提供了预设的保护策略,已经管理工具

SELinux的三种运行模式

  • enforcing (强制) 、 permissive(宽松)
  • disabled(彻底禁用)

· 任何模式变成disabled(彻底禁用),都要经历重启系统

在这里插入图片描述
切换运行模式
- 临时切换 : setenforce 1/0(只能切换强制模式和宽松模式,如果想变成彻底禁用的状态,只能修改配置文件)
- 固定配置 : /etc/selinux/config文件

临时切换:getenforce		查看当前SElinux的运行的模式# Enforcing		setenforce 0	切换SELinux为宽松状态setenforce 1	切换SELinux为强制状态永久更改:vim /etc/selinux/config		修改配置文件,需要下一次开机才生效	SELINUX=permissive		将配置文件SELinux的模式改成宽松模式

系统故障的修复

遗忘root用户密码

· 故障现象

  • 无法执行需要root权限的管理操作
  • 若没有其他账户号,将无法登陆系统

· 解决思路

  • 引导进入修复模式,然后重设密码

破解root用户密码

前提: 必须是服务器的管理者,涉及重启服务器
1)重启系统,进入 恢复模式
开启虚拟机,在此界面按e键
在这里插入图片描述
找到Linux16该行,在改行的最后,空格输入 rd.break console=tty0
在这里插入图片描述
按Ctrl + x 启动,会看到switch_root 😕#
在这里插入图片描述
如果SELinux是强制模式,那么我们需要设置SELinux策略(其他模式不需要做此操作)

vim /etc/selinux/config		 查看SELinux开机的运行模式touch /.autorelabel		 	 SELinux是强制模式,让SELinux失忆也可以进入/etc/selinux/config的配置文件,修改SELinux的模式

构建基本服务

构建Web服务器

  • Web服务 : 提供一个网页内容
  • Web服务器 : 提供一个网页内容机器
  • http协议 : 超文本传输协议
  • 实现Web服务功能的软件 : httpd 、Nginx 、Tomcat

Httpd的使用

  1. 安装httpd软件
yum -y install httpd rpm -q httpd
  1. 书写一个网页内容
vim /var/www/html/index.html	安装好httpd软件后,写入页面的内容必须写入该文本文件内	biubiubiu
  1. 启动服务
rpm -ql httpd | grep bin		查看httpd的软件安装清单,寻找httpd的执行程序ls /usr/sbin/httpd			找到执行程序# /usr/sbin/httpd>/etc/resolv.conf			web程序运行的时候,会自动寻找域名解析DNS服务器。所以我们要清空域名解析文件的文件内容,不然web启动会很慢/usr/sbin/httpd				运行程序curl http://192.168.4.7			curl是命令行浏览器,专门用于测试用的# biubiubiukillall httpd				停掉服务

构建FTP服务器

  • FTP服务 : 传输数据
  • ftp协议 : 文件传输协议
  • 实现FTP服务软件 : vsftpd

vsftpd的使用

  1. 安装vsftpd软件
yum -y install vsftpd
  1. vsftpd的主目录
ls /var/ftp/		默认会把这个目录下的所有内容共享给客户端# pubtouch /var/ftp/a.txt	在/var/ftp/目录下创建一个a.txt文件
  1. 启动服务
/usr/sbin/vsftpd		运行执行程序curl ftp://192.168.4.7			测试服务是启动是否成功# -rw-r--r--    1 0        0               0 Mar 14 15:52 a.txt# drwxr-xr-x    2 0        0               6 Oct 13 16:10 pub

防火墙策略管理

  • 作用 : 隔离,严格过滤入站请求,放行出站
    硬件防火墙 : 保护一个网络中所有的主机

软件防火墙 : 保护本机

· 系统服务: firewalld
· 管理工具: firewall-cmd、firewall-config
在这里插入图片描述
· 根据所在的网络场所区分,预设保护规则集

  • public : 仅允许访问本机的ssh、dhcp、ping服务
  • trusted : 允许任何访问
  • block : 阻塞任何来访请求,客户端得到回应
  • drop : 丢弃任何来访的数据包,客户端没有得到回应

· 防火墙判断规则

  1. 首先防火墙会先查看访问请求中来源IP地址,查看所有区域中哪个区域有该源IP地址规则,则进入该区域

  2. 如果防火墙找不到访问请求中的源IP地址,进入默认区域(默认情况下为public)

虚拟机A	firewall-cmd --get-default-zone		查看默认区域# public虚拟机B 		 访问测试ping -c 2 192.168.4.7		成功# PING 192.168.4.7 (192.168.4.7) 56(84) bytes of data.# 64 bytes from 192.168.4.7: icmp_seq=1 ttl=64 time=0.663 ms# 64 bytes from 192.168.4.7: icmp_seq=2 ttl=64 time=1.09 ms# --- 192.168.4.7 ping statistics ---# 2 packets transmitted, 2 received, 0% packet loss, time 1000ms# rtt min/avg/max/mdev = 0.663/0.877/1.091/0.214 mscurl http://192.168.4.7		失败# curl: (7) Failed connect to 192.168.4.7:80; No route to hostcurl ftp://192.168.4.7		失败# curl: (7) Failed connect to 192.168.4.7:21; No route to host

如上所示,当虚拟机A的访问默认区域规则为public时,我们可以ping通,但是无法访问web服务。

那么我们来修改一下默认区域的访问规则,将默认区域的访问规则改成trusted,再来做一个测试。

虚拟机A	修改默认区域firewall-cmd --set-default-zone=trusted		修改默认区域# success		firewall-cmd --get-default-zone		查看默认区域# trusted虚拟机B	访问测试curl http://192.168.4.7			成功# biubiubiu					curl ftp://192.168.4.7			成功# -rw-r--r--    1 0        0               0 Mar 14 15:52 a.txt		# drwxr-xr-x    2 0        0               6 Oct 13 16:10 pub

当我们把虚拟机A的访问默认区改成trusted,那么我们是可以直接通过虚拟机B来访问到虚拟机A的web服务的。

在区域中添加允许的协议

临时添加

虚拟机A修改		public区域的协议规则firewall-cmd --set-default-zone=public		修改默认区域# successfirewall-cmd --zone=public --list-all		查看区域的规则		#   public (active)#   target: default#   icmp-block-inversion: no#   interfaces: eth0#   sources: #   services: dhcpv6-client ssh#   ports: #   protocols: #   masquerade: no#   forward-ports: #   source-ports: #   icmp-blocks: #   rich rules: firewall-cmd --zone=public --add-service=ftp	   添加ftp协议# successfirewall-cmd --zone=public --add-service=http      添加http协议# success firewall-cmd --zone=public --list-all			查看区域规则#   services: dhcpv6-client ftp http ssh虚拟机B    访问测试curl http://192.168.4.7		 	成功curl ftp://192.168.4.7			成功删除协议firewall-cmd --zone=public --remove-service=http      删除http协议firewall-cmd --zone=public --remove-service=ftp      删除ftp协议

永久添加

虚拟机A在public区域中永久添加ftp规则和http规则 -永久	(--permanent)firewall-cmd --permanent --zone=public --add-service=ftp	 永久添加ftp规则firewall-cmd --permanent --zone=public --add-service=http	 永久添加http规则加了--permanent后,会直接把配置信息的更改写入配置文件中,不会立即成效。需要加载防火墙永久策略才会立即生效firewall-cmd --reload		加载防火墙永久策略firewall-cmd --zone=public --list-all		查看区域的规则

虚拟机A单独拒绝虚拟机B的所有访问

虚拟机A		修改block规则firewall-cmd --zone=block --add-source=192.168.4.207		将虚拟机B添加到虚拟机A的block规则中firewall-cmd --zone=block --list-all		查看区域的规则# block (active)#   target: %%REJECT%%#   icmp-block-inversion: no#   interfaces: #   sources: 192.168.4.207#   services: #   ports: #   protocols: #   masquerade: no#   forward-ports: #   source-ports: #   icmp-blocks: #   rich rules:虚拟机B	访问测试curl http://192.168.4.7		 	失败curl ftp://192.168.4.7			失败真机 访问测试http://192.168.4.7 	成功

服务管理

· 上帝进程 : systemd

· linux系统和服务管理器

  • 是内核引导之后加载的的一个初始化进程(PID=1)
  • 负责掌控整个Linux的运行/服务资源组合

· 一个更高校的系统&服务管理器

  • 开机服务并行启动,个系统服务间的精确依赖
  • 配置目录: /etc/systemd/system/
  • 服务目录: /lib/systemd/system/
  • 主要管理工具: systemctl

对于服务的管理

systemctl restart 服务名		# 重启服务systemctl start	服务名		# 开启服务systemctl stop 服务名		# 停止服务systemctl status 服务名		# 查看服务当前的状态systemctl enable 服务名		# 设置服务开机自启动systemctl disable 服务名		# 设置服务禁止开机自启动systemctl is-enabled 服务名		# 查看服务是否开机自启
killall httpd				杀死进程httpdsystemctl status httpd		查看进程httpd状态# ● httpd.service - The Apache HTTP Server#    Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)#   Active: inactive (dead)#     Docs: man:httpd(8)#           man:apachectl(8)systemctl restart httpd		重启进程httpdsystemctl status httpd		查看进程httpd状态# ● httpd.service - The Apache HTTP Server#   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)#   Active: active (running) since Mon 2021-03-15 17:53:06 CST; 10s ago#     Docs: man:httpd(8)#           man:apachectl(8)# Main PID: 1703 (httpd)#   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"#   CGroup: /system.slice/httpd.service#           ├─1703 /usr/sbin/httpd -DFOREGROUND#           ├─1704 /usr/sbin/httpd -DFOREGROUND#           ├─1705 /usr/sbin/httpd -DFOREGROUND#           ├─1706 /usr/sbin/httpd -DFOREGROUND#           ├─1707 /usr/sbin/httpd -DFOREGROUND#           └─1708 /usr/sbin/httpd -DFOREGROUND# Mar 15 17:53:06 svr7.tedu.cn systemd[1]: Starting The Apache HTTP Server...# Mar 15 17:53:06 svr7.tedu.cn systemd[1]: Started The Apache HTTP Server.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是否是开机自启# enabledsystemctl disable httpd			禁止进程httpd开机自动启动# Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.systemctl is-enabled httpd		查看进程是否开机自启# disabled

管理运行级别

RHEL6:运行级别 300

0: 关机		0个服务1:单用户模式(基本功能的实现,破解Linux密码) 		 50个服务2:多用户字符界面(不支持网络)			80个服务3:多用户字符界面(支持网络) 服务器的默认允许级别	100个服务4:未定义		  0个服务5:图形界面	  300个服务6:重启			0个服务切换允许级别:init数字

RHEL7:运行模式(运行级别)

字符模式:multi-user.target图形模式:graphical.target当前直接切换到字符模式systemctl isolate multi-user.target		# 相当于原来的init 3当前直接切换到图形模式systemctl isolate graphical.target		# 相当于原来的init 5查看每次开机默认进入模式systemctl get-default设置永久策略,每次开机自动进入multi-user.targetsystemctl set-default multi-user.targetreboot		重启计算机
上一篇:KVM构建及管理 virsh控制工具 镜像管理 虚拟机快捷技术
下一篇:python_datafram两列拼接,中间加上特殊字符

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年03月27日 23时29分25秒