![[ 永远的UNIX::UNIX技术资料的宝库 ]](/images/title.gif)
|
| 首页 > 系统管理 > 其它 > 正文 |
 |
| ipchains的参数和使用 |
| 本文出自: 作者: 飞天 (2001-09-27 07:00:00) |
ipchains 是用来设定,维护,以及查看 Linux 系统核心内作用之防火墙规则,这些规则可以分成四大类:
1. IP input chain
2. IP output chain
3. IP forwarding chain
4. user defined chains
系统会在内部拥有一个 serach table 用来管理这四类的规则链
注意:
请检查您是否有 /proc/net/ip_fwchains 这一个档案,没有表示您的核心并不支持 IP firewall,请重编您的核心
名辞解释:
byte counter
chain 规则链
masqueraded connection 虚拟连结
pocket 封包
policy 原则
rules 规则
rule number 规则序号
targets 作为
选项 OPTIONS:
-A(--append)
增加一个以上的规则(rule)至规则链(chain)中
-D(--delete)
由规则链(chain)中删除一个以上的规则(rule)
-C(--check)
检视所指定规则(rule)之封包(packet)
-R(--replace)
取代所选取规则链(chain)中之规则(rule)
-I(--insert)
依据所指定的规则(rule)序号,将一个以上的规则加入规则链(chain)中
-P(--policy)
对内建规则链之规则(rule)作原则(policy)上之设定
-M(--masquerading)
检视现行之虚拟连结(masqueraded connection)
-L(--list)
列出所选定规则链(chain)中所有之规则(rule)
-F(--flust)
清空所选之规则链(chain)
-Z(--zero)
将所有规则(rule)之封包(packet)和byte counter 计数器归零
-N(--new-chain)
产生一个使用者自定之规则链(chain),并赋予名称
-X(--delete-chain)
删除一个使用者自定之规则链(user defined chain)
-S(--set tcp tcpfin udp)
修改伪冒连结之延迟时间
-h
列出线上指引(help) 参数 PARAMETERS:
-p(--protocol) [!]protocol
指定通讯协议(protocol),你可以用协议的名称,如 (icmp,tcp),
或者用数字 (`1\\\\\\\\\\\\\\\' for icmp, `6\\\\\\\\\\\\\\\' for tcp).(请参考 RFC 1340)
-s(--source) [!]address[/mask] [!][port[:port]]
指定封包来源(source),你可以用 full name 如 `localhost\\\\\\\\\\\\\\\' 或
`www.unc.edu\\\\\\\\\\\\\\\' 也可以用 IP address
--source-port [!][port[:port]]
-d(--destination 或 --des) [!]address[/mask] [!][port[:port]]
指定封包所送到的目的
--icmp-type [!] typename
-j(--jump) target
指定一个规则所要求的作为(target),下面列出一些 target:
ACCEPT:允许封包通过
DENY:将封包挡掉
REJECT:将封包挡掉,并传回 ICMP replay
REDIRECT:将封包导向 local host 的一个 port,它必需和
`-p tcp/udp\\\\\\\\\\\\\\\' 以及 -A/D/R/I input 同时使用
-i(--interface) [!] name
指定特殊的网络接口 (interface),作封包传输之控制,它对 PPP 的控制
特别有用,如 -i ppp0,则可针对 ppp0 作控制
*上面有一个特殊的符号"!",它的意思是 not,如:
-s !140.112.164.139 表示除了 140.112.164.139 以外所有的 IP address
--source-port !25 表除了 port 25 以外所有的 port
其它的选项 OTHER OPTIONS:
-b(--bidirectional)
-v(--verbose)
-n(--numeric)
-l(--log)
激活记录
-o(--output) [maxsize]
-m(--mark) markvalue
-t(--TOS) andmask xormask
设定 TOS (type of service) 其值如下:
TOS Name Value Typical Uses
Minimum Delay 0x01 0x10 ftp, telnet
Maximum Throughput 0x01 0x08 ftp-data
Maximum Reliability 0x01 0x04 snmp
Minumum Cost 0x01 0x02 nntp
-x(--exact)
[!] -y(--syn)
--line-numbers
--no-warnings
参考资料:
.Linux IPCHAINS-HOWTO
Paul Russell, Paul.Russell@rustcorp.com.au
v1.0.5, 27 October 1998
.The official page is The Linux IP Firewall Chains Page
范例:
一.将所有来自 loopback address (127.0.0.1) 之 ICMP 封包挡掉:
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.2 ms
--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.2/0.2 ms
# ipchains -A input -s 127.0.0.1 -p icmp -j DENY
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
--- 127.0.0.1 ping statistics ---
1 packets transmitted, 0 packets received, 100% packet loss
#
第一个 ping 成功的收到了一个 ICMP 封包 (选项 `-c 1\\\\\\\\\\\\\\\' 告诉 ping 只送
出一个封包)
接着我们加入(append, -A)一个规则到 `input\\\\\\\\\\\\\\\' chain 中,并指定其来源为
127.0.0.1 (`-s 127.0.0.1\\\\\\\\\\\\\\\') 以及通讯协议为 ICMP (`-p ICMP\\\\\\\\\\\\\\\') 同时将
target 调成 DENY.
当我们再度用 ping 来测试时,它会有一段延迟时间,原因是为了等待一个永
远都回不来的讯号.
二.要删除范例一所加入的规则,我们用下面的指令:
方法一:
# ipchains -D input 1
#
这是一个 numbered delete,它删除了 input chain 中之第一个规则,原因
是我们在 input chain 中只有一个规则
方法二:
如同范例一,将 append 改为 delete (`-D\\\\\\\\\\\\\\\'):
# ipchains -D input -s 127.0.0.1 -p icmp -j DENY
#
三.将所有进入的封包拒绝掉:
# ipchains -A input -s 0/0 -j DENY
#
它的作用就如同:
# ipchains -A input -j DENY
#
四.检视所有规则所规范之 byte 及 packet 数量:
# ipchains -L -v
#
五.产生一个新的规则链(chain),并指定名称为 "test"
# ipchains -N test
#
删除的方式类似:
# ipchains -X test
#
清空一个规则链中之规则:
# ipchains -F test
#
如果不指定名称,则所有的规则链都会被清的一乾二净
六.我们可以列出某个规则链中所有的规则,只要加个 `-L\\\\\\\\\\\\\\\' 参数即可:
# ipchains -L input
Chain input (refcnt = 1): (policy ACCEPT)
target prot opt source destination ports
ACCEPT icmp ----- anywhere anywhere any
# ipchains -L test
Chain test (refcnt = 0):
target prot opt source destination ports
DENY icmp ----- localnet/24 anywhere any
#
七.重设计数器:
利用 `-Z\\\\\\\\\\\\\\\' (zero counters) 选项,我们可以将计数器归零
# ipchains -v -L input
Chain input (refcnt = 1): (policy ACCEPT)
pkts bytes target prot opt tosa tosx ifname mark source destination ports
10 840 ACCEPT icmp ----- 0xFF 0x00 lo anywhere anywhere any
# ipchains -Z input
# ipchains -v -L input
Chain input (refcnt = 1): (policy ACCEPT)
pkts bytes target prot opt tosa tosx ifname mark source destination ports
0 0 ACCEPT icmp ----- 0xFF 0x00 lo anywhere anywhere any
#
(http://www.fanqiang.com)
进入【UNIX论坛】
|
|
| 相关文章 |
ipchains网卡设置菜鸟必读 (2001-09-27 08:00:00) ipchains的参数和使用 (2001-09-27 07:00:00) ipchains参数介绍 (2001-08-21 10:00:00) 为什么我用 ipchains 构建的子网里的机器不能用 ftp? (2001-06-20 08:10:00) ipchains 的问题 (2001-06-04 18:08:00) 怎样用ipchains构建防火墙 (2001-04-21 19:38:25) ipchains的工作流程 (2001-04-21 18:02:09)
|
|
|
|
 |
★ 樊强制作 欢迎分享 ★ |