0
点赞
收藏
分享

微信扫一扫

iptables相关配置及用法

杰森wang 2024-10-15 阅读 30

iptables不是服务,但有服务脚本;服务脚本的主要作用在于管理保存的规则
服务脚本启动或停止将自动装载及移除iptables/netfilter相关的内核模块;
iptables_nat, iptables_filter, iptables_mangle, iptables_raw, ip_nat, ip_conntrack

针对ftp特殊的协议,可以装载额外的模块,vim /etc/sysconfig/iptables-config  (ip_nat_ftp ip_conntrack_ftp)

iptables相关配置及用法_NAT

lsmod | grep ip

iptables相关配置及用法_vim_02

iptables 三张表

Filter表里有:INPUT ,FORWARD ,OUTPUT 三个链;
NAT表里有:PREROUTING ,OUTPUT ,POSTROUTING 三个链;
Mangle表(修改报文原数据)里有:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 五个链

命令:
管理规则
-A:附加一条规则,添加在链的尾部
-I CHAIN [num]: 插入一条规则,插入为对应CHAIN上的第num条;
-D CHAIN [num]: 删除指定链中的第num条规则;
-R CHAIN [num]: 替换指定的规则;
管理链:
-F [CHAIN]:flush,清空指定规则链,如果省略CHAIN,则可以实现删除对应表中的所有链
-P CHAIN: 设定指定链的默认策略;
-N:自定义一个新的空链
-X: 删除一个自定义的空链
-Z:置零指定链中所有规则的计数器;
-E: 重命名自定义的链;
查看类:
-L: 显示指定表中的规则;
-n: 以数字格式显示主机地址和端口号;
-v: 显示链及规则的详细信息
-vv:
-x: 显示计数器的精确值
--line-numbers: 显示规则号码

 

扩展匹配
隐含扩展
-p tcp
  --sport PORT[-PORT]: 源端口
  --dport PORT[-PORT]: 目标端口
  --tcp-flags mask comp: 只检查mask指定的标志位,是逗号分隔的标志位列表;comp:此列表中出现的标记位必须为1,comp中没出现,而mask中出现的,必须为0;
  --tcp-flags SYN,FIN,ACK,RST SYN
  --syn
-p icmp
  --icmp-type
    0: echo-reply
    8: echo-request
-p udp
  --sport
  --dport
-p tcp --dport

显式扩展: 使用额外的匹配机制

  state: 状态扩展
  结合ip_conntrack追踪会话的状态
    NEW: 新连接请求
    ESTABLISHED:已建立的连接
    INVALID:非法连接
    RELATED:相关联的
  -m state --state NEW,ESTABLISHED -j ACCEPT
  对于ftp协议首先要装载ip_conntrack_ftp和ip_nat_ftp模块 (vim /etc/sysconfig/iptables-config) IPTBALES_MODULES="ip_nat_ftp ip_conntrack_ftp"
  例:iptables -A INPUT -d 172.16.100.7 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

  multiport: 离散的多端口匹配扩展
    --source-ports
    --destination-ports
    --ports

    例:-m multiport --destination-ports 21,22,80 -j ACCEPT

 

Iptables NAT配置
[root@iptables ~]# echo 1 >/proc/sys/net/ipv4/ip_forward 临时开启IP转发
[root@iptables ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1 开启IP转发(永久生效)
[root@iptables ~]# sysctl –p 应用更改
redirect 将数据包重定向到另一台主机的某个端口,通常用实现透明代理和对外开放内网某些服务
snat 源地址转换,改变数据包的源地址
dnat 目的地址转换,改变数据包的目的地址
masquerade IP伪装,用于ADSL等动态拨号上网
prerouting 只支持-i,不支持-o,在路由之前,对目的地址进行修改
postrouting 只支持-o,不支持-i,在路由之后,对源地址进行修改
output DNAT 、REDIRECT(本机)DNAT和REDIRECT规则用来处理来自NAT主机本身生成的出站数据包


1、PPOE拨号NAT设置,在nat表的POSTROUTING链加入规则(MASQUERADE)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

2、共享上网设置,所有从eth0(外网卡)出来的数据包的源地址改成10.10.10.1(SNAT)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 10.10.10.1
非外网口地址为NAT用,必须先要绑定到接口上
ifconfig eth0:0 10.10.10.2 netmask 255.255.255.0 up

3、端口映射(DNAT)
iptables -t nat -A PREROUTING -p tcp -d 10.10.10.1 --dport 2121 -j DNAT --to 10.10.20.10:21
iptables -A FORWARD -p tcp -d 10.10.20.10 --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp -s 10.10.20.10 --sport 21 -j ACCEPT
客户端在dns项里无论输入任何ip,都给他定向到服务器指定的一个8.8.8.8上去
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j DNAT --to-destination 8.8.8.8:53
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 53 -j DNAT --to-destination 8.8.8.8:53

4、所有从eth1(内网卡)进入的请求80和82端口的数据,转发到代理服务器squid的80端口(REDIRECT)
iptables -t nat -A PREROUTING - -i eth1 -p tcp -m multiport --dports 80,82 -j REDIRECT --to-ports 80

5、NAT轮寻
iptables –t nat –A PREROUTING –d 219.142.217.161 –j DNAT --to-destination 192.168.1.24-192.168.1.25

 



举报

相关推荐

0 条评论