Linux防火墙——iptables以及firewalld

iptables介绍:

iptables是一个应用层的应用程序主要针对IPv4地址,IPv6使用的是ip6tables,通过Netfilter放出的接口来存放对应的内核空间中的Netfilter的配置表进行修改,这个表由表tables、链chains、规则rules组成,一个链下一般会有若干个规则,从上到下读取规则,一旦匹配成功就结束。Linux系统内存分用户空间和内核空间,内核空间直接调用系统资源运行内核代码,用户空间的程序不能直接调用系统资源,需要配合内核提供的接口使用。

工作流程:

(1)某服务器内包含服务器网卡、系统中的用户空间和内核空间,计算机通过网卡向系统内核空间流入流量进入作路由选择前的prerouting链

(2)内核空间判断出流量目标是否为防火墙本机,是则进行流量入站给到input链,不是则进入forward链转发此流量数据包给路由选择后的postrouting链,再通过网卡流出去给其他服务器

(3)如果进入input链,则此数据包会继续进入用户空间使用服务/程序

(4)若是用户空间内服务/程序需要流出流量数据包,从系统内核空间将包传给内核空间给到output输出链,再给到路由选择后的postrouting链,最后通过网卡流出访问其他服务器。

firewalld介绍:

firewalld 所提供的模式相对于iptables可以叫做动态防火墙,它可以解决iptables重载会重新加载全部防火墙策略和文件这一问题,只需要将变更部分保存并更新即可,同时具备对 IPv4 和 IPv6 防火墙设置的支持。firewalld支持动态更新技术并加入了区域的概念(区域:firewalld预先准备了几套防火墙策略集合,用户可以选择不同的集合,从而实现防火墙策略之间的快速切换)。

1.iptables: 开启防火墙:可以正常使用ssh服务,dns服务, httpd服务,chrony服务, nfs服务。

1)安装iptables-services启动工具。

[root@lizhen ~]# yum install -y iptables-services

2)关闭firewalld,开启iptables。

[root@lizhen ~]# systemctl stop firewalld
[root@lizhen ~]# systemctl start iptables

3)添加规则:ssh服务端口22,dns服务53,httpd服务80,chrony服务123,nfs服务111。并添加一条拒绝所有。

[root@lizhen ~]# iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
[root@lizhen ~]# iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
[root@lizhen ~]# iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
[root@lizhen ~]# iptables -t filter -A INPUT -p udp --dport 123 -j ACCEPT
[root@lizhen ~]# iptables -t filter -A INPUT -p udp --dport 111 -j ACCEPT
[root@lizhen ~]# iptables -t filter -A INPUT -p ip -j REJECT

查看规则表:

[root@lizhen ~]# iptables -vnL --line-numbers

2.firewalld: 开启防火墙:可以正常使用ssh服务,dns服务, httpd服务,chrony服务, nfs服务
且实现:访问第一台机器web服务的9090端口,转发到第二台机器的80端口(永久生效)。

1)关闭iptables,开启firewalld。

[root@lizhen ~]# systemctl stop iptables
[root@lizhen ~]# systemctl start firewalld

2)允许协议访问:ssh,http,dns,chrony,nfs服务。

[root@lizhen ~]# firewall-cmd --add-service=ssh
success
[root@lizhen ~]# firewall-cmd --add-service=http
success
[root@lizhen ~]# firewall-cmd --add-service=dns
success
[root@lizhen ~]# firewall-cmd --add-port=123/udp
success
[root@lizhen ~]# firewall-cmd --add-service=nfs
success

查看firewalld服务:

[root@lizhen ~]# firewall-cmd --list-all

3)第一台虚拟机的web服务的9090端口转发到第二台机器的80端口。

[root@lizhen ~]# firewall-cmd --permanent --add-masquerade  #开启IP伪装
[root@lizhen ~]# firewall-cmd --add-forward-port=port=9090:proto=tcp:toport=80:toaddr=192.168.236.130 --permanent
[root@lizhen ~]# firewall-cmd --reload

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值