首页 > 系统服务 > 详细

LINUX iptables防火墙

时间:2019-06-11 09:59:06      阅读:107      评论:0      收藏:0      [点我收藏+]
一.iptables基本原理:
1.了解防火墙及iptables:
1)常见的防火墙:
硬件防火墙:思科ASA、华为USG;
软件防火墙:Linux的iptables、windows的ISA;
2)Linux默认防火墙:netfilter(内核的模块)、ipables和firewall(用户工具);
3)iptables是红帽7以前的工具、firewall是rhel7开始提供的工具。
2.iptables的基本结构:表-->链-->规则
1)防火墙表:按照功能进行分类。
raw(状态跟踪)、mangle(标记)、nat(修改)、filter(过滤)
2)防火墙链:按照时机进行分类。
INPUT(入站)、OUTPUT(出站)、FORWARD(转发)、PREROUTING(路由前)、POSTROUTING(路由后)
总结:iptables防火墙工作在网络层,是编写规则、在什么时机完成什么事。是典型的包过滤防火墙。
3)表和链的关系:
raw表:PREROUTING,OUTPUT
mangle表:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING
nat表:PREROUTING、POSTROUTING、OUTPUT
filter表:INPUT、OUTPUT、FORWARD
总结:iptables通过4表5链进行组织和管理,表中放链、链中放规则、规则处理数据包。

3.iptables的匹配顺序:
1)表的顺序(优先级):raw-->mangle-->nat-->filter
2)链的顺序:按照数据流向进行的。
a.入站数据流:PREROUTING-->INPUT
b.出站数据流:OUTPUT-->POSTROUTING
c.转发数据流:PREROUTING-->FORWARD-->POSTROUTING
3)链内规则顺序:从上到下顺序匹配,匹配即停止(LOG除外),如果不匹配使用默认规则。

二.编写iptables规则:
语法:iptables -t 表名 选项 链名 条件 -j 动作
1.编写iptables规则的注意事项:
表省略默认filter,链省略表内所有链,必须设置链的默认策略,选项、链名、动作大写、其他小写。
2.动作:
DROP丢弃,REJECT拒绝,ACCEPT允许,LOG日志
3.选项:对链内规则进行增删改查
1)增:-I指定序号添加规则默认开始添加,-A末尾添加规则,-N新建链
2)删:-D删除一条规则,-F清空链内所有规则,-X删除新建链
3)查:-L列表查看规则,-n数字方式显示,-v显示更详细的信息,--line-numbers显示规则序号;一般用组合如:-L -n、-L -n -v、-L -n -v --line-numbers
4)设置默认策略:-P 链名 DROP

4.iptables编写的条件分类:
1)通用匹配条件:
网络协议(tcp、udp、icmp):-p 网络协议
接口(网卡名:入站、出站):-i 入站网卡, -o 出站网卡
ip地址(源、目标地址):-s 源ip地址或网段,-d 目的ip地址

2)隐含匹配条件:
端口(源、目的端口):-p tcp或udp --dport 目标端口 | --sport 源端口 (单个端口,或连续端口2000:3000);
icmp的类型(8请求,0返回,3网络不可达):-p icmp --icmp-type 类型;
TCP协议标记(SYN,ACK,FIN,RST):-p tcp --tcp-flags 标记范围 被标记的状态 (常用:fin,syn,ack,rst syn);

3)显示匹配条件:
多端口:-m multiport -p tcp|udp --sports 源端口1,源端口2... 或--dports 目的端口1,...
ip地址范围:-m iprange --src-range 源ip1-源ip2
mac地址范围:-m mac --source-mac 源MAC地址
状态:-m state --state 状态 (状态有:NEW新连接,ESTABLISHED已经建立连接,RELATED和已经建立连接相关连接)

三.主机型防火墙规则编写建议流程:
1.需求分析:对外开放的服务;远程管理严格控制;允许本地相互访问;允许已经建立连接和相关连接状态;剩余流量拒绝。
2.编写主机型防火墙流程:
1)对外开放服务:
iptables -A INPUT -m state --state NEW -p tcp或udp -m multiport --dport 服务端口,... -j ACCEPT
2)远程管理严格控制:
iptables -A INPUT -s 管理员IP地址 -p tcp --dport 22 -j ACCEPT
3)允许本地相互访问:
iptables -A INPUT -i lo -j ACCEPT
4)允许已经建立和相关连接状态:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
5)剩余流量拒绝:
iptables -P INPUT DROP
iptables -P FORWARD DROP (设置默认策略)
3.管理防火墙流程:
1)停止防火墙服务:/etc/init.d/iptables stop
2)根据“编写主机型防火墙流程”编写规则
3)保存规则并开机启动防火墙:/etc/init.d/iptables save;chkconfig iptables on
4)后续禁用特定访问流量:iptables -I INPUT 条件 -j DROP (可以结合一次性计划任务做删除操作)

LINUX iptables防火墙

原文:https://blog.51cto.com/14386255/2406847

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!