linux_iptables配置
- 格式:docx
- 大小:34.67 KB
- 文档页数:4
iptables命令参数iptables命令是Linux系统中用于设置防火墙规则的工具,它允许用户通过在内核中的网络数据包传输路径上添加或删除规则来过滤、修改和重定向网络数据包。
iptables命令有许多参数可以用来指定具体的操作和规则。
下面是一些常用的iptables命令参数:1. -A或--append:添加规则到规则链的末尾。
例如,`iptables -A INPUT -s 192.168.0.1 -j DROP`将会添加一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。
2. -I或--insert:在规则链内指定的位置插入规则。
例如,`iptables -I INPUT3 -s 192.168.0.1 -j DROP`将会在INPUT链的第3个位置插入一个规则,禁止来自IP地址为192.168.0.1的主机的所有入站连接。
3. -D或--delete:从规则链中删除规则。
例如,`iptables -D INPUT -s 192.168.0.1 -j DROP`将会删除INPUT链中所有来自IP地址为192.168.0.1的主机的入站连接的规则。
4. -P或--policy:设置默认策略。
例如,`iptables -P INPUT ACCEPT`将会将INPUT链的默认策略设置为接受所有入站连接。
5. -s或--source:指定源IP地址或地址段。
例如,`iptables -A INPUT -s 192.168.0.0/24 -j DROP`将会添加一个规则,禁止来自192.168.0.0/24网段的主机的所有入站连接。
6. -d或--destination:指定目标IP地址或地址段。
例如,`iptables -AOUTPUT -d 192.168.0.1 -j DROP`将会添加一个规则,禁止所有出站连接到IP地址为192.168.0.1的主机。
7. -p或--protocol:指定要过滤的传输层协议,如TCP、UDP或ICMP。
Linux命令高级技巧使用iptables命令进行防火墙配置Linux系统中,iptables是一个非常常用的命令,用于配置Linux操作系统的防火墙规则。
掌握iptables的高级技巧,可以帮助我们更好地保护系统安全和网络通信。
本文将介绍使用iptables命令进行防火墙配置的一些高级技巧,以帮助读者更好地理解和运用这个强大的工具。
一、什么是iptables命令iptables是一个在Linux内核中实现的防火墙工具,用于管理网络通信规则。
它允许我们定义输入、输出和转发数据包的规则,从而控制网络流量。
使用iptables命令,我们可以过滤和转发数据包,以及进行网络地址转换和端口转发等操作。
二、iptables配置文件在开始使用iptables命令之前,了解iptables的配置文件将有助于更好地理解和调整防火墙规则。
iptables的配置文件位于"/etc/sysconfig/iptables"路径下,可以使用文本编辑器打开进行编辑。
三、基本的iptables规则1. 允许特定IP地址访问若想允许特定IP地址访问服务器的某个端口,可以使用如下命令:```iptables -A INPUT -p tcp -s IP地址 --dport 端口号 -j ACCEPT```例如,若要允许IP地址为192.168.1.100的主机访问SSH端口(22),可以使用以下命令:```iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT```2. 允许特定IP地址范围访问如果要允许一个IP地址范围访问特定端口,可以通过指定源IP范围来实现。
例如,要允许192.168.1.0/24子网段中的主机访问SSH端口,可以执行如下命令:```iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT```此规则将允许192.168.1.0/24网段中的所有主机访问SSH端口。
linux中iptables配置⽂件及命令详解详解iptables配置⽂件直接改iptables配置就可以了:vim /etc/sysconfig/iptables。
1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端⼝开放。
下⾯是命令实现:iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP再⽤命令 iptables -L -n 查看是否设置好,好看到全部 DROP 了这样的设置好了,我们只是临时的,重启服务器还是会恢复原来没有设置的状态还要使⽤ service iptables save 进⾏保存看到信息 firewall rules 防⽕墙的规则其实就是保存在 /etc/sysconfig/iptables可以打开⽂件查看 vi /etc/sysconfig/iptables2、下⾯我只打开22端⼝,看我是如何操作的,就是下⾯2个语句(⼀下为命令⾏模式)iptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A OUTPUT -p tcp --sport 22 -j ACCEPT再查看下 iptables -L -n 是否添加上去, 看到添加了Chain INPUT (policy DROP)target prot opt source destinationACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22Chain FORWARD (policy DROP)target prot opt source destinationChain OUTPUT (policy DROP)target prot opt source destinationACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22现在Linux服务器只打开了22端⼝,⽤putty.exe测试⼀下是否可以链接上去。
Linux命令高级技巧使用iptables配置防火墙规则iptables是Linux系统上一款用于配置网络防火墙的工具。
通过使用iptables,可以实现对传入和传出网络数据包的过滤和转发,以保护服务器和网络的安全。
本文将介绍一些使用iptables配置防火墙规则的高级技巧。
一、iptables概述iptables是Linux系统上的一个基于内核模块netfilter的防火墙软件。
通过对数据包进行过滤和转发,可以实现网络安全的保护。
其主要功能包括:过滤、NAT和转发。
二、iptables基本命令1. 查看当前iptables规则iptables -L2. 清除当前iptables规则iptables -F3. 允许来自指定IP的数据包通过iptables -A INPUT -s 192.168.1.100 -j ACCEPT4. 阻止来自指定IP的数据包通过iptables -A INPUT -s 192.168.1.100 -j DROP5. 允许某一特定端口的数据包通过iptables -A INPUT -p tcp --dport 80 -j ACCEPT6. 允许所有已建立的连接通过iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT7. 阻止所有其他数据包通过iptables -A INPUT -j DROP三、iptables高级技巧1. 使用iptables实现端口转发在实际应用中,经常需要将某一端口的访问请求转发到另一台服务器上。
通过iptables可以轻松实现该功能。
例如,将来自本地端口8080的访问请求转发到内网服务器192.168.1.100的80端口:iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:802. 使用iptables实现负载均衡通过使用iptables和SNAT,可以实现对多台服务器的负载均衡。
Linux命令高级技巧使用iptables和ipset进行高级网络防火墙配置在网络安全领域,配置高级网络防火墙是至关重要的。
Linux操作系统提供了一些强大的工具来实现这一目的,其中最常用的是iptables和ipset。
本文将介绍如何使用这两个工具来进行高级网络防火墙配置。
一、iptables简介iptables是一个功能强大的Linux防火墙工具,它允许管理员配置、管理和维护网络安全规则集。
iptables使用内核的netfilter框架来实现数据包过滤和转发。
它可以根据网络协议、源IP地址、目标IP地址、端口号等多个条件来过滤和控制数据包的流动。
下面是一些常用的iptables命令及其功能:1. iptables -A chain -p protocol --source address --destination address --dport port -j action:添加规则到指定链,根据指定条件决定数据包的操作(动作)。
2. iptables -D chain rule-number:从指定链中删除指定规则。
3. iptables -L:列出当前的防火墙规则集。
4. iptables -F chain:清空指定链中的所有规则。
5. iptables -P chain target:设置指定链的默认策略。
二、ipset简介ipset是一个用于管理大规模IP地址和端口的工具,它可以与iptables一起使用,提高防火墙规则的效率和性能。
ipset通过将IP地址和端口号存储在内存中的数据结构中,可以更快地匹配和过滤数据包。
ipset的一些常用命令如下:1. ipset create setname type:创建一个新的ipset。
2. ipset add setname entry:将条目添加到指定的ipset中。
3. ipset del setname entry:从指定的ipset中删除条目。
Linux防⽕墙--iptables--⽩名单配置1.服务器22端⼝和1521端⼝开通给指定IP[root@node2 sysconfig]# iptables -t filter -nL INPUTChain INPUT (policy ACCEPT)target prot opt source destinationACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHEDACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0ACCEPT all -- 0.0.0.0/0 0.0.0.0/0ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited[root@node2 sysconfig]# iptables -F[root@node2 sysconfig]# iptables -t filter -nL INPUTChain INPUT (policy ACCEPT)target prot opt source destination[root@node2 sysconfig]# iptables -I INPUT -s 192.168.222.1 -p tcp -m tcp --dport 22 -j ACCEPT[root@node2 sysconfig]# iptables -t filter -nL INPUTChain INPUT (policy ACCEPT)target prot opt source destinationACCEPT tcp -- 192.168.222.1 0.0.0.0/0 tcp dpt:22[root@node2 sysconfig]# iptables -A INPUT -j REJECT[root@node2 sysconfig]# iptables -I INPUT -s 192.168.222.1 -p tcp -m tcp --dport 1521 -j ACCEPT[root@node2 sysconfig]# iptables -t filter -nL INPUTChain INPUT (policy ACCEPT)target prot opt source destinationACCEPT tcp -- 192.168.222.1 0.0.0.0/0 tcp dpt:1521ACCEPT tcp -- 192.168.222.1 0.0.0.0/0 tcp dpt:22REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable[root@node2 sysconfig]# service iptables saveiptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ][root@node2 sysconfig]# service iptables restartiptables: Setting chains to policy ACCEPT: filter [ OK ]iptables: Flushing firewall rules: [ OK ]iptables: Unloading modules: [ OK ]iptables: Applying firewall rules: [ OK ][root@node2 sysconfig]# iptables -t filter -nL INPUTChain INPUT (policy ACCEPT)target prot opt source destinationACCEPT tcp -- 192.168.222.1 0.0.0.0/0 tcp dpt:1521ACCEPT tcp -- 192.168.222.1 0.0.0.0/0 tcp dpt:22REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable[root@node2 sysconfig]# iptables -t filter -nL INPUT --line-numbersChain INPUT (policy ACCEPT)num target prot opt source destination1 ACCEPT tcp -- 192.168.222.1 0.0.0.0/0 tcp dpt:15212 ACCEPT tcp -- 192.168.222.1 0.0.0.0/0 tcp dpt:223 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable[root@node2 sysconfig]# iptables -t filter -D INPUT 1[root@node2 sysconfig]# iptables -t filter -nL INPUT --line-numbersChain INPUT (policy ACCEPT)num target prot opt source destination1 ACCEPT tcp -- 192.168.222.1 0.0.0.0/0 tcp dpt:222 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable2.注意:每次最后需要添加iptables -I INPUT -i lo -j ACCEPTiptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT3.插⼊到那⼀⾏先查看当前的⾏,iptables -nL --line-numbers插⼊到指定的⾏[root@node2 sysconfig]# iptables -I INPUT ⾏号 -s 192.168.222.1 -p tcp -m tcp --dport 1521 -j ACCEPT 4.针对某个端⼝设置⽩名单机制[root@node2 ~]# iptables -F[root@node2 ~]# iptables -I INPUT -p tcp --dport 1521 -j DROP[root@node2 ~]#[root@node2 ~]# telnet 192.168.222.11 1521Trying 192.168.222.11...^C[root@node2 ~]# iptables -I INPUT -s 192.168.222.11 -p tcp --dport 1521 -j ACCEPT[root@node2 ~]# telnet 192.168.222.11 1521Trying 192.168.222.11...Connected to 192.168.222.11.Escape character is '^]'.。
Linux命令高级技巧使用iptables和ufw命令进行网络防火墙配置Linux命令高级技巧:使用iptables和ufw命令进行网络防火墙配置在Linux操作系统中,网络防火墙是保护系统网络安全的重要组成部分。
通过合理配置网络防火墙规则,可以控制网络流量的进出,阻挡恶意攻击和未经授权的访问,确保系统的安全性。
本文将介绍Linux 中的两个重要命令iptables和ufw,以及使用它们进行网络防火墙配置的高级技巧。
一、iptables命令iptables是Linux中主要的防火墙工具,可以在内核级别对进出的网络流量进行过滤、转发和NAT(Network Address Translation)等操作。
下面是一些常用的iptables命令及其用法:1. 启用IP转发功能在做网络防火墙配置之前,需要确保系统开启了IP转发功能。
可以使用以下命令启用:```shellsysctl -w net.ipv4.ip_forward=1```此命令将系统的`net.ipv4.ip_forward`参数设置为1,即开启IP转发功能。
2. 基本规则设置使用以下命令创建一条基本的防火墙规则,允许本地主机的所有传入和传出流量:```shelliptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPT```这些命令将INPUT、OUTPUT和FORWARD链的默认策略都设置为ACCEPT,即允许全部流量。
3. 添加规则可以使用iptables命令添加特定的防火墙规则,以允许或拒绝特定的流量。
例如,以下命令将允许来自192.168.1.100的主机的SSH连接:```shelliptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT```此命令将在INPUT链中添加一条规则,允许源IP为192.168.1.100,目标端口为22的TCP连接。
Linux命令高级技巧使用iptables命令配置防火墙Linux命令高级技巧:使用iptables命令配置防火墙防火墙是保护计算机网络安全的重要工具。
在Linux系统中,iptables是一款强大的防火墙管理工具,可以通过配置规则,限制网络访问和数据传输,提高系统的安全性。
本文将介绍如何使用iptables命令进行高级配置和技巧应用。
一、iptables命令简介iptables是Linux系统中的一个工具集,用于配置ipv4数据包的过滤,转发和网络地址转换(NAT)。
通过iptables命令,可以设置规则来控制数据包的流动,实现防火墙的功能。
iptables命令的主要参数包括:- A: 添加规则- D: 删除规则- I: 插入规则- L: 列出规则- F: 清空规则- P: 设置默认策略- S: 保存规则- R: 替换规则- N: 新建自定义链二、iptables配置基础1. 清空规则链在配置iptables之前,可以使用以下命令清空所有规则链,以确保开始时处于一个干净的状态:```shelliptables -Fiptables -Xiptables -Ziptables -t nat -F```2. 设置默认策略默认情况下,iptables会根据规则链上的规则来对数据包进行过滤,如果没有匹配到任何规则,则会根据默认策略来处理。
可以使用以下命令设置默认策略:```shelliptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT ACCEPT```3. 添加规则可以使用以下命令添加规则到指定的规则链,例如,添加允许SSH 访问的规则:```shelliptables -A INPUT -p tcp --dport 22 -j ACCEPT```4. 保存规则配置完iptables后,可以使用以下命令将规则保存到文件中,以便重启后自动加载:```shelliptables-save > /etc/iptables/rules.v4```三、高级配置和技巧1. 自定义链iptables支持用户自定义链,可以将一组规则封装到一个新链中,提高规则的可读性和管理性。
Linux命令高级技巧使用iptables命令配置和管理防火墙规则Linux系统中有许多命令可以使用,其中iptables命令是用于配置和管理防火墙规则的重要工具。
本文将介绍一些使用iptables命令的高级技巧,帮助读者更好地理解和使用这个命令。
一、iptables命令简介iptables是一个用于IPv4包过滤和控制Linux内核防火墙服务的用户空间工具。
它可以进行网络地址转换(NAT)、数据包过滤、端口重定向等操作,是保护计算机系统免受恶意攻击的重要工具。
二、iptables命令基本语法iptables命令的基本语法如下所示:iptables [选项] [链] [规则规格]其中,选项是可选的,用于指定不同的功能;链用于指定规则要应用的链,例如INPUT、FORWARD、OUTPUT等;规则规格用于指定具体的防火墙规则。
三、iptables命令常用选项1. -A:追加一条规则到某个链的末尾2. -I:向某个链中的指定位置插入一条规则3. -D:从某个链中删除一条规则4. -P:设置某个链的默认策略5. -L:列出某个链中的所有规则6. -F:清除某个链中的所有规则四、iptables命令高级技巧1. 配置端口转发使用iptables命令可以轻松实现端口转发,将外部请求转发到内部服务器。
例如,要将外部的SSH请求转发到内部服务器的SSH端口,可以使用如下命令:iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 内部服务器IP地址:22这样,外部用户连接到本机的22端口时,请求将被转发至内部服务器的22端口。
2. 过滤IP地址通过iptables命令,可以方便地过滤特定的IP地址或IP地址段。
例如,要拒绝来自某个IP地址的所有请求,可以使用如下命令:iptables -A INPUT -s 某个IP地址 -j DROP这样,来自该IP地址的请求将被直接拒绝。
Linux系统iptables查看、设置、保存、备份和恢复不同linux系统,相关软件是否安装,会让iptables的某些命令不能执⾏,这⾥收集了⼤多数iptables命令,不管是Ubuntu还是Centos,都能找到相关的修改、查询、保存命令。
仅允许某些IP访问指定端⼝:先禁⽤端⼝访问:iptables -I INPUT -p tcp --dport 8000 -j DROP允许特定IP访问:iptables -I INPUT -s IP地址/32 -p tcp --dport 8000 -j ACCEPTwhat is iptables?Iptables is used to set up, maintain, and inspect the tables of IPv4 packet filter rules in the Linux kernel. Several different tables may be defined. Each table contains a number of built-in chains and may also contain user-defined chains.以上是itables man⼿册上的说明。
iptables包含4个表:f ilter,nat,mangle,raw。
我们最常⽤的就是filter这个表。
filte表有三个内建的chain:INPUT、OUTPUT和FORWORD。
INPUT:⽤来处理发给本机的数据包;如主机A发给本机的数据,数据通信路径会像这:主机A------>本机localhostOUTPUT:⽤来处理本机发送出去的数据包;如本机访问百度服务器,数据通信路径会像这样,如本机localhost------>百度服务器FORWORD:⽤来处理流经本机,但⼜不是发给本机的数据包;如主机A要给主机B发送数据包,经过了本机,路径会像这样:主机A--->本机localhost--->主机B。
Linux_iptables
Iptables默认包含三张表:netfilter/nat/mangle
Netfilter:包含三条链,分别为INPUT /FORWORD/ OUTPUT
Nat:包含三条链,分别为Prerouting/output/postrouting
Mangle:包含5条链,主要作用是修改标志位,进行包过滤和策略路由
Iptables命令格式:
Iptables 【-t 表名】<命令> [链名] [规则号] [规则] [-j 目标]
表-链-规则的关系
如果不指明表名,默认是netfilter表
<命令>
-A <链名> <规则> *在指定的链名后添加一条或者多条规则*
-D <链名> <规则> *从指定的链中删除一条或者多条规则*
-R <链名> <规则号> <规则> *在指定的链中用心的规则置换指定的某一规则号的规则* -I <链名> <规则号> <规则> *在指定的规则号前插入一条或者多条规则,默认为1*
-L <链名> *列出指定链中的所有规则*
-F <链名> *删除指定链中的规则*
-N <链名> *建立一个新的用户自定义链*
-X <链名> *删除指定的用户自定义链*这个链必须没有被引用,而且不包含任何规则
-P <链名> *为指定的链设置规则的默认目标*当一个数据包与所有的规则都不匹配时采用这个默认的目标动作
-E <链名> *重新命名链名,对链的功能没有影响*
<规则>
-p <协议类型> -p tcp –sport <port>
-s <IP地址/掩码> -p tcp –dport <port>
-d < IP地址/掩码> -p tcp --syn
-I <网络接口> -p icmp –icmp-type <type> 类型可以使echo-reply echo-request -o <网络接口>
如果要指定一个端口范围,可以用-m参数指定模块,如
-m multiport --sport <port,port………> 指定数据包的多个源端口
-m multiport --dport <port,port………>
-m multiport --port <port,port………>
-m state --state <state> 指定满足某一状态的数据包
-m connlimit --connlimit-above <n> 用于限制客户端到一台主机的TCP并发连接总数
-m mac --mac-source <address> 指定数据包的源MAC
-j选项
-j ACCEPT:放行与规则匹配的数据包
-j REJECT:拒绝与规则匹配的数据包
-j DROP:丢弃所匹配的数据包
-j REDIRECT:重定向数据包
-j LOG:记录与规则相匹配的数据包日志
-j <规则链名称>:数据包传递到另一规则链
主机防火墙:
如果对防火墙做了修改,且想保存已经配置的iptables规则,
/etc/rc.d/init.d/iptables save
此时所有的规则被保存在/etc/sysconfig/iptables文件中
Iptables –L 查看规则表
Iptables –v 列出每一条规则当前匹配的数据包数,字节数,以及要求数据包进来和出去的网络接口
Iptables –n 不对显示结果中的IP地址和端口做名称解析,直接以数字的形式显示Iptables –line-number 在第一列显示每条规则的规则号
Netfilter表默认有三条链:INPUT;OUTPUT;FORWARD
1.iptables –A INPUT –p tcp –dport 80 –j ACCEPT *允许目标端口为80的tcp数据包通过INPUT链
2.iptables –A INPUT –s 192.168.1.0/24 –I eth0 –j DROP *丢弃从eth0口进来,源地址为192.168.1.0/24的数据包
3.iptables –A INPUT –p udp –sport 53 –dport 1024:65535 –j ACCEPT *允许源端口为53,目标端口为1024到65535的tcp包通过INPUT链
4.iptables –A INPUT –p tcp –tcp-flags SYN,RST,ACK SYN –j ACCEPT *--tcp-flags子选项用于指定TCP数据包的标志位,可以有SYN,RST,ACK,FIN,URG,PSH六种,用空格分成两部分,前一部分列出有要求的标志位,后部分列出要求值为1的标志位
5.iptables –A INPUT –p tcp –m multiport –dport 20:23,53,80,110 –j ACCEPT *接受来自20:23,53,80,110这些端口的tcp数据包,-m multiport用于指定多个端口
6.iptables –A INPUT –p icmp –m limit –limit 6/m –limit-burst 8 –j ACCEPT *当一分钟内通过的icmp包超过8个时,触发每分钟通过6个数据包的限制条件
7.iptables –A INPUT –p udp –m mac –mac-source ! 00:0C:6E:AB:AB:CC –j ACCEPT *拒绝MAC不是00:0C:6E:AB:AB:CC的udp包
网络防火墙:
网络防火墙的大多数的规则应该配置在forward链中,需要多个网卡,各个网段之间必须能相互转发数据,需要在/etc/sysctl.conf中设置
Net.ipv4.ip_forward=1
Sysclt –p
Mangle表的主要功能是根据规则修改数据包的一些标志位,以便对数据包进行过滤和策略路由
要求所有TCP:80端口的数据都从chinanet上出去,UDP:53端口数据从cernet出去
1.对数据包做上标志
Iptables –t mangle –A prerouting –I eth0 –p tcp –dport 80 –j MARK –set-mark 1
Iptables –t mangle –A prerouting –I eth0 –p udp –dport 53 –j MARK –set-mark 2
2.添加相应规则
Ip rule add from all fwmark 1 table 10
Ip rule add from all fwmark 2 table 20
3.指定路由表10 ,20的默认网关
Ip route add default via 10.10.1.1 dev eth1 table 10
Ip route add default via 10.10.2.1 dev eth2 table 20
NAT:
Nat服务器改变出去的数据包的源IP地址后,需要在内部保存的NAT地址映射表中登记相应的条目,以便回复的包能返回给正确的内部计算机。
在内部计算机没有主动与外网卡计算机联系的情况下,在nat服务器的nat地址映射表中是无法找到相应的条目的,一次就无法把该数据包的目的IP转换成内网IP.
SNAT:
假设让内网10.10.1.0/24出去的数据包其源IP地址都转换成外网接口eth0的公网IP:218.75.26.35
Iptables –t nat –A POSTROUTING –s 10.10.1.0/24 –o etho –j SNAT –to-source 218.75.26.35 如果需要在eth0 上创建一个子接口,并配置ip:
Ifconfig eth0:1 218.75.26.34 netmask 255.255.555.240
如果碰到公网是从ISP服务商那里通过拨号动态获得的,每一次拨号所得的地址都是不同的,为此iptables提供了一种地址伪装的源NAT,采用-j MASOUERADE
Iptables –t nat –A POSTROUTING –s 10.10.1.0/24 –o ppp0 –j MASOUERADE
DNAT:
Iptables –t nat –A PREROUTING –I eth0 –d 218.75.26.34/32 –j DNAT –to 10.10.2.3
基于端口的NAT
假设主机10.10.2.3只为外网提供服务,只需要开通80端口,而主机10.10.2.9为外网提ftp服务,只需要开通21,这是只要把21875.26.34的80端口和21端口分别映射到10.10.2.3和10.10.2.9的80端口和21端口。