linux 防火墙、链路聚合,ipv6设置使用和apache 服务搭建及配置

SELinux概述
• Security-Enhanced Linux
– 美国NSA国家安全局主导开发,一套增强Linux系统安
全的强制访问控制体系
– 集成到Linux内核(2.6及以上)中运行
– RHEL7基于SELinux体系针对用户、进程、目录和文件
提供了预设的保护策略,以及管理工具
• SELinux的运行模式
– enforcing(强制)、permissive(宽松)
– disabled(彻底禁用)
enforcing(强制)与permissive(宽松)两个状态,切换成disabled(彻底禁用)都必须要重起才可以
disabled(彻底禁用),切换成enforcing(强制)与permissive(宽松)两个状态都必须要重起才可以

切换运行模式
– 临时切换:setenforce 1|0
– 固定配置:/etc/selinux/config 文件
虚拟机server0
[root@server0 ~]# getenforce
Enforcing
[root@server0 ~]# setenforce 0
permissive
[root@server0 ~]# vim /etc/selinux/config
SELINUX=permissive

永久alias别名设置

• 影响指定用户的 bash 解释环境
– ~/.bashrc,每次开启 bash 终端时生效
• 影响所有用户的 bash 解释环境
– /etc/bashrc,每次开启 bash 终端时生效
[root@server0 ~]# vim /root/.bashrc #针对于root设置别名
alias hello=‘echo hi’
[root@server0 ~]# vim /home/student/.bashrc #针对于student设置
alias hi=‘echo hello’
[root@server0 ~]# vim /etc/bashrc #针对于所有用户
alias haxi=‘echo xiha’

配置聚合连接(网卡绑定 链路聚合)
SRP 热备份路由协议 备份网关设备
活跃路由 备份路由 虚拟路由 网卡绑定 备份网卡设备
eth1 eth2
team0(虚拟网络接口) 192.168.1.254
制作网卡绑定:
1.建立虚拟的网卡team0

nmcli connection add type team autoconnect yes
con-name team0 ifname team0
config ‘{“runner”: {“name”: “activebackup”}}’

nmcli connection 添加 类型为team 每次开机自动启用
配置文件的名字为 team0 ifconfig命令显示的网卡接口名字为team0
team中成员工作方式 为热备的方式 ‘{“runner”: {“name”: “activebackup”}}’

vim /etc/sysconfig/network-scripts/ifcfg-team0 #查询team0文件
ifconfig #查看team0网络接口
nmcli connection delete team0 #删除team0配置

2.添加team0成员
nmcli connection add type team-slave con-name team0-1 ifname eth1 master team0

nmcli connection add type team-slave con-name team0-2 ifname eth2 master team0

nmcli connection 添加 类型为 team-slave 配置文件名字为 team0-2
网卡为 eth2 主设备为 team0

nmcli connection delete team0-1 #删除配置
nmcli connection delete team0-2 #删除配置

3.配置team0的IP地址
nmcli connection modify team0 ipv4.method manual ipv4.addresses 192.168.1.1/24 connection.autoconnect yes

4.激活
nmcli connection up team0
nmcli connection up team0-1
nmcli connection up team0-2

5.查看team0状态信息
[root@server0 ~]# teamdctl team0 state
[root@server0 ~]# ifconfig eth1 down #禁用网卡

配置IPv6地址
ip地址:唯一标识网络一个节点的地址(人的姓名)
IPv4地址: 32个二进制 点分隔4段 每一段8个二进制,利用10进制表示
IPv6地址: 128个二进制 冒号分隔8段 每一段16个二进制,利用16进制表示
– 每段内连续的前置 0 可省略、连续的多个 : 可简化为 ::
nmcli connection modify ‘System eth0’
ipv6.method manual ipv6.addresses 2003:ac18::305/64 connection.autoconnect yes
nmcli connection up ‘System eth0’
ping6 2003:ac18::305

搭建Web服务
服务端: server0.example.com
1.安装httpd软件
[root@server0 ~]# yum -y install httpd
2.启动httpd服务
[root@server0 ~]# systemctl restart httpd
3.书写一个主页面文件
默认主页面文件路径: /var/www/html
默认主页面文件名字: index.html
[root@server0 ~]# vim /var/www/html/index.html

NSD1712
客户端: server0.example.com
[root@server0 ~]# firefox 127.0.0.1

搭建FTP服务
服务端:server0.example.com
1.安装vsftpd软件
[root@server0 ~]# yum -y install vsftpd
2.启动vsftpd服务
[root@server0 ~]# systemctl restart vsftpd
3.默认vsftpd服务共享的路径 /var/ftp
客户端:server0.example.com
[root@server0 ~]# firefox ftp://127.0.0.1

防火墙
软件防火墙 硬件防火墙
防火墙作用: 隔离 允许出站 过滤入站请求
• 管理工具:firewall-cmd(命令行)、firewall-config(图形)
预设安全区域
• 根据所在的网络场所区分,预设保护规则集
– public:仅允许访问本机的sshd dhcpd 少数几个服务
– trusted:允许任何访问
– block:拒绝任何来访请求
– drop:丢弃任何来访的数据包
防火墙的判定规则: 匹配及停止
1.查看客户端 请求中的源IP地址,在那个区域中有该IP地址的规则,有则进入该区域
2.进入默认区域
严格控制: 默认区域 设置为drop , 允许的人放入trusted
宽松控制: 默认区域 设置为trusted , 拒绝的人放入drop
#######################################################
防火墙配置01 修改默认区域
虚拟机Server0上
firewall-cmd --get-default-zone #查看默认区域
firewall-cmd --set-default-zone=trusted #修改默认区域
firewall-cmd --get-default-zone #查看默认区域
虚拟机Desktop0上
ping 172.25.0.11 #可以通信

虚拟机Server0上
firewall-cmd --set-default-zone=block #修改默认区域
firewall-cmd --get-default-zone
虚拟机Desktop0上
ping 172.25.0.11 #不可以通信,有返回消息

虚拟机Server0上
firewall-cmd --set-default-zone=drop #修改默认区域
firewall-cmd --get-default-zone
虚拟机Desktop0上
ping 172.25.0.11 #不可以通信,没有返回消息
######################################################
防火墙配置02 修改访问服务设置
应用层: http ftp tftp https DNS pop3 smtp telnet snmp
80 21 69 443 53 110 25 23

虚拟机Server0上
firewall-cmd --set-default-zone=public #修改默认区域
firewall-cmd --zone=public --list-all #查看public区域规则
虚拟机Desktop0上
firefox 172.25.0.11 #不可以
firefox ftp://172.25.0.11 #不可以

虚拟机Server0上
firewall-cmd --zone=public --add-service=ftp #添加服务
firewall-cmd --zone=public --add-service=http #添加服务
firewall-cmd --zone=public --list-all #查看public区域规则
虚拟机Desktop0上
firefox 172.25.0.11 #可以
firefox ftp://172.25.0.11 #可以

######################################################

防火墙配置03 修改客户端源IP地址设置
拒绝虚拟机Desktop0访问虚拟机Server0

虚拟机Server0:
firewall-cmd --zone=block --list-all
firewall-cmd --zone=block --add-source=172.25.0.10
firewall-cmd --zone=block --list-all

永久的修改防火墙配置
– 永久(–permanent)
firewall-cmd --reload #重新加载防火墙配置
firewall-cmd --zone=public --list-all
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --zone=public --list-all
firewall-cmd --reload #重新加载防火墙配置
firewall-cmd --zone=public --list-all

实现本机的端口映射
本地应用的端口重定向(端口1 --> 端口2)
– 从desktop0访问server0的 5423端口 的请求,自动映射到本机 80
– 比如,访问以下两个地址可以看到相同的页面:
http://172.25.0.11:5423/
http://172.25.0.11/
虚拟机Server0:

firewall-cmd --permanent --zone=public --add-forward-port=port=5423:proto=tcp:toport=80

firewall-cmd --zone=public --list-all

firewall-cmd --reload

firewall-cmd --zone=public --list-all

虚拟机desktop0:

firefox 172.25.0.11:5423

########################################################

firewall-cmd --permanent --zone=public --remove-forward-port=port=5423:proto=tcp:toport=80

Web通信基本概念
• 基于 B/S (Browser/Server)架构的网页服务
– 服务端提供网页
– 浏览器下载并显示网页
• Hyper Text Markup Language,超文本标记语言(HTML)
• Hyper Text Transfer Protocol,超文本传输协议(HTTP)
Apache(软件基金会组织)
• 软件包:httpd
• 系统服务:httpd
• 提供的默认配置
– Listen:监听地址:端口(80)
– ServerName:本站点注册的DNS名称(空缺)
– DocumentRoot:网页根目录(/var/www/html)
– DirectoryIndex:起始页/首页文件名(index.html)

##############################################
基本Web搭建
一 虚拟机Server 服务端
1.安装httpd
[root@server0 ~]# yum -y install httpd
2.开启httpd服务,设置为开机自起
[root@server0 ~]# systemctl restart httpd
[root@server0 ~]# systemctl enable httpd

3.书写一个主页文件

echo My First Web > /var/www/html/index.html

cat /var/www/html/index.html

二 虚拟机Desktop 客户端
1.访问测试
[root@desktop0 ~]# firefox 172.25.0.11
elinks(命令行浏览器)
[root@desktop0 ~]# elinks -dump 172.25.0.11
My First Web
########################################################
DNS服务器:classroom.example.com
server0.example.com
www0.example.com
webapp0.example.com

#########################################################
ServerName:指定本网站的域名

虚拟机Server0:
1.修改配置文件/etc/httpd/conf/httpd.conf
命令模式: /ServerName 全文搜索 按n跳转匹配
ServerName server0.example.com:80

2.重起httpd服务
[root@server0 ~]# systemctl restart httpd

虚拟机Desktop0:
[root@desktop0 ~]# elinks -dump server0.example.com
#####################################################
– DocumentRoot:网页文件根目录(/var/www/html)
虚拟机Server0:
1.修改配置文件/etc/httpd/conf/httpd.conf
命令模式: /Doc 全文搜索 按n跳转匹配
DocumentRoot “/var/www/myweb”

2.书写新的网页文件
mkdir /var/www/myweb
echo wo shi myweb > /var/www/myweb/index.html
cat /var/www/myweb/index.html

2.重起httpd服务
[root@server0 ~]# systemctl restart httpd

虚拟机Desktop0:
[root@desktop0 ~]# elinks -dump server0.example.com
wo shi myweb
#########################################################
• 网页文件根目录
DocumentRoot “/var/www/myweb”
• 为浏览器程序提供 URL 网址
– Uniform Resouce Locator,统一资源定位器
– 协议名://服务器地址[:端口号]/目录/文件名
#########################################################
• 虚拟Web主机
– 由同一台服务器提供多个不同的Web站点

• 区分方式
– 基于域名的虚拟主机
– 基于端口的虚拟主机
– 基于IP地址的虚拟主机
容器类型配置语句
<VirtualHost IP地址:端口>
ServerName 此站点的DNS名称
DocumentRoot 此站点的网页根目录

配置文件路径
– /etc/httpd/conf/httpd.conf
– /etc/httpd/conf.d/*.conf

虚拟机Server
[root@server0 ~]# vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80> #所有本机IP地址开放80端口
ServerName www0.example.com #指定网站域名
DocumentRoot /var/www/qq #指定网页文件根目录

<VirtualHost *:80>
ServerName webapp0.example.com
DocumentRoot /var/www/baidu

<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /var/www/myweb

[root@server0 ~]# mkdir /var/www/qq
[root@server0 ~]# mkdir /var/www/baidu
[root@server0 ~]# echo QQ > /var/www/qq/index.html
[root@server0 ~]# echo baidu > /var/www/baidu/index.html
[root@server0 ~]# systemctl restart httpd
虚拟机Desktop
[root@desktop0 ~]# elinks -dump www0.example.com
[root@desktop0 ~]# elinks -dump webapp0.example.com

一旦开启虚拟Web主机功能,所有的网站都必须用虚拟Web主机来实现
服务启动失败提示
[root@server0 ~]# systemctl restart httpd
Job for httpd.service failed. See ‘systemctl status httpd.service’ and ‘journalctl -xn’ for details.

可以通过systemctl status httpd.service 查看错误信息

可以通过journalctl -xn 查看错误信息

########################################################
Web服务的访问控制
虚拟机Server
1.server0.example.com的DocumentRoot 目录
下创建一个名为 private 的子目录
mkdir /var/www/myweb/private

2.手写一个页面文件
echo wo shi private > /var/www/myweb/private/index.html

虚拟机Desktop
elinks -dump server0.example.com/private

虚拟机Server
elinks -dump server0.example.com/private

• 使用 配置区段
– 每个文件夹自动继承其父目录的访问权限
– 除非针对子目录有明确设置
<Directory 目录的绝对路径>
. …
Require all denied|granted
Require ip IP或网段地址 … …

3)从 server0 上,任何人都可以浏览 private 的内容,
但是从其他系统不能访问这个目录的内容

虚拟机Server
[root@server0 /]# vim /etc/httpd/conf.d/nsd02.conf
<Directory “/var/www/myweb/private”>
Require ip 172.25.0.11

[root@server0 /]# systemctl restart httpd

虚拟机Desktop

elinks -dump server0.example.com/private

                            Forbidden

You don’t have permission to access /private on this server

#########################################################
案例4:使用自定Web根目录
1)新建目录 /webroot,作为此站点新的网页目录
[root@server0 /]# mkdir /webroot
[root@server0 /]# echo wo shi webroot > /webroot/index.html
2)修改虚拟Web主机原有的配置
[root@server0 /]# vim /etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>
ServerName server0.example.com
DocumentRoot /webroot #修改网页根目录

3)添加新的访问控制
[root@server0 /]# vim /etc/httpd/conf.d/nsd02.conf
<Directory “/webroot”>
Require all granted #允许所有人访问

4)修改 SELinux 安全上下文(标签)
[root@server0 /]# ls -Zd /webroot #查看目录的标签值
[root@server0 /]# chcon -R --reference=/var/www/ /webroot
5)重起服务
[root@server0 /]# systemctl restart httpd
########################################################
动态Web网站部署

静态网站的运行
• 服务端的原始网页 = 浏览器访问到的网页
– 由Web服务软件处理所有请求

动态网站的运行
• 服务端的原始网页 ≠ 浏览器访问到的网页
– 由Web服务软件接受请求,动态程序转后端模块处理
– PHP网页、Python网页、JSP网页…

一.虚拟机Server部署动态的页面文件
vim /etc/httpd/conf.d/nsd01.conf #查看webapp0的DocumentRoot
cd /var/www/baidu/
wget http://172.25.254.254/pub/materials/webinfo.wsgi
cat webinfo.wsgi
二.客户端虚拟机Desktop测试访问webinfo.wsgi
firefox webapp0.example.com/webinfo.wsgi

三.方便客户端虚拟机Desktop的访问 firefox webapp0.example.com
网页的跳转
firefox webapp0.example.com ----> 网页文件根目录
当客户端访问DocumentRoot网页文件根目录时,显示/var/www/baidu/webinfo.wsgi页面内容

  1. 虚拟机Server上,修改/etc/httpd/conf.d/nsd01.conf
    <VirtualHost *:80>
    ServerName webapp0.example.com
    DocumentRoot /var/www/baidu
    Alias / /var/www/baidu/webinfo.wsgi

2.虚拟机Server上,重起httpd服务

3.客户端虚拟机Desktop的访问 firefox webapp0.example.com

四 安装翻译python页面的软件mod_wsgi

1.虚拟机Server安装软件

yum -y install mod_wsgi

2.虚拟机Server修改配置文件/etc/httpd/conf.d/nsd01.conf
<VirtualHost *:80>
ServerName webapp0.example.com
DocumentRoot /var/www/baidu
WsgiScriptAlias / /var/www/baidu/webinfo.wsgi

UNIX时间戳: 自1970-1-1 0时0分0秒 到 指定时间经历的秒数
3.虚拟机Server重起httpd服务
4.客户端虚拟机Desktop的访问 firefox webapp0.example.com

五 此虚拟主机侦听在端口8909
1.虚拟机Server修改配置文件/etc/httpd/conf.d/nsd01.conf
Listen 8909
<VirtualHost *:8909>
ServerName webapp0.example.com
DocumentRoot /var/www/baidu
WsgiScriptAlias / /var/www/baidu/webinfo.wsgi

2.SELinux 开放8909端口, -a:添加 -t:类型 -p:协议

semanage port -l #查看所有的SELinux允许的端口

 添加端口

semanage port -l | grep http

semanage port -a -t http_port_t -p tcp 8909

semanage port -l | grep http

  1. 重起httpd服务
    4.客户端虚拟机Desktop的访问 firefox webapp0.example.com:8909

SELinux 安全上下文(标签)
神州旅游: 红色帽子 标签
达外旅游: 绿色帽子 标签
/var/www/ 红色帽子 标签 -----------> httpd
/webroot 红色帽子
• 方式1:参照标准目录,重设新目录的属性
– chcon -R --reference=/var/www/ /webroot

• 虚拟Web主机
– 由同一台服务器提供多个不同的Web站点
虚拟机Server:
1.利用www0.example.com搭建虚拟Web主机
2.DocumentRoot为/var/www/html
3.书写/var/www/html/index.html页面
4.重起httpd服务,设置为开机自起服务

虚拟机Desktop:
1.firefox www0.example.com

########################################################

虚拟机Server部署安全的Web服务
1.部署网站证书(营业执照)
cd /etc/pki/tls/certs/
wget http://classroom.example.com/pub/tls/certs/server0.crt

2.部署网站根证书(公安局信息,在互联网中为数字证书颁发中心的信息)
cd /etc/pki/tls/certs/
wget http://classroom.example.com/pub/example-ca.crt

3.部署网站私钥(用于解密)
cd /etc/pki/tls/private/
wget http://classroom.example.com/pub/tls/private/server0.key

  1. 安装支持安全的Web服务软件 mod_ssl
    yum -y install mod_ssl
    ls /etc/httpd/conf.d/

  2. 修改配置文件/etc/httpd/conf.d/ssl.conf 指定 网站证书\根证书\私钥
    vim /etc/httpd/conf.d/ssl.conf
    补充: 末行模式中 输入 :set nu 显示行号

59 DocumentRoot “/var/www/html”
60 ServerName www0.example.com:443

指定网站证书
100 SSLCertificateFile /etc/pki/tls/certs/server0.crt

指定网站私钥
107 SSLCertificateKeyFile /etc/pki/tls/private/server0.key
指定根证书
122 SSLCACertificateFile /etc/pki/tls/certs/example-ca.crt

  1. 重起httpd服务
  2. 客户端访问 测试 firefox https://www0.example.com

猜你喜欢

转载自blog.csdn.net/qq_41703438/article/details/88563331