WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

๊ธฐ์—… WiFi๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ๋Š” ์ด๋ฏธ ์„ค๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ์œ ์‚ฌํ•œ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•œ ๋ฐฉ๋ฒ•๊ณผ ๋‹ค๋ฅธ ์žฅ์น˜์— ์—ฐ๊ฒฐํ•  ๋•Œ ์ง๋ฉดํ•ด์•ผ ํ–ˆ๋˜ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋ก๋œ ์‚ฌ์šฉ์ž์™€ ํ•จ๊ป˜ ๊ธฐ์กด LDAP๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  FreeRadius๋ฅผ ๋†’์ด๊ณ  Ubnt ์ปจํŠธ๋กค๋Ÿฌ์—์„œ WPA2-Enterprise๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ„๋‹จํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ณด์žโ€ฆ

EAP ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์กฐ๊ธˆ

์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— ์†”๋ฃจ์…˜์—์„œ ์‚ฌ์šฉํ•  ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œ„ํ‚ค ํ”ผ ๋””์•„ ์ถœ์‹  :

EAP๋Š” ๋ฌด์„  ๋„คํŠธ์›Œํฌ ๋ฐ ์ง€์  ๊ฐ„ ์—ฐ๊ฒฐ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ธ์ฆ ํ”„๋ ˆ์ž„์›Œํฌ์ž…๋‹ˆ๋‹ค. ํ˜•์‹์€ RFC 3748์—์„œ ์ฒ˜์Œ ์„ค๋ช…๋˜์—ˆ๊ณ  RFC 5247์—์„œ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
EAP๋Š” ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๊ณ , ํ‚ค๋ฅผ ์ „๋‹ฌํ•˜๊ณ , EAP ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ํ‚ค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. EAP ์ž์ฒด๋กœ ์ •์˜๋œ ๋ฐฉ๋ฒ•๊ณผ ๊ฐœ๋ณ„ ๊ณต๊ธ‰์—…์ฒด์—์„œ ์ถœ์‹œํ•œ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ๋‹ค์–‘ํ•œ EAP ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. EAP๋Š” ๋งํฌ ๊ณ„์ธต์„ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ๋ฉ”์‹œ์ง€ ํ˜•์‹๋งŒ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. EAP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ ํ”„๋กœํ† ์ฝœ์—๋Š” ๊ณ ์œ ํ•œ EAP ๋ฉ”์‹œ์ง€ ์บก์Šํ™” ํ”„๋กœํ† ์ฝœ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์†Œ๋“œ ์ž์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • LEAP์€ CISCO์—์„œ ๊ฐœ๋ฐœํ•œ ๋…์  ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ทจ์•ฝ์ ์ด ๋ฐœ๊ฒฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • EAP-TLS๋Š” ๋ฌด์„  ๊ณต๊ธ‰์—…์ฒด์—์„œ ์ž˜ ์ง€์›๋ฉ๋‹ˆ๋‹ค. SSL ํ‘œ์ค€์˜ ํ›„์† ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ „ํ•œ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์„ค์ •์€ ๊ฝค ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ ์™ธ์— ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ ์ง€์›๋จ
  • EAP-TTLS - ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ ๋„๋ฆฌ ์ง€์›๋˜๋ฉฐ ์ธ์ฆ ์„œ๋ฒ„์—์„œ๋งŒ PKI ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์šฐ์ˆ˜ํ•œ ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • EAP-MD5๋Š” ๋˜ ๋‹ค๋ฅธ ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝํ•˜๋ฉฐ ์ƒํ˜ธ ์ธ์ฆ ๋ฐ ํ‚ค ์ƒ์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • EAP-IKEv2 - ์ธํ„ฐ๋„ท ํ‚ค ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ(Internet Key Exchange Protocol) ๋ฒ„์ „ 2๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„ ์ƒํ˜ธ ์ธ์ฆ ๋ฐ ์„ธ์…˜ ํ‚ค ์„ค์ •์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • PEAP๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์ธ CISCO, Microsoft ๋ฐ RSA Security์˜ ๊ณต๋™ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ œํ’ˆ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋งค์šฐ ์šฐ์ˆ˜ํ•œ ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. EAP-TTLS์™€ ์œ ์‚ฌํ•˜๋ฉฐ ์„œ๋ฒ„ ์ธก ์ธ์ฆ์„œ๋งŒ ํ•„์š”
  • PEAPv0/EAP-MSCHAPv2 - EAP-TLS ๋‹ค์Œ์œผ๋กœ ์„ธ๊ณ„์—์„œ ๋‘ ๋ฒˆ์งธ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. Microsoft, Cisco, Apple, Linux์—์„œ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ด€๊ณ„ ์‚ฌ์šฉ
  • PEAPv1/EAP-GTC - PEAPv0/EAP-MSCHAPv2์˜ ๋Œ€์•ˆ์œผ๋กœ Cisco์—์„œ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  ์ธ์ฆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Windows OS์—์„œ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • EAP-FAST๋Š” LEAP์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด Cisco์—์„œ ๊ฐœ๋ฐœํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. PAC(๋ณดํ˜ธ ์•ก์„ธ์Šค ์ž๊ฒฉ ์ฆ๋ช…)๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์™„์ „ํžˆ ๋ฏธ์™„์„ฑ

์ด ๋ชจ๋“  ๋‹ค์–‘์„ฑ ์ค‘์—์„œ ์„ ํƒ์˜ ์—ฌ์ง€๊ฐ€ ์—ฌ์ „ํžˆ ํฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ธ์ฆ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์ˆ˜ํ•œ ๋ณด์•ˆ, ๋ชจ๋“  ์žฅ์น˜(Windows 10, macOS, Linux, Android, iOS) ์ง€์›, ์‹ค์ œ๋กœ ๊ฐ„๋‹จํ• ์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ PAP ํ”„๋กœํ† ์ฝœ๊ณผ ํ•จ๊ป˜ EAP-TTLS๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.
์งˆ๋ฌธ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ PAP๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ถ„๋ช…ํ•˜๊ฒŒ ์ „์†กํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—?

๋„ค ๋งž์Šต๋‹ˆ๋‹ค. FreeRadius์™€ FreeIPA ๊ฐ„์˜ ํ†ต์‹ ์€ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ „์†ก๋˜๋Š”์ง€ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, ๊ทธ๋Œ€๋กœ ๋†”๋‘์‹ญ์‹œ์˜ค. ๊ท€ํ•˜๋งŒ์ด FreeRadius ์„œ๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

EAP-TTLS ์ž‘์—…์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—

FreeRADIUS

FreeRadius๋Š” CentOS 7.6์—์„œ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ณต์žกํ•œ ๊ฒƒ์ด ์—†์œผ๋ฉฐ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

yum install freeradius freeradius-utils freeradius-ldap -y

๋ฒ„์ „ 3.0.13์ด ํŒจํ‚ค์ง€์—์„œ ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ํ›„์ž๋ฅผ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค https://freeradius.org/

๊ทธ ํ›„ FreeRadius๋Š” ์ด๋ฏธ ์ž‘๋™ ์ค‘์ž…๋‹ˆ๋‹ค. /etc/raddb/users์—์„œ ํ•ด๋‹น ์ค„์˜ ์ฃผ์„ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

steve   Cleartext-Password := "testing"

๋””๋ฒ„๊ทธ ๋ชจ๋“œ์—์„œ ์„œ๋ฒ„ ์‹œ์ž‘

freeradius -X

๊ทธ๋ฆฌ๊ณ  localhost์—์„œ ํ…Œ์ŠคํŠธ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

radtest steve testing 127.0.0.1 1812 testing123

๋‹ต๋ณ€์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค 115:127.0.0.1์—์„œ 1812:127.0.0.1 ๊ธธ์ด 56081๊นŒ์ง€ ์•ก์„ธ์Šค ํ—ˆ์šฉ ID 20๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค., ๊ทธ๊ฒƒ์€ ๋ชจ๋“  ๊ฒƒ์ด ๊ดœ์ฐฎ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์†ํ•˜์„ธ์š”.

๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค LDAP.

ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap

๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ์ฆ‰์‹œ ๋ฐ”๊ฟ€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. FreeIPA์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด FreeRadius๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“œ ํ™œ์„ฑํ™”/ldap

ldap {
server="ldap://ldap.server.com"
port=636
start_tls=yes
identity="uid=admin,cn=users,dc=server,dc=com"
password=**********
base_dn="cn=users,dc=server,dc=com"
set_auth_type=yes
...
user {
base_dn="${..base_dn}"
filter="(uid=%{%{Stripped-User-Name}:-%{User-Name}})"
}
...

Radius ์„œ๋ฒ„๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  LDAP ์‚ฌ์šฉ์ž์˜ ๋™๊ธฐํ™”๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

radtest user_ldap password_ldap localhost 1812 testing123

๋‹ค์Œ์—์„œ ํŽธ์ง‘ ์ค‘ ๋ชจ๋“œ ํ™œ์„ฑํ™”/EAP
์—ฌ๊ธฐ์— ๋‘ ๊ฐœ์˜ eap ์ธ์Šคํ„ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ์™€ ํ‚ค๋งŒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ ๊ทธ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“œ ํ™œ์„ฑํ™”/EAP

eap eap-client {                                                                                                                                                                                                                           default_eap_type = ttls                                                                                                                                                                                                                 timer_expire = 60                                                                                                                                                                                                                       ignore_unknown_eap_types = no                                                                                                                                                                                                          cisco_accounting_username_bug = no                                                                                                                                                                                                      max_sessions = ${max_requests}
           tls-config tls-common {
           private_key_file = ${certdir}/fisrt.key
           certificate_file = ${certdir}/first.crt
           dh_file = ${certdir}/dh
           ca_path = ${cadir}
           cipher_list = "HIGH"
           cipher_server_preference = no
           ecdh_curve = "prime256v1"
           check_crl = no
           }
                                                                                                                                                                                                                                                                                                                                                                                                                                                 
           ttls {
           tls = tls-common
           default_eap_type = md5
           copy_request_to_tunnel = no
           use_tunneled_reply = yes
           virtual_server = "inner-tunnel"
           }
}
eap eap-guest {
default_eap_type = ttls                                                                                                                                                                                                                 timer_expire = 60                                                                                                                                                                                                                       ignore_unknown_eap_types = no                                                                                                                                                                                                          cisco_accounting_username_bug = no                                                                                                                                                                                                      max_sessions = ${max_requests}
           tls-config tls-common {
           private_key_passwotd=blablabla
           private_key_file = ${certdir}/server.key
           certificate_file = ${certdir}/server.crt
           dh_file = ${certdir}/dh
           ca_path = ${cadir}
           cipher_list = "HIGH"
           cipher_server_preference = no
           ecdh_curve = "prime256v1"
           check_crl = no
           }
                                                                                                                                                                                                                                                                                                                                                                                                                                                 
           ttls {
           tls = tls-common
           default_eap_type = md5
           copy_request_to_tunnel = no
           use_tunneled_reply = yes
           virtual_server = "inner-tunnel"
           }
}

์ถ”๊ฐ€ ํŽธ์ง‘ ์‚ฌ์ดํŠธ ํ™œ์„ฑํ™”/๊ธฐ๋ณธ. ์Šน์ธ ๋ฐ ์ธ์ฆ ์„น์…˜์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ ํ™œ์„ฑํ™”/๊ธฐ๋ณธ

authorize {
  filter_username
  preprocess
  if (&User-Name == "guest") {
   eap-guest {
       ok = return
   }
  }
  elsif (&User-Name == "client") {
    eap-client {
       ok = return 
    }
  }
  else {
    eap-guest {
       ok = return
    }
  }
  ldap
  if ((ok || updated) && User-Password) {
    update {
        control:Auth-Type := ldap
    }
  }
  expiration
  logintime
  pap
  }

authenticate {
  Auth-Type LDAP {
    ldap
  }
  Auth-Type eap-guest {
    eap-guest
  }
  Auth-Type eap-client {
    eap-client
  }
  pap
}

์Šน์ธ ์„น์…˜์—์„œ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ชจ๋“  ๋ชจ๋“ˆ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. LDAP๋งŒ ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ํ™•์ธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์œ„์—์„œ eap ์ธ์Šคํ„ด์Šค ๋‘ ๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ EAP์‚ฌ์‹ค ์ผ๋ถ€ ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ ์‹œ์Šคํ…œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋„๋ฉ”์ธ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ ๊ธฐ๊ด€์˜ ์ธ์ฆ์„œ์™€ ํ‚ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ ์ ˆ์ฐจ๋Š” ๊ฐ ์žฅ์น˜์— ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์‰ฝ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๊ฐ€ ์—†์–ด๋„ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‚ผ์„ฑ ๊ธฐ๊ธฐ ๋ฐ Android =< 6 ๋ฒ„์ „์—์„œ๋Š” ์‹œ์Šคํ…œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„์˜ eap-guest ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์žฅ์น˜์˜ ๊ฒฝ์šฐ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ์„œ์™€ ํ•จ๊ป˜ eap-client๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ ์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋  ๋•Œ ์ต๋ช… ํ•„๋“œ์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ŠคํŠธ, ํด๋ผ์ด์–ธํŠธ ๋ฐ ๋นˆ ํ•„๋“œ์˜ 3๊ฐ€์ง€ ๊ฐ’๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ํ๊ธฐ๋ฉ๋‹ˆ๋‹ค. ์ •์น˜์ธ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ž ์‹œ ํ›„์— ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์Šน์ธ ๋ฐ ์ธ์ฆ ์„น์…˜์„ ํŽธ์ง‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ดํŠธ ์ง€์›/๋‚ด๋ถ€ ํ„ฐ๋„

์‚ฌ์ดํŠธ ์ง€์›/๋‚ด๋ถ€ ํ„ฐ๋„

authorize {
  filter_username
  filter_inner_identity
  update control {
   &Proxy-To-Realm := LOCAL
  }
  ldap
  if ((ok || updated) && User-Password) {
    update {
        control:Auth-Type := ldap
    }
  }
  expiration
  digest
  logintime
  pap
  }

authenticate {
  Auth-Type eap-guest {
    eap-guest
  }
  Auth-Type eap-client {
    eap-client
  }
  Auth-Type PAP {
    pap
  }
  ldap
}

๋‹ค์Œ์œผ๋กœ, ์ต๋ช… ๋กœ๊ทธ์ธ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์„ ์ •์ฑ…์— ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํŽธ์ง‘ ์ •์ฑ….d/ํ•„ํ„ฐ.

๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ์ค„์„ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

if (&outer.request:User-Name !~ /^(anon|@)/) {
  update request {
    Module-Failure-Message = "User-Name is not anonymized"
  }
  reject
}

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ elsif์— ์›ํ•˜๋Š” ๊ฐ’์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

elsif (&outer.request:User-Name !~ /^(guest|client|@)/) {
  update request {
    Module-Failure-Message = "User-Name is not anonymized"
  }
  reject
}

์ด์ œ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ๋ช…์„œ. ์—ฌ๊ธฐ์—๋Š” ์ด๋ฏธ ๋ณด์œ ํ•˜๊ณ  ์žˆ๊ณ  eap-guest์— ๋Œ€ํ•œ ์ž์ฒด ์„œ๋ช… ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ ๊ธฐ๊ด€์˜ ํ‚ค์™€ ์ธ์ฆ์„œ๋ฅผ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์„ธ์š”. ca.cnf.

ca.cnf


...
default_days = 3650
default_md = sha256
...
input_password = blablabla
output_password = blablabla
...
countryName = RU
stateOrProvinceNmae = State
localityNmae = City
organizationName = NONAME
emailAddress = [email protected]
commonName = "CA FreeRadius"

ํŒŒ์ผ์— ๋™์ผํ•œ ๊ฐ’์„ ์”๋‹ˆ๋‹ค. ์„œ๋ฒ„.cnf. ์šฐ๋ฆฌ๋งŒ ๋ณ€ํ•ด์š”
์ผ๋ฐ˜ ์ด๋ฆ„:

์„œ๋ฒ„.cnf


...
default_days = 3650
default_md = sha256
...
input_password = blablabla
output_password = blablabla
...
countryName = RU
stateOrProvinceNmae = State
localityNmae = City
organizationName = NONAME
emailAddress = [email protected]
commonName = "Server Certificate FreeRadius"

๋งŒ๋“ค๋‹ค:

make

์ค€๋น„๊ฐ€ ๋œ. ๋ฐ›์•˜๋‹ค ์„œ๋ฒ„.crt ะธ ์„œ๋ฒ„ ํ‚ค ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ eap-guest์— ์œ„์—์„œ ๋“ฑ๋กํ–ˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ํŒŒ์ผ์— ์•ก์„ธ์Šค ํฌ์ธํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ.conf. ๊ทธ ์ค‘ 7๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํฌ์ธํŠธ๋ฅผ ๋ณ„๋„๋กœ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ํฌ์ธํŠธ๊ฐ€ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ๋งŒ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค(๋‚ด ์•ก์„ธ์Šค ํฌ์ธํŠธ๋Š” ๋ณ„๋„์˜ VLAN์— ์žˆ์Œ).

client APs {
ipaddr = 192.168.100.0/24
password = password_AP
}

์œ ๋น„์ฟผํ„ฐ์Šค ์ปจํŠธ๋กค๋Ÿฌ

์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๋ณ„๋„์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. 192.168.2.0/24๋กœ ๋†”๋‘์„ธ์š”
์„ค์ • -> ํ”„๋กœํ•„๋กœ ์ด๋™ํ•˜์„ธ์š”. ์šฐ๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค:

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

Radius ์„œ๋ฒ„์˜ ์ฃผ์†Œ์™€ ํฌํŠธ, ๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์— ์ ํ˜€์žˆ๋˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ ์–ด์ค๋‹ˆ๋‹ค ํด๋ผ์ด์–ธํŠธ.conf:

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

์ƒˆ ๋ฌด์„  ๋„คํŠธ์›Œํฌ ์ด๋ฆ„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ธ์ฆ ๋ฐฉ๋ฒ•์œผ๋กœ WPA-EAP(Enterprise)๋ฅผ ์„ ํƒํ•˜๊ณ  ์ƒ์„ฑ๋œ ๋ฐ˜๊ฒฝ ํ”„๋กœํ•„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

๋ชจ๋“  ๊ฒƒ์„ ์ €์žฅํ•˜๊ณ  ์ ์šฉํ•˜๊ณ  ๊ณ„์† ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์„ค์ •

๊ฐ€์žฅ ์–ด๋ ค์šด ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ฉ์‹œ๋‹ค!

์œˆ๋„์šฐ 10

๋ฌธ์ œ๋Š” Windows๊ฐ€ ๋„๋ฉ”์ธ์„ ํ†ตํ•ด ํšŒ์‚ฌ WiFi์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„์ง ๋ชจ๋ฅธ๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ๊ท€๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ์ฆ์„œ๋ฅผ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ์„œ ์ €์žฅ์†Œ์— ์ˆ˜๋™์œผ๋กœ ์—…๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ์ž์ฒด ์„œ๋ช…๋œ ์ธ์ฆ์„œ์™€ ์ธ์ฆ ๊ธฐ๊ด€์˜ ์ธ์ฆ์„œ๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‘ ๋ฒˆ์งธ ๊ฒƒ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๋‹ค.

๋‹ค์Œ์œผ๋กœ ์ƒˆ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋„คํŠธ์›Œํฌ ๋ฐ ์ธํ„ฐ๋„ท ์„ค์ • -> ๋„คํŠธ์›Œํฌ ๋ฐ ๊ณต์œ  ์„ผํ„ฐ -> ์ƒˆ ์—ฐ๊ฒฐ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ตฌ์„ฑ์œผ๋กœ ์ด๋™ํ•˜์„ธ์š”.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

๋„คํŠธ์›Œํฌ ์ด๋ฆ„์„ ์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ  ๋ณด์•ˆ ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜์„ธ์š”. ํด๋ฆญํ•œ ํ›„ ์—ฐ๊ฒฐ ์„ค์ • ๋ณ€๊ฒฝ ๋ณด์•ˆ ํƒญ์—์„œ ๋„คํŠธ์›Œํฌ ์ธ์ฆ - EAP-TTLS๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

์šฐ๋ฆฌ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋“ค์–ด๊ฐ€์„œ ์ธ์ฆ์˜ ๊ธฐ๋ฐ€์„ฑ์„ ๊ทœ์ •ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ. ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ธ์ฆ ๊ธฐ๊ด€์œผ๋กœ์„œ ์ถ”๊ฐ€ํ•œ ์ธ์ฆ์„œ๋ฅผ ์„ ํƒํ•˜๊ณ  "์„œ๋ฒ„๋ฅผ ์ธ์ฆํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ดˆ๋Œ€๋ฅผ ๋ฐœํ–‰ํ•˜์ง€ ์•Š์Œ" ์ƒ์ž๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ์ธ์ฆ ๋ฐฉ๋ฒ• - ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ๋น„๋ฐ€๋ฒˆํ˜ธ(PAP)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

๋‹ค์Œ์œผ๋กœ ๊ณ ๊ธ‰ ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ "์ธ์ฆ ๋ชจ๋“œ ์ง€์ •"์„ ์„ ํƒํ•˜์„ธ์š”. "์‚ฌ์šฉ์ž ์ธ์ฆ"์„ ์„ ํƒํ•˜๊ณ  ํด๋ฆญํ•˜์„ธ์š”. ์ž๊ฒฉ ์ฆ๋ช… ์ €์žฅ. ์—ฌ๊ธฐ์— ์‚ฌ์šฉ์ž ์ด๋ฆ„_ldap ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ_ldap์„ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

๋ชจ๋“  ๊ฒƒ์„ ์ €์žฅํ•˜๊ณ  ์ ์šฉํ•˜๊ณ  ๋‹ซ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Linux

Ubuntu 18.04, 18.10, Fedora 29, 30์—์„œ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋จผ์ € ์ธ์ฆ์„œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Linux์—์„œ ์‹œ์Šคํ…œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ๊ทธ๋Ÿฌํ•œ ์ €์žฅ์†Œ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ์— ์ ‘์†ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ์ฆ์„œ๋ฅผ ๊ตฌ๋งคํ•œ ์ธ์ฆ ๊ธฐ๊ด€์˜ ์ธ์ฆ์„œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์—ฐ๊ฒฐ์€ ํ•˜๋‚˜์˜ ์ฐฝ์—์„œ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ์„ ํƒ:

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

์ต๋ช… ํด๋ผ์ด์–ธํŠธ
domain - ์ธ์ฆ์„œ๊ฐ€ ๋ฐœ๊ธ‰๋˜๋Š” ๋„๋ฉ”์ธ

Android

์‚ผ์„ฑ ์ด์™ธ์˜ ์ œํ’ˆ

๋ฒ„์ „ 7๋ถ€ํ„ฐ๋Š” WiFi ์—ฐ๊ฒฐ ์‹œ ๋„๋ฉ”์ธ๋งŒ ์ง€์ •ํ•˜์—ฌ ์‹œ์Šคํ…œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

domain - ์ธ์ฆ์„œ๊ฐ€ ๋ฐœ๊ธ‰๋˜๋Š” ๋„๋ฉ”์ธ
์ต๋ช… ํด๋ผ์ด์–ธํŠธ

์‚ผ์„ฑ

์œ„์—์„œ ์“ด ๊ฒƒ์ฒ˜๋Ÿผ ์‚ผ์„ฑ ๊ธฐ๊ธฐ๋Š” WiFi์— ์—ฐ๊ฒฐํ•  ๋•Œ ์‹œ์Šคํ…œ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ณ  ๋„๋ฉ”์ธ์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ธ์ฆ ๊ธฐ๊ด€์˜ ๋ฃจํŠธ ์ธ์ฆ์„œ(ca.pem, Radius ์„œ๋ฒ„์—์„œ ๊ฐ€์ ธ์˜ด)๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์ž์ฒด ์„œ๋ช…์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์„œ๋ฅผ ์žฅ์น˜์— ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.

์ธ์ฆ์„œ ์„ค์น˜WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

๋™์‹œ์— ํ™”๋ฉด ์ž ๊ธˆ ํ•ด์ œ ํŒจํ„ด, ํ•€ ์ฝ”๋“œ ๋˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์•„์ง ์„ค์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

์ธ์ฆ์„œ ์„ค์น˜์˜ ๋ณต์žกํ•œ ๋ฒ„์ „์„ ๋ณด์—ฌ๋“œ๋ ธ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์žฅ์น˜์—์„œ๋Š” ๋‹ค์šด๋กœ๋“œํ•œ ์ธ์ฆ์„œ๋ฅผ ํด๋ฆญํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์„œ๊ฐ€ ์„ค์น˜๋˜๋ฉด ์—ฐ๊ฒฐ์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

์ธ์ฆ์„œ - ์„ค์น˜๋œ ์ธ์ฆ์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ต๋ช… ์‚ฌ์šฉ์ž - ์†๋‹˜

macOS

๊ธฐ๋ณธ์ ์œผ๋กœ Apple ์žฅ์น˜๋Š” EAP-TLS์—๋งŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ธ์ฆ์„œ๋ฅผ ์ œ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์—ฐ๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•˜๋ ค๋ฉด Apple Configurator 2๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋จผ์ € ์ด๋ฅผ Mac์— ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ƒˆ ํ”„๋กœํ•„์„ ์ƒ์„ฑํ•œ ํ›„ ํ•„์š”ํ•œ ๋ชจ๋“  WiFi ์„ค์ •์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Apple ConfiguratorWiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

์—ฌ๊ธฐ์— ๋„คํŠธ์›Œํฌ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
๋ณด์•ˆ ์œ ํ˜• - WPA2 ๊ธฐ์—…
ํ—ˆ์šฉ๋˜๋Š” EAP ์œ ํ˜• - TTLS
์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ - ๋น„์›Œ๋‘์„ธ์š”
๋‚ด๋ถ€ ์ธ์ฆ - PAP
์™ธ๋ถ€ ID ํด๋ผ์ด์–ธํŠธ

์‹ ๋ขฐ ํƒญ. ์—ฌ๊ธฐ์—์„œ ๋„๋ฉ”์ธ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋‘. ํ”„๋กœํ•„์„ ์ €์žฅํ•˜๊ณ  ์„œ๋ช…ํ•˜๊ณ  ์žฅ์น˜์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœํ•„์ด ์ค€๋น„๋˜๋ฉด Poppy์— ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํ”„๋กœ์„ธ์Šค ์ค‘์— ์‚ฌ์šฉ์ž์˜ usernmae_ldap ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ_ldap์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

iOS

ํ”„๋กœ์„ธ์Šค๋Š” macOS์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ•„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(macOS์™€ ๋™์ผํ•œ ํ”„๋กœํ•„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Apple Configurator์—์„œ ํ”„๋กœํ•„์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์œ„ ์ฐธ์กฐ).

ํ”„๋กœํ•„ ๋‹ค์šด๋กœ๋“œ, ์„ค์น˜, ์ž๊ฒฉ ์ฆ๋ช… ์ž…๋ ฅ, ์—ฐ๊ฒฐ:

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

WiFi ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ. FreeRadius + FreeIPA + ์œ ๋น„์ฟผํ„ฐ์Šค

๊ทธ๊ฒŒ ๋‹ค์•ผ. Radius ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•˜๊ณ  FreeIPA์™€ ๋™๊ธฐํ™”ํ•œ ํ›„ Ubiquiti AP์— WPA2-EAP๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ์งˆ๋ฌธ

์—์„œ : ํ”„๋กœํ•„/์ธ์ฆ์„œ๋ฅผ ์ง์›์—๊ฒŒ ์–ด๋–ป๊ฒŒ ์ „์†กํ•˜๋‚˜์š”?

ํšŒ์‚ฌ ์†Œ๊ฐœ : ์›น ์•ก์„ธ์Šค๋ฅผ ํ†ตํ•ด FTP์— ๋ชจ๋“  ์ธ์ฆ์„œ/ํ”„๋กœํ•„์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์†๋„ ์ œํ•œ์ด ์žˆ๊ณ  FTP๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ธํ„ฐ๋„ท์—๋งŒ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์ŠคํŠธ ๋„คํŠธ์›Œํฌ๋ฅผ ๋†’์˜€์Šต๋‹ˆ๋‹ค.
์ธ์ฆ์€ 2์ผ ๋™์•ˆ ์ง€์†๋˜๋ฉฐ ๊ทธ ์ดํ›„์—๋Š” ์žฌ์„ค์ •๋˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋Š” ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €๊ฒƒ. ์ง์›์ด WiFi์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋จผ์ € ๊ฒŒ์ŠคํŠธ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๊ณ  FTP์— ์•ก์„ธ์Šคํ•˜์—ฌ ํ•„์š”ํ•œ ์ธ์ฆ์„œ๋‚˜ ํ”„๋กœํ•„์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์„ค์น˜ํ•œ ๋‹ค์Œ ํšŒ์‚ฌ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—์„œ : MSCHAPv2์™€ ํ•จ๊ป˜ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ๋…€๋Š” ๋” ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค!

ํšŒ์‚ฌ ์†Œ๊ฐœ : ์ฒซ์งธ, ์ด๋Ÿฌํ•œ ์ฒด๊ณ„๋Š” NPS(Windows ๋„คํŠธ์›Œํฌ ์ •์ฑ… ์‹œ์Šคํ…œ)์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌํ˜„ ์‹œ LDAP(FreeIpa)๋ฅผ ์ถ”๊ฐ€๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ์„œ๋ฒ„์— ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•ด์‹œ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์„ค์ •์„ ํ•˜๋Š” ๊ฒƒ์€ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ดˆ์ŒํŒŒ ๋™๊ธฐํ™”์— ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, ํ•ด์‹œ๋Š” MD4์ด๋ฏ€๋กœ ๋ณด์•ˆ์ด ๋งŽ์ด ์ถ”๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—์„œ : Mac ์ฃผ์†Œ๋กœ ์žฅ์น˜๋ฅผ ์ธ์ฆํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

ํšŒ์‚ฌ ์†Œ๊ฐœ : ์•„๋‹ˆ์š”, ์ด๋Š” ์•ˆ์ „ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๊ฐ€ MAC ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋”์šฑ์ด MAC ์ฃผ์†Œ์— ์˜ํ•œ ์ธ์ฆ์€ ๋งŽ์€ ์žฅ์น˜์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—์„œ : ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๋ชจ๋“  ์ธ์ฆ์„œ๋Š” ๋ฌด์—‡์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋“ค ์—†์ด๋„ ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

ํšŒ์‚ฌ ์†Œ๊ฐœ : ์ธ์ฆ์„œ๋Š” ์„œ๋ฒ„๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ €๊ฒƒ๋“ค. ์—ฐ๊ฒฐ ์‹œ ์žฅ์น˜๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ธ์ฆ์ด ๊ณ„์†๋˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ ์—†์ด ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ณต๊ฒฉ์ž๋‚˜ ์ด์›ƒ์ด ์ง‘์— ์šฐ๋ฆฌ์™€ ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฐ˜๊ฒฝ ์„œ๋ฒ„์™€ ์•ก์„ธ์Šค ํฌ์ธํŠธ๋ฅผ ์„ค์ •ํ•˜๋ฉด ์‚ฌ์šฉ์ž์˜ ์ž๊ฒฉ ์ฆ๋ช…์„ ์‰ฝ๊ฒŒ ๊ฐ€๋กœ์ฑŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์ „์†ก๋œ๋‹ค๋Š” ์ ์„ ์žŠ์ง€ ๋งˆ์„ธ์š”). ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ์„œ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉด ์ ์˜ ๋กœ๊ทธ์—๋Š” ๊ฐ€์ƒ์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„(๊ฒŒ์ŠคํŠธ ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ)๊ณผ ์œ ํ˜• ์˜ค๋ฅ˜(์•Œ ์ˆ˜ ์—†๋Š” CA ์ธ์ฆ์„œ)๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

macOS์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋”์ผ๋ฐ˜์ ์œผ๋กœ macOS์—์„œ๋Š” ์‹œ์Šคํ…œ ์žฌ์„ค์น˜๊ฐ€ ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ณต๊ตฌ ๋ชจ๋“œ์—์„œ๋Š” Mac์ด Wi-Fi์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ํšŒ์‚ฌ Wi-Fi๋‚˜ ๊ฒŒ์ŠคํŠธ ๋„คํŠธ์›Œํฌ๋Š” ์—ฌ๊ธฐ์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” ๊ธฐ์ˆ  ์ž‘์—…์„ ์œ„ํ•ด์„œ๋งŒ ์ˆจ๊ฒจ์ง„ ์ผ๋ฐ˜์ ์ธ WPA2-PSK๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ์‹œ์Šคํ…œ์œผ๋กœ ๋ฏธ๋ฆฌ ๋ถ€ํŒ… ๊ฐ€๋Šฅํ•œ USB ํ”Œ๋ž˜์‹œ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–‘๊ท€๋น„๊ฐ€ 2015๋…„ ์ดํ›„์ธ ๊ฒฝ์šฐ์—๋„ ์ด ํ”Œ๋ž˜์‹œ ๋“œ๋ผ์ด๋ธŒ์šฉ ์–ด๋Œ‘ํ„ฐ๋ฅผ ์ฐพ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.)

์ถœ์ฒ˜ : habr.com

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