IPTABLES
๊ฐ์
iptables ๋ช ๋ น์ด๋ก ๋ฆฌ๋ ์ค ์๋ฒ IN/OUT ํจํท์ ํํฐ๋ง ํ๊ฑฐ๋ NAT ์ค์ ์ ํ ์ ์๋ค.ํน์ ์กฐ๊ฑด์ ํตํด ๋ค์ํ ๋ฐฉ์์ ํจํท ํํฐ๋ง๊ณผ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ง์ ์์ฐจ์ ์คํ์ผ๋ก ์ ์ฑ Top-Down ๋ฐฉ์์ผ๋ก ์ ์ฑ ์ด ์ ํจํ๋ค.์ค์ ํ์ผ ์์น : /etc/sysconfig/iptables

iptables ์๋น์ค ์ค์น
RHEL/CentOS 7๋ถํฐ๋ ๋ฐฉํ๋ฒฝ์ firewalld ๋ผ๋ ๋ฐ๋ชฌ์ผ๋ก ๊ต์ฒดํ๊ณ ํ๋ก๊ทธ๋จ์ iptables ๋ช ๋ น์ด ๋์ CLI์์๋ firewall-cmd, GUI์์๋ firewall-config๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋ค.
iptables ๋ฐ๋ชฌ ์ ์ด ๋ช
๋ น์ด
์ฌ์ฉ๋ฒ
table
filter - iptables์ ๊ธฐ๋ณธ ํ ์ด๋ธ๋ก ํจํท ํํฐ๋ง
nat - IP ์ฃผ์ ๋ณํ
mangle - ํจํท ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ๋ ํน์ ๊ท์น์ ์ค์ ํ๊ฑฐ๋ ์ฑ๋ฅ ํฅ์์ ์ํ ToS ์ค์ raw - netfilter์ ์ฐ๊ฒฐ ์ถ์ ํ์ ์์คํ ๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ๋์ํด์ผ ํ๋ ๊ท์น์ ์ค์
๋ช ์ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก filter
action
-A (--append) : ์๋ก์ด ์ ์ฑ ์ ์ถ๊ฐ
-I (--insert) : ์์น๋ฅผ ์ ํํ์ฌ ์ ์ฑ ์ ์ฝ์ # iptables -I INPUT 2 (2ํ์ ์ถ๊ฐ)
-D (--delete) : ์ ์ฑ ์ ์ญ์
-R (--replace) : ์ ์ฑ ์ ๊ต์ฒด
-F (--flush) : ์ฒด์ธ์ผ๋ก๋ถํฐ ๋ชจ๋ ์ ์ฑ ์ญ์
-P (--policy) : ๊ธฐ๋ณธ ์ ์ฑ ์ ์ค์
-L (--list) : ์ ์ฑ ๋ชฉ๋ก์ ํ์ธ
chain

INPUT - ์๋ฒ๋ก ๋ค์ด์ค๋ ํจํท์ INPUT ์ฒด์ธ์ ํต๊ณผ
OUTPUT - ์๋ฒ์์ ๋๊ฐ๋ ํจํท์ OUTPUT ์ฒด์ธ์ ํต๊ณผ
FORWARD - ์๋ฒ๊ฐ ๋ชฉ์ ์ง๊ฐ ์๋ ๋ชจ๋ ํจํท์ FORWARD ์ฒด์ธ์ ํต๊ณผ
match
๋งค์น ์ต์ ์ ํตํด์ ์ธ๋ถ์ ์ธ ํจํท์ ์ง์ ํ ์ ์์
-s (--source, --src) : ์ถ๋ฐ์ง, ๋๋ฉ์ธ or ip or ๋ท๋ง์คํฌ ๊ฐ
--sport : ์ถ๋ฐ์ง ํฌํธ
-d (--destination, --dst) : ๋ชฉ์ ์ง , ๋๋ฉ์ธ or, ip or ๋ท๋ง์คํฌ ๊ฐ
--dport : ๋ชฉ์ ์ง ํฌํธ -p : ํ๋กํ ์ฝ TCP, UDP, ICMP์ ๊ฐ์ IP ํ๋กํ ์ฝ
-i (--in-interface) : ์ ๋ ฅ ์ธํฐํ์ด์ค
-o (--out-interface) : ์ถ๋ ฅ ์ธํฐํ์ด์ค
-m (--match) : ํน์ ๋ชจ๋ ์ฌ์ฉ (๋ณดํต state ๋ชจ๋ ์ฌ์ฉ)
--state : ์ฐ๊ฒฐ ์ํ (NEW, ESTABLISHED, RELATED, INVALID)
--line : ์ค๋ฒํธ ์ถ๋ ฅ -j (--jump) : ๊ท์น์ ๋ง๋ ํจํท์ ํ๋
target
์กฐ๊ฑด์ ๋งค์นญ๋๋ ํจํท์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ธ์ง ์ง์ ํ๋ ๋ถ๋ถ
ACCEPT : ๋งค์นญ๋๋ ํจํท ํ์ฉ
DROP : ๋งค์นญ๋๋ ํจํท ๊ฑฐ๋ถ
LOG : ๋งค์นญ๋๋ ํจํท ๋ก๊ทธ ์ ์ฅ
REJECT : ๋งค์นญ๋๋ ํจํท ๊ฑฐ๋ถ (TCP-RST, UDP-ICMP Port Unreachable)
RETURN : ์ฒด์ธ ๋ด์์ ํจํท ์ฒ๋ฆฌ๋ฅผ ๊ณ์ํจ (์ฌ๊ท)
๋ฐฑ์
, ๋ณต์
์ฐ๊ฒฐ ์ถ์ (Connection Tracking)
iptables๋ ์ฐ๊ฒฐ ์ถ์ (Connection Tracking)์ด๋ผ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ด๋ถ ๋คํธ์ํฌ ์ ์๋น์ค ์ฐ๊ฒฐ ์ํ์ ๋ฐ๋ผ์ ๊ทธ ์ฐ๊ฒฐ์ ๊ฐ์ํ๊ณ ์ ํํ ์ ์๊ฒ ํด์ค๋ค.
์ฐ๊ฒฐ ์ถ์ ๋ฐฉ์์ ์ฐ๊ฒฐ ์ํ๋ฅผ ํ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์, ๋ค์๊ณผ ๊ฐ์ ์ฐ๊ฒฐ ์ํ์์ ๋ฐ๋ผ์ ์์คํ ๊ด๋ฆฌ์๊ฐ ๊ฒฐ์ ํ์ฉํ๊ฑฐ๋ ๊ฑฐ๋ถํ ์ ์๋ค.
NEW - ์๋ก์ด ์ฐ๊ฒฐ์ ์์ฒญํ๋ ํจํท
ESTABLISHED - ๊ธฐ์กด ์ฐ๊ฒฐ์ ์ผ๋ถ์ธ ํจํท
RELATED - ๊ธฐ์กด ์ฐ๊ฒฐ์ ์ํ์ง๋ง ์๋ก์ด ์ฐ๊ฒฐ์ ์์ฒญํ๋ ํจํท
INVALID - ์ฐ๊ฒฐ ์ถ์ ํ์์ ์ด๋ ์ฐ๊ฒฐ์๋ ์ํ์ง ์์ ํจํท
์ํ์ ๊ธฐ๋ฐ(Stateful)ํ iptables ์ฐ๊ฒฐ ์ถ์ ๊ธฐ๋ฅ์ ์ด๋ ๋คํธ์ํฌ ํ๋กํ ์ฝ์์๋ ์ฌ์ฉ ๊ฐ๋ฅ, UDP์ ๊ฐ์ด ์ํ๋ฅผ ์ ์ฅํ์ง ์๋(Stateless) ํ๋กํ ์ฝ์์๋ ์ฌ์ฉํ ์ ์๋ค.
์ ์์ ์ ๊ฐ์ด INPUT์์ SSH ํ์ฉ ํ OUTPUT์์ ESTABLISHED๋ฅผ ํ์ฉํด์ฃผ๋ฉด
OUTPUT์์ ๋ค๋ฅธ ์ ์ฑ ์ถ๊ฐ ์์ด Client๋ SSH ์ ์์ด ๊ฐ๋ฅํ๋ค.
์์
Last updated