防火墙的相关知识点与iptables源地址转换实验

一、防火墙

1、防火墙的分类:

  • 硬件防火墙:由厂商设计好的主机硬件,其操作系统主要以提供数据包数据的过滤机制为主,并去掉不必要的功能

  • 软件防火墙:保护系统网络安全的一套软件(或称为机制),如Netfilter(数据包过滤机制)

2、防火墙无法完成的任务

  • 防火墙并不能杀毒或清除木马程序(假设主机开放了www服务,防火墙的设置是一定要将www服务的port开放给client端的。假设www服务器软件有漏洞,或者请求www服务的数据包本身就是病毒的一部分时,防火墙是阻止不了的)

  • 防火墙无法阻止来自内部LAN的攻击(防火墙对于内部的规则设置通常比较少,所以就很容易造成内部员工对于网络无用或滥用的情况)

3、Netfilter(数据包过滤)

定义:

  • netfilter 是一个工作在 Linux 内核的网络数据包处理框架,用于分析进入主机的网络数据包,将数据包的头部数据(硬件地址,软件地址,TCP、UDP、ICMP等)提取出来进行分析,以决定该连接为放行或拒绝的机制,主要用于分析OSI七层协议的2、3、4层。

内容:

  • 拒绝让Internet的数据包进入主机的某些端口

  • 拒绝某些来源IP的数据包进入

  • 拒绝让带有某些特殊标志(flag)的数据包进入,如:带有SYN的主动连接标志

  • 分析MAC地址决定是否连接

二、iptables

1、iptables

  • 早期的 Linux 系统中,默认使用 iptables 防火墙来管理服务和配置防火墙,虽然新型的 firewalld 防火墙管理服务已经被投入使用多年,但iptables 在当前生产环境中还继续使用 ,具有顽强的生命力

2、iptables流量处理动作

  • 当规则链匹配后应采用以下几种动作来处理匹配流量

  • ACCEPT:允许流量通过

  • REJECT:拒绝流量通过,拒绝后回复拒绝信息

  • LOG:记录日志信息

  • DROP:拒绝流量通过,流量丢弃不响应

3、iptables的命令

(1)Euler中默认使用的是firewalld,且与iptables之间有冲突,如果需要使用 iptables 需要先停止firewalld再进行安装:

bash 复制代码
[root@server ~]# systemctl stop  firewalld	#关闭防火墙
[root@server ~]# systemctl disable  firewalld	#禁用firewalld服务,系统启动时不在运行

(2)安装iptables并检查iptables的状态

bash 复制代码
[root@server ~]# yum  install  iptables

[root@server ~]# systemctl status  iptables
○ iptables.service - IPv4 firewall with iptables
     Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor preset: disabled)
     Active: inactive (dead)

(3)iptables的命令格式:

bash 复制代码
iptables [-t 表名] 选项 [链名] [条件] [-j 控制动作]



iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 控制动作

(4)iptables情况规则

bash 复制代码
[root@server ~]# iptables  -F  # 清空规则
[root@server ~]# iptables  -nL # 查看规则链
[root@server ~]# systemctl restart  iptables
[root@server ~]# iptables  -nL  # 由于未保存,则恢复原状

[root@server ~]# iptables -F              # 再次尝试清空规则链
[root@server ~]# service iptables save    # 保存服务状态
iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
[root@server ~]# systemctl restart  iptables  # 重启服务
[root@server ~]# iptables  -nL            # 查看

三、firewalld

1、firewalld的特点

  • firewalld可以动态修改单条规则,不需要像iptables那样,修改规则后必须全部刷新才可生效

  • firewalld默认动作是拒绝,则每个服务都需要去设置才能放行,而iptables里默认是每个服务是允许,需要拒绝的才去限制

  • iptables防火墙类型为静态防火墙firewalld 防火墙类型为动态防火墙

  • firewalld和iptables一样自身并不具备防火墙功能,它们的作用都是用于维护规则,而真正使用规则干活的是内核防火墙模块

  • firewalld 加入了区域(zone)概念

2、zone文件中的过滤规则

  • 过滤规则优先级:

    • source(最高)

    • interface(次之)

    • 默认zone(最低)

  • 规则:

规则 作用
scource 源IP地址过滤(常用)
interface 网卡过滤
service 服务名(实际是关联端口)过滤
port 端口过滤
icmp-block ICMP报文过滤
masquerade IP地址伪装
forward-port 端口转发过滤
rule 自定义规则

(1)firewall-cmd可视化界面工具

安装

bash 复制代码
# 注意:需要再可视化界面下使用

[root@server ~]# systemctl  start firewalld     # 启用

[root@server ~]# systemctl  enable  firewalld   # 开机启动

		# 安装DDE图形化桌面

[root@server ~]# yum  install  firewall-config  -y  # 安装图形化界面

不要在xshell执行

bash 复制代码
[root@server ~]# firewall-config

3、firewall-cmd基本命令

bash 复制代码
[root@server ~]# firewall-cmd --version  # 查看版本

[root@server ~]# firewall-cmd --help     # 查看帮助信息

[root@server ~]# firewall-cmd  --state   # 显示状态

[root@server ~]# firewall-cmd  --get-services  # 查看防火墙管理的服务

[root@server ~]# firewall-cmd  --list-all  # 查看区域中的规则

[root@server ~]# firewall-cmd  --panic-on   # 启用紧急模式

[root@server ~]# firewall-cmd  --panic-off  # 关闭紧急模式

四、iptables的源地址转换实验

1、首先需要三台虚拟机

(1)第一台网络适配器设置为nat模式(配置的地址假设为192.168.108.100/24,网关为192.168.108.200,dns为8.8.8.8)。

(2)第二台网络适配器要有两张,一张是nat模式(假设IP为192.168.108.200,网关为192.168.108.2,dns为8.8.8.8),另一张仅主机模式(假设IP为192.168.81.200,网关为192.168.81.2,dns为8.8.8.8).

(3)第三台网络适配器为仅主机模式(假设IP为192.168.81.100.网关为192.168.81.200.dns为8.8.8.8)

2、在有两张网络适配器上进行以下相关配置(设置源地址伪装)

3、由于是配置iptables源地址转换,所以我们去192.168.108.100的仅nat模式下进行操作并查看自己修改的虚假ip是否成功

画出来的就是以及配置好的源地址伪装的IP(w -i :是用于查询ip)

相关推荐
乾元3 分钟前
基于时序数据的异常预测——短期容量与拥塞的提前感知
运维·开发语言·网络·人工智能·python·自动化·运维开发
梓仁沐白3 分钟前
操作系统:进程通信和死锁
linux·服务器·网络
一只小鱼儿吖15 分钟前
实时监测代理IP池质量并生成可视化报告的实战(以携趣代理API为例)
网络·网络协议·tcp/ip
Bruce_Liuxiaowei18 分钟前
Nmap主机发现与在线主机提取实用指南
服务器·网络·安全
Nerd Nirvana31 分钟前
IPv6组播在DLMS协议中的应用——基础知识掌握
linux·运维·服务器·网络·网络协议·ipv6·dlms协议
福尔摩斯张35 分钟前
TCP/IP网络编程深度解析:从Socket基础到高性能服务器构建(超详细)
linux·运维·服务器·开发语言·网络·网络协议·tcp/ip
Sleepy MargulisItG35 分钟前
【Linux网络编程】传输层协议:TCP
linux·网络·tcp/ip
Hqst_xiangxuajun36 分钟前
网络变压器和电感的区别
网络
专业开发者40 分钟前
蓝牙 ® 网状网络互操作性验证开发者指南
网络·物联网
一杯咖啡的时间41 分钟前
2021年与2025年OWASP Top 10
网络·安全·web安全