linux iptables

本文围绕Linux iptables展开,介绍了其安装方法及安装报错解决办法。阐述了iptables基础概念,如规则、链、表等,说明了命令格式与动作选项。还讲解了查询运行状态、查看设置情况、清除规则、编辑配置文件等操作,并给出配置示例与端口映射配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提,iptables的安装
在线安装命令: yum install iptables-services -y
出现 autoreconf: command not found 的解决方法:yum install autoconf automake libtool ncurses-devel

查看iptables的状态 执行:systemctl status iptables 或者 service iptables status

一、iptables基础
①规则(rules):网络管理员预定义的条件
②链(chains): 是数据包传播的路径
③表(tables):内置3个表filter表,nat表,mangle表分别用于实现包过滤网络地址转换和包重构的功能
④filter表是系统默认的,INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。
⑤nat表(网络地址转换),PREROUTING(修改即将到来的数据包),OUTPUT(修改在路由之前本地生成的数据包),POSTROUTING(修改即将出去的数据包)
二、iptables命令格式
iptables [-t 表] -命令 匹配 操作 (大小写敏感)
动作选项
ACCEPT 接收数据包
DROP 丢弃数据包
REDIRECT 将数据包重新转向到本机或另一台主机的某一个端口,通常功能实现透明代理或对外开放内网的某些服务
SNAT 源地址转换
DNAT 目的地址转换
MASQUERADE IP伪装
LOG 日志功能
⑥mangle表,PREROUTING,OUTPUT,FORWORD,POSTROUTING,INPUT
三、查询iptables的运行状态
执行:service iptables status
在这里插入图片描述
四、查看本机关于IPTABLES的设置情况
执行:iptables -L -n

Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain RH-Firewall-1-INPUT (0 references)
target prot opt source destination
ACCEPT all – 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp – 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT esp – 0.0.0.0/0 0.0.0.0/0
ACCEPT ah – 0.0.0.0/0 0.0.0.0/0
ACCEPT udp – 0.0.0.0/0 224.0.0.251 udp dpt:5353
ACCEPT udp – 0.0.0.0/0 0.0.0.0/0 udp dpt:631
ACCEPT all – 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp – 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
REJECT all – 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
可以看出我在安装linux时,选择了有防火墙,并且开放了22,80,25端口.
如果你在安装linux时没有选择启动防火墙,是这样的
在这里插入图片描述
五、清除原有规则.
不管你在安装linux时是否启动了防火墙,如果你想配置属于自己的防火墙,那就清除现在filter的所有规则.
执行: iptables -F 清除预设表filter中的所有规则链的规则
执行:iptables -X 清除预设表filter中使用者自定链中的规则

六、编辑配置文件:
执行:vi /etc/sysconfig/iptables
编辑完成后执行:service iptables restart

七、iptables配置示例

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
# -A INPUT -s 124.233.222.222 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
# -A INPUT -s 180.233.222.222 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT


-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

七、示例
1.-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
解释:-m state --state 状态>
有数种状态,状态有:
(1)INVAID:无效的封包,例如数据破损的封包状态
(2)ESTABLISHED :已经联机成功的联机状态
(3)NEW:想要建立联机的封包状态
(4)RELATED:这个最常用,表示这个封包是与我们主机发送出去的封包有关,可能是响应封包或者是联机成功之后的传送封包,这个状态很常被设定,因为设定了他之后,只要未来有本机发送出去的封包,即使我们没有设定封包的INPUT规则,该有关的封包还是可以进入我们主机,可以简化相当多的设定规则。
2.-A INPUT -p icmp -j ACCEPT
解释:允许ping通过防火墙
3.-A INPUT -i lo -j ACCEPT
解释:-i 后面跟网卡的名字

4.增加,插入,删除和替换规则
iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [–sport 源端口号] [-d 目的IP|目标子网] [–dport 目标端口号] [-j 动作]
参数:-A 增加
-I 插入
-D 删除
-R 替换
5.-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
解释:允许22端口访问该服务器
6.-A INPUT -s 124.233.222.222 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
解释:允许ip为124.233.222.222访问本机的22端口

八、配置端口映射
执行:
echo net.ipv4.ip_forward=1>>/etc/sysctl.conf //开启系统路由模式功能
sysctl -p //使内核修改生效

配置在开机启动里:vi /etc/rc.local
echo 1 >/proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 21 -j DNAT --to-destination 192.168.3.197:21
iptables-save > /etc/sysconfig/iptables

重启iptables,执行:service iptables restart

查看是否设置成功,执行:iptables -L -n -t nat

注意: 让你的linux支持ftp的端口转发
modprobe ip_nat_ftp ###加载ip_nat_ftp模块(若没有编译进内核),以使ftp能被正确NAT
modprobe ip_conntrack_ftp ###加载ip_conntrack_ftp模块

在这里插入图片描述

Linux Iptables命令列表: 用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改 iptables - [RI] chain rule num rule-specification[option] 用iptables - RI 通过规则的顺序指定 iptables -D chain rule num[option] 删除指定规则 iptables -[LFZ] [chain][option] 用iptables -LFZ 链名 [选项] iptables -[NX] chain 用 -NX 指定链 iptables -P chain target[options] 指定链的默认目标 iptables -E old-chain-name new-chain-name -E 旧的链名 新的链名 用新的链名取代旧的链名 说明 Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。 可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。 TARGETS 防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队], 或者 RETURN[返回]。 ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。
Linux iptables是一个基于内核的防火墙工具,它可以通过配置规则表来控制网络流量的传入和传出。iptables可以被用来保护计算机免受恶意攻击和未经授权的访问。它使用规则来决定如何处理数据包,可以允许或拒绝特定类型的流量。 在设置iptables时,一般会使用命令来定义规则。例如,可以使用命令`iptables -P INPUT DROP`和`iptables -P FORWARD DROP`来将默认规则设置为拒绝所有输入和转发的流量。这意味着除非明确允许,否则所有的数据包都会被丢弃。 此外,还可以使用命令`iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT`来允许通过TCP协议的端口20和21的流量进入系统。同样地,可以使用命令`iptables -I FORWARD -d 192.168.80.0/24 -p tcp --dport 24500:24600 -j DROP`来拒绝转发到目标IP地址为192.168.80.0/24且端口范围为24500至24600的TCP流量。 iptables可以通过配置不同的规则表(如raw、mangle、nat和filter)来实现不同的功能。这些规则在配置后会立即生效,无需重新启动服务。此外,还可以创建自定义的链来更好地组织规则。 总结来说,Linux iptables是一个强大的防火墙工具,通过配置规则表和链,可以控制网络流量的传入和传出,从而保护计算机免受恶意攻击和未经授权的访问。通过设置默认规则和特定的规则,可以选择允许或拒绝特定类型的流量进入或离开系统。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux——iptables防火墙](https://blog.csdn.net/nwp0611/article/details/130992009)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [防火墙之iptables](https://blog.csdn.net/zmac111/article/details/117226578)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雄哥007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值