iptables (三)

NAT

network address translation 网络地址转换

功能实现在 PREROUTING,INPUT,OUTPUT,POSTROUTING

请求报文:修改源/目标IP,定义如何修改
响应报文:修改源/目标IP,根据跟踪机制自动实现

SNAT

source NAT 源网络地址转换。让本地网络中的主机通过某一特定地址访问外部网络,实现地址伪装

功能实现在 POSTROUTING, INPUT

请求报文:修改源IP

DNAT

destination NAT 目标网络地址转换。把本地网络中的主机上的某服务开放给外部网络访问(发布服务和端口映射),但隐藏真实IP

功能实现在 PREROUTING , OUTPUT

请求报文:修改目标IP

PNAT

port nat

端口和IP都进行修改

命令语法

SNAT

--to-source [ipaddr[-ipaddr]][:port[-port]]   如:192.168.7.1-192.168.7.5
--random   --随机
--to-source 将源地址转换的外网IP地址
-d 目标网络
-s 指定将哪些内网网段进行映射转换
-o ethX 指定哪个网卡接口上做NAT地址转换,通常用在出口网卡
-j MASQUERADE 动态拨号使用

# iptables -t nat -I POSTROUTING -s 192.168.7.0/24 ! -d 192.168.7.0/24 -j SNAT --to-source 172.18.44.202    > 固定公网IP
# iptables -t nat -R POSTROUTING 1 -s 192.168.7.0/24 -o eth1 -j MASQUERADE                                  > 动态公网IP

DNAT


--to-destination [ipaddr[-ipaddr]][:port[-port]]

iptables -t nat -A PREROUTING -d 公网IP -p tcp|udp --dport PORT -j DNAT --to-destination 内网IP[:端口]

# iptables -t nat -A PREROUTING -d 172.18.44.202 -p tcp --dport 80 -j DNAT --to-destination 192.168.7.203:80
实验环境:VMware Workstation Pro 14(试用版)
系统平台:
CentOS Linux release 7.4.1708 (Core)       内核  3.10.0-693.el7.x86_64

实验环境:VMware Workstation Pro 14(试用版)
系统平台:
CentOS release 6.9 (Final)             内核  2.6.32-696.el6.x86_64
iptables v1.4.7

网络拓扑图

iptables实现共享上网(SNAT)

有固定公网IP

在192.168.7.202开启路由转发

# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# sysctl -p
net.ipv4.ip_forward = 1

iptables 默认设置如下:

在192.168.7.201检测

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.7.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.7.202   0.0.0.0         UG    0      0        0 eth0

访问内网正常
# curl 7-web-3
7-web-2
IP:192.168.7.203

# ping 192.168.7.202

64 bytes from 192.168.7.202: icmp_seq=1 ttl=64 time=1.06 ms
64 bytes from 192.168.7.202: icmp_seq=2 ttl=64 time=0.461 ms

访问外网被拒绝
# ping www.baidu.com
From 6-web-2.hunk.tech (192.168.7.202) icmp_seq=1 Destination Host Prohibited
From 6-web-2.hunk.tech (192.168.7.202) icmp_seq=2 Destination Host Prohibited

在 192.168.7.202配置

# iptables -F FORWARD
# service iptables save
# iptables -t nat -I POSTROUTING -s 192.168.7.0/24 ! -d 192.168.7.0/24 -j SNAT --to-source 172.18.44.202
# 这一条命令等同上一条,注意是出口的网卡iptables -t nat -I POSTROUTING 1 -s 192.168.7.0/24 -o eth1 -j SNAT --to-source 172.18.44.202
# iptables -t nat -vnL
Chain POSTROUTING (policy ACCEPT 1 packets, 120 bytes)
 pkts bytes target     prot opt in     out     source               destination
    4   312 SNAT       all  --  *      *       192.168.7.0/24      !192.168.7.0/24      to:172.18.44.202 

在192.168.7.201检测

# ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125: icmp_seq=1 ttl=55 time=37.5 ms
64 bytes from 61.135.169.125: icmp_seq=2 ttl=55 time=29.3 ms
可以访问外网了

无固定公网IP

1.方法1:将多个公网IP地址都分配给NAT
# iptables -t nat -R POSTROUTING 1 -s 192.168.7.0/24 ! -d 192.168.7.0/24 -j SNAT --to-source 172.18.44.201-172.18.44.202

2.方法2:使用-j MASQUERADE
# iptables -t nat -R POSTROUTING 1 -s 192.168.7.0/24 -o eth1 -j MASQUERADE
# iptables -t nat -vnL

Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 MASQUERADE  all  --  *      eth1    192.168.7.0/24       0.0.0.0/0

发布内网服务器(DNAT)

在公网上的IP是无法得到内网服务器的服务的

# curl 172.18.44.202
curl: (7) Failed connect to 172.18.44.202:80; No route to host

在 192.168.7.202配置

# iptables -t nat -A PREROUTING -d 172.18.44.202 -p tcp --dport 80 -j DNAT --to-destination 192.168.7.203:80

在公网的IP上访问

# curl http://172.18.44.202
7-web-2
IP:192.168.7.203

REDIRECT 端口转发

通过改变目标IP和端口,将接受的包转发至本机不同端口

功能实现在 PREROUTING OUTPUT 自定义链

--to-ports port[-port]
# iptables -t nat -A PREROUTING -d 192.168.7.203 -p tcp --dport 223 -j REDIRECT --to-ports 80
访问本机的223端口将会被重定向到80端口

原文地址:http://blog.51cto.com/191226139/2089189

时间: 2024-10-02 09:02:06

iptables (三)的相关文章

Linux学习(二十九)iptables(三)nat表的应用

需求 A机器可以访问外网,B机器和A机器处于同一个内网,现在要让B机器通过A机器访问外网. 步骤 1.为虚拟机添加一块网卡. 如果没有区段名称的话,点击'LAN区段(S)...'按钮,新建一个. 2.ifconfig -a命令可以看到刚添加进来的尚未启用的网卡: [[email protected] ~]# ifconfig -a eth1 Link encap:Ethernet HWaddr 00:0C:29:AC:CC:56 inet addr:192.168.182.130 Bcast:1

Linux下的配置iptables防火墙增强服务器安全

Linux下的配置iptables防火墙增强服务器安全 实验要求 iptables常见概念 iptables服务器安装及相关配置文件 实战:iptables使用方法 例1:使用iptables防火墙保护公司web服务器 例2:使用iptables搭建路由器,通过SNAT使用内网机器上网 例3:限制某些IP地址访问服务器 例4:使用DNAT功能把内网web服务器端口映射到路由器外网 实验环境 iptables服务端:xuegod-63   IP:192.168.1.63 iptables客户端:x

2-10~2-11 配置iptables防火墙增强服务 selinux简单讲解

学习一个服务的过程: 1.此服务器的概述:名字,功能,特点,端口号 2.安装 3.配置文件的位置 4.服务启动关闭脚本,查看端口 5.此服务的使用方法 6.修改配置文件,实战举例 7.排错(从下到上,从内到外) ------------------------------------- iptables概述 netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfilter 和 iptables 组成. netfilter/iptables 关系: netfilt

[moka同学摘录]iptables防火墙规则的添加、删除、修改、保存

文章来源:http://www.splaybow.com/post/iptables-rule-add-delete-modify-save.html 本文介绍iptables这个Linux下最强大的防火墙工具,包括配置iptables三个链条的默认规则.添加iptables规则.修改规则.删除规则等. 一.查看规则集 iptables --list -n // 加一个-n以数字形式显示IP和端口,看起来更舒服 二.配置默认规则 iptables -P INPUT DROP  // 不允许进  

2-7-配置iptables防火墙增加服务器安全

本节所讲内容: ?        iptables常见概念 ?        iptables服务器安装及相关配置文件 ?        实战:iptables使用方法 ?        例1:使用iptables防火墙保护公司web服务器 ?        例2:使用iptables搭建路由器,通过SNAT使用内网机器上网 ?        例3:限制某些IP地址访问服务器 ?        例4:使用DNAT功能把内网web服务器端口映射到路由器外网 ?        selinux概述-状

网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语

一:linux网络相关 ifconfig命令,如果没有,用下列命令安装一下yum install -y net-tools如果想禁用一个网卡:ifdown ens33启用网卡ifup ens33重启网卡ifdown ens33 && ifup ens33设定虚拟网卡ens33:0cd /etc/sysconfig/network-scripts/cp ifcfg-ens33 ifcfg-ens33\:0vi !$修改NAME和 DEVICE为ens33:0修改ipaddr查看网卡连接状态m

CentOS7下安装配置PPTP VPN服务器

一.运行环境系统:CentOS Linux release 7.2.1511 (Core) 软件包:ppp-2.4.5-33.el7.x86_64pptpd-1.4.0-2.el7.x86_64iptables-1.4.21-17.el7.x86_64iptables-services-1.4.21-17.el7.x86_64 二.安装方式使用yum安装yum install -y ppp pptpd iptables 三.安装完毕后配置pptp1.配置DNS参数vim /etc/ppp/opt

Linux平台日常运维管理

查看系统负载命令 [[email protected] ~]# w 04:24:14 up 3:35,  4 users,  load average: 0.40, 0.17, 0.14 USER    TTY      FROM              [email protected]   IDLE  JCPU   PCPU WHAT root    pts/0    192.168.137.1    00:50   2:09m  0.63s  0.63s -bash root    pt

LINUX系统管理员 统一鉴定 考试大纲 (三级)

        LINUX系统管理员 统一鉴定 考试大纲 (三级)             LINUX系统管理员 统一鉴定考试大纲 (三级) 1.评分比重以100分为满分 2.考核要求中,X表示掌握程度为了解,Y表示掌握程度为熟悉,Z表示掌握程度为精通 3.网络服务的每一章节必须要有一个案例.两个练习? 竞赛内容 分值比重 知识点 考核要求 一.Linux的交换空间管理 5 交换空间的介绍 Y 交换空间的分类:交换分区,交换文件 X 创建交换分区 Z 使用交换分区 Z 关闭和删除交换分区 Z 创