Mariadb, openwrt, freeradius

0

Cześć wszystkim,

Próbuję uruchomić na openwrt 22.03.2 freeradius i autoryzacje po sql z baza na mariadb. Ogólnie całe połączenie działa, mam autoryzację z bazy danych, ale po połączeniu WIFI dostaje stos błędów i nie za bardzo wiem o co chodzi.

To jest log z radiusa z debagu

(14) sql: --> /var/log/sqllog.sql
(14) sql: Executing query: INSERT INTO radacct (acctsessionid, acctuniqueid, username, realm, nasipaddress, nasportid, nasporttype, acctstarttime, acctupdatetime, acctstoptime, acctsessiontime, acctauthentic, connectinfo_start, connectinfo_stop, acctinputoctets, acctoutputoctets, calledstationid, callingstationid, acctterminatecause, ) VALUES ('30A10F85A2F24680', 'd6a8c327880dedeb3e2d553f1951fc1b', 'demo', '', '192.168.1.1', '1', 'Wireless-802.11', FROM_UNIXTIME(1705011562), FROM_UNIXTIME(1705011562), NULL, '0', 'RADIUS', 'CONNECT 54Mbps 802.11g', #'', #'0', #'0', #'C0-56-27-BB-6E-D8:OpenWrt', #'90-E6-BA-84-5C-7B', #'', 'Framed-User', )
(14) sql: ERROR: rlm_sql_mysql: ERROR 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') VALUES ('30A10F85A2F24680', 'd6a8c327880dedeb3e2d553f1951fc1b', 'demo', '',...' at line 1): 42000
(14) sql: SQL query returned: server error
rlm_sql (sql): Released connection (0)
Need 1 more connections to reach 10 spares
rlm_sql (sql): Opening additional connection (9), 1 of 23 pending slots used
rlm_sql_mysql: Starting connect to MySQL server
rlm_sql_mysql: Connected to database 'radius' on Localhost via UNIX socket, server version 10.6.15-MariaDB-log, protocol version 10
(14) [sql] = fail
(14) } # accounting = fail
(14) Not sending reply to client.
(14) Finished request
(14) Cleaning up request packet ID 32 with timestamp +27

Taka informacja jest tworzona w pliku var /sqllog.sql

INSERT INTO radacct (acctsessionid, acctuniqueid, username, realm, nasipaddress, nasportid, nasporttype, acctstarttime, acctupdatetime, acctstoptime, acctsessiontime, acctauthentic, connectinfo_start, connectinfo_stop, acctinputoctets, acctoutputoctets, calledstationid, callingstationid, acctterminatecause, ) VALUES ('30A10F85A2F24680', 'd6a8c327880dedeb3e2d553f1951fc1b', 'demo', '', '192.168.1.1', '1', 'Wireless-802.11', FROM_UNIXTIME(1705011562), FROM_UNIXTIME(1705011562), NULL, '0', 'RADIUS', 'CONNECT 54Mbps 802.11g', #'', #'0', #'0', #'C0-56-27-BB-6E-D8:OpenWrt', #'90-E6-BA-84-5C-7B', #'', 'Framed-User', );

Dodaje jako załącznik plik wykonywalny/skrypt z mysql/sql/freeradius bo jest za długi i złe by się go czytało

queries.conf

Zakładam, że jest gdzieś błąd w samych tabelach lub w skrycie wykonywalnym, tylko nie umiem tego znaleźć. Być może jest zły data type, a być może się mylę i to jest całkowicie co innego.

Załączam też wszystkie tabele

tabele.txt

0
utak utak napisał(a):

FROM_UNIXTIME(1705011562), NULL, '0', 'RADIUS', 'CONNECT 54Mbps 802.11g', #'', #'0', #'0', #'C0-56-27-BB-6E-D8:OpenWrt', #'90-E6-BA-84-5C-7B', #'', 'Framed-User', )
(14) sql: ERROR: rlm_sql_mysql: ERROR 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')

Jeżeli mnie oczy nie mylą, to masz:

#''

a powinno być '#'

Zaraz przed 'Framed-user'

To prawdopodobnie powoduje Syntax Error SQL-a.

Zresztą wcześniej też masz więcej tego - te znaki # mogą powodować błędy, np. #'0'

0

Usunąłem wszystkie dziwne pojedyncze znaki. ale nic to nie zmieniło, wrzucam trochę szerszy wpis z debagu.

debag.txt

0

Tu masz validatora SQL:

https://www.scaler.com/topics/sql/sql-validator/

i sprawdzaj sobie

W każdym razie powinno być tak, wtedy zgłosił brak błędu:

INSERT INTO radacct (acctsessionid, acctuniqueid, username, realm, nasipaddress, nasportid, nasporttype, acctstarttime, acctupdatetime, acctstoptime, acctsessiontime, acctauthentic, connectinfo_start, connectinfo_stop, acctinputoctets, acctoutputoctets, calledstationid, callingstationid, acctterminatecause) VALUES ('30A10F85A2F24680', 'd6a8c327880dedeb3e2d553f1951fc1b', 'demo', '', '192.168.1.1', '1', 'Wireless-802.11', FROM_UNIXTIME(1705014945 - 3382), FROM_UNIXTIME(1705014945), FROM_UNIXTIME(1705014945), 3382, 'RADIUS', '', 'CONNECT 54Mbps 802.11g', '0' << 32 | '136221', '0' << 32 | '60495', 'C0-56-27-BB-6E-D8:OpenWrt', '90-E6-BA-84-5C-7B', 'User-Request')

0

Trochę pogrzebałem i teraz mam

(14) sql: ERROR: rlm_sql_mysql: ERROR 1136 (Column count doesn't match value count at row 1): 21S01

0

Dzięki za podpowiedzi, teraz już działa :)

Temat uważam za zamkniętyfreeradius WORK queries.conf, może komuś się przyda

1 użytkowników online, w tym zalogowanych: 0, gości: 1