๋„๋ฉ”์ธ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ธฐ์—…์šฉ ๋ฌด๋ฃŒ ํ”„๋ก์‹œ ์„œ๋ฒ„

๋„๋ฉ”์ธ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ธฐ์—…์šฉ ๋ฌด๋ฃŒ ํ”„๋ก์‹œ ์„œ๋ฒ„

https ํ•„ํ„ฐ๋ง์ด ์žˆ๋Š” pfSense+Squid + Active Directory ๊ทธ๋ฃน ํ•„ํ„ฐ๋ง์ด ์žˆ๋Š” SSO(Single Sign-On)

๊ฐ„๋‹จํ•œ ๋ฐฐ๊ฒฝ

ํšŒ์‚ฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ถ”๊ฐ€ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ์›น ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก AD์—์„œ ๊ทธ๋ฃน๋ณ„๋กœ ์‚ฌ์ดํŠธ(https ํฌํ•จ)์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ข‹์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์ •๋‹ต์€ Kerio Control์ด๋‚˜ UserGate์™€ ๊ฐ™์€ ์†”๋ฃจ์…˜์„ ๊ตฌ์ž…ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ํ•ญ์ƒ ๋ˆ์€ ์—†์ง€๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ข‹์€ ์˜ค๋ž˜๋œ Squid๊ฐ€ ๊ตฌ์กฐํ•˜๋Ÿฌ ์˜ค๋Š” ๊ณณ์ด์ง€๋งŒ ๋‹ค์‹œ ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ์€ ์–ด๋””์ž…๋‹ˆ๊นŒ? SAMS2? ๋„๋•์ ์œผ๋กœ ๊ตฌ์‹์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ pfSense๊ฐ€ ๊ตฌ์ถœ๋˜๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค.

๊ธฐ์ˆ 

์ด ๋ฌธ์„œ์—์„œ๋Š” Squid ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
Kerberos๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
SquidGuard๋Š” ๋„๋ฉ”์ธ ๊ทธ๋ฃน๋ณ„๋กœ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Lightsquid, sqstat ๋ฐ ๋‚ด๋ถ€ pfSense ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์ด ๋ชจ๋‹ˆํ„ฐ๋ง์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ SSO(Single Sign-On) ๊ธฐ์ˆ ์˜ ๋„์ž…๊ณผ ๊ด€๋ จ๋œ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ, ์ฆ‰ ์‹œ์Šคํ…œ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚˜์นจ๋ฐ˜ ๊ณ„์ •์œผ๋กœ ์ธํ„ฐ๋„ท ์„œํ•‘์„ ์‹œ๋„ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Squid ์„ค์น˜ ์ค€๋น„

pfSense๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜์—ฌ ์„ค์น˜ ์ง€์นจ.

๋‚ด๋ถ€์—์„œ ๋„๋ฉ”์ธ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฉํ™”๋ฒฝ ์ž์ฒด์—์„œ ์ธ์ฆ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ง€์นจ.

๊ทธ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค!

Squid ์„ค์น˜๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— pfsense์—์„œ DNS ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  DNS ์„œ๋ฒ„์—์„œ A ๋ ˆ์ฝ”๋“œ์™€ PTR ๋ ˆ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹œ๊ฐ„์ด ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์‹œ๊ฐ„๊ณผ ๋‹ค๋ฅด์ง€ ์•Š๋„๋ก NTP๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋„คํŠธ์›Œํฌ์—์„œ pfSense์˜ WAN ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜๊ณ  ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํฌํŠธ 7445 ๋ฐ 3128(์ œ ๊ฒฝ์šฐ์—๋Š” 8080)์„ ํฌํ•จํ•˜์—ฌ LAN ์ธํ„ฐํŽ˜์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋‘ ์ค€๋น„๋˜์—ˆ๋‚˜์š”? pfSense์—์„œ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ์œ„ํ•ด ๋„๋ฉ”์ธ๊ณผ LDAP ์—ฐ๊ฒฐ์ด ์„ค์ •๋˜์–ด ์žˆ๊ณ  ์‹œ๊ฐ„์ด ๋™๊ธฐํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ? ์—„์ฒญ๋‚œ. ์ฃผ์š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค.

์„ค์น˜ ๋ฐ ์‚ฌ์ „ ๊ตฌ์„ฑ

Squid, SquidGuard ๋ฐ LightSquid๋Š” "์‹œ์Šคํ…œ/ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž" ์„น์…˜์˜ pfSense ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—์„œ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.

์„ฑ๊ณต์ ์œผ๋กœ ์„ค์น˜ํ•œ ํ›„ "์„œ๋น„์Šค/์˜ค์ง•์–ด ํ”„๋ก์‹œ ์„œ๋ฒ„/"๋กœ ์ด๋™ํ•˜๊ณ  ๋จผ์ € ๋กœ์ปฌ ์บ์‹œ ํƒญ์—์„œ ์บ์‹ฑ์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์„ 0์œผ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์‚ฌ์ดํŠธ๋ฅผ ์บ์‹ฑํ•˜๋Š” ๋ฐ ๋ณ„ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด ์ž‘์—…์„ ํ›Œ๋ฅญํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ • ํ›„ ํ™”๋ฉด ํ•˜๋‹จ์˜ "์ €์žฅ" ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ธฐ๋ณธ ํ”„๋ก์‹œ ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ธฐ์—…์šฉ ๋ฌด๋ฃŒ ํ”„๋ก์‹œ ์„œ๋ฒ„

๊ธฐ๋ณธ ํฌํŠธ๋Š” 3128์ด์ง€๋งŒ 8080์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ก์‹œ ์ธํ„ฐํŽ˜์ด์Šค ํƒญ์—์„œ ์„ ํƒํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„๊ฐ€ ์ฒญ์ทจํ•  ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉํ™”๋ฒฝ์€ ์ธํ„ฐ๋„ท์—์„œ WAN ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณด์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— LAN๊ณผ WAN์ด ๋™์ผํ•œ ๋กœ์ปฌ ์„œ๋ธŒ๋„ท์— ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํ”„๋ก์‹œ๋Š” LAN์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

sqstat๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋ฃจํ”„๋ฐฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์—์„œ ํˆฌ๋ช…(ํˆฌ๋ช…) ํ”„๋ก์‹œ ์„ค์ •๊ณผ SSL ํ•„ํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํ•„์š”ํ•˜์ง€ ์•Š๊ณ  ํ”„๋ก์‹œ๊ฐ€ ํˆฌ๋ช…ํ•˜์ง€ ์•Š์œผ๋ฉฐ https ํ•„ํ„ฐ๋ง์˜ ๊ฒฝ์šฐ ์ธ์ฆ์„œ๋ฅผ ๊ต์ฒดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋ฌธ์„œ ํ๋ฆ„, ์€ํ–‰ ํด๋ผ์ด์–ธํŠธ ๋“ฑ), ์•…์ˆ˜๋งŒ ๋ด…์‹œ๋‹ค.

์ด ๋‹จ๊ณ„์—์„œ ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ด๋™ํ•˜์—ฌ ์ธ์ฆ ๊ณ„์ •์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(pfSense ์ž์ฒด์—์„œ ์ธ์ฆ์„ ์œ„ํ•ด ๊ตฌ์„ฑ๋œ ๊ณ„์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Œ). ๋‹ค์Œ์€ ๋งค์šฐ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค. AES128 ๋˜๋Š” AES256 ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๊ณ„์ • ์„ค์ •์—์„œ ํ•ด๋‹น ์ƒ์ž๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

๋„๋ฉ”์ธ์ด ๋งŽ์€ ์ˆ˜์˜ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๋งค์šฐ ๋ณต์žกํ•œ ํฌ๋ฆฌ์ŠคํŠธ์ด๊ฑฐ๋‚˜ ๋„๋ฉ”์ธ์ด .local์ธ ๊ฒฝ์šฐ ์ด ๊ณ„์ •์— ๊ฐ„๋‹จํ•œ ์•”ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ํ™•์‹คํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋ฒ„๊ทธ๋Š” ์•Œ๋ ค์ ธ ์žˆ์ง€๋งŒ ๋ณต์žกํ•œ ์•”ํ˜ธ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํŠน์ • ์‚ฌ๋ก€๋ฅผ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ธฐ์—…์šฉ ๋ฌด๋ฃŒ ํ”„๋ก์‹œ ์„œ๋ฒ„

๊ทธ๋Ÿฐ ๋‹ค์Œ Kerberos์šฉ ํ‚ค ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—ด๊ณ  ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

# ktpass -princ HTTP/[email protected] -mapuser pfsense -pass 3EYldza1sR -crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} -ptype KRB5_NT_PRINCIPAL -out C:keytabsPROXY.keytab

FQDN pfSense๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€์†Œ ๋ฌธ์ž๋ฅผ ์กด์ค‘ํ•˜๊ณ  mapuser ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋„๋ฉ”์ธ ๊ณ„์ •๊ณผ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์•”ํ˜ธํ™”์—์„œ ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๊ณ  ์ž‘์—…์— rc4๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  -out ํ•„๋“œ์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์„ ํƒํ•˜๋Š” ์œ„์น˜๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค. ์™„์„ฑ๋œ ํ‚ค ํŒŒ์ผ์„ ๋ณด๋‚ด๋“œ๋ฆฝ๋‹ˆ๋‹ค.
ํ‚ค ํŒŒ์ผ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ƒ์„ฑํ•œ ํ›„ ์ด๋ฅผ pfSense๋กœ ๋ณด๋‚ด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ด๋ฅผ ์œ„ํ•ด Far๋ฅผ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ๋ช…๋ น๊ณผ ํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ "์ง„๋‹จ ๋ช…๋ น์ค„" ์„น์…˜์˜ pfSense ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ /etc/krb5.conf๋ฅผ ํŽธ์ง‘/์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ธฐ์—…์šฉ ๋ฌด๋ฃŒ ํ”„๋ก์‹œ ์„œ๋ฒ„

์—ฌ๊ธฐ์„œ /etc/krb5.keytab์€ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ํ‚ค ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

kinit๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ kerberos์˜ ์ž‘๋™์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ๋” ์ด์ƒ ์ฝ์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Squid ์ธ์ฆ ๋ฐ ์ธ์ฆ ์—†์ด ์•ก์„ธ์Šค ๋ชฉ๋ก ๊ตฌ์„ฑ

Kerberos๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์„ฑํ–ˆ์œผ๋ฉด Squid์— ๊ณ ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ServicesSquid ํ”„๋ก์‹œ ์„œ๋ฒ„๋กœ ์ด๋™ํ•˜๊ณ  ๊ธฐ๋ณธ ์„ค์ •์—์„œ ๋งจ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด "๊ณ ๊ธ‰ ์„ค์ •" ๋ฒ„ํŠผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ง€์ • ์˜ต์…˜(์ธ์ฆ ์ „) ํ•„๋“œ์— ๋‹ค์Œ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

#ะฅะตะปะฟะตั€ั‹
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/squid.keytab -t none
auth_param negotiate children 1000
auth_param negotiate keep_alive on
#ะกะฟะธัะบะธ ะดะพัั‚ัƒะฟะฐ
acl auth proxy_auth REQUIRED
acl nonauth dstdomain "/etc/squid/nonauth.txt" 
#ะ ะฐะทั€ะตัˆะตะฝะธั 
http_access allow nonauth 
http_access deny !auth
http_access allow auth

์–ด๋”” auth_param ํ˜‘์ƒ ํ”„๋กœ๊ทธ๋žจ /usr/local/libexec/squid/negotiate_kerberos_auth - ํ•„์š”ํ•œ ์ธ์ฆ Kerberos ๋„์šฐ๋ฏธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์—ด์‡  -s ์˜๋ฏธ ์žˆ๋Š” GSS_C_NO_NAME โ€” ํ‚ค ํŒŒ์ผ์—์„œ ๊ณ„์ • ์‚ฌ์šฉ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

์—ด์‡  -k ์˜๋ฏธ ์žˆ๋Š” /usr/local/etc/squid/squid.keytab - ์ด ํŠน์ • keytab ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ฒฝ์šฐ ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“  ๊ฒƒ๊ณผ ๋™์ผํ•œ keytab ํŒŒ์ผ์ด๋ฉฐ /usr/local/etc/squid/ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌํ•˜๊ณ  ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํ•œ ๊ถŒ๋ฆฌ.

์—ด์‡  -t ์˜๋ฏธ ์žˆ๋Š” -t ์—†์Œ - ๋„๋ฉ”์ธ ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ ์ฃผ๊ธฐ์  ์š”์ฒญ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ 50๋ช… ์ด์ƒ์ธ ๊ฒฝ์šฐ ๋กœ๋“œ๋ฅผ ํฌ๊ฒŒ ์ค„์ž…๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ ๊ธฐ๊ฐ„ ๋™์•ˆ -d ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ง„๋‹จ, ๋” ๋งŽ์€ ๋กœ๊ทธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
auth_param ํ˜‘์ƒ ํ•˜์œ„ 1000 - ๋™์‹œ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ ํ”„๋กœ์„ธ์Šค ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
auth_param keep_alive ํ˜‘์ƒ - ์ธ์ฆ ์ฒด์ธ์„ ํด๋งํ•˜๋Š” ๋™์•ˆ ์—ฐ๊ฒฐ์„ ๋Š์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
acl auth proxy_auth ํ•„์ˆ˜ - ์ธ์ฆ์„ ํ†ต๊ณผํ•œ ์‚ฌ์šฉ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ์•ก์„ธ์Šค ์ œ์–ด ๋ชฉ๋ก์„ ์ƒ์„ฑํ•˜๊ณ  ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.
acl nonauth dstdomain "/etc/squid/nonauth.txt" - ๋ชจ๋“  ์‚ฌ๋žŒ์ด ํ•ญ์ƒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์ƒ ๋„๋ฉ”์ธ์ด ํฌํ•จ๋œ nonauth ์•ก์„ธ์Šค ๋ชฉ๋ก์— ๋Œ€ํ•ด squid์— ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ํŒŒ์ผ ์ž์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ์•ˆ์— ํ˜•์‹์œผ๋กœ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

.whatsapp.com
.whatsapp.net

Whatsapp์€ ํ—›๋œ ์˜ˆ๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ธ์ฆ์ด ์žˆ๋Š” ํ”„๋ก์‹œ์— ๋Œ€ํ•ด ๋งค์šฐ ๊นŒ๋‹ค๋กญ๊ณ  ์ธ์ฆ ์ „์— ํ—ˆ์šฉ๋˜์ง€ ์•Š์œผ๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
http_access ๋น„์ธ์ฆ ํ—ˆ์šฉ - ๋ชจ๋“  ์‚ฌ์šฉ์ž์—๊ฒŒ ์ด ๋ชฉ๋ก์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ํ—ˆ์šฉ
http_access ๊ฑฐ๋ถ€! ์ธ์ฆ - ์Šน์ธ๋˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค.
http_access ํ—ˆ์šฉ ์ธ์ฆ - ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๊ฒŒ ๋‹ค์•ผ ์˜ค์ง•์–ด ์ž์ฒด๊ฐ€ ๊ตฌ์„ฑ๋˜์—ˆ์œผ๋ฏ€๋กœ ์ด์ œ ๊ทธ๋ฃน๋ณ„๋กœ ํ•„ํ„ฐ๋ง์„ ์‹œ์ž‘ํ•  ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

SquidGuard ๊ตฌ์„ฑ

ServicesSquidGuard ํ”„๋ก์‹œ ํ•„ํ„ฐ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

LDAP ์˜ต์…˜์—์„œ Kerberos ์ธ์ฆ์— ์‚ฌ์šฉ๋˜๋Š” ๊ณ„์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

CN=pfsense,OU=service-accounts,DC=domain,DC=local

๊ณต๋ฐฑ์ด๋‚˜ ๋น„๋ผํ‹ด ๋ฌธ์ž๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด ์ „์ฒด ํ•ญ๋ชฉ์„ ์ž‘์€๋”ฐ์˜ดํ‘œ ๋˜๋Š” ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"

๋‹ค์Œ์œผ๋กœ ๋‹ค์Œ ํ™•์ธ๋ž€์„ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ธฐ์—…์šฉ ๋ฌด๋ฃŒ ํ”„๋ก์‹œ ์„œ๋ฒ„

๋ถˆํ•„์š”ํ•œ DOMAINpfsense๋ฅผ ์ฐจ๋‹จํ•˜๋ ค๋ฉด DOMAIN์ „์ฒด ์‹œ์Šคํ…œ์ด ๋งค์šฐ ๋ฏผ๊ฐํ•œ .LOCAL.

์ด์ œ Group Acl๋กœ ์ด๋™ํ•˜์—ฌ ๋„๋ฉ”์ธ ์•ก์„ธ์Šค ๊ทธ๋ฃน์„ ๋ฐ”์ธ๋”ฉํ•˜๊ณ  group_0, group_1 ๋“ฑ๊ณผ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ์ด๋ฆ„์„ ์ตœ๋Œ€ 3๊นŒ์ง€ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ 3์€ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์—๋งŒ ์•ก์„ธ์Šคํ•˜๊ณ  0์€ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฃน์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=DOMAIN%2cDC=LOCAL))

๊ทธ๋ฃน์„ ์ €์žฅํ•˜๊ณ  Times๋กœ ์ด๋™ํ•˜์—ฌ ํ•ญ์ƒ ์ž‘๋™ํ•œ๋‹ค๋Š” ์˜๋ฏธ์˜ ๊ฐ„๊ฒฉ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๋Œ€์ƒ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ด๋™ํ•˜์—ฌ ์žฌ๋Ÿ‰์— ๋”ฐ๋ผ ๋ชฉ๋ก์„ ๋งŒ๋“ค๊ณ  ๋ชฉ๋ก์„ ๋งŒ๋“  ํ›„ ๊ทธ๋ฃน์œผ๋กœ ๋Œ์•„๊ฐ€๊ณ  ๊ทธ๋ฃน ๋‚ด์—์„œ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋””๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ๊ณผ ๊ฐˆ ์ˆ˜ ์—†๋Š” ์‚ฌ๋žŒ.

LightSquid ๋ฐ sqstat

๊ตฌ์„ฑ ํ”„๋กœ์„ธ์Šค ์ค‘์— squid ์„ค์ •์—์„œ ๋ฃจํ”„๋ฐฑ์„ ์„ ํƒํ•˜๊ณ  ๋„คํŠธ์›Œํฌ์™€ pfSense ์ž์ฒด์˜ ๋ฐฉํ™”๋ฒฝ์—์„œ 7445์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์—ฐ ๊ฒฝ์šฐ Squid ํ”„๋ก์‹œ ๋ณด๊ณ ์„œ ์ง„๋‹จ์œผ๋กœ ์ด๋™ํ•  ๋•Œ sqstat์™€ Lighsquid๋ฅผ ๋ชจ๋‘ ์‰ฝ๊ฒŒ ์—ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ›„์ž์˜ ๊ฒฝ์šฐ ๊ฐ™์€ ์žฅ์†Œ์—์„œ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๋””์ž์ธ์„ ์„ ํƒํ•  ๊ธฐํšŒ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์™„์„ฑ

pfSense๋Š” ๋งŽ์€ ์ผ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ํŠธ๋ž˜ํ”ฝ ํ”„๋ก์‹œ ๋ฐ ์ธํ„ฐ๋„ท์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ์ œ์–ด๋Š” ์ „์ฒด ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€์— ๋ถˆ๊ณผํ•˜์ง€๋งŒ 500๋Œ€์˜ ์‹œ์Šคํ…œ์„ ๋ณด์œ ํ•œ ๊ธฐ์—…์—์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋น„์šฉ์„ ์ ˆ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ฆฌ ๊ตฌ๋งค.

์ด ๊ธฐ์‚ฌ๊ฐ€ ์ค‘๊ฒฌ ๊ธฐ์—…๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€