> 文章列表 > 防火墙iptables

防火墙iptables

防火墙iptables

1.iptables和firewalld的区别?

2者都是防火墙,都是属于包过滤防火墙。

  • iptables 主要是基于接口,来设置规则,从而判断网络的安全性。firewalld 是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全,与硬件防火墙的设置相类似。
  • iptables 防火墙类型为静态防火墙。firewalld 防火墙类型为动态防火墙。

2.iptables使用场景

iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者经该设备转发、路由时,都可以使用iptables进行控制。

3.iptables中的“四表五链”及“堵通策略”

A.“四表”是指,iptables的功能——filter, nat, mangle, raw.

filter, 控制数据包是否允许进出及转发(INPUT、OUTPUT、FORWARD),可以控制的链路有input, forward, output

nat, 控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting

mangle,修改数据包中的原数据,可以控制的链路有prerouting, input, forward, output, postrouting

raw,控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output

注:在centos7中,还有security表,不过这里不作介绍

B.“五链”是指内核中控制网络的NetFilter定义的五个规则链,分别为

PREROUTING, 路由前

INPUT, 数据包流入口

FORWARD, 转发管卡

OUTPUT, 数据包出口

POSTROUTING, 路由后

C.堵通策略是指对数据包所做的操作,一般有两种操作——“通(ACCEPT)”、“堵(DROP)”,还有一种操作很常见REJECT.

谈谈REJECT和DROP之间的区别,Ming写了一封信,向Rose示爱。Rose如果不愿意接受,她可以不回应Ming,这个时候Ming不确定Rose是否接到了信;Rose也可以同样写一封信,在信中明确地拒绝Ming。前一种操作就如同执行了DROP操作,而后一种操作就如同REJECT操作。

4.iptables安装

rpm -qa | grep firewalld    //安装之前检查有没有firewalld
systemctl stop firewalld    // 停止firewalld服务
service iptables status    // 检查是否安装了iptables
yum install -y iptables    // 安装iptables
yum update iptables        // 升级iptables
yum install iptables-services    //安装iptables-service

5.iptables使用

systemctl enable iptables.service    // 设置防火墙开机启动
systemctl start iptables    // 启动防火墙
systemctl stop iptables    // 关闭防火墙,关闭时才运行此命令
systemctl restart iptables    // 重启防火墙,重启时才运行此命令
vim /etc/sysconfig/iptables    // 查看防火墙编辑,最好是通过下面的语句来运行:
iptables-restore /etc/sysconfig/iptables //防火墙生效

6.demo

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]-A PREROUTING -p tcp -m tcp --dport 8638 -j DNAT --to-destination ip:8638
-A PREROUTING -p tcp -m tcp --dport 8639 -j DNAT --to-destination ip:8639
-A PREROUTING -p tcp -m tcp --dport 8640 -j DNAT --to-destination ip:8640
-A POSTROUTING -d ip/32 -p tcp -j MASQUERADECOMMIT
*filter
:INPUT ACCEPT [20:161821]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [615:655925]
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
COMMIT