前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

Iptables配置介绍

qiguaw 2025-01-10 16:32:03 资源文章 21 ℃ 0 评论

Linux Iptables配置介绍

一.简介

iptables是与linux内核集成的IP信息包过滤系统。如果Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好的控制IP信息包过滤和防火墙配置。

简单来讲,防火墙就是用于实现Linux下访问控制的功能的。我们的任务就是去定义防火墙如何工作,这是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检查

二.配置介绍

1.规则链

Iptables一共可分为5个规则链:

1.PREROUTING(路由前)

2.INPUT(数据包流入口)

3.FORWARD(转发关卡)

4.OUTPUT(数据包出口)

5.POSTROUTING(路由后)

这是NetFilter(网络过滤器)规定的5个规则链,任何一个数据包,只要经过本机,必将经过这5个链中的一个链。

当我们定义策略的时候,要分别定义多条功能,其中:定义数据包允许或不允许的策略,是filter表过滤的功能;而定义地址转换的功能的则是nat表选项。mangle的主要作用是可以修改封包内容(暂未使用到)

对于filter来讲一般只能做在3个链上:INPUT,FORWARD,OUTPUT

对于nat来讲一般也只能做在3个链上:PRERPOUTING,OUTPUT,POSTROUTING


2.详解COMMAND

2.1规则写法

格式: iptables 【-t table】 COMMAND chain CRETIRIA -j ACTION

-t table:filter、nat,若不在该参数,默认写入到filter表中

COMMAND:定义如何对规则进行管理

chain:指定接下来的规则到底是在哪个链上操作的

CRETIRIA:指定匹配标准

-j ACTION:指定如何进行如何处理

2.2链管理命令

-P 设定默认策略:iptables -P INPUT DROP,表示把默认规则给拒绝了,且没有定义哪个动作,所以关于外界连接的所有规则包括CRT远程连接的都给拒绝了

-F 清空规则链:iptables -t nat -F 清空nat表的所有链

-N 支持用户新建一个链

-X 用户删除用户自定义的空链

-E 用来Rename chain主要是用来给用户自定义的链重命名

-Z 清空链,及链中默认规则的计数器


2.2规则管理命令

-A 新增规则链:iptables -A INPUT -i eth0 -j ACCEPT ,表示所有从eth0过来的连接均允许通过

-I num 插入,把当前规则插入为第几条:-I 3 ,插入为第三条

-R num Replays替换/修改第几条规则:iptables -R 3

-D num 删除,明确指定删除第几条规则


2.3查看管理命令“-L”

附加子命令

-n:以数字的方式显示IP,将IP直接显示出来

-v:显示详细信息

-vv/-vvv,越多越详细

--line-numbers:显示规则的行号

-t nat:显示nat表中所有的信息


注:-t nat需要放在 ‘-L’前, iptables -t nat -L -n


2.4实例

1. 设置默认策略

iptables -P INPUT DROP------拒绝所有连接

iptables -P OUTPUT ACCEPT----允许数据包出口

iptables -P FORWARD DROP---拒绝所有转发


2. eth0例外

iptables -t filter -A INPUT -i eth0 -j ACCEPT

iptables -t filter -A OUTPUT -o eth0 -j ACCEPT

使服务器接收所有从eth0过来的连接或数据出口,防止设置默认策略后,造成内网无法访问!

-i入接口匹配
-o出接口匹配


3. lo例外(访问本地数据库)

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT


4. 端口开放,如XXX程序 5099端口,使外网可通过5099端口注册到XXX

iptables -A INPUT -p udp --dport 5099 -j ACCEPT

iptables -A OUTPUT -p udp --sport 5099 -j ACCEPT


若需要开放的是范围端口,如音XXX端口30000:31000

iptables -A INPUT -p udp --dport 30000:31000 -j ACCEPT

iptables -A OUTPUT -p udp --sport 30000:31000 -j ACCEPT


注: 此处是小写p,

-p 协议匹配

--sport,--dport源和目的端口匹配


5. 端口转发

需要先开启iptables FORWARD功能:/etc/sysctl.conf配置文件的net.ipv4.ip_forward=1(默认是0)


iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -t nat -A PREROUTING -d XXX.XXX.XXX.XXX -p tcp -m tcp --dport 8980 -j DNAT --to-destination 192.168.XXX.XXX:8980

iptables -t nat -A POSTROUTING -d 192.168.XXX.XXX -p tcp --dport 8980 -j SNAT --to-source 192.168.XXX.XXX

iptables -A FORWARD -i eth0 -s 192.168.XXX.XXX -p tcp --sport 8980 -j ACCEPT

iptables -A FORWARD -o eth0 -d 192.168.XXX.XXX -p tcp --dport 8980 -j ACCEPT


以上表示所有外网访问XXX.XXX.XXX.XXX:8980,均转发到内网192.168.XXX.XXX:8980


6. 路由功能

iptables -t nat -A POSTROUTING -s 192.168.XXX.0/24 -o eth1 -j MASQUERADE

表示所有XXX网段的IP,均可通过eth1访问外网;

iptables -t nat -A POSTROUTING -s 192.168.XXX.60 -o eth1 -j MASQUERADE

表示只有192.168.3.60这个IP,可通过eth1访问外网


7. 启动/保存等

service iptables save 保存到/etc/sysconfig/iptables

service iptables start/stop/restart/status

chkconfig iptables on 永久打开iptables,保证开机自启

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表