[Linux] ๋ฐฉํ™”๋ฒฝ(iptables) ๊ธฐ๋ณธ ์„ค์ • ๊ฐ€์ด๋“œ

๐Ÿ“… 2026-03-09 07:22:03.513533 | ๐Ÿ‘€ 28

๋ฆฌ๋ˆ…์Šค ์„œ๋ฒ„๋ฅผ ์šด์˜ํ•  ๋•Œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ณด์•ˆ ์„ค์ • ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐฉํ™”๋ฒฝ ๊ด€๋ฆฌ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ์šด์˜์ฒด์ œ์—์„œ๋Š” ์ „ํ†ต์ ์œผ๋กœ **iptables**๊ฐ€ ๊ธฐ๋ณธ ๋ฐฉํ™”๋ฒฝ์œผ๋กœ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋Œ€ํ‘œ์ ์ธ OS


  • CentOS 6
  • CentOS 7
  • Red Hat Enterprise Linux 6
  • ์ผ๋ถ€ ์ตœ์†Œ ์„ค์น˜ Linux

๋‹ค๋งŒ CentOS7 ์ดํ›„์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ

**firewalld**๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ ๋‚ด๋ถ€์ ์œผ๋กœ iptables๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


์ด๋ฒˆ ๊ธ€์—์„œ๋Š” iptables์˜ ๊ธฐ๋ณธ ๊ฐœ๋…๊ณผ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


1.iptables๋ž€ ๋ฌด์—‡์ธ๊ฐ€

iptables๋Š” Linux ์ปค๋„์˜ Netfilter ์‹œ์Šคํ…œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๋ฐฉํ™”๋ฒฝ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

iptables๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.


  • ํŠน์ • IP ํ—ˆ์šฉ
  • ํŠน์ • ํฌํŠธ ์ฐจ๋‹จ
  • ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ์ œ์–ด
  • ํŒจํ‚ท ํ•„ํ„ฐ๋ง


2.iptables ๊ธฐ๋ณธ ๊ตฌ์กฐ

iptables๋Š” Table โ†’ Chain โ†’ Rule ๊ตฌ์กฐ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์กฐ ์˜ˆ

CODE
text
Table
 โ”œ Filter
 โ”‚   โ”œ INPUT
 โ”‚   โ”œ OUTPUT
 โ”‚   โ”” FORWARD

์ฃผ์š” ์ฒด์ธ

์ฒด์ธ์„ค๋ช…

INPUT - ์„œ๋ฒ„๋กœ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ

OUTPUT - ์„œ๋ฒ„์—์„œ ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ

FORWARD - ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋กœ ์ „๋‹ฌ๋˜๋Š” ํŠธ๋ž˜ํ”ฝ


3.ํ˜„์žฌ iptables ๊ทœ์น™ ํ™•์ธ

ํ˜„์žฌ ์„ค์ •๋œ ๊ทœ์น™ ํ™•์ธ

CODE
bash
sudo iptables -L -n -v

์„ค๋ช…


  • -L : ๊ทœ์น™ ๋ชฉ๋ก ์ถœ๋ ฅ
  • -n : IP ์ฃผ์†Œ ์ˆซ์ž๋กœ ํ‘œ์‹œ
  • -v : ์ƒ์„ธ ์ •๋ณด ํ‘œ์‹œ


4.๊ธฐ๋ณธ ์ •์ฑ… ์„ค์ •

์„œ๋ฒ„ ๋ณด์•ˆ์„ ์œ„ํ•ด ๊ธฐ๋ณธ ์ •์ฑ…์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

CODE
bash
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP

์„ค๋ช…

INPUT โ†’ ๊ธฐ๋ณธ ์ฐจ๋‹จ

OUTPUT โ†’ ๊ธฐ๋ณธ ํ—ˆ์šฉ


5.์ •์ฑ… ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ ๋ฐฉ๋ฒ•


Port ์ ‘๊ทผ ํ—ˆ์šฉ

CODE
bash
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

์„ค๋ช…

  • -A INPUT : INPUT ์ฒด์ธ์— ๊ทœ์น™ ์ถ”๊ฐ€
  • -p tcp : TCP ํ”„๋กœํ† ์ฝœ
  • --dport 22 : 22๋ฒˆ ํฌํŠธ
  • ACCEPT : ํ—ˆ์šฉ


IP+Port ์ ‘๊ทผ ํ—ˆ์šฉ

CODE
bash
sudo iptables -A INPUT -p tcp -s 192.168.1.10 --dport 22 -j ACCEPT


IP ์ ‘๊ทผ ์ฐจ๋‹จ

CODE
bash
sudo iptables -A INPUT -s 192.168.1.100 -j DROP


์ด๋ฏธ ์—ฐ๊ฒฐ๋œ ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ

CODE
bash
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

์ด ๊ทœ์น™์€ ์„œ๋ฒ„ ๋ฐฉํ™”๋ฒฝ ์„ค์ •์—์„œ ๊ฑฐ์˜ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


ํŠน์ • ๊ทœ์น™ ์‚ญ์ œ

ํ˜„์žฌ ๊ทœ์น™ ํ™•์ธ

CODE
bash
iptables -L --line-numbers


์‚ญ์ œ

CODE
bash
sudo iptables -D INPUT 1


6.CentOS์—์„œ iptables ์„ค์ • ์ €์žฅ

Ubuntu์™€ ๋‹ค๋ฅด๊ฒŒ CentOS์—์„œ๋Š” iptables ์„œ๋น„์Šค๊ฐ€ ๊ทœ์น™์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ

CODE
bash
service iptables save

๋˜๋Š”

CODE
bash
/etc/init.d/iptables save


์ €์žฅ ์œ„์น˜

CODE
file
/etc/sysconfig/iptables

์ด ํŒŒ์ผ์ด ์žฌ๋ถ€ํŒ… ํ›„์—๋„ ์ ์šฉ๋˜๋Š” ๊ทœ์น™ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.


7.iptables ์„œ๋น„์Šค ๊ด€๋ฆฌ

์„œ๋น„์Šค ์‹œ์ž‘

CODE
bash
systemctl start iptables

์„œ๋น„์Šค ์ƒํƒœ ํ™•์ธ

CODE
bash
systemctl status iptables

๋ถ€ํŒ… ์ž๋™ ์‹œ์ž‘

CODE
bash
systemctl enable iptables


#CentOS7 ์ดํ›„ ๋ณ€ํ™”

CentOS7๋ถ€ํ„ฐ ๊ธฐ๋ณธ ๋ฐฉํ™”๋ฒฝ์€

๐Ÿ‘‰ firewalld

์ž…๋‹ˆ๋‹ค.

๊ตฌ์กฐ

CODE
text
firewalld
   โ†“
iptables
   โ†“
Linux Netfilter

๊ทธ๋ž˜์„œ iptables๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ

๋ณดํ†ต firewalld๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


์ •๋ฆฌ

OS ๊ธฐ๋ณธ ๋ฐฉํ™”๋ฒฝ

CentOS6 - iptables

CentOS7 - firewalld

Ubuntu - UFW

Debian - iptables / nftables

๐Ÿ’ก ์‹ค์ œ ์„œ๋ฒ„ ์šด์˜ ํŒ

์š”์ฆ˜ Linux ๋ฐฉํ™”๋ฒฝ ๊ตฌ์กฐ๋Š” ์ด๋ ‡๊ฒŒ ๋ฐ”๋€Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

CODE
text
nftables
   โ†‘
iptables (ํ˜ธํ™˜ ๊ณ„์ธต)

๊ทธ๋ž˜์„œ ์ตœ์‹  ๋ฐฐํฌํŒ์—์„œ๋Š”

  • nftables
  • firewalld

์‚ฌ์šฉ์ด ์ ์  ๋Š˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


โ† ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ