Показати сторінкуСтарі ревізіїПосилання сюдиЕкспорт до PDFПовернутися наверх Ця сторінка доступна тільки для перегляду. Ви можете продивитися вихідний текст, але не можете змінювати його. Якщо ви вважаєте, що це не вірно, зверніться до адміністратора. ====== p5-radius3 ====== ==== Встановлення FreeRadius v3 ==== <WRAP center round important 100%> Даний варіант установки не з офіційної документації і розроблений для нашої мережі, але може бути портований і в інші мережі! Він не має MySQL модуля, але є потужний модуль PERL, який дозволяє робити запити до бази набагато зручніше в плані маніпуляцій. На офіційному сайті FreeRadius сказано, що rlm_perl продуктивніше rlm_sql. Використання цього варіанта ви робите на свій страх і ризик :). </WRAP> ==== Встановлення пакетів ==== <code bash> pkg install freeradius3 p5-Digest-MD5 p5-Authen-Radius </code> <WRAP center round important 100%> Після встановлення обов'язково заблокуйте freeradius3, щоб уникнути випадкового оновлення, оскільки злітають права на файли налаштувань і РАДІУС білше не запрацює! Я не зміг виявити, що саме спричиняє таку проблему, тому і не знаю як її обійти! </WRAP> pkg lock freeradius3 ==== Налаштування FreeRadius v3 ==== Резервна копія оригінальних конфігів cp -a /usr/local/etc/raddb/ /usr/local/etc/raddb.orig/ Видалимо зайве rm -rf /usr/local/etc/raddb/sites-enabled/* rm /usr/local/etc/raddb/mods-enabled/eap Створимо основний конфіг nano /usr/local/etc/raddb/sites-enabled/nodeny з таким вмістом: <code lua /usr/local/etc/raddb/sites-enabled/nodeny [enable_line_numbers="true"]> server nodeny { listen { type = auth ipaddr = * port = 1812 limit { max_connections = 64 lifetime = 0 idle_timeout = 30 } } listen { type = acct ipaddr = * port = 1813 } # Authorization. authorize { #detail preprocess pap chap files perl # if((User-Name =~ /^.*%{Calling-Station-ID}.*$/i)){ # update control { # &Auth-Type = 'Perl' # } # } if (ok || updated) { update control { Auth-Type := Perl } } } # Authentication. authenticate { Auth-Type Perl { perl } Auth-Type PAP { pap } Auth-Type CHAP { chap } } # Pre-accounting. Decide which accounting type to use. preacct { acct_unique preprocess } accounting { attr_filter.accounting_response perl } session { radutmp } # Post-Authentication post-auth { Post-Auth-Type REJECT { attr_filter.access_reject # pppoe perl #ipoe } perl } } </code> також можна увімкнути сервер статусу командою: <code bash> ln -s /usr/local/etc/raddb/sites-available/status /usr/local/etc/raddb/sites-enabled/ </code> <code bash> echo '' > /usr/local/etc/raddb/clients.conf nano /usr/local/etc/raddb/clients.conf </code> <code bash> client 127.0.0.1 { ipaddr = 127.0.0.1 secret = hardpass5 shortname = localhost nastype = other } </code> <code bash> ln -s /usr/local/etc/raddb/mods-available/perl /usr/local/etc/raddb/mods-enabled/ echo '' > /usr/local/etc/raddb/mods-enabled/perl nano /usr/local/etc/raddb/mods-enabled/perl </code> <code perl> perl { filename = /usr/local/nodeny/nod/_radius.pl } </code> Перевірити відповідність <code bash> nano /usr/local/etc/raddb/mods-config/attr_filter/access_reject </code> <code perl> DEFAULT EAP-Message =* ANY, State =* ANY, Message-Authenticator =* ANY, Error-Cause =* ANY, Reply-Message =* ANY, MS-CHAP-Error = * ANY, Proxy-State =* ANY </code> <code bash> nano /usr/local/etc/raddb/mods-config/files/authorize </code> <code perl> DEFAULT Auth-Type = Perl Fall-Through = yes </code> ==== Завершення установки ==== <code bash> sysrc radiusd_enable="YES" #sysrc radiusd_flags="-d /path/to/raddb" service radiusd start </code> ===== test ===== radtest [-t chap] login password 127.0.0.1 0 hardpass5 OR <code> NAS-IP-Address = 127.0.0.1 User-Name = IPOE_VLAN|afaf.afaf.afaf|3410 User-Password = 6894244B56EB NAS-Port = 0 Calling-Station-Id = SSID NAS-Port-Id = jun:3410 </code> cat rad.test | radclient -x 127.0.0.1 auth hardpass5 ==== radperf debian ==== $ apt install libfreeradius3 freeradius-common freeradius-config $ wget https://networkradius.com/assets/packages/radperf/radperf_2.0.1_amd64.deb $ dpkg -i radperf_2.0.1_amd64.deb === Prepeare file === Blank lines in the input separate individual packets. e.g. <code| users.txt> User-Name = "test" User-Password = "123" User-Name = "test1" User-Password = "0007" User-Name = "test2" User-Password = "011998" </code> testing radperf -s -f ../users.txt -p 800 -a pap 10.3.1.1 auth radiussomething where users.csv file contains 10000 user names with password, I get this output: <code bash> Total succeeded : 3811 Total failed : 6189 Total no reply : 0 Total time (s) : 10.588 Packets/s : 944 Response times: < 10 usec : 0 < 100 usec : 0 < msec : 0 < 10 msec : 1 < 0.1s : 3758 < s : 5897 < 10s : 344 < 100s : 0 </code> ====== ADDS ====== [[https://docs.librenms.org/Extensions/Applications/#freeradius]] Увійти