Linux作为网关iptables命令的使用

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:
Linux作为网关iptables命令的使用
一.进行源地址转换
1.将系统改为默认,并且打开路由转发
echo 1 > /proc/sys/net/ipv4/ip_forward   iptables -F   iptables -t nat -F   iptables -t mangle -F   iptables -X   iptables -t nat -X   iptables -t mangle -X  
2.源地址转发
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -i eth0 -j MASQUERADE
二.目标地址转换
1.一对一转换
eth0 192.168.0.1  内网
eth1 202.202.202.1 外网
内网中一台主机 192.168.0.101
现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上
iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101   iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1  
2.多对多转换
eth0 192.168.0.1  内网
eth1 202.202.202.1 、202.202.202.2 外网
内网中2台主机 192.168.0.101、192.168.0.102
现在要把外网访问202.202.202.1的所有流量映射到192.168.0.101上,同时把把外网访问202.202.202.2的所有流量映射到192.168.0.102上
这里顺便提一下如何为网卡配置多个IP
ifconfig eth1:1 202.202.202.2 netmask 255.255.255.0 up

iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101   iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.0.1      iptables -t nat -A PREROUTING -d 202.202.202.2 -j DNAT --to-destination 192.168.0.102   iptables -t nat -A POSTROUTING -d 192.168.0.102 -j SNAT --to 192.168.0.1 
3.一对多转换
这个最常用,一般是内网或DMZ区内有多个应用服务器,可以将不同的应用流量映射到不同的服务器上
环境:
eth0 192.168.0.1  内网
eth1 202.202.202.1  外网
内网中2台主机 192.168.0.101(Web服务器)、192.168.0.102(邮件服务器)
现在要把外网访问202.202.202.1的Web流量映射到192.168.0.101上,同时把把外网访问202.202.202.1的邮件访问流量映射到192.168.0.102上
iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.101:80   iptables -t nat -A POSTROUTING -d 192.168.0.101 -p tcp --dport 80 -j SNAT --to 192.168.0.1  iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 25 -j DNAT --to-destination 192.168.0.102:25   iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport 25 -j SNAT --to 192.168.0.1  iptables -t nat -A PREROUTING -d 202.202.202.1 -p tcp --dport 110 -j DNAT --to-destination 192.168.0.102:110   iptables -t nat -A POSTROUTING -d 192.168.0.102 -p tcp --dport 110 -j SNAT --to 192.168.0.1 (iptables -t nat -A POSTROUTING -d 10.0.1.245 -j MASQUERADE) 
三.防火墙只允许使用某些端口
1.只允许使用22端口
iptables -A INPUT -s 10.0.0.2 -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -d 10.0.0.2 -p tcp --sport 22 -j ACCEPT
2.不允许对80端口数据进行转发
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 80 -j DROP
更高级的应用(http://guodong810.blog.51cto.com/4046313/1097499 http://blog.csdn.net/bill_lee_sh_cn/article/details/4401896)
删除规则:
 iptables -t nat --line-numbers -L
iptables -t nat -D POSTROUTING 32


本文转自 luoguo 51CTO博客,原文链接:http://blog.51cto.com/luoguoling/1102025



相关文章
|
15天前
|
Web App开发 Linux 网络安全
工作中常用到的Linux命令
工作中常用到的Linux命令
|
15天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
2天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
12天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
35 9
|
1天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
13 0
|
1天前
|
Linux 开发工具 数据安全/隐私保护
Linux(19)常用解压命令记录
Linux(19)常用解压命令记录
6 0
|
3天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
16 0
|
5天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
12 0
|
6天前
|
域名解析 网络协议 Linux
Linux 中的 Nslookup 命令怎么使用?
【4月更文挑战第12天】
25 6
Linux 中的 Nslookup 命令怎么使用?
|
7天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令