Firewall和Iptables

防火墙

防火墙种类

软件防火墙:软件技术实现对数据包的过滤(iptables Firewall)

硬件防火墙:使用硬件设备对数据包过滤

使用软件防火墙Iptables/Firewall与linux操作系统内核中的netfilter系统内核模块交互,实现数据包的过滤

防火墙的类型

主机型防火墙:保护自己本机应用

网络型防火墙:保护其他服务器甚至服务器集群的应用安全

Firewall防火墙工具

四个区域

public(默认区域)

默认区域,仅允许部分服务通过

trusted

无条件信任区域

block

明确拒绝,并返回报文

drop

拒绝,直接丢弃,不返回报文

Iptables的四表五链

iptables的四表

①Filter表
iptables的默认表,用于对数据包过滤

包含三链:INPUT OUTPUT FORWARD

INPUT:入站链,配置入站规则(允许和拒绝)

OUTPUT:出站链,配置出站规则

FORWARD:流量转发链(防火墙把外部流量转发到集群内)

②NAT表
网络地址转换,包括源(SNAT)目的(DNAT)的地址转换和端口映射

包含三链:PREROUTING POSTROUTING OUTPUT

PREROUTING:客户端目标地址转换链。在容器中使用较多,把客户端的请求发送到主机上的对应端口,再通过主机端口与容器内部端口映射转发到容器内部

POSTROUTING:公司内部网络访问互联网时使用到的链,一般使用NAT转换,把私网地址转换成公网达到外部通信的效果,外部公网访问内部网络也通过NAT转换,把公网地址转换成企业内部的一个私网地址以后实现网络通信

③Mangle表
修改经过的数据包标志位,调整TTL值,设置Qos服务质量等,进行策略路由(选择使用网卡来进行数据的收发)等

包含五链:PREROUTING FORWARD POSTROUTING INPUT

④Raw表
配置数据包的早期处理,防止数据包洪水攻击,状态跟踪表,用于跟踪数据包

两条链:OUTPUT PREROUTING

iptables的五链

  1. INPUT
    • 用于处理进入本机的数据包。
  2. OUTPUT
    • 用于处理从本机发出的数据包。
  3. FORWARD
    • 用于处理经过本机但目的地不是本机的数据包(路由功能)。
  4. PREROUTING
    • 在NAT表中,用于处理到达本机、在路由决策之前的数据包。
  5. POSTROUTING
    • 在NAT表中,用于处理从本机发出、在发送到网络之前的数据包。

Iptables命令

格式

iptables [-t 表名] [-A/-I添加方式]链名[-p协议] [-s,-d源和目标地址] [--sport --dport源目标端口] [-j操作]
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT

选项

-t table(表名) #不指定,默认为filter表

-A/-I 追加到表尾和插入到表头 #有上到下优先匹配,匹配到就停止

-p 协议 tcp/udp

查看Iptables列表

iptables -L		#以文字形式显示
iptables -nL	#以数字形式显示

准备两台主机

ip地址主机名
192.168.113.254docker
192.168.113.253ansible
[root@docker ~]# ping -c3 192.168.113.253
PING 192.168.113.253 (192.168.113.253) 56(84) bytes of data.
64 bytes from 192.168.113.253: icmp_seq=1 ttl=64 time=0.299 ms
64 bytes from 192.168.113.253: icmp_seq=2 ttl=64 time=0.239 ms
64 bytes from 192.168.113.253: icmp_seq=3 ttl=64 time=0.209 ms

修改Iptables规则,使得两台主机无法通信

首先安装iptables
yum install -y iptables-services.x86_64
启动iptables服务
systemctl start iptables.service
在ansible主机(253)上修改Iptables入站规则,拒绝接收docker(254)的icmp报文
iptables -t filter -I INPUT -p icmp -s 192.168.113.254 -d 192.168.113.253 -j REJECT
检查
[root@ansible ~]# iptables -nL  --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     1    --  192.168.113.254      192.168.113.253      reject-with icmp-port-unreachable
再次ping主机(253)发现无法ping通
[root@docker ~]# ping -c3 192.168.113.253
PING 192.168.113.253 (192.168.113.253) 56(84) bytes of data.
From 192.168.113.253 icmp_seq=1 Destination Port Unreachable
From 192.168.113.253 icmp_seq=2 Destination Port Unreachable
From 192.168.113.253 icmp_seq=3 Destination Port Unreachable

删除规则

先查看规则在第几行
[root@ansible ~]# iptables -nL  --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    REJECT     1    --  192.168.113.254      192.168.113.253      reject-with icmp-port-unreachable
删除第一条规则
[root@ansible ~]# iptables -t filter -D INPUT 1
[root@ansible ~]# iptables -nL  --line-number
清空所有规则
iptables -t filter -F

修改Iptables默认规则

#先添加一下22端口放行,以免远程连接断开
iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT

iptables -t filter -P INPUT  DROP
检查(发现默认策略已经变为DROP状态)
[root@docker ~]# iptables -t filter -nL
Chain INPUT (policy DROP)
  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值