IPTABLES常规操作规则与放行

iptables

iptables [-t 表 ] -L -n

查看一张表上的规则

iptables [-t 表 ] -F     清空所有规则

iptables  -P   链  动作      设置某个链的默认规则

添加iptables规则

iptables [-t 表]  -A  链    匹配的条件             -j      动作
                  -I        -p       协议                 ACCEPT    放行
                  -D        -s       源IP地址             DROP      丢弃
                  -L        -d       目的IP地址           REJECT    拒绝
                            --sport  源端口               DNAT  --to-destication    目的地址转换
                            --dport  目的端口             SNAT  --source            源地址转换
iptables -A INPUT -p tcp --dport 80 -j DROP

“堵” 策略,默认规则是“放行”,添加“堵”的规则

“通” 策略 默认规则是“拦截”,添加“放行”规则

示例
在INPUT链拦截80端口

iptables -A INPUT -p tcp --dport 80 -j DROP

在INPUT链放行3306端口

iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

通过192.168.189.131访问81端口的放行

iptables -A INPUT -p tcp --dport 81 -d 192.168.189.131 -j ACCEPT

禁ping

iptables -A INPUT -p icmp -j DROP
iptables -A INPUT -p icmp -j REJECT

在OUTPUT链添加放行源端口为22的请求

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

在OUTPUT链添加放行源IP为192.168.189.161的请求

iptables -I OUTPUT -s 192.168.189.161 -j ACCEPT

在OUTPUT链添加放行源端口为81的请求

iptables -A OUTPUT -p tcp --sport 81 -j ACCEPT

目的地址转换
将访问192.168.189.161 端口为2222的请求转发至10.30.0.128的22端口

iptables -t nat -A PREROUTING -p tcp  -d 192.168.189.161 --dport 2222 -j DNAT --to-destination 10.30.0.128:22

源地址转换,所有来自于10.30.0.0/24网段的请求源地址转换为192.168.189.161

iptables -t nat -A POSTROUTING -p tcp  -s 10.30.0.0/24  -j SNAT --to-source 192.168.189.161
### 创建和管理iptables自定义规则链 #### 创建自定义链 为了更好地管理和分类防火墙规则,可以通过`iptables`命令创建自定义链。例如,要创建名为`IN_WEB`的自定义输入链用于专门处理Web流量: ```bash sudo iptables -t filter -N IN_WEB ``` 此命令会在过滤表(`filter`)中新增一个叫做`IN_WEB`的链[^1]。 对于MySQL服务同样适用,通过下面指令建立专属于数据库连接请求筛选的链条: ```bash sudo iptables -t filter -N IN_MYSQL ``` 这使得特定应用相关的网络控制逻辑更加清晰明了[^2]。 #### 向自定义链添加规则 一旦有了自定义链之后,则可以在其中加入具体的匹配条件来决定允许还是拒绝数据包通行。比如向刚才新建好的`IN_MYSQL`链里增加一条仅限来自内部网络(假设为172.16.0.0/16)对TCP协议下3306端口发起访问请求的数据报文予以放行的规定: ```bash sudo iptables -t filter -I IN_MYSQL -p tcp -m tcp --dport 3306 -s 172.16.0.0/16 -j ACCEPT ``` 这里使用了`-I`参数表示插入新条目至指定位置,默认情况下会将其置于列表最前端;而`-j ACCEPT`意味着符合条件的数据流将被接受并继续传输下去。 #### 将自定义链关联到标准链上 为了让这些精心设计过的个性化规则生效,还需要把它们挂接到系统预设的标准路径上去。以HTTP(S)服务器为例,在常规入口处调用之前构建完成的那个`IN_WEB`链: ```bash sudo iptables -t filter -A INPUT -p tcp -m multiport --dports 80,443 -j IN_WEB ``` 上述语句表明凡是目标地址指向本地机器且目的端口号等于80或443(即HTTP/HTTPS常用端口)的所有TCP层面上的信息都将先经过`IN_WEB`这一级额外审查再作进一步处置[^5]。 #### 清除不再使用的自定义链 如果某个自定义链已经没有存在的必要——既无任何有效规则也未其他部分相连结的话,那么就可以考虑彻底移除了。执行如下命令可实现该功能: ```bash sudo iptables -X IN_WEB ``` 注意只有当所选对象确实为空闲状态时才能成功实施删除操作[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值