[OPNsense] WAF; Web Application Firewall ๊ตฌ์ถ•ํ•˜๊ธฐ

2023. 7. 10. 06:00ใ†System ์ž‘์—…์‹ค/Server ๊ด€๋ จ

728x90
๋ฐ˜์‘ํ˜•

 




 

 

๋ฏธ๋‹ˆ PC PfSense ๋ฐฉํ™”๋ฒฝ N5105 ๋ผ์šฐํ„ฐ 4x ์ธํ…” i225V B3 25G LAN 2x ddr4 NVMe ์‚ฐ์—…์šฉ ํŒฌ๋ฆฌ์Šค 4xUSB HDMI20 OPNsense PV

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

๐Ÿš€ [OPNsense] WAF; Web Application Firewall

    ๐Ÿ”ฝ ๊ฐœ์š”

        ๐Ÿ“ฆ ์†Œ๊ฐœ

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Web Service๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด์„œ WAF, Web Application Firewall ์ฆ‰, ์›น ๋ฐฉํ™”๋ฒฝ์„ ๊ตฌ์ถ•ํ•ด ๋ณด๋ ค๊ณ ํ•ด์š”.

OPNsense๋Š” ์ฐธ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด ์ค˜์„œ ์ข‹์€ ๊ฑฐ ๊ฐ™์•„์š”.

WAF์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์ด ๊ณณ์— ์ •์„ฑ์Šค๋Ÿฝ๊ฒŒ ์ค€๋น„ํ•ด ๋‘์—ˆ์–ด์š”.

์ฃผ๋‹ˆ๋Š” NAXSI๋ฅผ ์„ค์น˜ํ•ด ์ฃผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ, NAXSI๋Š” WAF์ด๊ณ , Nginx Anti XSS(Cross Site Scripting) & SQL Injection์˜ ์•ฝ์ž์—์š”.

์•ฝ์ž๋กœ๋งŒ ๋ด๋„ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ, Nginx ์ „์šฉ WAF์ด๊ธฐ ๋•Œ๋ฌธ์— Nginx์™€ NAXSI์˜ ์กฐํ•ฉ์€ ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ ํŽธ์ด์—์š”.

ํŠน์ง•์œผ๋กœ ์›น ์‚ฌ์ดํŠธ ์ทจ์•ฝ์ ๊ณผ ์•Œ๋ ค์ง„ ํŒจํ„ด๋“ค์ด 99%๊ฐ€ ์ ์šฉ ๋˜์–ด ์žˆ๊ณ , ์ฝ๊ธฐ ์‰ฌ์šด ํŒจํ„ด์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ํŠน์ • ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜๋Š”๋ฐ, ๋งค์šฐ ์‰ฝ๋‹ค๊ณ  ํ•ด์š”.

๋”์šฑ์ด ์˜คํ”ˆ ์†Œ์Šค๋กœ ๋ฌด๋ฃŒ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค.

 

 

 

    ๐Ÿ”ฝ OPNsense

        ๐Ÿ“ฆ ์ดˆ๊ธฐ ์ž‘์—…

System -> Firmware -> Plugins

728x90

 

 

์ตœ์ดˆ WAF๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„  Plugin์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์–ด์•ผ ํ•ด์š”.

์ฃผ๋‹ˆ๋Š” Naxsi๋ฅผ ์„ค์น˜ํ•ด ์ฃผ๋„๋ก ํ• ๊ฒŒ์š”.




 


์œ„์˜ ๋‘ Plugin์„ + ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ์„ค์น˜ ํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 

 

        ๐Ÿ“ฆ Nginx Service ์„ค์ •

 

 

 

Services -> Nginx -> Configuration -> Upstream -> Upstream Server

 

 

 

์ด๋ฒˆ์—” ์œ„์™€ ๊ฐ™์ด ์ด๋™ํ•ด์„œ Nginx์— ๋Œ€ํ•œ ์„ค์ •์„ ํ•ด ๋ณผ๊ฒŒ์š”.



์ฃผ๋‹ˆ๋Š” ์œ„์™€ ๊ฐ™์ด DMZ Zone์— ์œ„์น˜ํ•œ Nginx Server ์‚ฌ์„ค IP๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ์ˆœ์„œ๋ฅผ 1๋ฒˆ์œผ๋กœ ์ง€์ •ํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 



Services -> Nginx -> Configuration -> Upstream -> Upstream

 

 

 

์ฃผ๋‹ˆ๋Š” ์œ„์™€ ๊ฐ™์ด ์„ค์ • ํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 

Service -> Nginx -> Configuration -> HTTP(S) -> Naxsi WAF Policy

 


์ด๋ฒˆ์—” ์œ„์™€ ๊ฐ™์ด Page๋ฅผ ์ด๋™ํ•ด ์ค„๊ฒŒ์š”.

 

 


์ตœ์ดˆ Download๋ฅผ ๋ˆŒ๋Ÿฌ ์ •์ฑ…๋“ค์„ ๋‚ด๋ ค ๋ฐ›์•„ ์ค„๊ฒŒ์š”.

 

 

 

๋‚ด๋ ค ๋ฐ›๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์œ„์™€ ๊ฐ™์ด ๋‚˜์˜ฌ๊ฑฐ์—์š”.


 

SQL Injection ๊ด€๋ จ ์ •์ฑ…์„ ๋ณด๋‹ˆ ์ด๋ ‡๊ฒŒ๋‚˜ ๋งŽ์€ ์ •์ฑ…์ด ๋“ค์–ด๊ฐ€ ์žˆ๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.


Service -> Nginx -> Configuration -> HTTP(S) -> Naxsi WAF Rule

 

 

์ด๋ฒˆ์—” WAF ๊ทœ์น™์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋™ํ•ด ๋ณผ๊ฒŒ์š”.



์—ญ์‹œ๋‚˜ ๋งŽ์€ ๊ทœ์น™์ด ์กด์žฌํ•˜๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”.

์ฃผ๋‹ˆ์“ฐ๋Š” ์ง€๊ธˆ ๋‹น์žฅ ์ถ”๊ฐ€ํ•  ์ •์ฑ…์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ™•์ธ๋งŒ ํ•˜๊ณ , ๋„˜์–ด๊ฐˆ๊ฒŒ์š”.


Service -> Nginx -> Configuration -> HTTP(S) -> Location

 

 


์ด์ œ ์ด ๊ณณ์œผ๋กœ ์ด๋™ํ•ด ๋ณผ๊ฒŒ์š”.

 



์ด ๊ณณ์—์„œ URL Pattern์„ root๋กœ ํ•ด์ฃผ์—ˆ๋Š”๋ฐ,  ์ด๊ฑด ํ‘œ์ค€ ๊ฐ’์„ ์ž…๋ ฅํ•ด ์ค€ ๊ฒƒ์ด์—์š”.

๊ทธ๋ฆฌ๊ณ , Enable Security Rules๋ฅผ ํ™œ์„ฑํ™” ํ•˜์—ฌ WAF๊ฐ€ ์ ์šฉ๋˜๋„๋ก ํ•ด ์ฃผ์—ˆ์–ด์š”.

Learning Mode๋ฅผ ๋น„ ํ™œ์„ฑํ™” ํ•˜์—ฌ ์ฐจ๋‹จ ๋ชจ๋“œ๋ฅผ ํ•ด์ œํ•˜๊ณ , ๊ธฐ๋ก ๋ชจ๋“œ๋กœ ๋ณ€ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰์•„์ฃผ์—ˆ์–ด์š”.

Custom Security Policy์˜ ๊ฒฝ์šฐ ์œ„์—์„œ ๋‚ด๋ ค ๋ฐ›์•˜๋˜ ์ •์ฑ… ๋ชจ๋‘๋ฅผ ์„ ํƒํ•ด ์ฃผ์—ˆ์–ด์š”.

 

 


Upstream Server ์—ญ์‹œ ์ด์ „์— ๋งŒ๋“ค์–ด๋…ผ Upstream ์„ค์ •์„ ๊ฐ€์ ธ ์™”๋‹ต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๊ณ , Save๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ์—ˆ์–ด์š”.

 

 

Services -> Nginx -> Configuration -> HTTP Server

 


์ด๋ฒˆ์—” HTTP Server Tab์œผ๋กœ ์ด๋™ํ•ด ๋ณผ๊ฒŒ์š”.


์ตœ์ดˆ + ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ๋’ค ์œ„์™€ ๊ฐ™์ด Server Name์„ Domin ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•ด ์ฃผ์—ˆ์–ด์š”.

๊ทธ๋ฆฌ๊ณ  ์ด์ „์— ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๋˜ Location ์„ค์ •์„ Locations์—์„œ ์„ ํƒํ•ด ์ฃผ์—ˆ์–ด์š”.

๋‚˜๋จธ์ง€๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋‘๊ณ , Save ๋ˆŒ๋Ÿฌ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.



์ด๋ฒˆ์—” General Settins๋กœ ์ด๋™ํ•ด ์ฃผ์—ˆ์–ด์š”.

Enable nginx Check Box๊ฐ€ ํ™œ์„ฑํ™” ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , Apply๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ์—ˆ์–ด์š”.








        ๐Ÿ“ฆ ๋ฐฉํ™”๋ฒฝ ์ •์ฑ… ์„ค์ •

์›น ์•ฑ์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์ „์— Inbound HTTP๋ฅผ ํ—ˆ์šฉํ•˜๋Š” WAN ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ๋งŒ๋“ค์–ด์•ผํ•ด์š”.
ํ˜„์žฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ญํ• ์„ ๋ฐฉํ™”๋ฒฝ์ด ํ•˜๋Š”๋ฐ, HTTPS ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•ด์„œ๋Š” Nginx์— ์˜ํ•ด ์—ญํ• ์„ ๋Œ€์‹ ํ•  ์ˆ˜ ์žˆ์–ด์š”.

 

 

Firewall -> Rules -> WAN

 

์ด์ œ ์ •์ฑ…์„ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด ์ค„๊ฒŒ์š”.



Client๋Š” Web์— ์ ‘์†ํ•  ๋•Œ, 80 Port๋ฅผ ์ด์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ •์ฑ…์„ ์—ด์–ด์ฃผ๋ ค๊ณ  ํ•ด์š”.



์ตœ์ดˆ ์œ„์™€ ๊ฐ™์ด WAN Interface์— IPv4์™€ TCP๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜ค๋Š” ์ •์ฑ…์„ ํ—ˆ์šฉํ•˜๋Š”๋ฐ, Source ์ฆ‰, ์ถœ๋ฐœ์ง€๋Š” ์–ด๋””๋“  ์ƒ๊ด€ ์—†์ด Destination ์ฆ‰, ๋„์ฐฉ์ง€๋Š” OPNsense ๋ฐฉํ™”๋ฒฝ์œผ๋กœ ํ•ด ์ฃผ์—ˆ์–ด์š”.

์ด๋ ‡๊ฒŒ ํ•œ ๋’ค Save๋ฅผ ๋ˆŒ๋Ÿฌ ์ €์žฅํ•ด ์ค๋‹ˆ๋‹ค.



๊ทธ๋Ÿฐ๋’ค Apply Changes๋ฅผ ๋ˆŒ๋Ÿฌ ์ฃผ์—ˆ์–ด์š”.




 

 

 

 

๐Ÿง ์ฐธ๊ณ  ์ž๋ฃŒ

 

 

 

 

 

๋ฏธ๋‹ˆ PC PfSense ๋ฐฉํ™”๋ฒฝ N5105 ๋ผ์šฐํ„ฐ 4x ์ธํ…” i225V B3 25G LAN 2x ddr4 NVMe ์‚ฐ์—…์šฉ ํŒฌ๋ฆฌ์Šค 4xUSB HDMI20 OPNsense PV

COUPANG

www.coupang.com

"์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค."

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•