GB | BIG5
|
| 首頁 > 系統管理 > 其它 > 正文 |
 |
| 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)
|
|
|
|
 |
★ 樊強制作 歡迎分享 ★ |