[Linux] firewalld ์„ค์ • ๋ฐฉ๋ฒ• (CentOS / RHEL ๋ฐฉํ™”๋ฒฝ ๊ฐ€์ด๋“œ)

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

CentOS 7 ์ดํ›„์™€ RHEL ๊ณ„์—ด ์‹œ์Šคํ…œ์—์„œ๋Š” ๊ธฐ๋ณธ ๋ฐฉํ™”๋ฒฝ์œผ๋กœ **firewalld**๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

firewalld๋Š” ๊ธฐ์กด **iptables**๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ๋ณด๋‹ค ํŽธ๋ฆฌํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” firewalld์˜ ๊ฐœ๋…, ๊ธฐ๋ณธ ๋ช…๋ น์–ด, ํฌํŠธ ํ—ˆ์šฉ ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.


firewalld๋ž€ ๋ฌด์—‡์ธ๊ฐ€

firewalld๋Š” Linux ๋ฐฉํ™”๋ฒฝ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ๋ชฌ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

ํŠน์ง•

  • ๋™์  ๋ฐฉํ™”๋ฒฝ ๊ด€๋ฆฌ
  • ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ๊ทœ์น™ ์„ค์ •
  • Zone ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ์ •์ฑ…
  • ์žฌ์‹œ์ž‘ ์—†์ด ๊ทœ์น™ ์ ์šฉ


firewalld๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ Linux ์ปค๋„์˜ **Netfilter ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.


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

firewalld ์ƒํƒœ ํ™•์ธ

BASH
systemctl status firewalld

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

BASH
systemctl start firewalld

๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹คํ–‰

BASH
systemctl enable firewalld


firewalld ๊ธฐ๋ณธ ๊ฐœ๋… (Zone)

firewalld์˜ ํ•ต์‹ฌ ๊ฐœ๋…์€ Zone์ž…๋‹ˆ๋‹ค.

Zone์€ ๋„คํŠธ์›Œํฌ ์‹ ๋ขฐ ์ˆ˜์ค€์— ๋”ฐ๋ผ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ…์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.


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

Zone์„ค๋ช…

trusted - ๋ชจ๋“  ํŠธ๋ž˜ํ”ฝ ํ—ˆ์šฉ

home - ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ

public - ๊ณต์šฉ ๋„คํŠธ์›Œํฌ

work - ํšŒ์‚ฌ ๋„คํŠธ์›Œํฌ

drop - ๋ชจ๋“  ํŒจํ‚ท ์ฐจ๋‹จ


ํ˜„์žฌ Zone ํ™•์ธ

BASH
firewall-cmd --get-default-zone


firewalld ํ˜„์žฌ ์„ค์ • ํ™•์ธ

์ „์ฒด ์„ค์ • ํ™•์ธ

BASH
firewall-cmd --list-all

ํŠน์ • zone ํ™•์ธ

BASH
firewall-cmd --zone=public --list-all


์ •์ฑ… ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ

ํฌํŠธ ํ—ˆ์šฉ ๋ฐฉ๋ฒ•

BASH
firewall-cmd --add-port=80/tcp


์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ํ—ˆ์šฉ ๋ฐฉ๋ฒ•

BASH
firewall-cmd --add-service=ssh


ํŠน์ • IP ํ—ˆ์šฉ

BASH
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.10" accept'


ํŠน์ • IP ์ฐจ๋‹จ

BASH
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" drop'


ํฌํŠธ ์ œ๊ฑฐ

BASH
firewall-cmd --remove-port=80/tcp


permanent ์„ค์ • ์ œ๊ฑฐ

BASH
firewall-cmd --remove-port=80/tcp --permanent


์„œ๋น„์Šค ๋ชฉ๋ก ํ™•์ธ

BASH
firewall-cmd --get-services


์˜๊ตฌ ์„ค์ • (permanent)

firewalld ์„ค์ •์€ ๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“œ ์„ค๋ช…

runtime - ํ˜„์žฌ ์‹คํ–‰ ์ค‘ ์„ค์ •

permanent - ์žฌ๋ถ€ํŒ… ํ›„ ์œ ์ง€

์˜ˆ

BASH
firewall-cmd --add-port=80/tcp --permanent

์„ค์ • ์ ์šฉ

BASH
firewall-cmd --reload


firewalld vs iptables

firewalld๋Š” iptables ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜์ง€๋งŒ ๊ด€๋ฆฌ ๋ฐฉ์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

ํ•ญ๋ชฉfirewalldiptables๊ด€๋ฆฌ ๋ฐฉ์‹๋™์  ๊ด€๋ฆฌ์ˆ˜๋™ ๊ด€๋ฆฌ์„ค์ • ๊ตฌ์กฐzone ๊ธฐ๋ฐ˜rule ๊ธฐ๋ฐ˜์ ์šฉ ๋ฐฉ์‹reload ํ•„์š”์ฆ‰์‹œ ์ ์šฉ๋‚œ์ด๋„์‰ฌ์›€์–ด๋ ค์›€

์ผ๋ฐ˜์ ์œผ๋กœ CentOS ํ™˜๊ฒฝ์—์„œ๋Š” firewalld๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ,

๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ ์„ค์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ iptables๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.


์ •๋ฆฌ

firewalld๋Š” CentOS / RHEL ํ™˜๊ฒฝ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๋ฐฉํ™”๋ฒฝ ๊ด€๋ฆฌ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ํŠน์ง•


  • zone ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ์ •์ฑ…
  • ์„œ๋น„์Šค ๊ธฐ๋ฐ˜ ํฌํŠธ ๊ด€๋ฆฌ
  • ๋™์  ๋ฐฉํ™”๋ฒฝ ์„ค์ •


iptables๋ณด๋‹ค ์„ค์ •์ด ๊ฐ„๋‹จํ•˜๋ฉฐ ์„œ๋ฒ„ ์šด์˜ ์‹œ ๊ธฐ๋ณธ ๋ฐฉํ™”๋ฒฝ ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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