SELinux

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

SELinux的运行模式

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

任何模式变成disabled模式,都要经历重启系统

切换运行模式

– 临时切换:setenforce 1或0
– 固定配置:/etc/selinux/config 文件

  1. [root@server /]# getenforce #查看当前运行模式
  2. Enforcing
  3. [root@server /]# setenforce 0 #修改当前运行模式
  4. [root@server /]# getenforce
  5. Permissive
  6. [root@server /]# vim /etc/selinux/config
  7. SELINUX=permissive

系统故障修复

  1. 如果/etc/fstab文件有误:修复办法
  2. 1.输入root的密码
  3. 2.修改/etc/fstab文件内容
  4. 破解root密码思路 前提:必须是服务器的管理者,涉及重启服务器
  5. 1)重启系统,进入 救援模式
  6. [root@A ~]# reboot
  7. 启动界面按e
  8. linux16该行,将此行的r/o修改为r/w,空格输入rd.break
  9. ctrl + x 启动,会看到switch_root:/#
  10. 2)切换到硬盘操作系统环境
  11. # chroot /sysroot #切换环境,切换到硬盘操作系统的环境
  12. 3)重新设置root的密码
  13. sh-4.2# echo 456 | passwd --stdin root #修改root密码
  14. 4)如果SELinux是强制模式,才需要重设SELinux策略(其他模式不需要做此操作)
  15. sh-4.2# vim /etc/selinux/config #查看SELinux的运行模式
  16. sh-4.2# touch /.autorelabel #让SELinux失忆
  17. 或者可以修改SELinux运行模式,修改成宽松模式即可
  18. sh-4.2# vim /etc/selinux/config #查看SELinux开机的运行模式
  19. 5)强制重启系统完成修复
  20. sh-4.2# reboot -f

构建Web服务

Web服务:提供一个页面内容的服务
提供Web服务的软件:httpd、Nginx、tomcat
http协议:超文本传输协议

  1. 1.安装软件包
  2. [root@server ~]# yum -y install httpd
  3. 2.运行提供Web服务程序
  4. ]# > /etc/resolv.conf #清空此文件内容
  5. ]# /usr/sbin/httpd #绝对路径运行程序
  6. ]# pgrep -l httpd #查看进程信息
  7. 4.书写一个页面文件
  8. ]# vim /var/www/html/index.html
  9. hahaxxxx
  10. 5.本机浏览器访问测试
  11. [root@server ~]# curl 192.168.88.240
  12. hahaxxxx

构建FTP服务

FTP:文本传输协议
实现FTP服务功能的软件:vsftpd
默认共享数据的主目录:/var/ftp/

  1. 1.安装软件包
  2. [root@server ~]# yum -y install vsftpd
  3. 2.运行程序
  4. [root@server ~]# /usr/sbin/vsftpd
  5. [root@server ~]# pgrep -l vsftpd #查看进程信息
  6. 3.访问测试
  7. [root@server ~]# curl ftp://192.168.88.240
  8. -rw-r--r-- 1 0 0 0 May 16 06:42 dcc.txt
  9. drwxr-xr-x 2 0 0 6 Oct 13 2020 pub

防火墙的策略管理

作用:隔离,严格过滤入站,放行出站

硬件防火墙,软件防火墙
• 系统服务:firewalld——》iptables(底层防火墙)
• 管理工具:firewall-cmd、firewall-config
• 根据所在的网络场所区分,预设区域
– public:仅允许访问本机的ssh、dhcp、ping服务
– trusted:允许任何访问
– block:拒绝任何来访请求,明确拒绝客户端
– drop:丢弃任何来访的数据包,不给任何回应
• 防火墙判定原则:
1.查看客户端请求中来源IP地址,查看自己所有区域中规则,那个区域中有该源IP地址规则,则进入该区域
2.进入默认区域(默认情况下为public)

防火墙默认区域的修改

curl-命令:命令行浏览器

  1. ]# firewall-cmd --get-default-zone #查看默认区域
  2. ]# firewall-cmd --set-default-zone=trusted #修改默认区域
  3. ]# curl http://192.168.88.240 #使用curl访问http
  4. ]# curl ftp://192.168.88.240 #使用curl访问ftp
  5. 防火墙public区域添加允许规则(临时)
  6. ]# firewall-cmd --set-default-zone=public #设置public区域
  7. ]# firewall-cmd --zone=public --add-service=http #添加临时http协议
  8. ]# firewall-cmd --zone=public --add-service=ftp #添加林时ftp协议
  9. ]# firewall-cmd --zone=public --list-all #查询public区域信息
  10. 防火墙public区域添加规则(永久)--permanent
  11. ]# firewall-cmd --reload #一旦加载防火墙永久策略,会导致临时添加的规则失效
  12. ]# firewall-cmd --permanent --zone=public --add-service=http #永久添加http协议
  13. ]# firewall-cmd --permanent --zone=public --add-service=ftp #永久添加ftp协议
  14. ]# firewall-cmd --reload #加载防火墙永久策略
  15. ]# firewall-cmd --zone=public --list-all
  16. ]# firewall-cmd --zone=block --add-source=192.168.88.2 #添加拒绝策略-block区域
  17. ]# firewall-cmd --zone=block --remove-source=192.168.88.2 #删除拒绝策略

服务的管理(运行程序的管理)

方法一:手动进行运行

运行: /usr/sbin/httpd —————停止: killall httpd

方法二:采用systemd方式运行

自启动服务的管理(与手动启动有冲突
用户—systemctl命令—>systemd—配置文件—>httpd程序运行
–服务配置文件目录:/lib/systemd/system/

Linux系统和服务管理器

–是内核引导之后加载的第一个初始化进程(PID=1)
–负责掌控整个Linux的运行/服务资源组合
•一个更高效的系统&服务管理器
–开机服务并行启动,各系统服务间的精确依赖
–服务目录:/lib/systemd/system/
–主要管理工具:systemctl

[root@server ~]# systemctl -t service —all ###列出所有的服务

方法二:采用systemd方式运行

  1. systemctl restart 服务名 #重起服务
  2. systemctl start 服务名 #开启服务
  3. systemctl stop 服务名 #停止服务
  4. systemctl status 服务名 #查看服务当前的状态
  5. systemctl enable 服务名 #设置服务开机自启动
  6. systemctl disable 服务名 #设置服务禁止开机自启动
  7. systemctl is-enabled 服务名 #查看服务是否开机自启
  8. ]# yum -y install httpd #安装httpd软件
  9. ]# > /etc/resolv.conf #清除文件内容
  10. ]# killall httpd #杀死手动启动的httpd
  11. ]# systemctl restart httpd #重启httpd服务
  12. ]# systemctl status httpd #查看服务httpd状态
  13. ]# systemctl enable httpd #设置httpd开机自启动
  14. Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
  15. ]# systemctl is-enabled httpd #查看httpd是否是开机自启动
  16. ]# systemctl disable httpd #关闭httpd开机自启动
  17. Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
  18. ]# systemctl is-enabled httpd #查看httpd是否是开机自启动

管理运行级别

RHEL6:运行级别:300

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

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

字符模式:multi-user.target
图形模式:graphical.target

  1. 当前直接切换到字符模式
  2. ]# systemctl isolate multi-user.target #相当于原来的init 3
  3. 当前直接切换到图形模式
  4. ]# systemctl isolate graphical.target #相当于原来的init 5
  5. l 查看每次开机默认进入模式
  6. [root@server /]# systemctl get-default
  7. l 设置永久策略,每次开机自动进入字符模式
  8. [root@server /]# systemctl set-default multi-user.target
  9. [root@server /]# reboot
  10. l 设置永久策略,每次开机自动进入图形模式
  11. [root@server /]# systemctl set-default graphical.target
  12. [root@server /]# reboot