iptables的一些基本应用

本文介绍了iptables的基础应用,包括在CentOS和Debian/Ubuntu上的安装,如何查看、添加、删除规则,以及如何在开机时启动和保存规则。重点讲解了开放端口、屏蔽IP以及规则保存的方法。

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

一、安装

1. CentOS

yum install iptables

2. Debian/Ubuntu

yum install iptables

二、使用命令

其他一些详细配置

1. 查看已添加的iptables规则

iptables -L -n

v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M)
n:只显示IP地址和端口号,不将ip解析为域名

2. 开放指定的端口

  1. 允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
  1. 允许已建立的或相关连的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
  1. 允许所有本机向外的访问
iptables -A OUTPUT -j ACCEPT 
  1. 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT 
  1. 允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  1. 允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT 
iptables -A INPUT -p tcp --dport 20 -j ACCEPT

如果有其他端口的话,规则也类似,稍微修改上述语句就行

  1. 禁止其他未允许的规则访问
iptables -A INPUT -j REJECT (注意:如果22端口未加入允许规则,SSH链接会直接断开。) 
iptables -A FORWARD -j REJECT 

3. 屏蔽IP

  1. 屏蔽单个IP
iptables -I INPUT -s 123.45.6.7 -j DROP
  1. 封整个段即从123.0.0.1到123.255.255.254
iptables -I INPUT -s 123.0.0.0/8 -j DROP
  1. 封IP段即从123.45.0.1到123.45.255.254
iptables -I INPUT -s 124.45.0.0/16 -j DROP
  1. 封IP段即从123.45.6.1到123.45.6.254
iptables -I INPUT -s 123.45.6.0/24 -j DROP

4. 删除已添加的iptables规则

  1. 将所有iptables以序号标记显示
iptables -L -n --line-numbers
  1. 删除INPUT里序号为8的规则
iptables -D INPUT 8

删除一条规则后,序号会重新排序,所以删除时注意查看序号标记

三、iptables的开机启动及规则保存

1. CentOS

  1. CentOS上可能会存在安装好iptables后,iptables并不开机自启动,可以执行以下命令,将其加入开机启动:
chkconfig --level 345 iptables on
  1. 保存规则:
service iptables save

1. Ubuntu

Ubuntu上iptables是不会保存规则的,需要按如下步骤进行,自启动一个脚本记载规则配置。

步骤一:保存规则到 /etc/iptables.rules:

iptables-save > /etc/iptables.rules

步骤二:编写脚本/etc/iptables-rule-reload,内容如下:

#!/bin/bash 
iptables-restore < /etc/iptables.rules

步骤三:给该脚本添加执行权限

chmod +x /etc/iptables-rule-reload

步骤四:编写systemd服务 /etc/systemd/system/iptables-rule-reload.service,内容如下

[Unit]
Description=/etc/iptables-rule-reload Compatibility
Documentation=man:systemd-iptables-rule-reload-generator(8)
ConditionFileIsExecutable=/etc/iptables-rule-reload
After=network.target
 
[Service]
Type=forking
ExecStart=/etc/iptables-rule-reload start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target

步骤五:设置服务自启动:

systemctl enable iptables-rule-reload.service
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值