防火墙Firewalld与iptables的详细配置

环境:三台主机

主机1172.25.60.250/24
主机2172.25.60.1/24 和 1.1.1.100/24
主机31.1.1.200/24

注:相同网段的可以相互ping通
火墙规则配置在主机2(双网卡)上操作

firewalld与iptables service

本质区别:
iptables service :在 /etc/sysconfig/iptables 中储存配置
firewalld :将配置储存在 /usr/lib/firewalld/ 和/etc/firewalld/ 中的各种 XML 文件里
在这里插入图片描述

一、firewalld

firewalld域:
在这里插入图片描述
1.firewall的开启与关闭

  yum install	firewalld firewall-config -y	//下载安装firewalld
  systemctl start firewall		//打开火墙
  systemctl enable firewalld	//开机自启动
  systemctl disable firewall	//开机不自启动
  systemctl stop firewall		//关闭火墙

在这里插入图片描述
2.图形化管理

firewall-config

在这里插入图片描述
3.命令管理

firewall-cmd --state				//查看火墙状态
firewall-cmd --get-active-zones		//有效域
firewall-cmd --get-default-zone		//默认域
firewall-cmd --get-zones			//查看所有的域
firewall-cmd  --list-all-zones		//查看所有域的详细信息
firewall-cmd --zone=public --list-all	//查看指定域(public域)的详细信息
firewall-cmd --list-all					//查看默认域的详细信息
firewall-cmd --get-services				//可以添加的服务
firewall-cmd --set-default-zone=public	//设置默认的域为public

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1)设置ip—指定特定的ip访问时走指定的域,使用指定域的规则进行访问

firewall-cmd  --zone=trusted --add-source=172.25.60.250
	//指定172.25.60.250
firewall-cmd  --zone=trusted --add-source=172.25.254.0/24
	//指定172.25.254.0/24网段

在这里插入图片描述

(2)设置网卡

方法一:
firewall-cmd --remove-interface=eth1 --zone=public	//将eth1移出public域
firewall-cmd --add-interface=eth1 --zone=trusted 	//将eth1添加到trusted域
方法二;
firewall-cmd --change-interface=eth1 --zone=public 	//将eth1移动到public域

在这里插入图片描述
(3)设置服务

firewall-cmd  --zone=public --add-service=smtp		//指定的域添加smtp服务
firewall-cmd  --zone=public --remove-service=smtp	//指定的域删除smtp服务

不指定域时,便是对默认域的设定:
firewall-cmd  --add-service=ssh 			//在默认域添加ssh
firewall-cmd  --remove-service=ssh  		//在默认域删除ssh

在这里插入图片描述

(4)设置端口

firewall-cmd --zone=public --add-port=8080/tcp		//在指定的域添加端口
firewall-cmd --zone=public --remove-port=8080/tcp	//在指定的域删除端口
firewall-cmd --zone=public --list-ports				//查看指定的域端口信息

不指定域时,便是对默认域的设定:
firewall-cmd --add-port=8080/tcp	//在默认的域添加端口
firewall-cmd --remove-port=8080/tcp	//在默认的域删除端口
firewall-cmd  --list-ports			//查看默认域的端口信息

在这里插入图片描述

(5)刷新火墙规则

firewall-cmd --reload				//刷新火墙会则:已连接的不会断开--动态配置
firewall-cmd --complete-reload		//完全刷新火墙规则:会断开已经连接的--类似于重启服务

上面的所有设定都没有加--permanent,将配置写到了内存,立即生效,重启系统就会失效,恢复为以前的设定;设定时加上--permanent,将配置信息写入文件中,如果不刷新火墙规则,新修改的设定就不会生效。
在这里插入图片描述

两个重要的目录:

  • /etc/firewalld/zones/
    在这里插入图片描述
    使用--permanent,两个文件内的内容都会改变:
    public.xml: 更改后的规则,刷新之后生效
    public.xml.old: 更改前的规则,没有刷新它依旧生效

  • /lib/firewalld/services/
    在这里插入图片描述
    里面的有默认信息,更改之后就无法使用:更改ssh使用的端口,firewall-cmd --reload刷新火墙规则之后,重新ssh连接就会失败

(6)Driect Rules
当我们允许某一台主机连接时,可以通过设定ip的方式允许它访问;但当我们只允许某台主机来访问我们指定的端口时,就需要用到下面的这种更加详细的设定规则。

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.60.250 -p tcp --dport 22 -j ACCEPT	
						     						指定来源	      	  指定协议  指定端口  		响应
		//只允许172.25.60.250访问本机的22端口(ssh连接)				     						
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.60.250 -p tcp --dport 22 -j ACCEPT	
		//删除filter表中规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.60.250 -p tcp --dport 22 -j ACCEPT	
		//只拒绝172.25.60.250访问本机的22端口
ACCEPT接受(有回应)
REJECT拒绝(有回应)
DROP丢弃(无回应):尽量不使用,收不到回应,会一直发送请求,增大了服务器的负载

(7)端口转发与地址伪装

主机1172.25.60.250/24
主机2172.25.60.1/24 和 1.1.1.100/24
主机31.1.1.200/24

地址伪装:

主机1与主机3处于不同的网段,无法直接通信,但主机2可以与他们两个直接通信;现在为了让主机3直接与主机1通信,可以通过主机2进行地址伪装,实现与值机1的通信

第一步:设置主机3的网关为与主机2处于同一网段的ip

vim /etc/sysconfig/network-scripts/ifcfg-eth0

第二步:配置主机2

firewall-cmd --list-all	//查看masquerade是否打开
firewall-cmd --permanent --add-masquerade	//添加:改为yes,使其具有地址伪装功能
firewall-cmd --permanent --remove-masquerade	//移除:改为no

sysctl -a | grep ip_forward	//查看内核路由是否开启,=1为开启
vim /etc/sysctl.conf	//若没有开启,需要修改配置文件,添加上就好
	net.ipv4.ip_forward=1

在这里插入图片描述
第三步:主机3测试
在这里插入图片描述
端口转发:
当主机1连接主机2时,让他连接到主机3
第一步:主机2上添加规则

firewall-cmd --add-forward-port=port=22:proto=tcp:toprot=22:toaddr=1.1.1.200

在这里插入图片描述
第二步:主机1测试:
在这里插入图片描述

二、iptables

实验环境:为了消除其他的影响,需要关闭firewall

systemctl stop firewalld.service 
systemctl mask firewalld.service
iptables的“四表五链”

四表:

filter过滤,防火墙
natnetwork address translation 网络地址转换
mangle拆解报文,作出修改,封装报文
raw关闭nat表上启用的链接追踪机制

五链:

PREROUTING数据包进入路由之前
INPUT目的地址为本机
FORWARD实现转发
OUTPUT原地址为本机,向外发送
POSTROUTING发送到网卡之前

1.iptables的开启与关闭

yum install iptables-services -y	//安装iptables
systemctl start iptables.service	//开启iptables
systemctl enable iptables.service	//iptables开机自启动
systemctl disable iptables.service	//iptables开机不自启动
systemctl stop iptables.service		//关闭iptables

注:如果因为iptables锁定,开启时报错,需要先解锁再开启;如果锁定了需要关闭也是同样的道理(刚下载的不存在这样的问题)
在这里插入图片描述
2.iptables的管理

基本参数:

-t指定表名
-n不做解析
-L列出指定表中的策略
-A增加策略
-p网络协议
–dport端口
-s数据来源
-j动作(ACCEPT;REJECT;DROP)
-D删除指定的策略
-I插入
-R修改策略
-P修改默认策略(动作)
-N增加链
-E修改链名称
-X删除链
-iinput
-ooutput

(1)规则的查看与刷新
iptables -nL //不指定表时,默认为filter表
iptables -t nat -nL
iptables -t mangle -nL
iptables -F //刷掉filter表中的策略,不指定默认是filter表
service iptables save //保存当前策略,重启之后生效保存的策略
在这里插入图片描述
(2)规则的添加、修改与删除

iptables -A INPUT -i lo -j ACCEPT		//添加规则
iptables -A INPUT -s 1.1.1.200 -j ACCEPT	//添加规则,默认添加在最后
iptables -I INPUT 2 -s 1.1.1.222 -j ACCEPT	//指定添加位置
iptables -R INPUT 2 -s 1.1.1.222 -j REJECT	//修改指定位置的规则
iptables  -D INPUT 2		//删除指定的规则

在这里插入图片描述
(3)默认策略的修改

iptables -P INPUT DROP		//修改默认策略为DROP
iptables -P INPUT ACCEPT	//修改默认策略为ACCEPT
	//注:不能修改为REJECT

在这里插入图片描述
(4)链的增加、修改与删除

iptables -N haha			//增加haha链
iptables -E haha WESTOS		//修改haha链名为WESTOS
iptables -X WESTOS			//删除WESTOS链

在这里插入图片描述

(5)iptables的端口转发和地址伪装

主机1172.25.60.250/24
主机2172.25.60.1/24 和 1.1.1.100/24
主机31.1.1.200/24

地址伪装:
第一步:设置主机3的网关为与主机2处于同一网段的ip

vim /etc/sysconfig/network-scripts/ifcfg-eth0

第二步:配置主机2

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.1
		//将所有从eth0的地址都伪装为172.25.60.1
sysctl -a | grep ip_forward	//查看内核路由是否开启,=1为开启
vim /etc/sysctl.conf		//若没有开启,需要修改配置文件,添加上就好
	net.ipv4.ip_forward=1

在这里插入图片描述
第三步:主机3测试
在这里插入图片描述
端口转发:

第一步:配置主机2

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.200:22
		//将所有从eth0进来访问22端口的都转发到1.1.1.200的22端口上

在这里插入图片描述
第二步:主机1测试
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值