|
|
(一)Linux 网络相关设定档案
所有的 Linux 套件在网络的设定参数档案,放置的地点几乎都是相同的!底下来说一说这几个档案:
/etc/sysconfig/network:
这个档案主要的功能在于『设定预设的 GATEWAY,主机名称( HOSTNAME )的修改,激活 Network 与否』请注意,通常那个 gateway 不要设定。
/etc/sysconfig/network-scrips/ifcfg-ethn:
这个档案的内容即是设定网络卡的参数档案。里面可以设定『 network, IP, netmask, broadcast, gateway, 开机时的 IP 取得协议之方式( DHCP, static ), 是否在开机的时候激活』等等,那个 n 是数字啦!如果是第一块网络卡,则文件名称为 ifcfg-eth0 ,第二块网络卡为 ifcfg-eth1 以此类推。
/etc/modules.conf:
这个档案只在找不到网络卡的芯片组的时候才会动用到!亦即是开机时,系统一些核心模块的加载档案。
/etc/resolv.conf:
这个是设定 DNS ( 名称解析服务器 ) 的档案,常常有人提到『我已经可以 ping 到外部计算机的实体 IP 了,为何输入网址却无法联机?』通常发生的错误就是这个档案啦。
/etc/hosts:
里面可以写入你的所有的内部保留的 IP 啦。例如:192.168.1.11, 192.168.1.12 等等的几个同网段的 IP,此外,亦可将你常常连上 Internet 的实体 IP 配合该 IP 的主机名称给他写入这个档案当中。请注意,如果你的内部网络想要加快速度的话,那么这个档案是不可缺少的设定的地方呢!内部 IP 一定要给他写入。
(二)
显示已加载的系统模块。(如图:抓图-lsmod命令.png)
测试网络卡工作与否:
要测试网络卡有没有正确的工作,就给予网络卡一个保留 IP 来测试看看,我们以 192.168.1.2 这个保留 IP (亦可称为私有 IP 或是常听到的虚拟 IP 啦!),加上 255.255.255.0 这个 C Class 的 netmask 来测试看看,此外,以 eth0 为预设的 Gatewaydev ( 通讯闸装置 )
1. 设定 /etc/sysconfig/network :
HOSTNAME=MouseLinux //主机名称
NETWORKING=yes //是否启动网络
GATEWAY= //(ADSL方式不要设定)
GATEWAYDEV=eth0 //(ADSL方式不要设定,或为ppp0)
2. 设定网络卡 /etc/sysconfig/network-scripts/ifcfg-eth0 :
DEVICE=eth0 //与ifcfg-eth0 名称对应
BOOTPROTO=dhcp //启动IP时的协议(dhcp等)
NETMASK=255.255.255.0 //
ONBOOT=yes //开机是否启动网卡
IPADDR=192.168.1.2 //(静态)IP地址
NETWORK=192.168.1.0 //网关
MII_NOT_SUPPORTED=yes //
WIRELESS_ENC_KEY="" //
NEEDHOSTNAME=yes //
3. 激活与关闭网络卡 ifup eth0 ; ifdown eth0
4. 检查是否激活了:ifconfig
(三)ADSL 上网方式:
1. 设定网络参数档案:
[root@MouseLinux root]# kedit /etc/sysconfig/network
HOSTNAME=MouseLinux
NETWORKING=yes
[root@MouseLinux root]# kedit /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
NETMASK=255.255.255.0
ONBOOT=yes
MII_NOT_SUPPORTED=yes
WIRELESS_ENC_KEY=""
NEEDHOSTNAME=yes
(四)设定内部保留 IP 与 DNS IP: /etc/hosts, /etc/resolv.conf,
/etc/hosts
还有几个档案对于内部真的是挺重要的,首先就是 /etc/hosts 这个档案。请注意!由于计算机与计算机在交互沟通的时候,都会『想要确认对方的身份』,因此会利用 /etc/hosts 与 /etc/resolv.conf 这两个档案去『查询对方的 domain name 』,亦即是对方的身份啦!这个时候,如果你的计算机在连上对方的计算机时,对方无法查询到你的身份,那就有可能会发生『等待逾时』的情况!最常见的发生状况就在于『使用你的局域网络内的私有 IP ( 或者被称为虚拟 IP )连上具有实体 IP 的 NAT 主机』时,最容易发生这个问题了!你应该会觉得奇怪,『咦!不都是我的局域网络的计算机吗( 指 NAT 主机跟你的 PC1 ) 怎么 pop3 跟 FTP 联机这么慢?!还要等个 60 秒!』嘿嘿!没错!这个时候就是你的 NAT 主机在追查你的 PC1 的身份啦!
那么通常 Linux 主机是如何查询对方的身份的呢?在预设的情况中( 因为这个顺序可以改变,所以才会说是『预设情况』,这个顺序我们会在 DNS 的架设当中再提及! )首先,就会去检查 /etc/hosts 这个档案的设定,所以他是第一优先,再来则是 /etc/resolv.conf 的 DNS 主机啦!而,由于你的 PC1 是以『私有 IP 』进行架设的( 就是 192.168.xx.xx 那个 IP 啦 ),然而你并没有将你的 私有 IP 写入 /etc/hosts 当中,这个时候你的 Linux 主机就会到 /etc/resolv.conf 里面设定的 DNS IP 去查询你的 PC1 的身份,偏偏你的 PC1 根本就没有在网际网络上( 因为私有路由不可直接与 Internet 连接 ),哈哈!那么当然 Linux 就会找不到,也就会 delay 了几乎 60 秒钟了!
了解了吗?所以说,你就要将你的 私有 IP 的计算机与计算机名称写入你的 /etc/hosts 当中了!好了!那么这个咚咚的内容如何呢?
[root@MouseLinux root]# kedit /etc/hosts
127.0.0.1 localhost
电脑IP 主机名
192.168.0.1 houhome
局域网 服务器IP 局域网服务器名
192.168.0.10 IBMLinux
局域网其他电脑IP 其他电脑名
如此一来,不论我哪一部计算机连上来,不论是在同一个网段的哪一个 IP ,我都可以很快速的追查到!嘿嘿!那么区内网络互连的时候,就不会多等个好几时秒钟啰!
/etc/resolv.conf
很多朋友常问的一个问题『咦!我可以拨接上网了,也可以 ping 到sina的 IP ,但为何就是无法直接以网址连上 Internet 呢!』前面不是一直强调那个 DNS 解析的问题吗?对啦!就是名称解析不对啦!赶快改一下 /etc/resolv.conf 这个档案吧!改成上层 ISP 给你的 DNS 主机的 IP 就可以啦!例如 :
nameserver 222.122.231.100
nameserver 212.80.125.90
(五)无法联机的自我检查几大问题详解
1.DNS 设定错误:
最容易造成无法以网址联机的情况就是 DNS 主机的 IP 设定错误了!大家都习惯将 /etc/resolv.conf 设定成自己 NAT 的主机 IP!这是『错误的情况』!请注意!将『局域网络内的每一部计算机,不只是 NAT 主机,全部的( 不论是 Linux 还是 Windows ) DNS 主机 IP 都写成合法的 IP!例如使用 Hinet 的 168.95.1.1 !』
2. 基本上,与网络有关的档案主要有:
/etc/modules.conf (设定网络卡芯片组)
/etc/hosts (设定可以直接沟通的 IP 计算机!设定之后,网内连接虚拟与实体 IP 会比较快!)
/etc/resolv.conf (设定读取 dns 的主机 IP )
/etc/sysconfig/network (设定 GATEWAY, GATEWAYDEV, HOSTNAME 等的地方)
/etc/sysconfig/network-scripts (设定网络卡界面参数,例如 IP 的地方!
3. 一些网络侦错指令: ping, ifconfig, ifup, ifdown, netstat, route, traceroute, host, nslookup,
在网络的世界中,最常听到的一句话就是:『高手求救!我的 Linux 不能上网络!』我的天吶!不能上网络的原因多的很!而要完全搞懂也不是一件简单的事情呢!而很多的网络侦测指令其实在 Linux 里头已经都预设存在了,只要你好好的学一学基本的侦测指令,那么一些朋友在告诉你如何侦错的时候,你应该就立刻可以知道如何来搞定他啰!
(1)ping :送一个 ICMP 的封包给某部主机
常有参数和选项:
-d 使用Socket 的SO_DEBUG功能
-c<完成次数> 设置完成次数
-f 不等收到相应全速发出请求
-i<间隔秒数>
-I<网络接口> 使用指定网络接口发送数据包
-R 记录路由过程,IP文件头只能最大9个路由信息。
-v 详细显示命令执行过程
(2)ifconfig :设定网络参数使用的指令
eth0 :表示为网络卡的代号;
lo :表示为『内部循环 IP 』的网络卡代号,请注意,这个虚拟的 interface 一定要存在!千万不要关掉他!
HWaddr :是网络卡的硬件地址,就是我们 前面 提到的 MAC 啦!
inet addr :就是网络卡的 IP;
Bcast :是广播( broadcast ) 的地址;
Mask :就是子网掩码啦;
MTU :是 Maximum Trasmission Unit 最大传输单元(字节),即此接口一次所能传输的最大封包,也可以参考底下的 MTU 说明。
RX :网络由激活到目前为止的接收情形;
TX :网络由激活到目前为止的传送情形;
collisions :网络讯号碰撞的情况说明;
txqueuelen :是传输缓冲区长度大小意思;
nterrupt :是 IRQ 中断地址;
Base address :是 I/O 地址。这个 IRQ 与 I/O 在网络卡上面是可以设定的!设定的地方可以在 /etc/lilo.conf 里头来设定呢!如果你的主机上面有多张网络卡的时候,就用的着他了!可以避开问题呦!
总而言之, ifconfig 也是一个很好用的指令啦!但是有一点必须要清楚的,那就是 ifconfig eth0 up 或者是 ifconfig eth0 down 可以使用 ifup eth0 或 ifdown eth0 来替代!不过有一点必须要先说明的,那就是 ifup 与 ifdown 是以 /etc/sysconfig/network-scripts/ifcfg-ethn 的档案来进行激活的!所以 ifcfg-eth0 必须存在才能使用 ifup .
(3)ifup,ifdown:激活与关闭某个网络适配卡
(4)netstat :查阅网络信息的指令
netstat 可是很了不起的指令,一定要学会的!尤其他可以让我们了解目前的你的主机的联机状态!与开启的 port 有哪些!如果你分别下达:
netstat -a | more
netstat -an | more
一定会发现有点奇怪?怎么有的 port 会以服务名称(例如上面例子里的 pop3 ...)有的会以 port 号码来显示呢!?嘿嘿!那就是 /etc/services 以及 -n 这个参数的用途啦!你可以发现的是,如果 netstat -a 时,显示出来的 port 号码在 /etc/services 存在对应的服务名称的时候,那么预设他就会显示出该服务名称啦!但是若在 /etc/services 找不到档案的话,那么自然就还是以 port 号码来显示的!那么加上了 -n 参数后,不论如何,他都会以 port 及 IP 来显示啦!
另外,那个 -p 也很有用。尤其是在一些莫名其妙的联机出现时,可以用他查到 PID ,然后再以我们之前谈到的 系统资源管理 部分,利用 kill 来杀掉他。
Proto:指的是封包或者是通讯协议啦! tcp , udp 是常见的呦!
Local Address:本地端的 IP 与 Port 号,如果 /etc/services 存在对应服务名称,就以服务名称显示;
Foreign Address :监听哪一个地区与 port ;
state:状态列就很多啦!基本的有:
LISTEN :亦即监听状态中的 port !
ESTABLISHED:已建立联机的联机情况
TIME_WAIT:该联机在目前已经是等待的状态了!随时有可能会断线呦!
善用 netstat 可以查得相当多的网络信息!尤其在关闭本机的 port 时!
(5)route :显示/修改路由表( route table )
(6)traceroute :调查连接到某部主机时,每个节点的联机速度
这个指令相当的有用途,他可以用来判断一部远程主机无法联机时候,是当在哪一个节点!因为很多时候,你常常会发现『咦!网络速度怎么变慢了?』然后自己的主机似乎没有问题呀!这个时候就可以使用这个指令查检查一下,是否在联机的过程当中,有些节点被挡下来了呢?!很好用的。
(7)host :显示主机名称( domain name )
这个功能跟 nslookup 几乎是相同的!但是 nslookup 多了较多的功能就是了!我们使用这个指令时,系统会自动去找 /etc/resolv.conf 底下设定的 DNS 的 IP,然后根据该 IP 来侦测该主机的 IP !
(8)nslookup :调查主机名称对应的 IP
这个指令就如同前面的 host 提到的,就是正查反查的的指令啦!也是利用 /etc/resolv.conf 的内容来查询的
(9)telnet:用来联机远程主机,当然, BBS 主机也可以联机
另外,如果你要确认本机端的 110 这个端口是否正常时,也可以使用『 telnet + IP + port 』来侦测看看,很好用的工具吧!
(10) ftp:远程传送资料当中,速度最快的协议之一
这个指令是用在传输档案上面相当好用的功能之一!尤其是再可匿名登入的 FTP 网站!例如XX大学的网站!用法就如同上面显示的一般!包括各种捉取档案的方式都写在上头了,可得好好的参考参考!不过,由于这个资料在传送的时候是以明码的方式来传送的,所以较不安全啦!建议多以 sftp 来使用之!另外,他最大的好处是可以指定 port !当你有建立非 21 port 的时候,就可以使用这个指令加上 port 号来联机啦!
(11) ncftp:登入匿名主机最好用的文字接口 FTP 软件
(五)iptables 指令
语法:
iptables [-t table] command [match] [-j target/jump]
-t 参数用来指定规则表,内建的规则表有三个,分别是:nat、mangle 和 filter,当未指定规则表时,则一律视为是 filter。各个规则表的功能如下:
nat 此规则表拥有 Prerouting 和 postrouting 两个规则炼,主要功能为进行一对一、一对多、多对多等网址转译工作(SNAT、DNAT),由于转译工作的特性,需进行目的地网址转译的封包,就不需要进行来源网址转译,反之亦然,因此为了提升改写封包的效率,在防火墙运作时,每个封包只会经过这个规则表一次。如果我们把封包过滤的规则定义在这个数据表里,将会造成无法对同一封包进行多次比对,因此这个规则表除了作网址转译外,请不要做其它用途。
mangle 此规则表拥有 Prerouting、FORWARD 和 postrouting 三个规则炼。
除了进行网址转译工作会改写封包外,在某些特殊应用可能也必须去改写封包(TTL、TOS)或者是设定 MARK(将封包作记号,以便进行后续的过滤),这时就必须将这些工作定义在 mangle 规则表中,由于使用率不高,我们不打算在这里讨论 mangle 的用法。
filter 这个规则表是预设规则表,拥有 INPUT、FORWARD 和 OUTPUT 三个规则炼,这个规则表顾名思义是用来进行封包过滤的处理动作(例如:DROP、 LOG、 ACCEPT 或 REJECT),我们会将基本规则都建立在此规则表中。
常用命令列表:
命令 -A, --append
范例 iptables -A INPUT ...
说明 新增规则到某个规则炼中,该规则将会成为规则炼中的最后一条规则。
命令 -D, --delete
范例 iptables -D INPUT --dport 80 -j DROP
iptables -D INPUT 1
说明 从某个规则炼中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。
命令 -R, --replace
范例 iptables -R INPUT 1 -s 192.168.0.1 -j DROP
说明 取代现行规则,规则被取代后并不会改变顺序。
命令 -I, --insert
范例 iptables -I INPUT 1 --dport 80 -j ACCEPT
说明 插入一条规则,原本该位置上的规则将会往后移动一个顺位。
命令 -L, --list
范例 iptables -L INPUT
说明 列出某规则炼中的所有规则。
命令 -F, --flush
范例 iptables -F INPUT
说明 删除某规则炼中的所有规则。
命令 -Z, --zero
范例 iptables -Z INPUT
说明 将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。
命令 -N, --new-chain
范例 iptables -N allowed
说明 定义新的规则炼。
命令 -X, --delete-chain
范例 iptables -X allowed
说明 删除某个规则炼。
命令 -P, --policy
范例 iptables -P INPUT DROP
说明 定义过滤政策。 也就是未符合过滤条件之封包,预设的处理方式。
命令 -E, --rename-chain
范例 iptables -E allowed disallowed
说明 修改某自订规则炼的名称。
常用封包比对参数:
参数 -p, --protocol
范例 iptables -A INPUT -p tcp
说明 比对通讯协议类型是否相符,可以使用 ! 运算子进行反向比对,例如:-p ! tcp ,意思是指除 tcp 以外的其它类型,包含 udp、icmp ...等。如果要比对所有类型,则可以使用 all 关键词,例如:-p all。
参数 -s, --src, --source
范例 iptables -A INPUT -s 192.168.1.1
说明 用来比对封包的来源 IP,可以比对单机或网络,比对网络时请用数字来表示屏蔽,例如:-s 192.168.0.0/24,比对 IP 时也可以使用 ! 运算子进行反向比对,例如:-s ! 192.168.0.0/24。
参数 -d, --dst, --destination
范例 iptables -A INPUT -d 192.168.1.1
说明 用来比对封包的目的地 IP,设定方式同上。
参数 -i, --in-interface
范例 iptables -A INPUT -i eth0
说明 用来比对封包是从哪片网卡进入,可以使用通配字符 + 来做大范围比对,例如:-i eth+ 表示所有的 ethernet 网卡,也可以使用 ! 运算子进行反向比对,例如:-i ! eth0。
参数 -o, --out-interface
范例 iptables -A FORWARD -o eth0
说明 用来比对封包要从哪片网卡送出,设定方式同上。
参数 --sport, --source-port
范例 iptables -A INPUT -p tcp --sport 22
说明 用来比对封包的来源埠号,可以比对单一埠,或是一个范围,例如:--sport 22:80,表示从 22 到 80 埠之间都算是符合条件,如果要比对不连续的多个埠,则必须使用 --multiport 参数,详见后文。比对埠号时,可以使用 ! 运算子进行反向比对。
参数 --dport, --destination-port
范例 iptables -A INPUT -p tcp --dport 22
说明 用来比对封包的目的地埠号,设定方式同上。
参数 --tcp-flags
范例 iptables -p tcp --tcp-flags SYN,FIN,ACK SYN
说明 比对 TCP 封包的状态旗号,参数分为两个部分,第一个部分列举出想比对的旗号,第二部分则列举前述旗号中哪些有被设定,未被列举的旗号必须是空的。TCP 状态旗号包括:SYN(同步)、ACK(应答)、FIN(结束)、RST(重设)、URG(紧急)、PSH(强迫推送)等均可使用于参数中,除此之外还可以使用关键词 ALL 和 NONE 进行比对。比对旗号时,可以使用 ! 运算子进行反向比对。
参数 --syn
范例 iptables -p tcp --syn
说明 用来比对是否为要求联机之 TCP 封包,与 iptables -p tcp --tcp-flags SYN,FIN,ACK SYN 的作用完全相同,如果使用 ! 运算子,可用来比对非要求联机封包。
参数 -m multiport --source-port
范例 iptables -A INPUT -p tcp -m multiport --source-port 22,53,80,110
说明 用来比对不连续的多个来源埠号,一次最多可以比对 15 个埠,可以使用 ! 运算子进行反向比对。
参数 -m multiport --destination-port
范例 iptables -A INPUT -p tcp -m multiport --destination-port 22,53,80,110
说明 用来比对不连续的多个目的地埠号,设定方式同上。
参数 -m multiport --port
范例 iptables -A INPUT -p tcp -m multiport --port 22,53,80,110
说明 这个参数比较特殊,用来比对来源埠号和目的埠号相同的封包,设定方式同上。注意:在本范例中,如果来源端口号为 80 但目的地埠号为 110,这种封包并不算符合条件。
参数 --icmp-type
范例 iptables -A INPUT -p icmp --icmp-type 8
说明 用来比对 ICMP 的类型编号,可以使用代码或数字编号来进行比对。请打 iptables -p icmp --help 来查看有哪些代码可以用。
参数 -m limit --limit
范例 iptables -A INPUT -m limit --limit 3/hour
说明 用来比对某段时间内封包的平均流量,上面的例子是用来比对:每小时平均流量是否超过一次 3 个封包。除了每小时平均一次外,也可以每秒钟、每分钟或每天平均一次,默认值为每小时平均一次,参数如后: /second、 /minute、/day。除了进行封包数量的比对外,设定这个参数也会在条件达成时,暂停封包的比对动作,以避免因骇客使用洪水攻击法,导致服务被阻断。
参数 --limit-burst
范例 iptables -A INPUT -m limit --limit-burst 5
说明 用来比对瞬间大量封包的数量,上面的例子是用来比对一次同时涌入的封包是否超过 5 个(这是默认值),超过此上限的封包将被直接丢弃。使用效果同上。
参数 -m mac --mac-source
范例 iptables -A INPUT -m mac --mac-source 00:00:00:00:00:01
说明 用来比对封包来源网络接口的硬件地址,这个参数不能用在 OUTPUT 和 Postrouting 规则炼上,这是因为封包要送出到网卡后,才能由网卡驱动程序透过 ARP 通讯协议查出目的地的 MAC 地址,所以 iptables 在进行封包比对时,并不知道封包会送到哪个网络接口去。
参数 --mark
范例 iptables -t mangle -A INPUT -m mark --mark 1
说明 用来比对封包是否被表示某个号码,当封包被比对成功时,我们可以透过 MARK 处理动作,将该封包标示一个号码,号码最大不可以超过 4294967296。
参数 -m owner --uid-owner
范例 iptables -A OUTPUT -m owner --uid-owner 500
说明 用来比对来自本机的封包,是否为某特定使用者所产生的,这样可以避免服务器使用 root 或其它身分将敏感数据传送出去,可以降低系统被骇的损失。可惜这个功能无法比对出来自其它主机的封包。
参数 -m owner --gid-owner
范例 iptables -A OUTPUT -m owner --gid-owner 0
说明 用来比对来自本机的封包,是否为某特定使用者群组所产生的,使用时机同上。
参数 -m owner --pid-owner
范例 iptables -A OUTPUT -m owner --pid-owner 78
说明 用来比对来自本机的封包,是否为某特定行程所产生的,使用时机同上。
参数 -m owner --sid-owner
范例 iptables -A OUTPUT -m owner --sid-owner 100
说明 用来比对来自本机的封包,是否为某特定联机(Session ID)的响应封包,使用时机同上。
参数 -m state --state
范例 iptables -A INPUT -m state --state RELATED,ESTABLISHED
说明 用来比对联机状态,联机状态共有四种:INVALID、ESTABLISHED、NEW 和 RELATED。
INVALID 表示该封包的联机编号(Session ID)无法辨识或编号不正确。
ESTABLISHED 表示该封包属于某个已经建立的联机。
NEW 表示该封包想要起始一个联机(重设联机或将联机重导向)。
RELATED 表示该封包是属于某个已经建立的联机,所建立的新联机。例如:FTP-DATA 联机必定是源自某个 FTP 联机。
常用的处理动作:
-j 参数用来指定要进行的处理动作,常用的处理动作包括:ACCEPT、REJECT、DROP、REDIRECT、MASQUERADE、LOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、MARK,分别说明如下:
ACCEPT 将封包放行,进行完此处理动作后,将不再比对其它规则,直接跳往下一个规则炼(natostrouting)。
REJECT 拦阻该封包,并传送封包通知对方,可以传送的封包有几个选择:ICMP port-unreachable、ICMP echo-reply 或是 tcp-reset(这个封包会要求对方关闭联机),进行完此处理动作后,将不再比对其它规则,直接 中断过滤程序。范例如下:
iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
DROP 丢弃封包不予处理,进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。
REDIRECT 将封包重新导向到另一个端口(PNAT),进行完此处理动作后,将 会继续比对其它规则。 这个功能可以用来实作通透式 porxy 或用来保护 web 服务器。例如:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
MASQUERADE 改写封包来源 IP 为防火墙 NIC IP,可以指定 port 对应的范围,进行完此处理动作后,直接跳往下一个规则炼(mangleostrouting)。这个功能与 SNAT 略有不同,当进行 IP 伪装时,不需指定要伪装成哪个 IP,IP 会从网卡直接读取,当使用拨接连线时,IP 通常是由 ISP 公司的 DHCP 服务器指派的,这个时候 MASQUERADE 特别有用。范例如下:
iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000
LOG 将封包相关讯息纪录在 /var/log 中,详细位置请查阅 /etc/syslog.conf 组态档,进行完此处理动作后,将会继续比对其它规则。例如:
iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"
SNAT 改写封包来源 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处理动作后,将直接跳往下一个规则炼(mangleostrouting)。范例如下:
iptables -t nat -A POSTROUTING -p tcp-o eth0 -j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
DNAT 改写封包目的地 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处理动作后,将会直接跳往下一个规则炼(filter:input 或 filter:forward)。范例如下:
iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.1.1-192.168.1.10:80-100
MIRROR 镜射封包,也就是将来源 IP 与目的地 IP 对调后,将封包送回,进行完此处理动作后,将会中断过滤程序。
QUEUE 中断过滤程序,将封包放入队列,交给其它程序处理。透过自行开发的处理程序,可以进行其它应用,例如:计算联机费用.......等。
RETURN 结束在目前规则炼中的过滤程序,返回主规则炼继续过滤,如果把自订规则炼看成是一个子程序,那么这个动作,就相当于提早结束子程序并返回到主程序中。
MARK 将封包标上某个代号,以便提供作为后续过滤的条件判断依据,进行完此处理动作后,将会继续比对其它规则。范例如下:
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|