+7 (916) 741 5495
support@netams.com

    ïðîäóêòû è óñëóãè     î êîìïàíèè     ïðîåêòû     áèëëèíã     êîíòàêòû english   

Âíèìàíèå! Ýòî äîêóìåíòàöèÿ ê âåðñèè 3.4. Äëÿ âåðñèè 4.0 ñìîòðèòå çäåñü

Äîêóìåíòàöèÿ

Releases

Áàçà çíàíèé

Ïðèìåðû êîíôèãóðàöèè

 

service login


Íà÷èíàÿ ñ ñåíòÿáðÿ 2002 ãîäà â äèñòðèáóòèâ ïðîãðàììíîãî êîìïëåêñà NeTAMS áûë âêëþ÷åí ñåðâèñ weblogin è ñîîòâåòñòâóþùèé íàáîð ñêðèïòîâ äëÿ óïðàâëåíèÿ ïðîöåäóðàìè äîñòóïà ïîëüçîâàòåëåé ÷åðåç âåá-èíòåðôåéñ. Õîòÿ ïîäîáíûé èíñòðóìåíòàðèé è ïîëüçîâàëñÿ ïîïóëÿðíîñòüþ, îí áûë äàëåê îò ñîâåðøåíñòâà. Òàê, íàñòðîéêà ýòîãî ñðåäñòâà äëÿ áîëüøîé ñåòè òðåáîâàëà çíà÷èòåëüíûé óñèëèé è óâåëè÷åíèþ ðàçìåðà êîíôèãóðàöèîííîãî ôàéëà.  ðåçóëüòàòå, áëàãîäàðÿ ìíîãî÷èñëåííûì ïîæåëàíèÿì ïîëüçîâàòåëåé, ìåõàíèçì àâòîðèçàöèè ðåøåíî áûëî èçìåíèòü. Ïðè ýòîì áûë íàïèñàíî íîâûé ñåðâèñ, à íå ïåðåäåëàí ñòàðûé. Íîâûé ñåðâèñ íàçûâàåòñÿ login.

Îñíîâíûå ñâîéñòâà:
  1. Õðàíåíèå èíôîðìàöèè î äîñòóïå êëèåíòîâ â áàçå SQL.
  2. Âîçìîæíîñòü çàäàíèÿ ïåðñîíàëüíûõ çíà÷åíèé òàéìàóòà íåàêòèâíîñòè è àáñîëþòíîãî òàéìàóòà. Ïðè ýòîì îáà ýòè çíà÷åíèÿ ìîãóò áûòü ðàâíû íóëþ (òàéìàóòû íå äåéñòâóþò), à ñåðâèñ áóäåò çàíèìàòüñÿ èñêëþ÷èòåëüíî àâòîðèçàöèåé.
  3. Íàëè÷èå çíà÷åíèé òàéìàóòîâ ïî óìîë÷àíèþ, è óñòàíîâêà ãðàíè÷íûõ çíà÷åíèé. Ïîëüçîâàòåëü ìîæåò èìåòü âîçìîæíîñòü ìåíÿòü çíà÷åíèÿ ñàìîñòîÿòåëüíî (â òî âðåìÿ êàê ñêðèïò äëÿ òîãî åùå íå íàïèñàí)
  4. Ïåðåíîñ áëîêèðîâêè èç ñôåðû ñèñòåìíûõ ïîëèòèê íà îòäåëüíûé óðîâåíü, ÷òî ïîçâîëèò îäíîâðåìåííî èñïîëüçîâàòü ñåðâèñû login è quota
  5. Ïîääåðæêà òèïà þíèòà unit user, ÷òî äàåò âîçìîæíîñòü "ðîóìèíãà" ïîëüçîâàòåëåé, ò.å. àâòîðèçàöèè ñ ëþáîé ìàøèíû â ñåòè ïðè ïðèâÿçêå ñòàòèñòèêè íå ê IP-àäðåñó, à ê ïîëüçîâàòåëþ.
Ïåðâîíà÷àëüíûé çàïóñê ñåðâèñà login ïðè ðàáîòàþùåé ïðîãðàììå íåâîçìîæåí. Âàì íåîáõîäèìî âðó÷íóþ èçìåíèòü êîíôèãóðàöèîííûé ôàéë è ïåðåçàïóñòèòü NeTAMS. Äîïóñòèì, ÷òî äàííûå óæå õðàíÿòñÿ â áàçå äàííûõ MySQL, îïðåäåëåííîé â ñåðâèñå data-source ñ íîìåðîì 2:
	service data-source 2
	type mysql
Äëÿ ñòàðòà ñåðâèñà login íåîáõîäèìî áóäåò óêàçàòü íîìåð ñåðâèñà-õðàíèëèùà äàííûõ:
	service login 0
	storage 2
Ïîñëå ýòèõ îïåðàöèé çàïóñòèòå NeTAMS. Âñå îñòàëüíûå íàñòðîéêè ìîæíî âûïîëíèòü ïðè ðàáîòàþùåé ïðîãðàììå. Ïðîâåðèòü, ðàáîòàåò ëè ñåðâèñ, ìîæíî:
  1. Ïðîñìîòðîì ëîã-ôàéëà ïðîãðàììû
  2. Ïðîñìîòðîì ñïèñêà òàáëèö SQL-áàçû NeTAMS: mysqlshow netams (äîëæíà ïîÿâèòüñÿ òàáëèöà `login')
  3. Ïîäêëþ÷èâøèñü ê ïðîãðàììå ÷åðåç telnet-èíòåðôåéñ è âûïîëíèâ êîìàíäó show config
Êîìàíäû íàñòðîéêè ñåðâèñà login, êîòîðûå ñîõðàíÿþòñÿ â êîíôèãóðàöèîííîì ôàéëå, ïðèâîäÿò òîëüêî ê óñòàíîâêå ñîîòâåòñòâóþùèõ ïàðàìåòðîâ ñåðâèñà, íî íå áîëåå. Ñîáñòâåííî äëÿ îáåñïå÷åíèÿ àâòîðèçàöèè îòäåëüíûõ êëèåíòîâ íåîáõîäèì îòäåëüíûé íàáîð êîìàíä, êîòîðûå çàäàþòñÿ â êîíòåêñòå âñå â òîì æå ñåðâèñå login. Âñÿ èíôîðìàöèÿ î ïàðîëÿõ ïîëüçîâàòåëåé è èõ ïðàâàõ äîñòóïà è çíà÷åíèÿõ òàéìàóòîâ õðàíèòñÿ â SQL-òàáëèöå login. Åå ôîðìàò ïðèâåäåí íèæå:
+------------------+------------------+------+-----+---------+-------+
| Field            | Type             | Null | Key | Default | Extra |
+------------------+------------------+------+-----+---------+-------+
| unit_oid         | int(10) unsigned |      | PRI | 0       |       |
| password         | varchar(32)      | YES  |     | NULL    |       |
| inact            | int(10) unsigned | YES  |     | NULL    |       |
| abs              | int(10) unsigned | YES  |     | NULL    |       |
| last_changed     | int(10) unsigned | YES  |     | NULL    |       |
| last_opened_time | int(10) unsigned | YES  |     | NULL    |       |
| last_opened_ip   | int(10) unsigned | YES  |     | NULL    |       |
| last_opened_mac  | varchar(18)      | YES  |     | NULL    |       |
| def_state        | int(11)          | YES  |     | NULL    |       |
| curr_state       | int(11)          | YES  |     | NULL    |       |
+------------------+------------------+------+-----+---------+-------+
  • unit_oid - Èäåíòèôèêàòîð (OID) þíèòà, ÿâëÿåòñÿ óíèêàëüíûì êëþ÷îì ê áàçå äàííûõ
  • password - Ïàðîëü ïîëüçîâàòåëÿ. Íèêîãäà íå ïûòàéòåñü ïîìåíÿòü åãî èçâíå ïðîãðàììû ïóòåì ïðÿìîé çàïèñè â SQL.
  • inact - Âåëè÷èíà òàéìàóòà íåàêòèâíîñòè äëÿ äàííîãî ïîëüçîâàòåëÿ
  • abs - Âåëè÷èíà àáñîëþòíîãî òàéìàóòà äëÿ äàííîãî ïîëüçîâàòåëÿ
  • last_changed - Âðåìÿ (â ôîðìàòå UNIXTIME) ïîñëåäíåãî èçìåíåíèÿ çàïèñè
  • last_opened_time - Âðåìÿ (â ôîðìàòå UNIXTIME), êîãäà áûë â ïîñëåäíèé ðàç ïðåäîñòàâëåí äîñòóï þíèòó
  • last_opened_ip - IP-àäðåñ, ñ êîòîðîãî áûë ïðåäîñòàâëåí äîñòóï þíèòó
  • last_opened_mac - MAC-àäðåñ, ñ êîòîðîãî áûë ïðåäîñòàâëåí äîñòóï þíèòó
  • def_state - Ðåæèì äîñòóïà ýòîãî þíèòà ïî óìîë÷àíèþ (íàïðèìåð, ñðàçó ïîñëå ñòàðòà ïðîãðàììû). 0 îçíà÷àåò îòñóòñòâèå äîñòóïà, 1 îçíà÷àåò ðàçðåøåíèÿ äîñòóïà.
  • curr_state - Òåêóùèé ðåæèì äîñòóïà ýòîãî þíèòà. 0 îçíà÷àåò îòñóòñòâèå äîñòóïà, 1 îçíà÷àåò ðàçðåøåíèÿ äîñòóïà. Ê ñîæàëåíèþ, ïî íàñòóïëåíèè òàéìàóòà íå ñáðàñûâàåòñÿ (áàã).
Ïðè ñòàðòå ñåðâèñà ïðîèñõîäèò ñ÷èòûâàíèå âñåõ äîñòóïíûõ çàïèñåé î þíèòàõ èç áàçû SQL/òàáëèöû "login" â ïàìÿòü ïðîãðàììû è çàïîëíåíèå ñîîòâåòñòâóþùèõ ïîëåé â ñòðóêòóðàõ, îïèñûâàþùèõ þíèòû. Åñëè äëÿ êàêîãî-òî þíèòà íåò èíôîðìàöèè î òàéìàóòàõ (ò.å. ñîîòâåòñòâóþùåé ïî èíäåêñó OID ñòðîêè â òàáëèöå), òî äëÿ äàííîãî þíèòà ñåðâèñ login íå áóäåò ðàáîòàòü è âîïðîñ î äîñòóïå áóäåò îïðåäåëÿòüñÿ ðàáîòîé äðóãèõ ìåõàíèçìîâ (fw-policy, sys-policy, quota è ïð.). Ýòî îáåñïå÷èâàåò "ïðîçðà÷íóþ" ðàáîòó óæå íàñòðîåííîé ñèñòåìû.

Äëÿ ñëó÷àÿ, êîãäà â áàçå äàííûõ åñòü çàïèñü î þíèòå, èíôîðìàöèÿ î òàéìàóòàõ è ïàðîëå êîïèðóåòñÿ â ñîîòâåòñòâóþùèå ïîëÿ äàííûõ î þíèòå. Ïðè ýòîì òåêóùåå ñîñòîÿíèå äîñòóïà (u->logindata->c_state) ñòàíîâèòñÿ ðàâíûì çíà÷åíèþ ïî óìîë÷àíèþ (def_state èç òàáëèöû). Êàæäûå delay ñåêóíä ñåðâèñ ïðîâåðÿåò âîçìîæíîñòü äîñòóïà, è ïðè íåîáõîäèìîñòè îòêëþ÷àåò þíèò îáíóëåíèåì ïåðåìåííîé u->logindata->c_state. Îíà ïðîâåðÿåòñÿ ïðè êàæäîì ïðîõîæäåíèè ïàêåòà ñåðâèñîì data-source.

Íå ïûòàéòåñü ðåäàêòèðîâàòü SQL-òàáëèöó login èçâíå ñâîèìè ïðîãðàììàìè. Âñå çàïèñè äîëæíû âíîñèòüñÿ ñêðèïòàìè èëè âðó÷íóþ ÷åðåç telnet-èíòåðôåéñ ïðîãðàììû. Äëÿ ýòîãî ñóùåñòâóåò òðè êîìàíäû ñåðâèñà login: set, login è logout. Èõ ïîâåäåíèå è ïàðàìåòðû îïèñàíû íèæå.

Äëÿ ïîëíîãî êîíòðîëÿ íàä ïðîöåññîì ëîãèíîâ è çàïèñè âñåé ñëóæåáíîé èíôîðìàöèè â ëîã-ôàéë è êîíñîëü ñëóæèò íîâûé ïàðàìåòð âñòðîåííîãî îòëàä÷èêà "debug login"

Äëÿ âûâîäà èíôîðìàöèè î ëîãèíàõ ñëóæèò êîìàíäà (ãëîáàëüíàÿ, ÍÅ ñåðâèñà login) "show login {name AAA | oid BBBB}"

Íàïèñàíèå àäìèíèñòðàòîðñêîãî âåá-èíòåðôåéñà ïî ïðèâÿçêå þíèòîâ ê ñåðâèñó ëîãèíîâ è êëèåíòñêîãî ïî óïðàâëåíèþ ïàðîëÿìè è ïàðàìåòðàìè îñòàâëÿåòñÿ íà ïîòðåáèòåëÿ ïðîãðàììû NeTAMS. Â íàñòîÿùèé ìîìåíò ðåàëèçîâàí òîëüêî ïðèìèòèâíûé ñêðèïò âåá-àâòîðèçàöèè ïî ïàðîëþ. Îí èäåò â êîìïëåêòå ïîñòàâêè NeTAMS â êàòàëîãå cgi-bin/ è íàçûâàåòñÿ login.cgi. Ñêðèïò òðåáóåò ôàéëîâ logo-small.gif è netams_api.pl (ïîñëåäíåé âåðñèè), êîòîðûå íàõîäÿòñÿ â òîì æå êàòàëîãå.

Äëÿ ðàáîòû ñêðèïòà íóæåí âåá-ñåðâåð, èíòåðïðåòàòîð Perl è ïðÿìûå ðóêè àäìèíèñòðàòîðà. Ðåêîìåíäóåòñÿ:
  1. Èñïîëüçîâàòü ïðîòîêîë HTTPS äëÿ äîñòóïà ê ñêðèïòó àâòîðèçàöèè
  2. Íàñòðîèòü äîñòóï ê ñòàòèñòèêå è ê ñêðèïòó "â îáõîä" NeTAMS, ÷òîáû íå ñ÷èòàëñÿ äàííûé ñëóæåáíûé òðàôèê è ðàáîòàëà âîçìîæíîñòü ëîãèíà ïðè ïðåäâàðèòåëüíî îòêëþ÷åííîì ïîëüçîâàòåëå.
  3. Ñäåëàòü ïðîñòîé URL è ðàçäàòü åãî êëèåíòàì äëÿ âûñòàâëåíèÿ èêîíêè íà desktop, íàïðèìåð https://loginserver/login.cgi
Íåîáõîäèìî èñïðàâèòü íåñêîëüêî ïåðâûõ ñòðî÷åê ñêðèïòà ñ óêàçàíèåì ïàðàìåòðîâ ïîäêëþ÷åíèÿ è ïóòåé äî êàòàëîãà ñî ñòàòèñòèêîé; ìîæíî òàêæå èñïðàâèòü åãî HTML-èíòåðôåéñ.

Íàïèñàíèå ñêðèïòà àâòîìàòè÷åñêîãî ëîãèíà ïîëüçîâàòåëÿ ïðè âõîäå â âèíäîâñ, èëè ïðè àâòîðèçàöèè â äîìåíå Windows (÷åðåç ñêðèïò ïðîôèëÿ èëè ãðóïïîâóþ ïîëèòèêó) îñòàâëÿåòñÿ íà ñîâåñòè çàèíòåðåñîâàííûõ ëèö.


default-inact N
Óñòàíàâëèâàåò çíà÷åíèå âðåìåíè íåàêòèâíîñòè êëèåíòà ïî óìîë÷àíèþ. Ïðèìåíÿåòñÿ, åñëè ïðè íàñòðîéêå ïàðàìåòðîâ ñåðâèñà login äëÿ çàäàííîãî þíèòà íå áûëî óêàçàíî êîíêðåòíîå âðåìÿ íåàêòèâíîñòè. Çàäàåòñÿ â ñåêóíäàõ. Ïî óìîë÷àíèþ çíà÷åíèå 0.

default-abs N
Óñòàíàâëèâàåò çíà÷åíèå âðåìåíè àáñîëþòíîãî òàéìàóòà êëèåíòà ïî óìîë÷àíèþ. Ïðèìåíÿåòñÿ, åñëè ïðè íàñòðîéêå ïàðàìåòðîâ ñåðâèñà login äëÿ çàäàííîãî þíèòà íå áûëî óêàçàíî êîíêðåòíîå âðåìÿ àáñîëþòíîãî òàéìàóòà. Çàäàåòñÿ â ñåêóíäàõ. Ïî óìîë÷àíèþ çíà÷åíèå 0.

max_inact N
Ìàêñèìàëüíî äîïóñòèìàÿ âåëè÷èíà âðåìåíè òàéìàóòà íåàêòèâíîñòè, èñïîëüçóåòñÿ ïðè ïðîâåðêå êîððåêòíîñòè ââåäåííîãî ïîëüçîâàòåëåì (îïåðàòîðîì) çíà÷åíèÿ. Çàäàåòñÿ â ñåêóíäàõ. Ïî óìîë÷àíèþ çíà÷åíèå 43200 ñåê = 12*60*60.

min_inact N
Ìèíèìàëüíî äîïóñòèìàÿ âåëè÷èíà âðåìåíè òàéìàóòà íåàêòèâíîñòè, èñïîëüçóåòñÿ ïðè ïðîâåðêå êîððåêòíîñòè ââåäåííîãî ïîëüçîâàòåëåì (îïåðàòîðîì) çíà÷åíèÿ. Çàäàåòñÿ â ñåêóíäàõ. Ïî óìîë÷àíèþ çíà÷åíèå 60 ñåê.

max_abs N
Ìàêñèìàëüíî äîïóñòèìàÿ âåëè÷èíà âðåìåíè àáñîëþòíîãî òàéìàóòà, èñïîëüçóåòñÿ ïðè ïðîâåðêå êîððåêòíîñòè ââåäåííîãî ïîëüçîâàòåëåì (îïåðàòîðîì) çíà÷åíèÿ. Çàäàåòñÿ â ñåêóíäàõ. Ïî óìîë÷àíèþ çíà÷åíèå 1036800 ñåê = 24*12*60*60.

min_abs N
Ìèíèìàëüíî äîïóñòèìàÿ âåëè÷èíà âðåìåíè àáñîëþòíîãî òàéìàóòà, èñïîëüçóåòñÿ ïðè ïðîâåðêå êîððåêòíîñòè ââåäåííîãî ïîëüçîâàòåëåì (îïåðàòîðîì) çíà÷åíèÿ. Çàäàåòñÿ â ñåêóíäàõ. Ïî óìîë÷àíèþ çíà÷åíèå 60 ñåê.

min_passwd_length N
Ìèíèìàëüíî äîïóñòèìàÿ äëèíà ïîëüçîâàòåëüñêîãî ïàðîëÿ. Ïî óìîë÷àíèþ ðàâíî 3 ñèìâîëîì, îäíàêî â íàñòîÿùèé ìîìåíò ïðîâåðêè íå ïðîèçâîäèòñÿ.

delay N
Èíòåðâàë âðåìåíè ìåæäó ïåðèîäè÷åñêèìè ïðîâåðêàìè âñåõ þíèòîâ íà íàñòóïëåíèå òàéìàóòà. Çàäàåòñÿ â ñåêóíäàõ. Ïî óìîë÷àíèþ çíà÷åíèå 10 ñåê.

relogin {yes|no}
Ðàçðåøàòü ëè ïîâòîðíûé ëîãèí äëÿ àáîíåíòà, êîòîðûé ñ÷èòàåòñÿ óæå çàëîãèíåííûì? Ïî óìîë÷àíèþ "äà".

set-user-ip
Óêàçûâàåò íà íåîáõîäèìîñòü â ñëó÷àå óñïåøíîé àâòîðèçàöèè ïåðåçàïèñàòü IP-àäðåñ þíèòà (åñëè îí èìååò òèï user) íà òåêóùèé; ïðè íàñòóïëåíèè òàéìàóòà èëè îñòàíîâå äîñòóïà àäðåñ ñáðàñûâàåòñÿ â 0.0.0.0. Ïðèíèìàåò çíà÷åíèÿ yes èëè 1 (äåëàòü ïåðåçàïèñûâàíèå) èëè no èëè 0 (íå äåëàòü). Ïî óìîë÷àíèþ ðàâíî 0.

set {name AAA | oid BBBB} [password CCCC] [inact DDDD] [abs EEEE] [mac 0a:0b:0c:0d:0e:0f] [strict|nostrict]
Çàïèñûâàåò â ñòðóêòóðó äàííûõ þíèòà â ïàìÿòè è îäíîâðåìåííî â SQL-áàçó ïàðàìåòðû þíèòà (îïðåäåëÿåòñÿ ïî èìåíè èëè íîìåðó OID):
  • Ïàðîëü (password)
  • Òàéìàóò íåàêòèâíîñòè (inact)
  • Àáñîëþòíûé òàéìàóò (abs)
  • Óñòàíîâëåííûé ïðèâÿçàííûé MAC-àäðåñ þíèòà (mac)
  • Ïàðàìåòð áåçóñëîâíîé ïðèâÿçêè (strict) èëè åãî îòìåíà (nostrict)
Âñå çíà÷åíèÿ òàéìàóòîâ çàäàþòñÿ â ñåêóíäàõ. Îíè äîëæíû áûòü èëè ðàâíû íóëþ, èëè áûòü â ðàìêàõ ìåæäó ìèíèìàëüíûì è ìàêñèìàëüíûì çíà÷åíèåì. Åñëè êàêàÿ-òî èç âåëè÷èí òàéìàóòîâ (èëè îáå) ðàâíû íóëþ, òî ïðîâåðêà ýòîãî òèïà òàéìàóòà äëÿ äàííîãî þíèòà íå ïðîèçâîäèòñÿ. Åñëè êàêàÿ-òî èç âåëè÷èí íå óêàçàíà, áóäåò âçÿòî çíà÷åíèå ïî óìîë÷àíèþ (îïðåäåëåííîå ñîîòâåòñòâåííî èëè â çàãîëîâî÷íîì ôàéëå src/netams.h èëè ïàðàìåòðàìè óïðàâëåíèÿ ñåðâèñîâ default-inact èëè default-abs).

login {name AAA | oid BBBB} password CCCC [ip A.B.C.D] [mac JJ:JJ:JJ:JJ:JJ:JJ]
Ñëóæèò äëÿ àâòîðèçàöèè þíèòà è îòêðûòèÿ ê íåìó äîñòóïà. Îáÿçàòåëüíî óêàçûâàòü èìÿ èëè OID þíèòà, à òàêæå ïàðîëü. Çíà÷åíèÿ IP- è MAC-àäðåñà äîëæíû ïîäñòàâëÿòüñÿ âíåøíèì ñêðèïòîì àâòîðèçàöèè.
 ñëó÷àå óêàçàíèÿ íåïðàâèëüíîãî èìåíè þíèòà ïîëó÷èòñÿ:
login:0#login name r546-1a
parse: FAIL: unit with name= r546-1a is not exist
Íåïðàâèëüíîãî ïàðîëÿ:
login:0#login name r546-1 password 123
parse: FAIL: password incorrect
Óñïåøíîé àâòîðèçàöèè:
login:0#login name r546-1 password 123456
parse: OK: login success from ip:0.0.0.0, mac:00:00:00:00:00:00
Ïðè ýòîì â ëîã-ôàéëå ñåðâåðà ïîÿâèòñÿ ñîîòâåòñòâóþùàÿ çàïèñü.

logout {name AAA | oid BBBB} password CCCC [ip A.B.C.D] [mac JJ:JJ:JJ:JJ:JJ:JJ]
Êîìàíäà îòêëþ÷åíèÿ ïîëüçîâàòåëÿ, ïàðàìåòðû òàêèå æå, êàê è ó login.

[an error occurred while processing this directive]