IPtables详解:

IPtables:简介:

iptables四表五链
iptables:表

filter:负责过滤功能,防火墙;内核模块:iptables_filter
nat:network address translation,网络地址转换功能,内核模块:iptables_nat
mangle:拆解保温,做出修改,并重新封装的功能:iptables_mangle
raw:关闭nat表上启用的链接追踪机制:iptables_raw
自定义所有的规则都会存储到这4张表中

iptables:链

prerouting:规则存储可以在 raw,mangle,nat表
input:规则存储可以在 mangle,filter,nat表
output:规则存储可以在raw,mangle,nat,filter表
forward:规则存储可以在mangle,filter表
postrouting:规则存储可以在mangle,nat表

表与链的关系 表(功能)链(钩子)

raw表中的规则可以被prerouting,output使用
mangle表中的规则可以被prerouting,input,forward,output,postrouting使用
nat表中的规则可以被input,forward,output使用
filter表中的规则可以被input,forward,output使用

处理关系:

1.ACCEPT:允许数据包通过
2.DROP:直接丢弃数据包,不回复任何消息
3.REJECT:拒绝数据包通过,必要时给数据发送端一条相应信息,客户端会受到拒绝的信息
4.SNAT:源地址转换,解决内网用户同一个公网地址上网的问题
5.MASQUERADE:是SNAT的一种特殊形式,适用于动态,临时会改变的IP地址
6.DNAT:目标地址转换
7.REDIRECT:在本机做端口映射
8.LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,除了记录不对任何数据包进行任何操作

注意:数据包经过一个链的时候会将当前链所有的规则都匹配一遍如果4张表处于一条链时优先级顺序是:raw --> mangle --> nat --> filter

IPtables:命令参数:

IPtables:实例:

- -设置允许端口通过


- -ubuntu设置网络和端口转发

centos执行是同等的不过修改完之后需要执行:

service iptables save 
service iptables restart

场景:
A服务(可上网):10.1.1.2 网口 eno1
B服务(不可上网):10.1.1.3
需求:让B通过A 网口 进行网络转发可上网
修改配置文件:

vim /etc/sysctl.conf
#修改以下内容 0 修改为 1 打开forward 流量转发
net.ipv4.ip_forward = 1
#检查是否生效
cat /proc/sys/net/ipv4/ip_forward
#如果没有生效则 执行 bash  如果生效则不执行
bash

使用iptables进行网络转发

iptables -t nat -I POSTOUTING -o enp5s0 -j MASQUERADE

场景:
A服务(可上网):10.1.1.2 网口 eno1
B服务(不可上网):10.1.1.3 搭建了apache服务
需求:让B通过A 网口 进行网络转发可上网
修改配置文件:

vim /etc/sysctl.conf
#修改以下内容 0 修改为 1 打开forward 流量转发
net.ipv4.ip_forward = 1
#检查是否生效
sysctl -p
cat /proc/sys/net/ipv4/ip_forward
#如果没有生效则 执行 bash  如果生效则不执行
bash

端口转发:

#统一端口转发:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 31521 -j DNAT --to 192.168.0.211:1521
iptables -t nat -A POSTROUTING -j MASQUERADE

#本机端口转发:
 iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

- -设置允许公网登录本地mysql
场景:
公网服务器 :enp3s0:公网IP enp4s0:内网IP - 10.1.1.2
mysql服务器:enp4s0:内网IP - 10.1.1.3

iptables -t nat -A PREROUTING -p tcp --dport 63306 -j DNAT --to-destination 10.1.1.3:3306
iptables -t nat -A POSTROUTING -d 10.1.1.3-p tcp --dport 3306 -j SNAT --to 10.1.1.2
#登录mysql
mysql -h 公网IP -p 63306 -uroot -p
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值