Linux防火墙firewalld(粗糙版)

上篇是iptables的增删改查

自定义链:

systemctl stop firewalld

setenforce 0

iptables -N lmn

iptables -vnL

iptables -t filter -vnL

修改链名:

iptables -E lmn ky01

iptables -t filter -vnL

iptables -t filter -I ky01 -p icmp -j ACCEPT

iptables -t filter -vnL

iptables -t filter -I INPUT -p icmp -j ky01

iptables -t filter -vnL

删除:

iptables -D INPUT 1

iptables -D ky01 1

iptables -X ky01

自定义链使用 自定义链添加:iptables -N custom(链名) 创建链

自定义链改名:iptables -E custom(原来名称) ky29(新名称) 自定义链改名

创建自定义链规则:iptables -t filter -I ky29 -p icmp -j REJECT 创建自定义规则, iptables的链中添加一条对应到自定义链中才能生效

iptabales创建对应链规则然后跳转自定义链web:iptables -t filter -I INPUT -p icmp -j custom

删除自定义规则链:先删除iptables INPUT链中的对应关系,然后删除自定义链中的规则。 iptables -D INPUT 1 iptables -D ky27 1

然后再用 iptables -X ky27 删除这个链

iptables另一个功能

iptables:地址转换

SNAT:源地址转换。内网访问外网时,将内网的ip地址转换成可以和外网通信的ip地址

DNAT:目的地址转换。外网访问内网时,将外网的ip地址转换成可以和内网通信的ip地址

Linux防火墙firewalld(粗糙版)_第1张图片

SNAT和DNAT核心:就是地址转换

内到外,要换源

外到内,转目的

DNAT:虽然是目的地址转换,但是还有一个作用就是,将内部地址映射到一个或者是一组公网地址。将内部的私网地址映射成公网地址,公网地址可以直接对外提供访问服务

实验:首先环境准备需要三台服务器

ky01 zb:内网服务器 192.168.86.10

ky01 sk:网关服务器 192.168.86.11

beiyong:外网地址 12.0.0.0

Linux防火墙firewalld(粗糙版)_第2张图片

实验开始:

将ky01 sk:添加一个网络适配器

此时有两个网络适配器

ifconfig

Linux防火墙firewalld(粗糙版)_第3张图片

ls

cd /etc/sysconfig/network-scripts

vim ifcfg-ens33

对IPADDR操作192.168.86.254

Linux防火墙firewalld(粗糙版)_第4张图片

vim ifcfg-ens36(ps:此次经过上图ifconfig查看是36)

对IPADDR操作12.0.0.254

Linux防火墙firewalld(粗糙版)_第5张图片

此时在ky01 zb和beiyong上

yum -y install httpd

systemctl restart httpd

然后:在浏览器登录192.168.86.10

192.168.86.12

对ky01 sk操作:systemctl restart network

对此虚拟机页面操作:vim /etc/sysctl.conf

这是一个修改Linux内核参数的文件。可以使这些参数配置立刻生效

文件最后面添加一行:net.ipv4.ip_forward=1

Linux防火墙firewalld(粗糙版)_第6张图片

命令:sysctl -p

让文件立刻生效

对ky01 zb操作

Linux防火墙firewalld(粗糙版)_第7张图片

Linux防火墙firewalld(粗糙版)_第8张图片

对beiyong操作:

Linux防火墙firewalld(粗糙版)_第9张图片

对ky01 sk操作:

iptables -t nat -A POSTROUTING -s 192.168.86.0/24 -o ens36 -j SNAT --to 10.0.0.10

对此命令讲解:

iptables :固定格式开头

-t nat:使用地址转换表

-A POSTROUTING:数据包离开本机的规则

-s 192.168.86.0/24:整个网段作为源IP地址

-o ens36:数据包流出本机的设备

-j SNAT:做源地址转换

--to:转换成10.0.0.10

测试一下:

登录ky01 zb和beiyong

ky01 zb打开一个浏览器

beiyong打开日志

然后登录beiyong地址

Linux防火墙firewalld(粗糙版)_第10张图片

查看日志此时应该是地址10.0.0.10

然后对ky01 sk 操作:

iptables -t net -A PREROUTING -d 11.0.0.11 -i ens36 -p tcp --dport 80 -j DNAT --to 192.168.86.10:80

Linux防火墙firewalld(粗糙版)_第11张图片

-t nat:使用地址转换表

-A PREROUTING:进入本机之后数据包做地址转换

-d指定目的地址11.0.0.11

-i:ens36设备进入本机

-p: 指定协议

--dport :目的端口,80

-j:控制类型,目的地址转换

--to :访问11.0.0.11就等于访问内网192.168.86.10:80的httpd的服务

然后继续:iptables -t nat

Linux防火墙firewalld(粗糙版)_第12张图片

测试:

主机1 打开日志:

主机3打开浏览器:

访问

此时可以看到日志源地址没有变

面试题:

如何在Linux系统中对网络抓包?

tcpdump,这是Linux自带的抓包工具

两种方式:

1.静态抓包,指定抓多少个数据包

2.动态抓包,想抓多少抓多少,除非手动停止

cd /opt

tcpdump tcp 或者icmp 或者

tcpdump tcp -i ens33 -t -s0 -c 10 and dst port 80 and src net 192.168.86.0/24 -w /opt/lmn.cap

tcpdump 抓包命令

tcp :指定协议

-i ens33:只抓经过ens33的数据包

-t: 不显示时间戳

-s0:抓取完整的数据包,默认只抓64字节的数据包

-c 10 : 只抓10个数据包

dst port 80 :抓取的目标端口是80

src net 192.168.86.0/24:抓取数据包的源地址

-w :指定保存抓包文件的位置

.cap:是一种无线网络数据包捕获文件的扩展名

Linux防火墙firewalld(粗糙版)_第13张图片

.cap文件需要保存到win系统打开

sz lmn.cap

动态抓包实验:

tcpdump -i ens33 -s0 -w /opt/lmn1.cap

动态抓包需要Ctrl+C手动停止

PS:在工作中最好使用动态抓包。

firewalld防火墙

查看防火墙的默认区域

Linux防火墙firewalld(粗糙版)_第14张图片

查看默认区域的所有规则

Linux防火墙firewalld(粗糙版)_第15张图片

Linux防火墙firewalld(粗糙版)_第16张图片

block限制区,所有流量都会被拒绝

dmz:隔离区,也叫非军事区,只会运行预定服务,ssh等系统预设服务,其余都会拒绝

drop:丢弃区,丢弃所有传入流量,而且没有任何相应

external:外部区域,允许系统预设的服务,ssh,其他的全部拒绝

home:家庭区域,只允许预设的服务,其他的全部拒绝

internal:内部区域,和家庭区域一样

public:公共区域,也是firewalld的默认区域,也是允许预设服务ssh,其他的全部拒绝

trusted:信任区域,允许所有的传入流量

work:工作区域,只会允许预定义服务的流量传入,其他全部拒绝

Linux防火墙firewalld(粗糙版)_第17张图片

curl 192.168.86.10

查看命令访问httpd

修改默认区域

firewalld-cmd --set-default-zone=区域名

指定服务添加到区域内:

firewalld-cmd --

添加多个服务到指定区域内

在指定区域删除服务

以上添加服务方法是临时添加,防火墙重启一下就全没了

此命令是永久添加服务到防火墙的指定区域

Linux防火墙firewalld(粗糙版)_第18张图片

删除永久服务配置

添加端口到指定区域

Linux防火墙firewalld(粗糙版)_第19张图片

添加多个端口到指定区域

Linux防火墙firewalld(粗糙版)_第20张图片

范围添加端口到指定区域

你可能感兴趣的:(云计算课程学习,centos,linux,运维)