Title: iptables
1iptables netfilter ???
memory
Rule parsing, read, write
iptables
user level
kernel level
Rule Read Write
ip_table
2Netfilter? ?????
- ?? Berkeley Socket Interface? ??? ???? ??
mangling? ?? ????? - ?????? ?? 4???? ??, ??? ????? hooks?? ?? ??
- - ??? ????? ??? Hook Number? ???? ??? ?????? ??
- ??? ???? ? ????? ??? ?? hook? ????? ??
- ??? ??? ?????? ??? ?, ?? ????? ?? ????? ??
- ??? ?? ???? ??, ??? ??? ????? ?? ??
- ?? ?? ? ? ??? ???? ?? ?? ? ?
?? ???? ??? packets traversal? ?? ? ??? ???
Routing, Forward, Local-IN, Local-OUT
Accept Drop Stolen Queue
??? ???? ??? ?? ?? (??? ??)
3Netfilter? ?????
Netfilter/iptables - ??? ?? 2.4?? ???? F/W
mechanism - IPFW ? ipfwadm ? ipchains??? ?? ??
??? ?? ??? ?? ?? Netfilter framework ???? ????
?? ??? ???? ???? ??? ??(???, ??)? ? ?? ??? ? ??
??? ???
Kernel module
Filtering Mangle (??? ?? ?? ??)
Hooking (?? ???? ??)
(????? ????) ??
??
??
4Netfilter ?? ???
Other Interface
??? ??
1PRE
4POST
3FOR
ROUTE
?? ?? ????
??? ??
?? IP IP ?? ??
ROUTE
HOOK Name 1NF_IP_PRE_ROUTING
2NF_IP_LOCAL_IN 3NF_IP_FORWARD
4NF_IP_POST_ROUTING 5NF_IP_ LOCAL_OUT
2 IN
5 OUT
- ???? ?? ?? ??? ??? ??? ?? ??? ???? ???? ??
- ??? ??? ??? ??(iptables)?? ?? ?? ??
- - ??? ???? ?? ????? ?? ??? ????
- ??? ?????(?? ??)? ???? ?? ?? ??
5 Netfilter ?? ???? Hooking
POST
PRE
FOR- WARD
ROUTE
Conntrack
Mangle
Mangle
Mangle
SNAT
Filter
DNAT
Conntrack
ROUTE
Conntrack
Conntrack
IN
OUT
Mangle
Mangle
DNAT (Proxy)
Filter
Filter
(Local Processes)
Hooking Call? ?? ??? ?? 1.Packet Filtering
?filter table 2. NAT ???? ?? ?? ? NAT table (IP
Masquerade, Port Forward, Redirection) 3. Packet
Mangling ??? ?? ?? ? mangle table 4.
Connection Tracking ?? ?? ? conntrack
table
6 Netfilter ?? ???? Hooking
Hook?? ???? ?? ??(?? ???? ?? ??)
1.Netfilter? ?? ?? ?? ? ?(?? ?? ?? ??? ??) 2. ??
?? ?? ? ??? ?? ? ? ??? ?? ?? ??
?? ?? ? ??? ?? ??
??
????
Hooking? ?? 1?? ???? - NF_ACCEPT ???? ?? -
NF_DROP ?? ?? - NF_STOLEN ?? ?? - NF_QUEUE
??? ?? ??(??????? ??) - NF_REPEAT ?? ?? ? ? ?
??
7Packet Filtering? ??
- F/W Packet Filtering
- - F/W? ??
- ???? ??? ?? ?? ??? ??? ? ?? ??? ???, P/G ??
- ??? ?? ??, ??? ?? ?? ?? ?? ???? ?? ??? ??
- ??
- ??? ???? ??? ??
- end-user??? ? ??? ????? ??? ? ?? ???
-
???? ?? ???? ?? ? ?? - ?? ?? ?? ? ??? ??? ?? ??? ??(filter table)
- ?? ???? ???? local_in, local_out, forward ???
???? ?? - ??
- Static packet filtering F/W
- Network Layer(IP)?? ?? ??? ??? ??
- Dynamic packet filtering F/W (status
check)
8Packet Filtering? ??
9Packet Filtering? ??
- ??? ????? ??
Incoming Packet Filtering Remote Src
Address Filtering Port
Local Dest Address Filtering
Port
Outgoing Packet Filtering Local Src
Address Filtering Port
Remote Dest Address Filtering
Port
Incoming Outgoing Packet Filtering TCP
Connection State Filtering
- ?? ???? ?? ? TCP Port Scanning TCP ???
???? ?? ??? ????? ?? ?? ??? ?? ???? ?? ???
TCP ?? ??
? ?? ???? ?? ? ?? ?? SYN
Flooding IP Spoofing? ?? ??? SYN ?? ?? ? ??
???? ?? IP? ?? ?? ? ?? Ping of Death ???
?? ??? ??? ??? ? ? ?? Ping Flooding ???
??? ??? Echo Request? ?? ?? ????
??? Ping Echo Reply? ?? ? ? ??
10(No Transcript)
11Iptables ??
- ??? ??? ???? ??? ???? ???? ??? ?? - table???
??? ?? ? ?? ?? ??? ?? ??? ??? ?? ? ??? ?? ???
??? ???? ???? ?? - ?? ??? Table ? ?? ???, ??
?? filter table ?? ??? nat table
???? ?? ?? mangle table ?? ?? - ?? ?
table ?? ??, table?? table? ?? ??(??? ?????)
? table?? ???? ?? ???? table? ??? ?? ??
?? ??? ???? ?? iptables? ?? ??
12Iptables ??
- filter table? ?? INPUT, OUT, FORWARD ??? ??
Chain? ??? ??? ??? ??? ?? ?? ?? ?? ??
???, ??? ?? ?? ??? ???? ??? ?? ??(ACCEPT or
DROP) ?? IP??? ?? ??, ? protocol, source,
destination, interface, fragmetation? ??
match?? rule ?? TCP, UDP, ICMP ? ??? ????
?? ?? ??? ??? ???? ??, iptables ???? ? ??
??? flag?? ?? ? target? match
(? flag?? ????? ?????? ???, ???? ???? ??)
13Iptables ??
- filter table? target ???? ?? ??? ??(ACCEPT
and DROP) ?? REJECT?? ??? ?? ?? (REJECT? ??
???? ???? ??) target ???? ??? log ?? ? ????
?? ?? QUEUE? ???? ??? ???? ??? ?? ? ?? ?
??? ??? ??? ?? ??? ??? ?? DROP RETURN?? ???
??? ???? ? ?? - filter table? match ???? ??
14Iptables ??
- nat table? ?? nat table? 3?? ??? ???? ??
PREROUTING ??? ???? ?? ???? ??? ?? ???
???? ???? ? ??? ?? ?? ??
?? ?? POSTROUTING ??? ?, ??? ????? ?? ???
?? ?? ??
masquerading? ?? OUTPUT ?? ????/??????
????? ??? ??? ??? ?? ?? ??? ??
???? ?? ???, ?? ???? ?? ?? IP? ???? ??????
IP ???? ???? NAT? ?? ?? ?? ???? ??? ?? ???
??? ????? NAT? ??? ? ?? ? NAPT (Network
Address Port Translation) ?? ?? IP ??? ????
???? ???? ??? NAT ?? ?? ? IPv4, IPv6 ???? ???
NAT? ???? ?? src? dest ??? ????? ???? ??, ??
?? ? NAT? ? ? ??
15Iptables ??
- nat table? ??? SNAT ???? ???? ??? NAT? ??
DNAT ???? ???? ??? NAT? ?? MASQUERADE ????
???? ?????? ?? ?? REDIRECT ???? ???? ?? ???,
?? ???? ??
- mangle table? ?? ????? ???? ?? ???? ?????
???? ?? ?? filter table ??? match?? ??? ????
??? ??? ???? ?? ? ?? ?? ?? ? packet
mangling? ???? ?? PREROUTING ?? ???? ???
??? ??? ?? ?? ? ???
??? ??? ???? ???? ?? OUTPUT ?? ??
????/?????? ??? ??? ???? ?? INPUT,
FORWARD, POSTROUTING ?? ? ??? ??? ?? ??
???? ?? ?? mangle table? ??? TOS ??
IP??? TOS??? ?? MAKR ?? ??? mark? ??
???? iptables? ??? ???? ?
16Iptables ????
- Iptables? ?? ??
- iptables? ?? 3?? ???? ??
17Iptables Filter Table
- ?? ???? ???? 3?? chains?? ?? - ???? ???? ???
??? ?? ?? - ?? ??? ??? ??? ???
18Iptables Filter Table
- ?? ??
table ?? nat? filter? ???, ???? filter???
filter? ???? ?? action ?? ??? ?? ??? ???(-A,
-L, -D, -F) ??? ?? ?? chain ???? ???? ???
INPUT, OUTPUT, FORWARD? ???, nat
????? POST ROUTING, PREROUTING, OUTPUT?
?? pattern ????? ???? ??? ??? ??(-s, -p, -d)
?? target ??? ???? ??? DROP, ACCEPT, LOG ??
??
19Iptables Policy
- iptables? ?? ??? ??? ??? ???? ?? - ??? ??? ??
Deny? ??? Accept? ??? ? ?? - ?????? ACCEPT, DENY,
DROP?? ?? - ????
ACCEPT ??? ???? ??
DENY ??? ???? ???? ???? ???? ?? ?? ??????(-P)??? ??? ? ??
DROP ??? ??? ??
QUEUE ??? ????? ???? ?? ??? ???? ????? ??
20Iptables Chain ??
- iptables? ???? ??? ?? ? ?? - ????? ?? ??
-N ??? ??? ???.
-X ???? ??? ??(3?? ?? ??? ??? ? ??)
-P ??? ??? ????.
-L ?? ??? ??? ????.
-F ?????? ??? ????.
-Z ???? ?? ???? ??? ???? ???? 0?? ??
-E ??? ??? ??
- ?? ??? ??? ?? ??
-A ??? ??? ??? ??, ?? ? ??? ??
-I ??? ??? ? ? ??? ??, ?? ?? ???
-R ??? ??? ??
-D ??? ??? ??
21Iptables ????
-s ???('-s', '--source', '--src')? ???
-d ???('-d', '--destination', '--dst')? ???
-j ??? ??(ACCEPT, DROP, DENY, REDIRECT ?) ??
! 'not? ??
-p ????? ??? ? ??
-i ??? ???? ?????? ????? ??(INPUT? FORWARD ??? ??) -t? nat?? PREROUTING??? ???? interface? ?? "!" ?? ? ??? ????? ??. interface? ?? "(??) ?? ? ???? ???? ?? ?? ? ??
-o ??? ??? ??????? ????? ??(OUTPUT, FORWARD??? ??) -t nat?? POSTROUTING??? ?? ??("!"? ""? -i? ??)
-t table ??(filter(default), nat, mangle ? ??)
-f ?? ??? ?? ?? ???? ???? ?? ?? ???? ??? ? ??
-c ??? ???? ?? INSERT(-I), APPEND(-A), REPLACE(-R) ??? ??? ???? ??? ???
22Iptables ????
- p ???? ???? ???? ??? ? ??? ?? ?? ?? ?)
iptables -A INPUT --protocol tcp --tcp-flag ALL
SYN, ACK -j DENY ? ?? flag?? ????? SYN?
ACK? ??? ?? - TCP? ? ????? ??? ??? 3-way
handshaking ?? ? ?? ?? ??? ????? ????? ????
?? ?? ?? ?) -p tcp -s 192.168.1.3 --syn ?
192.168.1.3???? ?? SYN ??
TCP ?? --source-port ?????? ??, ???? ?? (???? ?? ??, ??? ?? '-' ??)
TCP ?? --sport --source-port? ??
TCP ?? --destination-port ??? ?? ??
TCP ?? --dport --destination-port? ??
TCP ?? --tcp-flags tcp?? ???? flag? ???? ?? (? ?? ? ????? ?? ??? ???, ? ?? ??? ? ??)
TCP ?? --syn, --rst, --ack --tcp-flags SYN, RST, ACK? ??(! ?? ??)
TCP ?? --tcp-option ?? ??? tcp ??? ?? ??? ??? ??
UDP ?? -p udp(--protocol udp) --source-port(--sport), --destination-port(-dport)
ICMP ?? -p icmp(--protocol icmp) --icmp-type? ?????? ??
23Iptables rule ???
24Iptables rule ??
25(No Transcript)
26NAT? ??
- ???? ???? ?? ?? - IP ??? ??? ??? ?? ?? - ???,
???, ??? - Masquerading, Port Forwarding,
Transparent Proxing - ?? ?? 2?? ??? ??? ???
? ?? IP? ? ? ??? ??, ?? IP? ?? IP ??? 11?
Mapping ??? ?? ??? ??? ? ??IP? ?? ???,
??? ?? ??? ??? ?? ???? ?? - ??? NAT
Masquerading - ??? NAT Port Forwarding,
Transparent Proxy
27NAT? ??
- NAT? ?? ?? IP ??? ?? ??????, IP ?? ??? ??
?? ??? ???? ???? ???? ??? Client/Server
????? ??? ?? ?? ?? ?? ??? ??? ?? IP? ?? IP?
???? ??? ??? ? NAT? ???? ?? ???? ???? ??? ?
???? ??? ???
- NAT? ?? ? ??? ???? ?? ?? NAT ??? ??
???? ?? Overload ?? ??, Defragmentation??
???? NAT ??? ?? NAT ??? ???? ?? ??? ???
APP.?? ???? ??? ?? NAT ???? ?? ???? ? (???
???? ?? ????? ????? ?? ??? ??? ??? ??) NAT?
?? ? ?? ??? ?? ??
28NAT Table
- ip ??? ??? ????? ???? 3??? ?? ??
POSTROUTING routing ?? ??? ???? packet
PREROUTING routing ?? ?? ?? ??? packet
OUTPUT ???? ??? ???? packet
29NAT? ??
??? NAT (SNAT) - ? ??? ?? ?? ?? - ???? ??? ?? - ?? ??? ?, ??? ??? ??? ??? ????
??? NAT (DNAT) - ? ??? ??? ?? ?? - ??? ??? ???? ?? - ?? ??? ?, ??? ???? ?? ? ????
30NAT? ?? - SNAT
- '-j SNAT'? ????? ?? - '--to-source' ???? IP ??,
IP ??? ??, ??, ??? ?? ?? - POSTROUTING?? ???
Source Address ?? ex) ??? ??? 211.253.39.1 ?
??? iptables -t nat -A POSTROUTING -o eth0 -j
SNAT --to 211.253.39.1 ??? ??? 211.253.39.1
?? 211.253.39.125 ? ??? iptables -t nat -A
POSTROUTING -o eth0 -j SNAT
--to
211.253.39.1-211.253.39.125
31NAT? ?? - DNAT
- ??? ???('-s', '--source'), ??? ('-d',
'--destination')? ?? - ? ?? ??? ??? IP ??? ??? ??
?? ???? ??? ?? ex) ??? ??? 211.253.39.4? 80???
1.2.3.4? 8080??? ??? iptables -t nat -A
PREROUTING -p tcp -d 211.253.39.4 --dport 80
-j DNAT --to 1.2.3.48080 ???? 80 ??? ? ???
squid (???) ???? ??? iptables -t nat -A
PREROUTING -i eth1 -p tcp --dport 80 -j
REDIRECT --to-port 3128
32(No Transcript)
33MANGLE Table
- ?? ??? ?? TOS? ?? - ?? ???? ????? ???? ????
???? ??? ? - ?? ??? ?? ????? ??? ?? ?? - TOS??
?? CODE HEXCODE ??
Minimize-Delay 16 0x10 ????
Maximize-Throughput 8 0x08 ?? ???
Maximize-Reliability 4 0x04 ?? ???
Minimize-Cost 2 0x02 ?? ??
Normal-service 0 0x00 ?????
34MANGLE Table ???? ?
- INPUT ?? iptables -t mangle -A INPUT -p tcp
--dport 22 -j TOS --set-tos 0x10 ssh? ????
iptables -t mangle -A INPUT -p tcp --dport 23 -j
TOS --set-tos 0x10 telnet? ???? iptables -t
mangle -A INPUT -p tcp --dport 21 -j TOS
--set-tos 0x10 ftp ??? ????? ???? iptables
-t mangle -A INPUT -p tcp --dport 20 -j TOS
--set-tos 0x08 ftp-data????? ?? ??? ??
35MANGLE Table ???? ?
- OUTPUT ?? iptables -t mangle -A OUTPUT -p
tcp --dport 22 -j TOS --set-tox 0x10 ssh?
???? iptables -t mangle -A OUTPUT -p tcp
--dport 23 -j TOS --set-tox 0x10 telnet?
???? iptables -t mangle -A OUTPUT -p tcp
--dport 21 -j TOS --set-tox 0x10 ftp ??? ?????
???? iptables -t mangle -A OUTPUT -p tcp
--dport 20 -j TOS --set-tox 0x08 ftp-data?????
?? ???? ??
36(No Transcript)
37Iptables syntax-??
- ?? ???? iptables? ???? ?? ?? - ?? ???? ?? ??? ??
filter table ?? INPUT OUTPUT FORWARD
nat table ?? PREROUTING OUTPUT
POSTROUTING
mangle table ?? PREROUTING OUTPUT
INPUT FORWARD POSTROUTING
? ???? ?? ???? ?? ??? ??? ???? ??? ??? ?? ???
???? ? ??? ?
38Iptables syntax-??
- -t, --table table_name table? ???? ???
iptables?? ?? ?? ?? ?? iptables -t filter
some other commands ??? ?? ?? ???? filter,
nat, mangle (-t ??? ???? ??? default? filter
???? ???? ? - ???)
39Iptables syntax-??
- iptables? 1?? ?? -N, --new-chain chain
?????? ??? ?? ?? -X, --delete-chain chain
??? ??? ?? ?? ??? ?? ??? ??? ???? ?? ??.
?? ??? ????, ?? ??? ?? ?? ?? -L, --list
chain ??? ??? ??? ?? ?? ??? ?? ?? ???
????, ?? ??? ?? ??? ?? -L(-n, --numeric)
?? ??? ??? ?? -L(-v, --verbose) ????
byte-counter?? ??? ??? ?? -L(-x, --exact)
counter? ????? ?? ?? -L -line-number ??
??? ?? -E, --rename-chain old-chain
new-chain old ??? new ???? ??
(???? ?? ??? ??, ??? ??? ???? ??? ??) -F,
--flush chain ??? ??? ??? ?? ??
(?? ??? ???? ??? ?? ???? ?? ??? ??) -Z,
--zero chain ??? byte-counter? reset(reset??
??? ?? ??) -P, --policy chain target ??
???? ??? ? ?? ????, ??? ??
??? target? ??? ??? ??(?? ?? ? ACCEPT, DROP)
-h, --help ??? ???
40Iptables syntax-??
- ?? ??? ??? ?? ??? -A, --append chain
rule-specification ??? ?? ??? ???? ?? -D,
--delete chain rule-specification
rule-specification? ?? ?? -D, --delete chain
rulenum rulenum? ?? ?? ??(1?? ? ??) -I,
--insert chain rulenum rule-specification
rulenum ??? ?? ?? -R, --replace chain rulenum
rule-specification
rulenum ??? ?? ?? rule-specification?? ??
41Iptables syntax-??
- rule-specification? ???? ?? Parameter -p,
--protocol ! protocol ??? ???? ??? ????? ??
protocol ?? icmp, tcp, udp, ? all, ??? ???
?? 1, 6, 17 -s, --source ! address/mask
???? ?? -d, --destination ! address/mask
????? ?? -j, --jump target ??? target??
jump, ??? ??? ??? ? jump -i, --in-interface
! name ???? INPUT, FORWARD, PREROUTING
???? ???? ??? ????? ?? ?? ? ???
wild-card? ?? ?) eth -o, --out-interface
! name ???? FORWARD, OUTPUT,
PREROUTING ???? ?? ??? ?????? ?? ?? ?
??? wild-card? ?? ?) eth ! -f,
--fragment ?? ?? ??? ??? ??? ?? ???? ?? ??
?? ??? ? ?? -f? ??? ? ?? ??? ?? ??? ??? ? ??
?? ??, !? ??? ??? ???? ??? ?? ?? ?? -c,
--set-counters PKTS BYTES ??? ???? APPEND,
INSERT, REPLACE?? ?? ??? ???? byte
counter? ??? ?? ? ?? --modprobeltcommandgt
??? ??? ??? ? ? ??? ??? ??? command? ???
?? ??
42Iptables syntax-??
iptables -t filter some other commands
- iptables? 1?? ?? -N, --new-chain chain
-X, --delete-chain chain -L, --list
chain -E, --rename-chain old-c new-c
-F, --flush chain -Z, --zero chain
-P, --policy chain target -h, --help
- ?? ??? ??? ?? ??? -A, --append chain
rule-spec -D, --delete chain rule-spec
-I, --insert chain rulenum rule-spec -R,
--replace chain rulenum rule-spec
- rule-specification? ???? ?? Parameter -p,
--protocol ! protocol -s, --source !
address/mask -d, --destination !
address/mask -j, --jump target -i,
--in-interface ! name -o, --out-interface
! name ! -f, --fragment -c,
--set-counters PKTS BYTES --modprobeltcommandgt
43Iptables syntax-??
- iptables ?? ?? ?? iptables? ??? ???? ??? ?
???? ?? ???? ?? iptables? ?? ???? ??? ?? ???
?? ?? ??, ???? ???? ??? ???? ?? ?? ??
?? ?? /lib/modules, iptables ?? ??
/lib/iptables ??? ??? ? ???? loading?
iptables?? ??? ??? ?? match, target
44Iptables syntax-??
- iptables? match ?? match? ??? ???? ?? ???
???? ??? ???? ???, ????? ?? -p? ??? ??? ??
????? ?? ??? ??? ?? loading ???? ???? ???
-m, --match? ???? ??? ?? ?? -p tcp ??? ???
?? --source-port ! portport ??? ??
??? ?? ??? ?? ?? ex) 11024?1024? ?? ??,
! ? ??? ?? ??, --sport? ??
--destination-port ! portport ??? ?? ???
??? ?? ?? ex) 11024?1024? ?? ??, ! ? ???
?? ??, --dport? ?? --tcp-flags ! mask
comp ??? tcp flag ?? mask? comp? ???
? ?? flag SYN ACK FIN RST URG PSH ??
?? ?? ?(comma? ??) ? ALL or NONE ?? ??
mask? ??? flag?? ?????, comp? ??? flag? ??
! -syn --tcp-flags SYN,RST,ACK ? ??? ??
SYN flag? ? ?? ???? ????? ?? ???
--tcp-option ! number ??? ? ??? ??? ?? ??
??, tcp option? ??? number? ??? ?? ???
??, ? ?? ??? DROP. --mss valuevalue
tcp SYN, SYN/ACK ??? MSS? ?? ?? ?? ???
????? ??
45Iptables syntax-??
-p udp ??? ??? ?? --source-port !
portport tcp? ?? --destination-port
! portport tcp? ?? icmp? ???? ??
--icmp-type ! typename ??? typename? icmp
type? ?? (iptable p icmp h ? icmp
typename ??) echo-reply(0)
destination-unreachable(3)
network,host, protocol, port-unreachable,
network,host-unkown
sourcequench(4) redirect(5)
network, host, TOS-network, TOS-host-redirect
echo-request(8-ping)
time-exceeded(10) ttl-zero-during-trans
it, ttl-zero-during-reassembly
parameter-problem(11) ip-header-bad,
required-option-missing
46Iptables syntax-??
- iptables match ?? (-m, --match) limit?
???? ?? ?? --limit rate rate? ??? ??? ??
?? ?? ?? ??? ?? --limit-burst number
limit? ???? number?? ??? ????? ?? ??
number? 5??? ?? 5?? ??? ? ????? ? limit rate?
???? 3/hour??? 20? ?? ?? ??? ?? ?? ? ??
??? ??? ??? ? ??? ? ???, ?? ??? ???? ?? ???
????? ?? ???? ?? ??? ?? ? ?? -m
state? ???? ?? ?? --state state ? ???
???? ?? ??? ??? ?? ?? ?? state? ??? ? ??
?? NEW, EXSTABLISHED, RELATED, INVALID
NEW ?? ??? ?? ??? ???? ?? EXSTABLISHED
?? ??? ??? ?? ?? ??(??? ?? ??) RELATED
?? ??? ??? ?? ?? ???? ??? ??? ???
?? ICMP ?? ??? ?? ??? ??
INVALID ?? ?? ? ?? ??? ??? ? ?? ??
47Iptables syntax-??
-m conntrack? ???? ?? ??(-m state?? ??? ??)
--ctstate state ????? m state --state? ??? ??
? SNAT? DNAT flag? ???? ???, ?? ??? ??? ??
??? ??? ?? ??? SNAT ??? ??, ?? ??? ??? ??
??? ??? ?? ? DNAT ??? ? --proto proto
????? ??? ??(??, ?? ?? ??, -p? ??)
--ctorigsrc ! address/mask ?? ??? ??? ??.
--ctorigdst ! address/mask ?? ??? ???
?? --ctreplsrc ! address/mask ?? ???
??? ?? --ctrepldst ! address/mask ??
??? ??? ?? --ctstatus NONE EXPECTED
SEEN_REPLY ASSURED, ??? ?? ?? ??? ???
?? --ctexpire timetime ?? life-time?
???? ??/??? ???? ??(?? ??? second)
mask? AND?? ?? ??? ??
48Iptables syntax-??
-m mac? ???? ?? ?? --mac-source ! address
MAC??? ?? ??? ??? XXXXXXXXXXXX ??
?????? MAC ?? ??? ?? ??? PREROUTING, INPUT,
FORWARDING ????? ?? -m owner? ???? ??
?? --uid-owner userid ??? UID? ????? ???
??? ?? --gid-owner groupid ??? GID? ?????
??? ??? ?? --pid-owner processed ??? PID?
????? ??? ??? ?? --sid-owner sessionid ???
session ?? ?? ????? ???
??? ?? --cmd-owner name ???
??? command? ??? ?????
??? ??? ?? -m mark? ???? ?? ??
--mark value/mask MARK target? ?? ??? mark
?? ??? ?? ??. mask
?? ????? mask? AND? ?? ??
49Iptables syntax-??
-m multiport? ???? ?? ??(-p tcp? -p udp? ?
?? ??) --source-ports port,port,port
?? 15??? ??? ??? ?? ?? ??? ?? ??? ??? ? ???
??? ???? ??, -p tcp? -p udp? ?? ??
???. --dports? ?? ??? --ports
port,port,port ?? ???? ??? ??? ?? ???
???
?? ?? ??? ?? ?? -m tos? ???? ?? ?? --tos
tos IP??? ?? TOS??? ?? Minimize-Delay(0x10),
Maximize-Throughput(0x08),
Maximize-Reliability(0x04), Minimize-Cost(0x02),
Normal-Service(0x00) -m unclean ??? ? ???
???? ?? ?? ?? ?? ??
50Iptables syntax-??
- target ?? ??? ACCEPT? DROP??? target?? ???
? ?? ?? ?? ????? ???? ?? ???? jump ??
jump? ???? ??? ??, ??? jump? ??? ??? ???
?????? ?? ??? dead lock?? ??? ?? ?? ?? ????
???? ?? jump? ?? target? ????? ? ?? target??
????? LOG? REJECT? ?? NAT? ???? ??
mangling?? ?? target ??? ?? -j LOG? ?? ??
--log-level level ?? ??? ??
/usr/include/sys/syslog.h? ?? emerg(0),
alert(1), crit(2), err(3), warn(4), notice(5),
info(6), debug(7) --log-prefix prefix ??
?? ?? ???? ??, ?? ??? ?? --log-tcp-sequence
tcp?? ??? ??? ??, ?????? ??? ?? ????
???? ? ? ??? ?? --log-tcp-options TCP ??
?????? ??? ??? ?? --log-ip-options IP ??
?????? ??? ??? ??
51Iptables syntax-??
-j REJECT? ?? ?? REJECT? DROP? ??? ??? ??? ?
????? ICMP ?? ??? ?? --reject-with type ???
?? ??? ?? type? ??? ???? icmp-net-unreachabl
e, icmp-host-unreachable,
icmp-port-unreachable(?? ?), icmp-proto-unreachabl
e, icmp-net-prohibited, icmp-host-prohibite
d?? ??, type?? tcp-reset ? ??(tcp?) -j
TCPMSS? ??? ?? ?? ?? TCPMSS? ??? ?? ?? ??? ???
? ???, TCP SYN ??? MSS ?? ????? ???? ?? ?? ??
--set-mss value ????? mss ?? ?? ??? ??? ??
--clamp-mss-to-pmtu MSS?? ????? ??(path_MTU -
40) ?, ???? ?? ??? ?? ????? ???? ?
52Iptables syntax-??
-t nat? ???? nat ???? ???? target ??
(?? ? ????? ? -t nat? ??? ???? nat ??? ??) -j
SNAT? ???? ?? ?? nat ???? POSTROUTING ?????
?? ?? --to-source ipaddr-ipaddrport-port
??? IP ??? ?? ???? ??? ? ? ??? ?? ??? ???
?? ?? ??? ?? ??? ??? ??? ????? tcp? udp?
?? --to-source? ?? ? ???? ?? ?? ??? ?? ??
??? ????? ???? ?? -to??? ?? ?? ?? -j
DNAT? ???? ?? ?? nat ???? PREROUTING?
OUTPUT????? ?? ?? --to-destination
ipaddr-ipaddrport-port ??? IP ??? ??
???? ??? ? ? ??? ?? ??? ??? ?? ?? ??? ??
??? ??? ??? ????? tcp? udp? ?? ??? ???? ???
??? ???? ?? --to- destination? ?? ? ???? ??
?? ??? ?? ?? ??? ????? ???? ???? ?? ?? ??
--to??? ?? ?? ??
53Iptables syntax-??
-j MASQUERADE? ???? ?? ?? nat ????
POSTROUTING ???? ?? --to-ports port-port
??? ??, ?? ???? ??? ??? ???? ??????? ?
SNAT? ?? ?? IP? ???? ????? ?. ??? ??? ????
IP??? ??? ?? POSTRUTING???? MASQUERADING?
?? ?? out-interface? ?? ? ?????, ??? ????
??? tcp? udp? ?????? -j REDIRECT? ???? ?? ??
nat???? PREROUTING? OUTPUT ??, ?? ? ????? ??
??? ?? ????? ?? ??? ?? ???? ??
--to-ports port-port REDIRECTION? ?? ???
?? ??? ?? ??? ?? ?? ??? ??? ??? ??? DNAT?
??? ?? ???? ? ??? ?? ??? ???? ??? ????
?????? INPUT ???? ?? ?????, ???? ??? ???
?? ???? loopback ?????? ??? ?? ???
PREROUTING ???? ?? ???? ?? ??? in-interface? ???
??? ??, OUTPUT ???? ?? ???? ?? ???
out-interface? ??? ??? ?.
54Iptables syntax-??
?? ??? MARK? TOS? mangle ???? ???? ????
target??? t mangle? ? ???? ? -j MARK? ????
target ?? ?? --set-mark mark ???
Netfilter mark ?? ???? (??? filter ????
match?? ??) -j TOS? ???? target?? ??
--set-tos tos ??? tos ?? ?? ??, ??? filter
???? match ???? ???? tos ?? ?? ?? match
???? ???
55Iptables syntax-??
- iptables? match ?? -p tcp ??? ??? ??
--source-port ! portport
--destination-port ! portport
--tcp-flags ! mask comp ! -syn
--tcp-option ! number --mss
valuevalue
-m conntrack? ???? ?? ?? --ctstate state
--proto proto --ctorigsrc !
address/mask --ctorigdst !
address/mask --ctreplsrc !
address/mask --ctrepldst !
address/mask --ctstatus NONE EXPECTED
--ctexpire timetime
-p udp ??? ??? ?? --source-port !
portport --destination-port !
portport icmp? ???? ?? --icmp-type
! typename
-m mac? ???? ?? ?? --mac-source ! address
-m owner? ???? ?? ?? --uid-owner userid
--gid-owner groupid --pid-owner processed
--sid-owner sessionid --cmd-owner name -m
mark? ???? ?? ?? --mark value/mask
- iptables match ?? (-m, --match) limit?
???? ?? ?? --limit rate
--limit-burst number -m state? ???? ?? ??
--state state
-m multiport? ???? ?? ?? --source-ports
port,port,port -m tos? ???? ?? ??
--tos tos -m unclean
56Iptables syntax-??
- target ?? -j LOG? ?? ?? --log-level
level --log-prefix prefix
--log-tcp-sequence --log-tcp-options
--log-ip-options
-j REJECT? ?? ?? --reject-with type -j
TCPMSS? ??? ?? ?? ?? --set-mss value
--clamp-mss-to-pmtu
-j MARK? ???? target ?? ?? --set-mark mark
-j TOS? ???? target?? ?? --set-tos tos
-j SNAT? ???? ?? ?? --to-source
ipaddr-ipaddrport-port -j DNAT? ???? ??
?? --to-destination ipaddr-ipaddrport-port
-j MASQUERADE? ???? ?? ?? --to-ports
port-port -j REDIRECT? ???? ?? ??
--to-ports port-port
57Iptables ??
- iptables? ???? ??? ?? ?? ? ????? ??? ? ??
???? ??? ??? ?? ?? - ?? ??? ????? DROP - ??
???? ????? ??? ???? ?? ??? ?? ? ????
??? ???? ?????? ????? ??? ?? - ??? ??? ????? ????
???? ??? ??? ??? ???
iptables A INPUT s 192.168.1.0/24 j DROP
iptables A INPUT s 192.168.1.32 j ACCEPT
iptables A INPUT s 192.168.1.32 j ACCEPT
iptables A INPUT s 192.168.1.0/24 j DROP
- ? ??? ?? ? ??? ?? - ? ?? ??? ? ?? ?? target?
ACCEPT? ??? ??? ??? ?? - ACCEPT ?? ? ?? ???? ???
?? ??? DROP ?? ????? ?
58script file? ??
- ???