Linux系统中的防火墙firewall与iptables

一、基础概念

防火墙是整个数据包进入主机前的第一道关卡。是一种位于内部网络与外部网络之间的网络安全系统,是一项信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙主要通过Netfilter与TCPwrappers两个机制来管理的

管理方式:
firewall火墙策略管理工具,较简单
iptables相对来说更专业

二、Firewall相关

systemctl start firewalld        ##开启火墙
systemctl status firewalld      ##查看火墙状态
在这里插入图片描述
systemctl enable firewalld      ##设置火墙开机自启动
在这里插入图片描述
systemctl disable firewalld    ##设置火墙开机关闭
在这里插入图片描述
systemctl mask firewalld          ##锁定firewall管理
在这里插入图片描述
systemctl unmask firewalld        ##解锁firewall管理
在这里插入图片描述

1.firewalld火墙管理的3种方式

firewall-cmd命令行管理
firewall-config图形管理
/etc/firewalld/下的配置文件管理

2.firewalld命令行管理

firewall-cmd --stat            ##查看当前火墙状态
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=public  ##设置默认的域为public
firewall-cmd --direct --get-all-rules     ##查看规则
firewall-cmd --reload           ##以ssh为例,以前连过的,执行此刷新命令不会断开
firewall-cmd --complete-reload                ##完全刷新

环境:
【服务端】eth0:172.25.254.173           eth1:1.1.1.173
【客户端】eth0:1.1.1.93

1.查看火墙的状态
在这里插入图片描述
2.查看火墙正在使用的域
在这里插入图片描述
3.查看火墙默认的域
在这里插入图片描述
4.查看火墙所有的域
在这里插入图片描述
5.查看public域的信息
在这里插入图片描述
6.列出可使用的服务
在这里插入图片描述
7.添加http服务到火墙允许的列表
在这里插入图片描述
8.从永久列表移除http服务(需要reload)
在这里插入图片描述
9.将指定的ip主机加入trusted域
在这里插入图片描述
10.将指定的ip主机从trusted域删除
在这里插入图片描述
11.移除eth1接口从public域
在这里插入图片描述
12.将eth1接口添加进trusted域
在这里插入图片描述
13.直接将eth1从原来的区域转到public这个区域
在这里插入图片描述
14.将8080端口加入public域
在这里插入图片描述
在这里插入图片描述
15.只允许172.25.254.73进行ssh连接(确定ssh不在默认域里)
在这里插入图片描述
16.除了172.25.254.73不能进行ssh连接,其他的都可以
在这里插入图片描述
在这里插入图片描述

三、Firewall的SNAT和DNAT

环境:
单网卡主机改网关:(此处修改全局网关)

vim /etc/sysconfig/network
3 GATEWAY=1.1.1.173

systemctl restart network
route -n
在这里插入图片描述

1.SNAT(内核路由之后做的原地址转换)

【双网卡】

firewall-cmd --permanent --add-masquerade##开启内核路由功能
firewall-cmd --reload
在这里插入图片描述
注意:
sysctl -a | grep forward底下的内容要是1,内核的路由功能才能打开
net.ipv4.ip_forward = 1
在这里插入图片描述

测试:
在这里插入图片描述
在这里插入图片描述
在单网卡的主机连接172.25.254.73
w -i查看,链接的是172.25.254.173
在这里插入图片描述

2.DNAT(内核路由之前做的目的地地址转换)

【双网卡】

firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.93        ##在public这个域,使连接172.25.254.173这个端口的主机实际链接的是1.1.1.93这个22端口
firewall-cmd --reload
firewall-cmd --list-all
在这里插入图片描述

测试:
在刚才已经连接的73身份上连接172.25.254.173
ifconfig查看,链接的是1.1.1.93
在这里插入图片描述

四、iptables

iptables(网络过滤器)是一个工作于用户空间的防火墙应用软件。
防火墙在做信息包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息包过滤表中,而这些表集成在linux内核中。

iptables有三张表五条链:

三表:
Filter表:过滤数据包
NAT表:用于网络地址转换(IP、端口)
Mangle表:修改数据包的服务类型、TTL、并且可以配置路由实现QOS
五链:
INPUT链——进来的数据包应用此规则链中的规则
OUTPUT链——外出的数据包应用此规则链中的规则
FORWARD链——转发数据包时应用此规则链中的规则
PREROUTING链——对数据包作路由选择前应用此链中的规则
POSTROUTING链——对数据包作路由选择后应用此链中的规则

五、iptables相关

systemctl stop firewalld         ##关闭firewall
systemctl disable firewalld    ##设置开机不自启
systemctl mask firewalld         ##锁定firewall
systemctl start iptables         ##开启iptables
systemctl enable iptables       ##设置iptables开机自启动
在这里插入图片描述

1.iptables命令

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

1.查看火墙的策略(不加t默认是filter)
在这里插入图片描述
2.查看filter表中的策略
在这里插入图片描述
3.刷新火墙策略
在这里插入图片描述
4.策略存储文件
在这里插入图片描述
5.保存iptables策略(刷新之后不保存重启服务,会恢复默认)
在这里插入图片描述
6.修改默认策略为DROP(连接是无响应)
在这里插入图片描述
7.设置ssh连接时会被refused
在这里插入图片描述
在这里插入图片描述
8.只允许172.25.254.73进行ssh连接

9.删除INPUT链的第二条策略
iptables -D INPUT 2
10.在第一条插入,插入默认是第一条,可以不加1
在这里插入图片描述
在这里插入图片描述
11.修改第一条策略
在这里插入图片描述
12.添加链
在这里插入图片描述
在这里插入图片描述
13.修改链的名字
在这里插入图片描述
14.删除链
在这里插入图片描述

六、iptables的SNAT和DNAT

1.SNAT(内核路由之后做的原地址转换)

起初,单网卡ping172.25.254.73不通
在这里插入图片描述

【双网卡】
在这里插入图片描述
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.173    ##(eth1~eth0已经做了路由伪装)让从eth0出去的做地址转换(用93去连73,实际连的是173)
在这里插入图片描述

测试:

【单网卡】

连接172.25.254.73,w -i 看到的是173
在这里插入图片描述

2.DNAT(内核路由之前做的目的地地址转换)

【双网卡】

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.93      ##让从eth0进来的做地址转换(在上个测验的连接基础上,连接172.25.254.173,实际链接的是1.1.1.93)
在这里插入图片描述
测试:
【单网卡】
连接172.25.254.173,ifconfig看到的是1.1.1.93
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值