[Linux]防火墙管理firewalld和iptables

firewalld:

1、介绍

firewalld(动态防火墙),其中引入区域(zone)的概念。区域就是预先设计的策略集合,用户可以根据不同环境选择合适的策略集合,从而实现防火墙策略之间的快速切换。

2、域的介绍

网络域名称配置
trusted可接受所有的网络
internal可用于内部网络,支持ssh,mdns,ipp-client,samba-client,dhcpv6-client
home可用于家庭网络,支持ssh,mdns,ipp-client,samba-client,dhcpv6-client
public可用于公共区域,支持ssh,dhcp6-client
work可用于工作环境,支持ssh,ipp-client,dhcpv6-client
dmz支持ssh
external支持ssh
block拒绝所有连接
drop任何网络数据包丢弃

 

3、图形化管理

命令:firewall-config
设置域

设置默认域

4、命令管理

firewall-cmd --state                                         #查看当前状态

firewall-cmd --get-active-zones              #查看当前防火墙工作的域

firewall-cmd --get-default-zone              #查看防火墙默认工作域

firewall-cmd --get-zones                     #查看可选择的域

firewall-cmd --zone=public --list-all        #查看public域的配置

firewall-cmd --get-services                  #可直接添加的服务

firewall-cmd --list-all-zones                #查看所有的域的配置

firewall-cmd --set-default-zone-trusted        #设置默认域为trusted(如需永久设定需添加--permanent,并重新加载)

5、设置2台本地主机访问远端主机两个ip,可以访问到默认发布文件

(通过测试了解防火墙设置)

(1)准备

2台本地主机:
ip1=172.25.254.12/24

ip2=1.1.1.112/24

1台远端主机;

拥有两块网卡eth0,eth1

eth0:172.25.254.212/24

eth1:1.1.1.212/24

(2)远端主机设置

安装http并设置默认发布文件,默认发布文件目录/var/www/html/

设置允许172.25.254.0/24网段通过trusted域访问远端主机文件(一个域仅能设置同一ip通过,否则将会出现冲突)

命令:firewall-cmd --permanent --zome=trusted --add-source=172.25.254.0/24                        #设置为永久设定需进行重新加载

          firewall-cmd --reload

(3)本地主机1测试

浏览器中输入172.25.254.212

(4)远端主机设置

将eth1网卡添加至trusted域中

方法一:

命令:

firewall-cmd --remove-interface=eth1 --zone=public

将eth1移出public域(public域为例,移出的域视真实情况而定)

firewall-cmd --add-inerface=eth1 --zone=trusted 

将eth1添加进trusted域

方法二:

命令:

firewall-cmd --change-interface=eth1 --zone=trusted

将eth1网卡直接修改至trusted域

该设定将eth1网卡设置在trusted域的接口上,便可与1.1.1.0/24网段进行通信

(5)本地主机2测试

6、防火墙的永久设定配置

远端主机;

配置函数路径:/etc/firewalld

以下进入zones目录为例

(1)查看当前firewall中public域配置

命令:firewall-cmd --list-all

查看public.xml和public.xml.old文件

可以发现两文件内容目前为一模一样

(2)永久添加ftp服务

命令:firewall-cmd --permanent --add-service=ftp                         (--permanent为永久添加的参数)

           firewall-cmd --reload                                                              (设定永久添加需重新加载)

(3)查看public.xml和public.xml.old

查看当前public.xml文件当前内容发现添加ftp

查看当前public.xml.old文件为之前的配置

7、Direct Rules

通过 --direct可进行端口规则设置

测试:设置仅允许本地主机ip172.25.254.12访问远端主机ip172.25.254.212

(1)远端主机设置

命令:firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.12 -p tcp --dport 22 -j ACCEPT

filter INPUT                                   #使用filter表的INPUT链

-s                                                   #接收数据包的地址      (若在之前添加!则为禁止该ip通过该端口)

-p                                                  #协议  

-dport                                            #端口    

-j                                                   #是否允许通过

命令:firewall-cmd --direct --get-all-rules

查看规则

(2)测试

本地主机1(ip172.25.254.12/24)

本地主机2(ip1.1.1.112)

 

测试:设置伪装和转发

远端主机设定:

伪装功能开启

命令:firewall-cmd --permanent --add-masquerade

           firewall-cmd --reload

设置转发

命令:firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.212            (ip为转发的目标)

 

iptables

1、介绍

iptables根据规则进行管理防火墙。

iptables具有3张表

(1)Fliter表

作用:过滤数据包

INPUT链:处理来自外部数据

OUTPUT链:处理发送的数据

FORWARD链:用于转发至其他网卡的数据

(2)NAT表

作用:地址转换

PREOUTING链:处理路由转发前的数据,主要用于DNAT

OUTPUT链:处理本机发送的数据

POSTROUTING链:处理路由后的数据,主要用于SNAT

(3)Mangle表

作用:用于处理数据包

PREOUTING链,OUTPUT链,POSTROUTING链,INPUT链,FORWARD链。

2、参数介绍

-t指定表名称 
-n不做解析
-L列出指定表中的策略
-A增加策略
-p网络协议
--dport端口
-s数据来源
-j动作
ACCEPT允许
REJECT拒绝
DROP丢弃
-N增加链
-E修改链名称
-X删除链
-D删除指定策略
-I插入
-R修改策略
-P修改默认策略
-F   清除信息
-i 选择接口

3、参数示例

(1)默认查看filter表信息

命令:iptables -nL

(2)查看nat表信息

命令:iptables -t nat -nL

(3)保存iptable配置信息

命令:service iptables save

保存在/etc/sysconfig/iptables

(4)添加lo接口

命令:iptabels -t fileter -A INPUT -i lo -j ACCEPT

(5)允许ip172.25.254.112访问本机所有端口

命令:iptabels -t fileter -A INPUT -s 172.25.254.112 -j ACCEPT

(6)禁止ip172.25.254.112访问本机所有端口

命令:iptabels -t fileter -A INPUT -s 172.25.254.112 -j REJECT

(7)删除指定设置

命令:iptables -D INPUT 2  

数字为链中的序号

(8)修改指定设置

命令:iptables -R INPUT 2 -s172.25.254.112 -j ACCEPT

数字为链中的序号

(9)修改策略模式

命令:iptables -P INPUT DROP

INPUT为当前模式,DROP为修改后的模式

(10)增加链

命令:iptables -N admin

链名为admin

(11)删除链

命令:iptables -X admin

 

4、实现两个不同网段相互通信

远端主机作为路由端

ip分别为172.25.254.212/24,1.1.1.212/24

两台本地主机

ip1:172.25.254.12

ip2:1.1.1.112

(1)路由端测试

命令:sysctl -a | grep forward

查看net.ipv4.ip_forward(转发功能)是否开启

若没有开启编辑文件/etc/sysctl.conf

添加net.ipv4.ip_forward=1,接着执行命令sysctl -p读取文件

设置iptables中转发和伪装

命令:iptables -t nat -A PREROUTING  -i eth1 -j DNAT --to-dest 1.1.1.212

在NAT表中的PREROUTING链设置转发

命令:iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 172.25.254.212

在NAT表中的POSTROUTING链设置伪装

本地主机2设置网关

测试

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值