0
点赞
收藏
分享

微信扫一扫

iptables端口转发 外部访问5555转发到服务器22端口 四表五链

一、简介

iptables的端口转发功能,如nginx的4层代理,可以将外部访问的端口重定向到服务器内部的端口,iptables端口转发功能通常涉及到PREROUTING和nat表。

二、添加端口转发规则

#开启IP转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
#添加端口转发规则
iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 5555
#允许外部访问服务器5555端口
iptables -I INPUT -p tcp --dport 5555 -j ACCEPT
#保存iptables规则
service iptables save
#查看iptables规则
iptables -t nat -nvL

三、iptables的四表五链

在Linux系统中,iptables定义IP数据包过滤规则。iptables有四个表和五个链组成,这四个表分别是filter、nat、mangle和raw,五个链包括PREROUTING、INPUT、FORWARD、OUTPUT和POSTROUTING。

PREROUTING:预路由,所有数据包进入路由前由此链负责
INPUT:进站,数据包目标是本机由此链负责
OUTPUT:出站,数据包从本机发送由此链负责
FORWORD:转发,数据包的目标地址是其它外部地址由此链负责
POSTROUTING:后路由,所有数据包离开本机时由此链负责

规则

ACCEPT:允许数据包通过
DROP:直接丢弃数据包
REJECT:拒绝数据包通过,必要时给数据发送端一个响应信息
SNAT:源地址转换
DNAT:目标地址转换
REDIRECT:重定向

常用filter表(管理INPUT、FORWARD、OUTPUT三个链)和nat表(管理PREROUTING、OUTPUT、POSTROUTING三个链)。

常见的iptables规则设置示例

0.规则

#添加
iptables -A 
#插入
iptables -I 
#查看
iptables -L
#查看 带行号
iptables -L --line-number
#删除
iptables -D
#清空规则
iptables -F 

1.设置默认策略

#设置默认策略为DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

2.允许特定端口 

#添加允许80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#添加允许特定IP访问 如192.168.1.1
iptables -A INPUT -s 192.168.1.1 -j ACCEPT
#添加运行特定IP和端口访问
iptables -A INPUT -s 192.168.1.1 -p tcp --dport 80  -j ACCEPT

3.端口转发 

REDIRECT(重定向)

#将进入的80端口的流量转发到本机的8080端口
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080

DNAT(目标网络地址转换

#将进入的数据包从一个IP地址转发到另一个IP地址(通常是本机)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1:8080

4.删除规则

#添加允许80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#删除INPUT链上允许80端口访问的规则
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
#或者
#查看当前规则显示行号(增加或删除规则,行号会实时更新)
iptables -L --line-number
#删除指定编号的规则(例如INPUT链上编号2)
iptables -D INPUT 2

5.保存规则

#保存iptables规则
service iptables save



举报

相关推荐

0 条评论