SAMM — SecuryTik Active Mikrotik
Manager — یک پلتفرم کامل مدیریت ISP برای شبکههای PPPoE
و Hotspot در MikroTik است. یک نصبکننده، یک سرور خام Linux را به یک سیستم کامل AAA،
صورتحساب و مدیریت مشترکان تبدیل میکند.
SAMM برای چه کسانی است
SAMM برای ISPهای بیسیم، اپراتورهای فیبر و ارائهدهندگان hotspot که RouterOS در MikroTik
اجرا میکنند ساخته شده است. اگر مشترکان را از طریق PPPoE یا Hotspot احراز هویت میکنید و نیاز دارید
سطوح سرعت، سقف داده، تاریخهای انقضا و صورتحساب را اعمال کنید — SAMM همه اینها را از
یک صفحه انجام میدهد.
چگونه کار میکند
SAMM مسیر پرترافیک را نزدیک به پایگاه داده نگه میدارد. FreeRADIUS هر بسته احراز هویت و
حسابداری را مدیریت میکند؛ در هر Interim-Update حسابداری، مستقیماً توابع
PostgreSQL را فرا میخواند تا مصرف را جمع کند و محدودیتها را ارزیابی کند — هیچ
رفتوبرگشتی به Python در زمانی که مشترکان آنلاین هستند وجود ندارد.
چهار سطح اجرا از طریق یک پایگاه داده واحد با هم همکاری میکنند:
FreeRADIUS (unlang + rlm_sql) — authenticates
every packet; on each Interim-Update it accumulates bytes/uptime and evaluates limits inside Postgres.
samm-radius — runs time-driven sweeps (expiry, daily reset, speed
windows) and is the only process that sends Change-of-Authorization packets.
samm-worker — pings routers and syncs MikroTik device metadata over the API.
samm-api — the admin & customer portals; admin actions are queued
to the database and applied by samm-radius, never sent as CoAs directly.
پنج سرویس
سرویس
نقش
samm-api
پرتال مدیریت + پرتال سلفسرویس مشتری + REST API
samm-radius
صندوق خروجی CoA را تخلیه میکند؛ جاروبهای انقضا / بازنشانی روزانه / پنجره سرعت را اجرا میکند
samm-worker
روترها را ping میکند؛ فراداده دستگاه MikroTik را از طریق API همگامسازی میکند
samm-notification
اعلانهای ایمیل و Telegram را از طریق یک صف تنظیمشده تحویل میدهد
samm-telegram
ربات سلفسرویس تعاملی Telegram را اجرا میکند
SAMM چه میکند
هسته AAA
احراز هویت PPPoE و Hotspot، اعمال سرعت بهازای هر کاربر، CoA ترکیبی.
طرحها و محدودیتها
سطوح سرعت بههمراه چهار محدودیت مستقل و پنجرههای سرعت زمانبندیشده.
مشترکان
کاربران PPPoE/Hotspot بههمراه کارتهای ووچر پیشپرداخت hotspot با PDFهای قابل چاپ.
صورتحساب
قیمتگذاری بهازای هر پلن، فاکتورهای خودکار، یک دفتر کل دوطرفه دریافتها/پرداختها/هزینهها.
سلفسرویس
یک پرتال وب مشتری و یک ربات Telegram برای مصرف، فاکتورها و تیکتها.
عملیات
موجودی زنده MikroTik، مدیران مبتنی بر نقش، پشتیبانگیری و بازیابی، ابزارهای دستهای.
سیستم
WireGuard VPN داخلی، Cloudflare Tunnel، شش زبان، رابط کاربری قابل تغییر پوسته.
اعلانها
هشدارهای تمدید، انقضا، سهمیه و رسید از طریق ایمیل و Telegram.
بقیه این راهنما آموزش گامبهگام برای هریک از این حوزههاست. از منوی
سمت چپ استفاده کنید، یا با نصب شروع کنید.
شروع به کار
نصب
SAMM هر آنچه نیاز دارد — FreeRADIUS، PostgreSQL، nginx، WireGuard،
cloudflared و پنج سرویس SAMM — را در یک مرحله نصب میکند. نصبکننده
idempotent است: اجرای دوباره آن، نصب موجود را در جای خود ارتقا میدهد و
هرگز پیکربندی شما را بازنویسی یا رمز پایگاه داده شما را بازتولید نمیکند.
SAMM هر جایی اجرا میشود — مسیر نصبی را که با شبکه شما تناسب دارد انتخاب کنید:
گزینه A / B — سرور خام Linux (توصیهشده برای محیط عملیاتی): نصب تکفرمانی یا دستی روی Ubuntu / Debian.
گزینه C — Docker Compose: همان SAMM بهصورت کانتینر؛ چندمعماری (amd64 + arm64) بهطوری که روی Ubuntu، Windows Docker Desktop، مکهای Apple-silicon و هر جای دیگری اجرا میشود.
گزینه D — کانتینر MikroTik RouterOS 7: YAML مربوط به compose را مستقیماً در روتر خود بچسبانید. به هیچ دستگاه Linux خارجی نیاز نیست.
پیشنیازها
یک سرور تازه: Ubuntu 22.04 LTS، Ubuntu 24.04 LTS یا Debian 12.
فقط Linux در سطح سرور — نسخههای دسکتاپ پشتیبانی نمیشوند.
دسترسی Root / sudo و یک اتصال اینترنت.
systemd و میزبانی که PostgreSQL بتواند بهصورت محلی روی آن نصب شود (یکی برای شما راهاندازی میشود).
این اسکریپت راهانداز آخرین بسته انتشار SAMM را از GitHub دانلود میکند، آن را استخراج
میکند و نصبکننده کامل را بهصورت خودکار اجرا میکند. در چند دقیقه انجام میشود.
گزینه B — نصب دستی از یک بسته انتشار
آخرین samm-<version>.tar.gz را از صفحه
GitHub Releases دانلود کنید،
سپس روی سرور:
tar -xzf samm-<version>.tar.gz
cd samm-<version>
sudo bash install.sh
همچنین میتوانید از یک zip که روی دستگاهی دیگر تولید شده استقرار دهید — نصبکننده
منبع را با rsync به داخل /opt/samm منتقل میکند:
بلافاصله پس از اولین ورود، رمز عبور مدیر را تغییر دهید.
گزینه C — نصب با Docker Compose
اگر ترجیح میدهید SAMM را بهصورت کانتینر اجرا کنید — همان محصول، با بستهبندی متفاوت —
از توزیع Docker Compose در github.com/mhdhaidarah/samm-docker استفاده کنید.
روی هر میزبانی که Docker در دسترس باشد:
این کار در صورت نبود Docker، آن را نصب میکند، یک docker-compose.yml + .env
در /opt/samm-docker/ قرار میدهد و استک را راهاندازی میکند. ایمیج
mhdhaidarah/samm از همان بسته کامپایلشده نصب bare-OS ساخته شده است — از نظر ساختاری، منبعبسته.
چندمعماری از نسخه v2.2.6 — همان تگ برای linux/amd64 و linux/arm64 عرضه میشود. docker pull نسخه صحیح را بهصورت شفاف انتخاب میکند، بنابراین مسیر نصب روی یک سرور 64-بیتی Intel/AMD، یک مک Apple-silicon که Docker Desktop اجرا میکند، یا یک دستگاه ARM MikroTik (RB5009، hAP ax²، CCR2004/2116/2216) با استفاده از قابلیت کانتینر RouterOS 7، یکسان است.
روی میزبانهایی که لوله کردن curl به bash مجاز نیست (دستگاههای محدودشده،
سیاستهای خروجی سختگیرانه)، میتوانید فایل compose آماده اجرا را مستقیماً دریافت کنید:
git clone https://github.com/mhdhaidarah/samm-docker.git
cd samm-docker
cp .env.example .env
$EDITOR .env # set POSTGRES_PASSWORD and SAMM_PUBLIC_HOST
docker compose up -d
چند قابلیت هنوز در نسخه Docker وجود ندارد (قفل مرحلهای مجوز، بارگذاری مجدد پویای FreeRADIUS).
صفحات مدیریت داخلی WireGuard و Cloudflare Tunnel عمداً در نسخه Docker پنهان شدهاند — آنها سرویسهای systemd در سطح میزبان را مدیریت میکنند که از داخل کانتینر قابل دسترسی نیستند. اگر به این موارد بهصورت داخلی نیاز دارید، گزینه A یا B بالا را انتخاب کنید، یا cloudflared / wg-quick را مستقیماً روی میزبان Docker در کنار SAMM اجرا کنید. برای تمام هشدارهای v1 و مسیر نصب دستی، به
README نسخه Docker مراجعه کنید.
روی Windows (Docker Desktop) — فقط برای ارزیابی
برای محیط عملیاتی توصیه نمیشود. خواب / hibernate / بستن درپوش در Windows
کانتینرها را متوقف میکند؛ راهاندازی مجدد هنگام بوت فقط زمانی فعال میشود که WSL شروع شود (نه هنگام بوت Windows)؛
cron بهروزرسانی خودکار روزانه فقط زمانی اجرا میشود که WSL فعال باشد. آن را برای ارزیابی / نمایش استفاده کنید، سپس
محیط عملیاتی را روی یک ماشین مجازی Linux (Hyper-V، Proxmox، ESXi) یا یک دستگاه فیزیکی کوچک (مثلاً یک
NUC که Ubuntu Server اجرا میکند) مستقر کنید.
Docker Desktop را برای Windows نصب کنید (اجازه دهید در نخستین اجرا، بکاند WSL2 را راهاندازی کند).
سپس از PowerShell — بدون نیاز به ترمینال WSL — بسته compose را دریافت کنید و استک را راهاندازی کنید:
mkdir C:\samm-docker
cd C:\samm-docker
curl.exe -fLO https://github.com/mhdhaidarah/samm-docker/releases/latest/download/docker-compose.yml
curl.exe -fLO https://github.com/mhdhaidarah/samm-docker/releases/latest/download/env.example
copy env.example .env
notepad .env # set POSTGRES_PASSWORD and SAMM_PUBLIC_HOST (your Windows LAN IPv4)
docker compose pull
docker compose up -d
بوت شدن استک را در Docker Desktop → Containers تماشا کنید — گروه samm به 7 سرویس گسترش مییابد. وقتی همه سبز شدند، پرتال مدیریت را باز کنید و با این اعتبارنامهها وارد شوید:
برچیدن: docker compose down -v از دایرکتوری نصب
(سوئیچ -v ولوم postgres و کلید Fernet را پاک میکند — اگر داده افزودهاید، ابتدا از آنها پشتیبان بگیرید).
گزینه D — نصب روی یک روتر MikroTik (RouterOS 7)
همان SAMM، بدون نیاز به دستگاه Linux. اگر دستگاه MikroTik شما از بسته container پشتیبانی میکند و یک درایو USB یا microSD متصل دارد، میتوانید کل استک را مستقیماً روی روتر اجرا کنید. ایمیج بهصورت چندمعماری (linux/amd64 + linux/arm64) عرضه میشود، بنابراین دستگاههایی مانند RB5009، hAP ax²، CCR2004/2116/2216 نسخه صحیح را بهصورت شفاف دریافت میکنند.
پشتیبانیشده: MikroTik arm64 — RB5009، hAP ax²، CCR2004-1G-12S+2XS، CCR2116، CCR2216. SKUهای amd64 — CCR2004-1G-2XS-PCIe (amd64)، x86 RouterOS، CHR روی هایپروایزرهای amd64. پشتیبانینشده: دستگاههای armv7 / mipsbe / smips / tile / ppc (hEX، RB750، مدلهای قدیمیتر RB) — بدون پشتیبانی از کانتینر یا با RAM/CPU بسیار کم برای استک SAMM.
۱. آمادهسازی روتر
بسته container را نصب کنید (از extra_packages.zip در mikrotik.com/download — فایل container-*.npk متناظر را از طریق Files بارگذاری کنید، سپس ریبوت کنید). سپس حالت container را فعال کنید (یکبار، نیاز به ریبوت دارد):
یک درایو USB یا microSD وارد کنید (≥ 8 GB توصیه میشود — Postgres + لایههای ایمیج روی هم انباشته میشوند). روی روتر:
/disk print
# note the disk slot, e.g. "usb1-part1" or "disk1"
/disk format-drive usb1-part1 file-system=ext4 label=samm
پس از فرمت کردن، تأیید کنید که دیسک mount میشود و قابل نوشتن است:
/disk print detail
# look for "type=ext4" and a mount point like "/usb1-part1"
۳. YAML مربوط به compose را در برنامه container بچسبانید
در WebFig یا WinBox، Container → Apps → + New → YAML را باز کنید. فایل compose زیر را در فیلد YAML بچسبانید، دیسکی را که در مرحله ۲ فرمت کردید بهعنوان محل ذخیرهسازی تنظیم کنید و ارسال کنید. RouterOS هر ایمیج را دریافت و سرویسها را برای شما به هم متصل میکند.
پیش از چسباندن، هر change-me-strong-random-string را با یک رمز عبور تصادفی قوی یکسان (≥ 24 کاراکتر تصادفی) جایگزین کنید — این رمز در نخستین راهاندازی وارد Postgres میشود و هر سرویس SAMM از آن برای اتصال استفاده میکند. یکی را با یک مدیر رمز عبور تولید کنید یا pwgen 32 1 را روی هر دستگاه Linux اجرا کنید.
۴. تأیید و اتصال MikroTik به SAMM
وقتی هر 7 کانتینر در حال اجرا بودند، پرتال مدیریت را در یک مرورگر باز کنید و با این اعتبارنامهها وارد شوید:
بلافاصله رمز عبور مدیر را تغییر دهید. احراز هویت + حسابداری RADIUS روی UDP 1812 + 1813 روی خود روتر در دسترس است، بنابراین کلاینت RADIUS در MikroTik میتواند با رمز مشترکی که در System → RADIUS تنظیم کردید به 127.0.0.1 اشاره کند.
آزمایشی در v1. قابلیت container در RouterOS سبکتر از Docker Compose است — DNS مبتنی بر نام سرویس، ترتیب وابستگی (depends_on) و راهاندازیهای مجدد زنده بهگونهای متفاوت رفتار میکنند. اگر استک روی سختافزار شما درست کار نکرد، به اجرای Docker روی یک دستگاه Linux کوچک (NUC، Pi 4، ماشین مجازی Linux) در کنار MikroTik بازگردید. همان فایل compose در آنجا با معنای کامل Compose کار میکند.
گزینههای غیرتعاملی
به همه اعلانها میتوان از پیش با متغیرهای محیطی پاسخ داد، بنابراین نصبکننده میتواند
بدون نظارت اجرا شود:
متغیر
اثر
DB_PASS
بهجای رمز تولیدشده خودکار، از این رمز پایگاه داده استفاده کن (فقط نصب اول)
CF_TOKEN
کانکتور Cloudflare Tunnel را با این توکن Zero Trust نصب کن
نصبکننده بهصورت یک نمایش پیشرفت زنده و رنگی اجرا میشود — یک نوار درصدی و یک
چکلیست بهازای هر مرحله. خروجی خام هر مرحله در
/var/log/samm-install.log ثبت میشود؛ در صورت شکست، 30 خط آخر چاپ میشود.
مؤلفه
جزئیات
FreeRADIUS 3
با بکاند PostgreSQL و کلاینتهای پویای NAS پیکربندی شده؛ با freeradius -CX اعتبارسنجی شده
PostgreSQL
پایگاه داده، طرحواره و همه مهاجرتهای SQL اعمال شدند — هر فایل مهاجرت idempotent است
Python venv
همه وابستگیها از requirements.txt ساخته شدند؛ کاتالوگهای ترجمه کامپایل شدند
nginx
پراکسی معکوس بهصورت افزایشی افزوده شد — سایتهای موجود هرگز حذف نمیشوند. وقتی پورت 80 آزاد باشد از آن استفاده میکند؛ در غیر این صورت یک پورت جایگزین میپرسد
بستهها نصب شدند؛ بعداً از System → VPN پیکربندی میشوند
cloudflared
باینری همیشه نصب میشود؛ توکن تونل هنگام نصب اختیاری است یا بعداً از System → Cloudflare Tunnel افزوده میشود
همه اعتبارنامهها — رمز پایگاه داده و کلیدهای امضای نشست — در نخستین نصب
بهصورت خودکار تولید میشوند.
اعلانهای تعاملی
هر اعلانی در ابتدا، پیش از آغاز نصب رخ میدهد:
توکن Cloudflare — یک توکن کانکتور Zero Trust بچسبانید تا
SAMM را بدون هیچ پورت باز، آنلاین منتشر کنید، یا Enter را فشار دهید تا صرفنظر کنید و بعداً آن را پیکربندی کنید.
پورت HTTP — اگر پورت 80 از قبل در حال استفاده باشد، نصبکننده
آن سایتها را دستنخورده باقی میگذارد و یک پورت جایگزین میپرسد (پیشفرض 8080).
خلاصه نصب
وقتی نصبکننده به پایان میرسد، خلاصهای با URL مدیریت، ورود پیشفرض،
پورت HTTP انتخابشده، اعتبارنامههای پایگاه داده و مسیرهای فایل پیکربندی چاپ میکند:
============================================================
SAMM is installed and running.
Admin portal : http://localhost/admin/login
Default login : admin / admin <- CHANGE AFTER FIRST LOGIN
Config files : /etc/samm/samm.yaml /etc/samm/api.env
============================================================
ارتقا
برای ارتقا، منبع جدید را دریافت کنید و نصبکننده را دوباره اجرا کنید:
git -C /opt/samm pull # or unpack a newer release bundle
sudo bash /opt/samm/install.sh
اجرای دوباره، منبع را مجدداً همگام میکند، venv را ارتقا میدهد، همه مهاجرتها را دوباره اعمال
میکند، پیکربندیهای FreeRADIUS و nginx را دوباره بارگذاری میکند و هر سرویس را مجدداً راهاندازی میکند. فایلهای
پیکربندی شما و پورت HTTP انتخابشده در نخستین نصب حفظ میشوند.
نکته
SAMM میتواند خودش را هم بهروزرسانی کند — به صدور مجوز و بهروزرسانیها مراجعه کنید.
بهروزرسانیهای خودکار را فعال کنید، یا آنها را بنا به درخواست، از System → License اعمال کنید.
جداشده از شبکه و پایگاه داده راه دور
SAMM فقط SAMM را عرضه میکند — FreeRADIUS، PostgreSQL، nginx و بقیه در زمان نصب از
مخازن apt بالادستی دریافت میشوند، بنابراین نصبهای جداشده از شبکه باید آن بستهها را از
پیش آماده کنند. برای یک PostgreSQL راه دور، DSN را پس از نصب در /etc/samm/samm.yaml
تنظیم کنید.
شروع به کار
گامهای اول
پنج کار کوتاه، یک نصب تازه را به نقطهای میرساند که مشترکان میتوانند متصل شوند و برایشان صورتحساب صادر شود.
۱ · اولین ورود
http://<your-server>/admin/ را باز کنید (اگر پورت HTTP برابر 80 نیست، از پورت
خلاصه نصب استفاده کنید)، یا URL تونل Cloudflare خود را باز کنید.
با admin / admin وارد شوید.
بلافاصله رمز عبور را از System → Admins،
یا از منوی پروفایل در نوار بالا تغییر دهید.
۲ · افزودن اولین روتر
به MikroTik → NAS بروید و روی Add Router کلیک کنید.
IP روتر، یک نام کوتاه و یک رمز مشترک RADIUS را وارد کنید. برای دستگاههای
MikroTik، بهصورت اختیاری اعتبارنامههای API را برای همگامسازی زنده دستگاه اضافه کنید.
روی MikroTik، یک سرور RADIUS اضافه کنید که به میزبان SAMM (پورتهای 1812/1813)
با رمز مشترک یکسان اشاره کند، و RADIUS را برای PPP / Hotspot فعال کنید.
به راهاندازی مجدد FreeRADIUS نیازی نیست — SAMM کلاینتهای NAS را بهصورت پویا از
پایگاه داده تشخیص میدهد. برای رویه کامل به روترها (NAS) مراجعه کنید،
یا اجازه دهید جادوگر راهاندازی،
MikroTik را برای شما پیکربندی کند.
۳ · ایجاد یک پلن
یک پلن سرعت، محدودیتها و قیمتی را که میفروشید تعریف میکند. به
Users → Plans → New plan بروید. مرجع کامل فیلدها:
پلنها و محدودیتها.
۴ · افزودن یک مشترک
به Users → New customer بروید، اعتبارنامههای ورود
را پر کنید و یک پلن انتخاب کنید. مشترک میتواند بلافاصله متصل شود. برای دسترسی
hotspot پیشپرداخت، بهجای آن کارتهای ووچر تولید کنید.
۵ · فعالسازی مجوز شما
یک نصب تازه بهصورت ثبتنشده در یک سطح حداقلی اجرا میشود.
System → License را باز کنید و برای برداشتن محدودیتها فعالسازی کنید — به
صدور مجوز و سطوح مراجعه کنید.
ریتم روزمره
افزودن روترها → ایجاد پلنها → افزودن مشترکان یا کارتها → تماشای
داشبورد → ثبت پرداختها در
حسابداری.
مشترکان و طرحها
طرحها و محدودیتها
یک پلن تعریف سرویسی است که به مشترکان اختصاص مییابد — سرعت،
محدودیتها و قیمت را تعیین میکند. پیش از افزودن کاربران، پلنها را ایجاد کنید.
ایجاد یک پلن
به Users → Plans بروید.
روی New plan کلیک کنید.
فرم را پر کنید و روی Save plan کلیک کنید.
هر محدودیت یک کلید دوحالته است — فقط مواردی را که نیاز دارید فعال کنید. همان پنجره، یک پلن موجود را ویرایش میکند (منوی ⋮ ردیف → Edit را باز کنید).
فیلدهای پلن
فیلد
معنا
نام
نام یکتای پلن، مثلاً Home-50M
قیمت
هنگام استفاده از صدور فاکتور، در هر دوره صورتحساب دریافت میشود
اشتراک، یک دوره ثابت پس از فعالسازی پایان مییابد (روز/ماه/ساعت/دقیقه)
محدودیت: سهمیه
یک سقف داده کل (ترکیبی، فقط دانلود، یا فقط آپلود) برای کل اشتراک
محدودیت: زمان اتصال
سقفی بر زمان اتصال تجمعی — مجموع مدت همه نشستها
محدودیت: مصرف روزانه
یک سقف داده که هر روز در زمان بازنشانی روزانه پیکربندیشده صفر میشود
پنجره نامحدود
افزودن سریع یک پنجره سرعت — ویرایشگر کامل در صفحه Speed Windows پلن قرار دارد
استخر IP
نام اختیاری RADIUS Framed-Pool برای تخصیص آدرس
تمدید خودکار
بهجای تعویض پلن یا قطع اتصال، در زمان انقضا یک دوره تازه شروع کن
چهار محدودیت
هر محدودیت مستقل و اختیاری است. وقتی چند محدودیت تنظیم شده باشند، SAMM آنها را با
ترتیب ثابت — انقضا → سهمیه → زمان اتصال → روزانه — بررسی میکند و اولین موردی که
به پایان برسد، اقدام را تعیین میکند.
محدودیت
پیگیری میکند
هنگام اتمام
انقضا
زمان تقویمی از زمان فعالسازی
تعویض به یک پلن دیگر، یا قطع اتصال
سهمیه
کل بایتهای مصرفشده
تعویض به یک پلن دیگر، یا قطع اتصال
زمان اتصال
ثانیههای تجمعی نشست
تعویض به یک پلن دیگر، یا قطع اتصال
روزانه
بایتها از آخرین بازنشانی روزانه
کاهش سرعت (تعویض به یک پلن کندتر) تا بازنشانی روزانه بعدی
برای هر محدودیت، آنچه را هنگام اتمام رخ میدهد انتخاب میکنید: یک پلن بعدی
برای تعویض مشترک به آن انتخاب کنید، یا آن را بهصورت — disconnect — رها کنید. برای محدودیت
روزانه، پلن بعدی بهعنوان کاهشدهنده سرعت عمل میکند — مشترک در بازنشانی روزانه بعدی بهطور خودکار
به پلن اصلی بازمیگردد.
پنجرههای سرعت
یک پنجره سرعت سرعت پایه پلن را برای ساعات معینی بازنویسی میکند — برای
مثال یک پنجره سرعت نامحدود پس از نیمهشب. روی یک ردیف پلن کلیک کنید تا ویرایشگر
Speed Windows آن باز شود، که کنترل روز هفته را اضافه میکند و از
پنجرههایی که از نیمهشب عبور میکنند پشتیبانی میکند. وقتی چند پنجره مطابقت داشته باشند،
پرسرعتترین پنجره برنده میشود.
توجه
مشترکان کاهشسرعتیافته یا با محدودیت بهاتمامرسیده از پنجرههای سرعت مستثنا
هستند — SAMM هرگز تا زمانی که یک محدودیت اعمال است، سرعت را بالا نمیبرد.
دو مفهوم از مصرف
SAMM مصرف را در دو جا نگه میدارد و هرگز آنها را با هم اشتباه نمیگیرد:
شمارندههای قابل بازنشانی — وضعیت بهازای هر محدودیت. با یک بازنشانی
مدیر و با بازنشانی روزانه صفر میشوند.
فهرست پلنها سرعت هر پلن، تعداد مشترکان، محدودیتهای فعال و پنجرههای سرعت را نشان
میدهد. از منوی ⋮ یک ردیف میتوانید آن را ویرایش کنید، پنجرههای سرعتش را باز کنید، فعال/غیرفعال کنید،
به مشترکانش بروید، یا آن را حذف کنید (فقط زمانی که مشترکی ندارد). ویرایش
تمدید خودکار پیشنهاد میدهد که تغییر را به همه مشترکان فعلی گسترش دهد.
مشترکان و طرحها
مشترکان
یک مشترک (مشتری / کاربر) یک حساب PPPoE یا Hotspot است که
در برابر SAMM احراز هویت میشود. به هر مشترک دقیقاً یک پلن اختصاص مییابد.
ایجاد یک مشترک
به Users بروید و روی New customer کلیک کنید.
فرم را کامل کنید و ذخیره کنید — مشترک میتواند بلافاصله متصل شود.
فیلد
معنا
نام کاربری *
نام ورود PPPoE / Hotspot — باید یکتا باشد
رمز عبور *
رمز عبور ورود (برای احراز هویت PAP/CHAP در RADIUS ذخیره میشود)
نام / نام خانوادگی
نام مشترک
موبایل / ایمیل / آدرس
جزئیات تماس — برای اعلانها و فاکتورها استفاده میشود
طرح *
پلن سرویسی که باید اختصاص یابد
بازنویسی انقضا
تاریخ انقضای دستی اختیاری بهجای تاریخ محاسبهشده پلن
تمدید خودکار
دوره پلن را بهطور خودکار در زمان انقضا تمدید کن
فهرست مشترکان
صفحه Users هر مشترک را با یک نقطه وضعیت قابل مشاهده در یک نگاه، پلن اختصاصیافته و
میزان باقیمانده از هر محدودیت فهرست میکند — مصرف روزانه با یک نوار پیشرفت، سهمیه
باقیمانده، زمان اتصال باقیمانده و روزهای باقیمانده. بر اساس وضعیت (All / Active / Suspended
/ Expired / Online) فیلتر کنید یا بر اساس نام کاربری، نام یا موبایل جستجو کنید.
نشان تعویض پلن
یک نشان تنها، پلن مشترک است. دو نشان که با یک فلش به هم پیوستهاند
به این معناست که مشترک به محدودیت روزانه خود رسیده و بهطور موقت روی یک پلن
کاهش سرعت متوقف شده است — آنها در بازنشانی روزانه بعدی به پلن اصلی بازمیگردند.
مدیریت یک مشترک
روی یک ردیف راستکلیک کنید — یا از منوی ⋮ استفاده کنید — برای هر اقدام بهازای هر مشترک:
عملیات
چه کاری انجام میدهد
مشاهده / ویرایش
صفحه جزئیات را باز کن، یا جزئیات تماس، رمز عبور و انقضا را ویرایش کن
فعال / غیرفعال
حساب را معلق کن — مشترکان آنلاین قطع میشوند
تمدید انقضا
مدت پلن را روی هر زمان باقیمانده اضافه کن؛ اگر پلن قیمت داشته باشد یک فاکتور تولید میکند
بازنشانی زمان اتصال / سهمیه / روزانه
شمارنده محدودیت انتخابشده را صفر کن
مصرف
نمودارهای مصرف و تاریخچه نشست را باز کن
حذف
مشترک و تمام تاریخچه او را حذف کن — نشستهای فعال ابتدا قطع میشوند
چگونه اقدامها اعمال میشوند
بازنشانیها، تغییرات پلن و تمدیدها در یک گزارش حسابرسی صفبندی و توسط
تیک samm-radius اعمال میشوند — معمولاً ظرف چند ثانیه. اگر مشترک
آنلاین باشد، SAMM یک بازخوانی زنده نیز ارسال میکند. به
CoA و تغییرات زنده مراجعه کنید.
نمای مصرف
اقدام Usage یک صفحه ترافیک تفصیلی برای یک مشترک باز میکند،
با یک انتخابگر دوره 7d / 14d / 30d / 90d. این صفحه سه رقم شاخص را گزارش میکند —
ترافیک امروز (با تفکیک آپلود/دانلود و دقایق آنلاین)،
ترافیک این ماه، و زمان آنلاین تجمعی
برای ماه. زیر آنها یک نمودار ترافیک روزانه از آپلود در برابر
دانلود، و یک جدول کامل تاریخچه نشست قرار دارد: زمان شروع و پایان،
مدت، بایتهای دانلود و آپلود، NAS، و علت پایان هر نشست.
عملیات دستهای
برای تغییر مالک، انقضا، وضعیت یا تمدید خودکار برای بسیاری از مشترکان بهطور همزمان — یا
برای حذف تعداد زیاد — از ابزارهای تغییرات دستهای و حذف
دستهای استفاده کنید. برای ایجاد مشترکان بهصورت دستهای از یک صفحهگسترده، از Export / Import استفاده کنید.
مشترکان و طرحها
کارتهای Hotspot
برای دسترسی Hotspot پیشپرداخت، بهجای مشترکان جداگانه، یک دسته کارت ووچر
تولید کنید. هر کارت یک جفت نام کاربری/رمز عبور با سرعت و محدودیتهای خاص خود است،
که بهصورت هزارتایی تولید و برای توزیع چاپ میشود.
ایجاد یک گروه کارت
به Users → Hotspot Cards بروید و روی New group کلیک کنید.
فرم زیر را پر کنید و روی Create group کلیک کنید — SAMM اعتبارنامههای
هر کارت را بهطور خودکار تولید میکند.
بخش
فیلدها
هویت
نام یکتای گروه، توضیحات، پیشوند اختیاری نام کاربری، تعداد کارتهایی که باید تولید شوند (تا 10,000)
اعتبارنامهها
قالب نام کاربری و رمز عبور (اعداد / حروف / حروف و اعداد) و طول
سقف زمان اتصال، انقضا پس از اولین ورود، و یک تاریخ اعتبار «معتبر تا» برای گروه
انقضا از اولین ورود هر کارت شمارش میشود، در حالی که
معتبر تا یک تاریخ اعتبار قطعی است — کارتها پس از آن قابل استفاده نیستند،
چه فعال شده باشند و چه نشده باشند.
وضعیتهای کارت
وضعیت
معنا
استفادهنشده
تولید شده اما هرگز وارد نشده
فعال
در حال استفاده، در محدوده مجاز خود
بهاتمامرسیده
به یک محدودیت (سهمیه، زمان اتصال یا انقضا) رسیده است
غیرفعال
بهصورت دستی غیرفعال شده
چاپ و پیگیری
یک گروه را باز کنید تا کارتهای آن را ببینید، آنها را برای توزیع در یک PDF چاپ کنید
(چیدمان چاپ از لوگوی ISP شما در Settings استفاده میکند)، و مصرف هر کارت را بررسی کنید. ترافیک
کارتها همچنین در گزارشها زیر
زبانه Cards ظاهر میشود، و هر گروه نمای حسابداری خاص خود را دارد.
شبکه و روترها
روترها (NAS)
یک NAS (Network Access Server) روتری است که مشترکان را
در برابر SAMM از طریق RADIUS احراز هویت میکند. هر روتری که ترافیک مشترک را حمل میکند
به یک رکورد NAS نیاز دارد.
افزودن یک روتر
به MikroTik → NAS بروید و روی Add Router کلیک کنید.
فیلدهای زیر را پر کنید و ذخیره کنید.
فیلد
معنا
IP / نام میزبان NAS
آدرس روتر، آنگونه که میزبان SAMM آن را میبیند
نام کوتاه
یک برچسب کاربرپسند که در سراسر رابط کاربری نمایش داده میشود
نوع
mikrotik همگامسازی زنده دستگاه و ارسال پیکربندی را باز میکند؛ انواع دیگر فقط RADIUS هستند
رمز
رمز مشترک RADIUS — باید دقیقاً با روتر مطابقت داشته باشد، وگرنه احراز هویت شکست میخورد
پورت CoA
پورت UDP که SAMM بستههای Change-of-Authorization را به آن ارسال میکند (پیشفرض MikroTik 3799)
پورت / کاربر / رمز عبور API
اعتبارنامههای API در MikroTik که SAMM برای خواندن اطلاعات دستگاه و ارسال پیکربندی استفاده میکند
به راهاندازی مجدد نیازی نیست
SAMM کلاینتهای NAS را بهصورت پویا از پایگاه داده تشخیص میدهد — افزودن یا حذف یک
روتر هرگز به راهاندازی مجدد FreeRADIUS نیاز ندارد.
فهرست NAS
هر روتر در یک جدول نمایش داده میشود — ID، IP / نام میزبان NAS، نام کوتاه، نوع، یک
رمز ماسکشده (برای آشکار کردن آن روی سلول کلیک کنید)، پورتهای CoA و API، و یک
نتیجه ping زنده با زمان رفتوبرگشت. کادر جستجو بر اساس IP،
نام کوتاه یا توضیحات فیلتر میکند.
منوی ⋮ هر ردیف اقدامهای بهازای هر روتر را در بر دارد — View Device و
Refresh Info (فقط MikroTik)، Edit، Push
RADIUS config (فقط MikroTik)، و Delete. باز کردن یک
ردیف از نوع mikrotik مستقیماً به
صفحه دستگاه آن میرود.
کشف همسایهها
روی Discover neighbors کلیک کنید تا دستگاههای MikroTik را در
شبکه پویش کنید و آنها را بدون تایپ دستی هر آدرس، بهعنوان رکوردهای NAS اضافه کنید.
ارسال پیکربندی RADIUS به روتر
برای رکوردهای NAS از نوع MikroTik، منوی ⋮ ردیف گزینه Push RADIUS config
را ارائه میدهد — SAMM بهجای آنکه شما دستی آن را تایپ کنید، روتر را از طریق API برای شما پیکربندی میکند. شما
IP سرور SAMM را تأیید میکنید (باید از روتر قابل دسترسی باشد) و پورتهای احراز هویت،
حسابداری و CoA؛ سپس SAMM یک ورودی RADIUS روی روتر ایجاد یا جایگزین میکند:
تنظیم
مقدار
توضیح
SAMM — تگی که SAMM برای یافتن و بهروزرسانی بعدی این ورودی استفاده میکند
سرویس
hotspot, ppp
آدرس / رمز
میزبان SAMM، با رمز مشترک از این رکورد NAS
مهلت زمانی
3000 ms
CoA ورودی
پذیرفته شده، روی پورت CoA که تأیید کردید
پس از پایان ارسال، پنجره یک گزارش نتیجه نمایش میدهد.
پیکربندی سمت MikroTik
اگر بهجای آن روتر را بهصورت دستی پیکربندی میکنید:
یک سرور RADIUS اضافه کنید که به میزبان SAMM اشاره کند، با رمز مشترک
یکسان، فعالشده برای PPP / Hotspot.
از پورت احراز هویت 1812 و پورت حسابداری 1813 استفاده کنید.
CoA ورودی را روی پورت 3799 بپذیرید.
فاصله Interim-Update حسابداری را روی حدود 60 ثانیه تنظیم کنید —
این همان بازهای است که SAMM مصرف را جمع و محدودیتها را ارزیابی میکند.
دستگاههای فقط پایش
روتری که بهعنوان monitor اضافه شده در موجودی MikroTik ظاهر میشود و
ping و همگامسازی میشود، اما هیچ نقش RADIUS ندارد — نمیتواند مشترکان را احراز هویت کند. از
آن برای زیر نظر داشتن روترهایی که NAS مشترک نیستند استفاده کنید.
شبکه و روترها
مدیر MikroTik
وقتی یک روتر اعتبارنامههای API دارد، SAMM آن را مستقیماً از طریق
API در MikroTik مدیریت میکند — بدون WinBox، بدون SSH. بخش MikroTik
یک موجودی زنده از هر روتر است، و هر دستگاه یک صفحه جزئیات با
پانزده زبانه باز میکند که تقریباً هر بخش از RouterOS را از مرورگر شما پیکربندی میکنند.
پایشگر MikroTik
MikroTik → Monitor برای هر روتر یک کارت نشان میدهد، که بهصورت
شبکهای چیده شده است. هر کارت — که توسط samm-worker بازخوانی و هر
30 ثانیه بهصورت زنده پرسوجو میشود — نقطه دسترسپذیری، نسخه RouterOS، بار CPU و تعداد هسته،
مصرف حافظه، تعداد نشستهای فعال، زمان اتصال و زمان آخرین نمونه را گزارش میکند.
یک کارت یا با NAS برچسب میخورد (روتری که مشترکان را نیز
از طریق RADIUS احراز هویت میکند) یا با monitor (دستگاهی که فقط برای پایش
اضافه شده است). Add MikroTik یک دستگاه جدید ثبت میکند؛ Refresh now
یک پرسوجوی فوری را اجبار میکند. کارتهای فقط پایش یک منوی راستکلیک دارند — Open، Edit،
Refresh Info، Delete.
صفحه دستگاه — شانزده زبانه
هر دستگاهی را برای صفحه مدیریت کامل آن باز کنید. زبانهها در چهار گروه قرار میگیرند.
پایش
زبانه
چه چیزی را نشان میدهد
نمای کلی
اطلاعات دستگاه، اطلاعات سیستم، و نمودارهای تاریخچه عملکرد (CPU، حافظه، نشستها در طول زمان)
منفذها
هر منفذ با وضعیت زنده آن، بههمراه تاریخچه ترافیک بهازای هر منفذ
وبسایتها
وبسایتها و برنامههای دیدهشده روی روتر و یک نمای تاریخچه عملکرد از آن ترافیک
مدیر
زبانه Manager → General صفحه نگهداری دستگاه است:
Identity (نام روتر)، Time (ساعت، منطقه زمانی و
NTP)، و Tools (ریبوت، ping و دیگر اقدامهای تککلیکی روتر).
پیکربندی شبکه
زبانه
چه چیزی را پیکربندی میکنید
Bridge
پلهای LAN ایجاد کنید و انتخاب کنید کدام منفذهای فیزیکی (پورتها) به هر کدام تعلق دارند
VLAN
منفذهای VLAN را اضافه و مدیریت کنید
IP
سه زیرزبانه — Static (آدرسهای ثابت و پویا)، DHCP client (دریافت یک آدرس از بالادست)، DHCP server (توزیع آدرسها، با یک جدول اجاره زنده)
DNS
سرورها و حافظه پنهان DNS، بههمراه یک فیلتر وبسایتها و برنامهها — مسدودسازی محتوای مبتنی بر DNS
WiFi / CAPsMAN
منفذهای Wi-Fi با پیکربندیها و پروفایلهای امنیتی آنها؛ و کنترلر CAPsMAN — پیکربندیها، قوانین تدارک و CAPهای راه دور
QoS
اولویت دانلود آگاه از برنامه — برنامهها و سایتهای دیدهشده توسط فیلتر وبسایتها و برنامهها را به هشت شکاف اولویت بکشید، سرعت هر برنامه را محدود کنید، و آن را بهعنوان یک درخت صف به روتر ارسال کنید
سرورهای Hotspot، پروفایلهای hotspot و پروفایلهای کاربر، استخرهای DHCP/IP، و صفحه ورود captive-portal
اینترنت
اتصالات بالادست WAN — WANهای مدیریتشده توسط SAMM و مسیرهای پیشفرض، بههمراه هر WAN موجود غیر SAMM که فقطخواندنی نمایش داده میشود
Firewall
قوانین فیلتر، یک تحلیل امنیت روتر، اتصال و اهداف، ماژولهای امنیتی، و پشتیبانهای firewall
بهروزرسانی
بهروزرسانیهای RouterOS — یک کانال بهروزرسانی انتخاب کنید، بررسی و اعمال کنید، و بستههای نصبشده را مرور کنید
جادوگر
راهاندازی هدایتشده بار اول، در ادامه
فاصله interim-update در PPPoE
در زبانه PPPoE، Interim update تعیین میکند که روتر چند وقت
یکبار بستههای Interim-Update حسابداری RADIUS را به SAMM ارسال میکند. SAMM از آن بستهها برای
جمع کردن شمارندههای بایت و زمان اتصال و برای ارزیابی محدودیتهای سهمیه، روزانه و زمان اتصال استفاده میکند —
بدون آنها، اعمال محدودیت و شمارندههای نشست زنده متوقف میشوند.
مقدار توصیهشده 5m است.
صفحه ورود Hotspot
از تب Hotspot صفحه ورود captive-portal را مدیریت میکنید:
صفحههای پیشفرض MikroTik را نگه دارید، یکی از قالبهای داخلی را اعمال کنید،
یا یکی از طرحهای ذخیرهشده خود را به کار ببرید. SAMM شامل یک ویرایشگر طراحی
بصری و یک گالری قالب است — یک صفحه ورود را سفارشی کنید و مستقیماً به
hotspot روتر بفرستید.
QoS آگاه از برنامه
تب QoS برنامهها و سایتهایی را که SAMM از پیش روی
روتر میبیند به یک طرح اولویتبندی دانلود تبدیل میکند. هر برنامه را از استخر به یکی از هشت
جایگاه اولویت بکشید — در شرایط ازدحام جایگاه ۱ نخست و جایگاه ۸ آخر سرویسدهی میشود؛ برنامههایی
که در استخر میمانند شکلدهی نمیشوند. بهصورت اختیاری سرعت دانلود هر برنامه را محدود کنید (برای مثال
10M) و یک سقف کلی دانلود تعیین کنید تا اولویتها برای آن رقابت کنند. توزیع خودکار
بر اساس دسته همهچیز را با یک کلیک سامان میدهد — پیامرسانی و کنفرانس نخست، دانلودهای حجیم
و تستهای سرعت در آخر.
هنگام ارسال، SAMM جایگاهها را در یک queue tree MikroTik
(با برچسب SAMM:qos، parent=global) به همراه قواعد فایروال packet-mark متناظر،
از بالاترین اولویت به بعد کامپایل میکند. این بر پایه همان کاتالوگ Websites & App filter
ساخته شده که مانیتورینگ را نیرو میدهد، بنابراین فقط برنامههایی که واقعاً روی روتر دیده شدهاند ظاهر میشوند — و حذف
SAMM QoS هر شیء SAMM:qos را از روتر پاک میکند و شمارندههای شما را
دستنخورده باقی میگذارد.
دستیار راهاندازی
تب Wizard همهچیز را در نه گام کوتاه گردآوری میکند و
پیکربندی کامل را در پایان بهصورت یکجا به روتر میفرستد. تا زمانی که در گام بازبینی نهایی
تأیید نکنید چیزی ارسال نمیشود.
خوشآمد و شناسایی — SAMM روتر را بررسی میکند و نشان میدهد چه چیزی
از پیش پیکربندی شده است، تا بتوانید آن موارد را در ارسال رد کنید.
واسط bridge — نام bridge شبکه LAN را بگذارید.
پورتهای bridge — انتخاب کنید کدام واسطهای فیزیکی به bridge بپیوندند.
DNS — تعیین resolverهای بالادست (پیشتنظیمهای یککلیکی برای Google،
Cloudflare، Quad9 و بیشتر)، اندازه cache و بهصورت اختیاری یک فیلتر محتوای DNS.
اینترنت — یک یا چند لینک بالادست WAN اضافه کنید (Static / DHCP / PPPoE).
RADIUS به SAMM — روتر را برای احراز هویت،
حسابداری و CoA به میزبان SAMM خود نشانه بروید.
سرویسها — انتخاب کنید که wizard یک سرور PPPoE، یک
سرور Hotspot یا هر دو را ایجاد کند.
جزئیات PPPoE / Hotspot و فایروال — استخرها، پروفایلها، زمانهای
اجاره، به علاوه قواعد فایروال و NAT.
بازبینی و ارسال — فهرست دقیق فرمانهایی را که ارسال خواهند شد
ببینید، سپس همه را به روتر بفرستید.
سرعت هر کاربر از RADIUS میآید
wizard یک پروفایل واحد PPPoE / hotspot میسازد — پروفایلهای جداگانه برای هر تیر
ارسال نمیکند. سرعت هر مشترک هنگام ورود توسط SAMM در پاسخ RADIUS تحویل داده میشود،
بنابراین تغییر طرحها هرگز نیازمند ویرایش روتر نیست.
شبکه و روترها
CoA و تغییرات زنده
CoA (Change-of-Authorization) روشی است که SAMM با آن نشست یک مشترک را
هنگامی که آنلاین است تغییر میدهد — برای افزایش یا کاهش سرعت، یا قطع اتصال او —
بدون آنکه منتظر اتصال دوباره او بماند.
چگونه یک تغییر به یک مشترک فعال میرسد
SAMM هرگز تغییری را مستقیماً با یک کلیک دکمه به روتر نمیفرستد. هر اقدام مدیر یک مسیر ایمن را دنبال میکند:
اقدام بهعنوان یک فرمان در صف در audit log ثبت میشود.
سرویس samm-radius در tick بعدی خود صف را تخلیه میکند، تغییر را
اعمال میکند و — اگر مشترک آنلاین باشد — یک CoA را به صف میافزاید.
صندوق خروجی CoA تخلیه میشود و بسته به روتر ارسال میگردد.
رویدادهای زمانمحور — انقضا، لبههای پنجره سرعت، بازنشانیهای روزانه — به همان صندوق خروجی تغذیه میشوند.
کران بالای تأخیر یک tick سرویس samm-radius است (بهطور پیشفرض ۳۰ ثانیه؛ برای اعمال
سختگیرانهتر آن را در تنظیمات کاهش دهید).
CoA ترکیبی
SAMM ابتدا یک CoA-Update میفرستد تا نشست را در جا تغییر دهد. اگر
روتر پس از تعداد تلاشهای پیکربندیشده آن را رد کند، SAMM بهطور خودکار به یک
Disconnect-Request بازمیگردد — مشترک دوباره متصل میشود و تنظیمات جدید
را دریافت میکند. این راهبرد ترکیبی در همه نسخههای firmware مربوط به MikroTik کار میکند.
صفحه صندوق خروجی CoA
Users → CoA Outbox نمای زنده آن صف است.
samm-radius تنها فرستنده است — پنل مدیریت هرگز مستقیماً یک CoA نمیفرستد —
و در هر tick صف را تخلیه میکند. صفحه هر
30 ثانیه بهطور خودکار تازه میشود.
شش شمارنده در بالای صفحه قرار دارند — Pending، Sent، NACK (در حال تلاش دوباره)، Done،
Failed و Total. جدول را بر اساس وضعیت، بر اساس اقدام
(update یا disconnect) فیلتر کنید، یا بر اساس نام کاربری، IP مربوط به NAS یا
دلیل جستجو کنید.
وضعیت
معنا
در انتظار
در صف، در انتظار tick بعدی samm-radius
ارسالشده
به روتر فرستاده شد، در انتظار پاسخ آن
nack
روتر CoA-Update را رد کرد — SAMM در حال تلاش دوباره است، سپس به یک disconnect بازمیگردد
انجامشده
با موفقیت اعمال شد
ناموفق
پس از رسیدن به حد تلاش دوباره منصرف شد — برای دیدن آخرین خطا نشانگر را روی نشان نگه دارید
هر ردیف کاربر، روتر، اقدام، تعداد تلاش، دلیل و زمانهای ایجاد و
ارسال را نشان میدهد. اقدامهای هر ردیف به شما اجازه میدهند یک بسته ناموفق یا nackشده را Retry کنید،
بستهای را که هنوز در حال ارسال است Cancel کنید، یا Attributes را باز کنید تا
صفتهای دقیق RADIUS که بسته حمل میکند را بررسی کنید. نشان نوار کناری
ردیفهای در انتظار را میشمارد؛ Dashboard خطاهای ۲۴ ساعت را دنبال میکند. یک سیستم سالم این صف را
نزدیک به خالی نگه میدارد.
عملیات روزانه
Dashboard و نشستهای زنده
دو صفحه زیر Overview جایی است که هر
شیفت را از آن آغاز میکنید — Dashboard برای سلامت کل سیستم و Live Sessions برای اینکه
دقیقاً چه کسی هماکنون متصل است.
داشبورد
Overview → Dashboard صفحه خانه اپراتور است. یک
انتخابگر بازه در بالا — Today، 7d، 14d، 30d، 90d —
پنجره نمودار روند و ارقام محدود به تاریخ را تعیین میکند.
شش کاشی KPI
هر کاشی یک شمارنده زنده و یک میانبر است — روی آن کلیک کنید تا مستقیماً به فهرست فیلترشده پشت آن عدد بروید.
کاشی
نمایش میدهد
باز میکند
هماکنون آنلاین
مشترکانی که هماکنون یک نشست زنده RADIUS دارند
کاربران فیلترشده به Online
مشترکان فعال
حسابهای فعال، با تعداد کل مشترکان در زیر آن
کاربران فیلترشده به Active
منقضی شده
مشترکانی که اشتراکشان منقضی شده و طرح بعدی برایشان تعیین نشده است
کاربران فیلترشده به Expired
صف CoA
بستههای Change-of-Authorization در انتظار، به علاوه تعداد بستههایی که در ۲۴ ساعت گذشته ناموفق بودهاند
کل رکوردهای NAS، به علاوه تعداد مواردی که اکنون در دسترس نیستند
مانیتور MikroTik
فاکتورهای پرداختنشده
فاکتورهایی که هنوز نیازمند پیگیری پرداخت هستند
فاکتورهای فیلترشده به Unpaid
نمودار کاربران و نشستهای زنده
یک نمودار خطی مبتنی بر عکسفوری روزانه سه سری را در سراسر بازه انتخابشده رسم میکند —
کاربران فعال، نشستهای آنلاین و
کاربران منقضیشده — تا رشد و ریزش در یک نگاه دیده شوند.
سلامت pipeline
این پنل ضربان موتور اعمال قوانین است. در یک سیستم سالم
صفها روی صفر یا نزدیک صفر قرار دارند — عددی که بالا میماند به یک سرویس گیرکرده یا یک
روتر که تغییرات را رد میکند اشاره دارد.
معیار
معنای آن
samm-radius صف
CoAهای در انتظار که منتظر tick بعدی هستند — باید ظرف چند ثانیه پاک شوند
CoA ناموفق (۲۴ ساعت)
در یک سیستم سالم صفر است؛ عدد غیرصفر یعنی یک روتر CoAها را رد میکند
audit log در انتظار
اقدامهای مدیر در صف که هنوز توسط samm-radius اعمال نشدهاند
نشستهای محدودشده
مشترکانی که اکنون به دلیل یک محدودیت با سرعت کاهشیافته نگه داشته شدهاند — مورد انتظار است، نه یک خطا
عکسفوری نشستها
تعداد نشستهای زنده — باید با Online now همخوانی داشته باشد
طرحهای فعال
اندازه کاتالوگ طرحهای شما
مسیر اعمال قوانین
اقدامهای مدیر در samm.audit_log به صف میروند؛ tick سرویس samm-radius
آنها را تخلیه میکند و CoAها را به samm.coa_outbox میفرستد. مسیر کامل
در CoA و تغییرات زنده آمده است.
جدولهای فعالیت اخیر
چهار جدول زیر نمودار نمایی پیوسته از آنچه بهتازگی رخ داده ارائه میدهند، هرکدام با یک
پیوند View all به صفحه کامل خود:
صندوق خروجی CoA اخیر — اقدام، کاربر، وضعیت (done / pending / nack / failed)، تعداد تلاش، دلیل و زمان.
اقدامهای اخیر مدیر — اقدام، هدف، عاملی که آن را آغاز کرده، اینکه آیا هنوز اعمال شده است، و زمان.
مشترکان اخیر — جدیدترین حسابها به همراه وضعیت و آخرین زمان احراز هویتشان.
روترها — هر NAS با یک نقطه سلامت reachable / unreachable / no-data.
نشستهای زنده
Overview → Live Sessions هر مشترکی را که
روترها اکنون از طریق حسابداری RADIUS آنلاین گزارش میکنند فهرست میکند. صفحه
هر ۳۰ ثانیه بهطور خودکار تازه میشود؛ یک دکمه Refresh
دستی در سربرگ قرار دارد.
فیلتر کردن فهرست
Search — با نام کاربری، framed IP یا IP مربوط به NAS مطابقت میکند و همانطور که تایپ میکنید ارسال میشود.
Router — فهرست را به نشستهای روی یک NAS واحد محدود کنید.
Only throttled — فقط مشترکانی را نشان بده که یک محدودیت آنها را با سرعت کاهشیافته نگه داشته است.
Per page — ۲۰، ۵۰، ۱۰۰ یا ۲۰۰ ردیف.
هر ردیف چه چیزی نشان میدهد
ستون
معنا
کاربر
نام کاربری — به صفحه جزئیات مشترک پیوند میدهد
Framed IP
آدرسی که روتر به این نشست اختصاص داده است
روتر
نام کوتاه NAS و آدرس IP آن
طرح
طرح فعلی مشترک
سرعت مؤثر
سرعتی که هماکنون روی روتر اعمال شده است — سرعت طرح که با هر پنجره سرعت فعال تنظیم شده است. یک نشان throttled به این معناست که یک محدودیت مشترک را با سرعت کاهشیافته نگه داشته است.
دانلود / آپلود
شمارندههای زنده بایت برای نشست
آنلاین
مدتزمانی که نشست فعال بوده است
آغازشده
زمانی که نشست آغاز شد
قطع کردن یک نشست
دکمه Disconnect روی یک ردیف پس از یک پیام تأیید، یک CoA-Disconnect
را برای همان نشست دقیق (دلیل admin_manual) به صف میافزاید.
مشترک بلافاصله قطع میشود؛ اگر حساب او هنوز فعال باشد آزاد است که
دوباره متصل شود. بسته را در صندوق خروجی CoA دنبال کنید.
عملیات روزانه
گزارشها و تحلیلها
Overview → Reports نمای تحلیلی است — روندهای
مشترکان، ترافیک در طول زمان و پرمصرفترین کاربران و کارتهای روی شبکه شما.
انتخاب بازه
هر رقم روی صفحه به یک بازه تاریخ مقید است. یک پیشتنظیم انتخاب کنید —
7d، 14d، 30d، 90d — یا تاریخهای صریح start و
end را تایپ کرده و روی Apply کلیک کنید. هنگام اجرای یک
پرسوجوی بازهبلند مانند 90d، یک پوشش بارگذاری روی صفحه قرار میگیرد.
روندهای مشترک و نشست
یک نمودار خطی با سه سری در سراسر بازه انتخابشده: مشترکان Active،
نشستهای Online و مشترکان Expired.
از آن برای شناسایی رشد، ریزش و ساعتهای پرترافیک شبکه خود استفاده کنید.
ترافیک روزانه
یک نمودار میلهای انباشته از بایتهای آپلود و دانلود
در هر روز. نگهداشتن نشانگر روی یک روز، ارقام آپلود و دانلود به علاوه یک
مجموع ترکیبی را در پاورقی tooltip نشان میدهد.
فهرستهای ۱۰ مورد برتر
چهار جدول پرترافیکترین حسابهای شما را نمایان میکنند، هرکدام بر اساس حجم به GB رتبهبندی شدهاند:
فهرست
رتبهبندی میکند
۱۰ دانلود برتر امروز
بزرگترین دانلود از آخرین بازنشانی روزانه
۱۰ آپلود برتر امروز
بزرگترین آپلود از آخرین بازنشانی روزانه
۱۰ دانلود برتر ماه
بزرگترین دانلود در این ماه تقویمی
۱۰ آپلود برتر ماه
بزرگترین آپلود در این ماه تقویمی
ترافیک بر اساس موجودیت
یک جدول صفحهبندیشده و قابلجستجو از ترافیک هر حساب. دو تب آنچه را فهرست میکند تغییر میدهند:
Users — هر مشترک به همراه نام، طرح، آپلود/دانلود امروز
به MB و آپلود/دانلود این ماه به GB.
Cards — هر کارت hotspot به همراه گروه، وضعیت و همان
تفکیک ترافیک امروز / ماه.
کادر search همانطور که تایپ میکنید جدول را فیلتر میکند؛
انتخابگر per-page از ۲۰ تا ۲۰۰ ردیف را میپذیرد. هر ردیف به
صفحه جزئیات آن مشترک یا کارت پیوند میدهد.
خروجی گرفتن
Reports یک نمای تحلیلی روی صفحه است. برای ردیفهای خام جهت پردازش در یک صفحهگسترده،
از Tools → Export / Import استفاده کنید تا
کاربران، طرحها یا NAS را بهصورت CSV / XLSX دانلود کنید.
عملیات روزانه
حسابداری و صورتحساب
SAMM یک سیستم کامل حسابداری دوطرفه درونساخته دارد —
فاکتورها، هزینهها، رسیدها، پرداختها، فروشندگان واسط، داراییهای ثابت و صورتهای مالی
کامل. هیچ محصول صورتحساب جداگانهای برای یکپارچهسازی نیاز نیست، و هیچ حسابداری
برای مرتب نگهداشتن دفاتر لازم نیست.
شما هرگز با بدهکار و بستانکار سروکار ندارید
هر اقدام — ثبت یک پرداخت، افزودن یک هزینه، فروش یک گروه کارت —
بهطور خودکار یک سند حسابداری متوازن در دفتر کل ثبت میکند. شما
با اصطلاحات ساده کار میکنید (فاکتورها، هزینهها، رسیدها)؛ SAMM دفاتر دوطرفه
را در پشتصحنه نگه میدارد و توازن آنها را در تراز آزمایشی اثبات میکند.
صفحه Accounting در ده تب سازماندهی شده است.
نمای کلی
عکسفوری مالی. چهار رقم شاخص در بالا قرار دارند:
رقم
معنا
موجودی نقد
مانده کل در همه حسابهای نقدی و بانکی
پولی که به شما بدهکارند
دریافتنیها — فاکتورهای پرداختنشده مشتری و فروشنده واسط
پولی که شما بدهکارید
پرداختنیها — هزینههای پرداختنشده
سود این ماه
درآمد منهای هزینهها برای ماه جاری
در زیر: یک جدول از هر حساب نقدی و بانکی به همراه مانده آن، و یک
نمودار درآمد در برابر هزینهها در ۱، ۲، ۳، ۶ یا ۱۲ ماه گذشته.
فاکتورها
فاکتور صورتحسابی است که شما صادر میکنید. روی New invoice کلیک کنید و پر کنید:
فیلد
معنا
مشتری
جستجوی type-ahead برای حسابی که صورتحساب برایش صادر میشود
دسته درآمد
فروش به کدام حساب درآمد ثبت میشود
تاریخ صدور / سررسید
تاریخ صدور خالی = امروز؛ تاریخ سررسید خالی = تاریخ صدور
نرخ مالیات %
بهطور پیشفرض نرخ موجود در Settings → Billing است
اقلام سطری
یک یا چند ردیف شرح / تعداد / قیمت واحد — جمع جزء، مالیات و مجموع بهصورت زنده محاسبه میشوند
فاکتورها همچنین هنگامی که طرح یک مشترک تمدید میشود بهطور خودکار تولید میشوند
(از طریق اقدام Renew Expiration کاربر یا با تمدید خودکار)، به شرطی
که طرح دارای قیمت باشد. فهرست بر اساس وضعیت فیلتر میشود — unpaid، partial، due،
paid — و بر اساس شماره فاکتور یا مشتری جستجو میشود. هر فاکتور را برای
صفحه جزئیات و یک PDF قابلچاپ باز کنید؛ مشترکان میتوانند نسخههای خود را از
پرتال مشتری و ربات Telegram دانلود کنند.
هزینهها
هزینه پولی است که برای اداره ISP خرج میشود. New expense یک
دسته (حساب هزینه)، فروشندهای که پرداخت شده، مبلغ، تاریخ تحقق و یک
تاریخ سررسید اختیاری را ثبت میکند. هر هزینه همان چرخه عمر unpaid / partial / due / paid
مانند یک فاکتور، یک صفحه جزئیات و یک voucher PDF قابلچاپ دارد.
رسیدها و پرداختها
این دو تب جابهجایی واقعی وجه نقد را ثبت میکنند — متمایز از فاکتور یا هزینهای
که سبب آن شده است.
Receipts — پول ورودی: وجه نقد دریافتشده از یک مشتری، یک
فروشنده واسط یا درآمد دیگر، که به یکی از حسابهای نقدی شما میرسد. فاکتور همان
صورتحساب است؛ رسید همان پولی است که در برابر آن میرسد.
Payments — پول خروجی: وجه نقد پرداختشده در برابر یک هزینه یا
به یک فروشنده واسط.
ثبت یک رسید یا پرداخت، فاکتور یا هزینه مرتبط را به سمت
paid پیش میبرد و سند دفتر کل متناظر را ثبت میکند.
مشتریان و فروش کارت
تب Customers مانده جاری هر مشتری را فهرست میکند — اینکه چقدر
به شما بدهکار است. Card sales درآمد پیشپرداختی hotspot را پوشش میدهد: گروههای کارت
و فروشندگان واسط فروختهشده را دنبال میکند. یک فروشنده واسط گروههای کارت
کامل را روی یک فاکتور از شما میخرد، سپس کارتهای تکی را به کاربران نهایی میفروشد؛
مانده بدهی آنها همان چیزی است که هنوز باید به شما بپردازند.
داراییها و حسابهای نقدی
Assets — داراییهای ثابت (روترها،
خودروها، تجهیزات) را ثبت کنید. SAMM ارزش و استهلاک آنها را در طول زمان دنبال میکند.
Cash — حسابهای نقدی و بانکی خود
و حسابهای سرمایه خود را مدیریت کنید: حقوق صاحب، که در آن یک آورده
پولی است که مالک وارد کسبوکار میکند و یک برداشت پولی است که خارج میشود. سرمایه
درآمد نیست و هرگز در صورت سود و زیان ظاهر نمیشود.
گزارشها — صورتهای مالی
تب Reports نمای حسابدار است. پنج صورت مالی، هرکدام
دارای بازه تاریخ و قابل خروجی گرفتن به PDF:
گزارش
پاسخ میدهد
سود و زیان
درآمد در برابر هزینهها و سود خالص در یک بازه تاریخ. مبنای تعهدی — درآمد هنگام صدور فاکتور و هزینهها هنگام تحقق شمرده میشوند، نه هنگام جابهجایی وجه نقد.
ترازنامه
در یک تاریخ مشخص: آنچه دارید (داراییها) در برابر آنچه بدهکارید (بدهیها) به علاوه حقوق صاحبان. یک نشان balanced تأیید میکند که دو طرف با هم مطابقت دارند.
جریان نقدی
برای هر حساب نقدی — مانده ابتدای دوره، پول ورودی، پول خروجی، مانده پایان دوره در یک بازه.
سررسیدگذاری
دریافتنیها و پرداختنیهای معوق که در بازههای سنی دستهبندی شدهاند، تا بتوانید فاکتورهای سررسیدگذشته را پیگیری کنید و از صورتحسابها جلوتر بمانید.
پیشرفته
دفاتر خام: دفتر کل (هر سطر روی یک حساب با یک مانده جاری)، تراز آزمایشی (بررسی توازن دفاتر)، دفتر روزنامه و یک activity log.
بررسی توازن
در تراز آزمایشی جمع ستونهای بدهکار و بستانکار هر حساب باید
برابر باشد — این اثبات درستی دفاتر است. اگر هرگز از توازن خارج شود،
به یک خطای ثبت اشاره دارد که ارزش بررسی دارد.
عملیات روزانه
تیکتهای پشتیبانی
SAMM یک میز پشتیبانی درونساخته دارد. مشترکان از پرتال مشتری یا
ربات Telegram تیکت ثبت میکنند، یک مدیر میتواند به نمایندگی از یک مشترک تیکتی باز کند، و تیم شما
همه آنها را از Users → Support Tickets مدیریت میکند.
صف تیکتها
صف هر تیکت را فهرست میکند — شماره، مشتری، موضوع، اولویت، وضعیت،
تاریخهای باز شدن و آخرین بهروزرسانی، و تعداد پیامها. آن را با موارد زیر فیلتر کنید:
تراشههای وضعیت — یکی برای هر وضعیت تیکت، هرکدام دارای یک
شمارش زنده، تا حجم کار در یک نگاه دیده شود.
اولویت — Normal، Moderate یا Critical.
Active / Withdrawn — یک مشتری میتواند تیکتی را که دیگر
نیازی به آن ندارد پس بگیرد؛ تیکتهای پسگرفتهشده کمرنگ و بهطور پیشفرض پنهان میشوند.
Search — بر اساس شماره تیکت، موضوع یا مشتری.
نشان نوار کناری تیکتهای باز را میشمارد تا چیزی از قلم نیفتد.
باز کردن یک تیکت
New ticket به یک مدیر اجازه میدهد برای یک مشتری انتخابشده تیکتی ثبت کند —
مشتری را انتخاب کنید، سپس یک موضوع، اولویت و شرح تعیین کنید. مشترکان نیز
تیکت خود را از پرتال مشتری یا ربات Telegram باز میکنند.
رسیدگی به یک تیکت
یک تیکت را باز کنید تا کل رشته گفتگو را بخوانید. از آنجا میتوانید:
پاسخ به مشتری — یک پیام عمومی که مشترک آن را در
پرتال خود و از طریق ربات Telegram میبیند.
افزودن یک یادداشت داخلی — یک پیام فقط برای کارکنان، پنهان از
مشتری، برای یادداشتهای تحویل میان اعضای تیم شما.
وضعیت و اولویت تیکت را تغییر دهید.
روی هر ردیف کلیک راست کنید — یا از دکمه ⋮ آن استفاده کنید — برای همان اقدامهای وضعیت، اولویت، پاسخ
و یادداشت داخلی بدون ترک صف.
عملیات روزانه
مرکز اعلانها
SAMM مشترکان را بهطور خودکار مطلع نگه میدارد — از طریق ایمیل و
Telegram — و به شما اجازه میدهد پیامها را همگانی ارسال کنید. سرویس
samm-notification همهچیز را از طریق یک صف محدودشده تحویل میدهد.
صفحه System → Notification Center شش تب دارد.
نمای کلی
تب فرود — شمارشهای زنده (در صف، در حال ارسال، ارسالشده امروز، ناموفق، رد شده،
انصرافداده)، وضعیت هر کانال تحویل و یک فید از جدیدترین
اعلانها.
کانالها
پیکربندی کنید که پیامها چگونه SAMM را ترک میکنند. Email از حساب اعلان
خاص خود استفاده میکند که از SMTP بازیابی رمز عبور در
تنظیمات جداست. Telegram
از یک توکن bot استفاده میکند. هر مشترک، از پرتال مشتری، انتخاب میکند چه کانالهایی
میخواهد و میتواند بهطور کامل انصراف دهد.
پیامها
قالبهای پیام، یک مجموعه برای هر رویداد. متن هر
اعلان — یادآوریهای تمدید، رسیدها و بقیه — را ویرایش کنید تا هر پیام
با لحن و زبان خودتان ارسال شود.
قواعد و تایمرها
این تب تعیین میکند که اعلانهای خودکار چه زمانی و چگونه فعال شوند. برای هر رویداد شما کنترل میکنید:
اینکه آیا قاعده روشن است.
Ignore opt-out — وقتی تنظیم شود، پیام به هر مشترکی میرسد
حتی اگر انصراف داده باشد. آن را برای پیامهای تراکنشی مهم نگه دارید.
زمانبندی — برای مثال، چند روز پیش از انقضا یک یادآوری
تمدید ارسال میشود.
تحویل و throttling — worker صف را در هر tick یک
دسته تخلیه میکند؛ اندازه دسته و بازه tick با هم سرعت خروج پیامها
را تنظیم میکنند، تا یک ارسال همگانی بزرگ هرگز سرور ایمیل شما را غرق نکند.
رویدادهایی که SAMM میتواند بهتنهایی صادر کند شامل یادآوری تمدید
(پیش از انقضای یک اشتراک)، اعلان انقضا (هنگام سپری شدن)،
هشدار سهمیه (هنگامی که سقف داده رو به اتمام است)، رسید
پرداخت (هنگام ثبت یک پرداخت) و تمدید طرح میشوند.
ارسال همگانی
یک پیام یکباره — یک بازه تعمیر و نگهداری، یک تغییر قیمت — به مجموعهای انتخابشده از
مشترکان ارسال کنید. ارسال همگانی از همان صف محدودشده اعلانهای خودکار
عبور میکند.
صندوق خروجی
هر پیامی که SAMM به صف افزوده یا ارسال کرده، به همراه وضعیت تحویل هر پیام، تا
بتوانید تأیید کنید که یک اعلان به مشترک رسیده یا ببینید چرا نرسیده است.
سیستم
WireGuard VPN
SAMM میتواند یک سرور WireGuard VPN روی میزبان SAMM اجرا کند — معمولاً
برای دسترسی remote-admin به دستگاه SAMM و دسترسی مدیریتی به MikroTikهای
پشت آن. این بهطور کامل از System → VPN مدیریت میشود؛
نیازی به shell نیست.
تب Server
روی Generate Keys کلیک کنید تا جفتکلید سرور ایجاد شود.
Server Public Key پس از تولید ظاهر میشود — کلاینتها به آن نیاز دارند.
Listen Port (UDP، پیشفرض 51820)،
Server Tunnel Address (همان CIDR روی واسط wg0،
پیشفرض 10.254.254.1/24) و Client IP Range را تنظیم کنید —
آدرسهای شروع و پایانی که SAMM بهطور خودکار به peerهای جدید اختصاص میدهد.
Enable WireGuard VPN را روشن کنید و روی Save کلیک کنید —
SAMM واسط wg0 را بالا میآورد. این کلید تا زمانی که کلیدهای سرور
وجود نداشته باشند قفل است.
تب Clients
روی Add Client کلیک کنید، به peer یک نام بدهید، و SAMM آدرس
بعدی از بازه کلاینت را به آن اختصاص میدهد. برای هر peer میتوانید فایل پیکربندی آن را دانلود کنید،
یک QR code را با اپ موبایل WireGuard اسکن کنید، یا فرمانهای آماده
MikroTik RouterOS را کپی کنید تا یک روتر را به VPN بیاورید. peerها میتوانند
روشن/خاموش شوند یا حذف شوند؛ رنگهای وضعیت نشان میدهند که هرکدام متصل، کهنه یا
هرگز دیدهنشده است.
تولید مجدد کلیدها مخرب است
Regenerate Keys جفتکلید سرور را تغییر میدهد. هر پیکربندی کلاینتِ از پیش مستقرشده
کلید عمومی قدیمی سرور را در خود دارد و تا زمانی که پیکربندی بهروزشده را
دوباره توزیع نکنید اتصال را متوقف میکند. رابط کاربری این کار را پشت یک دیالوگ type-to-confirm محدود میکند.
سیستم
Cloudflare Tunnel
یک تونل Cloudflare Zero Trust، SAMM را به اینترنت عمومی منتشر میکند
بدون باز کردن هیچ پورت فایروال — هنگامی که میزبان SAMM
پشت NAT قرار دارد مفید است. این از System → Cloudflare Tunnel مدیریت میشود.
وضعیت سرویس
صفحه با یک کارت وضعیت باز میشود که حالت connector را گزارش میدهد:
حالت
معنا
در حال اجرا
تونل فعال است و ترافیک را forward میکند
متوقفشده
پیکربندیشده اما اکنون در حال اجرا نیست
پیکربندینشده
باینری موجود است — برای راهاندازی آن یک توکن جایگذاری کنید
نصبنشده
برای نصب باینری cloudflared دوباره install.sh را اجرا کنید
همچنین نسخهcloudflared و اینکه آیا
connector روی راهاندازی خودکار هنگام بوت تنظیم شده است را نشان میدهد.
پیکربندی تونل
در داشبورد Cloudflare Zero Trust
(one.dash.cloudflare.com)، Networks → Tunnels
را باز کنید و Create a tunnel را بزنید.
connector Cloudflared را انتخاب کنید، به تونل نام بدهید و ذخیره کنید. در
گام نصب، فقط توکن را کپی کنید — همان رشته بلند پس از
--token.
آن را در SAMM جایگذاری کنید و روی Configure Tunnel کلیک کنید. SAMM
توکن را به cloudflared میدهد و connector را راه میاندازد.
دوباره در Cloudflare، یک Public hostname اضافه کنید: آدرس انتخابی شما،
نوع HTTP، URL برابر localhost:80 (پروکسیشده توسط nginx —
توصیهشده) یا localhost:8000 (مستقیم به API).
ظرف چند ثانیه نشان وضعیت سبز میشود و SAMM روی
public hostname قابلدسترس میشود. پس از پیکربندی، اقدامهای یککلیکی به شما اجازه میدهند connector را Start،
Stop یا Restart کنید، برای چرخاندن توکن Replace
Token بزنید، یا Remove tunnel کنید (یک اقدام type-REMOVE-to-confirm).
بدون پورت باز، توکن هرگز در پایگاه داده نیست
تونل یک اتصال خروجی به لبه Cloudflare برقرار میکند — هیچ
پورت فایروالی هرگز روی سرور باز نمیشود. توکن به
cloudflared forward میشود و زیر /etc/cloudflared/ ذخیره میگردد؛ SAMM هرگز
آن را در پایگاه داده نگه نمیدارد. TLS در لبه Cloudflare خاتمه مییابد، بنابراین خود SAMM
روی loopback با HTTP ساده اجرا میشود.
سیستم
تنظیمات
System → Settings پارامترهای زنده و قابل بارگذاری مجدد بهصورت داغ
را نگه میدارد. daemonها آنها را در tick بعدی خود دوباره میخوانند — هیچ راهاندازی مجدد سرویسی
لازم نیست. تنظیمات در تبها سازماندهی شدهاند.
پارامترهای عمومی
تنظیم
پیشفرض
کنترل میکند
samm-radius interval
30 s
هر چند وقت یکبار رویدادهای زمانمحور ارزیابی و CoAها ارسال میشوند
samm-worker interval
60 s
ریتم ping روتر + همگامسازی MikroTik API
بازه میاندورهای حسابداری
60 s
بازه حسابداری که به روترها ارسال میشود
زمان بازنشانی روزانه
00:00
زمانی که شمارندههای مصرف روزانه بازنشانی میشوند
منطقه زمانی سرور
UTC
منطقه زمانی برای پنجرههای سرعت و بازنشانی روزانه
پورت پیشفرض CoA
3799
پورت پیشفرض UDP برای بستههای CoA
حداکثر تلاش دوباره CoA
3
تعداد تلاش دوباره پیش از بازگشت به Disconnect-Request
برای اعمال سختگیرانهتر بازه samm-radius را کاهش دهید؛ برای کاستن از بار آن را افزایش دهید.
تب ISP
هویت ISP خود را تنظیم کنید و یک لوگوی ISP بارگذاری کنید. لوگو بهطور خودکار
تغییر اندازه داده میشود و روی کارتهای چاپی hotspot و PDFهای فاکتور ظاهر میشود.
تب Email
سرور SMTP مورد استفاده برای کدهای بازیابی رمز عبور ارسالشده به
مدیران و مشتریان را پیکربندی کنید (host، پورت، SSL/STARTTLS، نام کاربری، آدرس فرستنده، رمز عبور).
روی Test connection کلیک کنید تا اعتبارنامهها بدون ارسال ایمیل تأیید شوند.
دو حساب ایمیل
تب Email در اینجا فقط برای OTP / بازیابی رمز عبور است. حسابی که برای
اعلانهای مشتری استفاده میشود جداگانه در
Notification Center پیکربندی میشود.
سیستم
مدیران و نقشها
System → Admins مدیریت میکند که چه کسی میتواند به پرتال مدیریت
وارد شود و هر فرد چه کارهایی میتواند انجام دهد. دو تب دارد: Admins و
Roles.
حسابهای مدیر
یک مدیر با نام کاربری، رمز عبور، ایمیل اختیاری و یک نقش ایجاد کنید. از منوی
⋮ یک ردیف میتوانید نقش یا رمز عبور را ویرایش کنید، حساب را غیرفعال کنید یا آن را حذف کنید. فقط یک
superadmin میتواند سایر مدیران را مدیریت کند.
نقشها و مجوزها
یک نقش دسترسی به هر ناحیه را اعطا میکند. نقش داخلی superadmin
همیشه دسترسی کامل دارد و قابل تغییر نیست. برای دسترسی محدود نقشهای سفارشی ایجاد کنید —
یک نقش جدید تا زمانی که مجوزهای آن را تنظیم نکنید بدون دسترسی آغاز میشود.
برای هر ناحیه از SAMM (مشترکان، طرحها، NAS، حسابداری، ابزارها، تنظیمات و غیره) یک نقش روی یکی از سه سطح تنظیم میشود:
سطح
معنا
مجاز نیست
این ناحیه بهطور کامل از نوار کناری پنهان است
مشاهده
دسترسی فقطخواندنی
ویرایش
دسترسی کامل — ایجاد، تغییر، حذف
دامنه دیدپذیری داده
هر نقش همچنین یک دامنه دارد. See all customers & cards یعنی
نقش هر رکورد را میبیند؛ با برداشتن تیک آن، مدیران آن فقط مشترکان و کارتهایی را میبینند
که خودشان ایجاد کردهاند — ایدهآل برای فروشندگان واسط یا کارکنان شعبه.
License همیشه قابلدسترس است
صفحه System → License عمداً از
ماتریس مجوزها مستثنا است — این مسیر بازیابی از یک قفلشدگی است و هرگز نباید
از هیچ مدیری پنهان شود.
سیستم
ابزارها
بخش Tools ابزارهای انبوه و نگهداری را گرد هم میآورد.
پشتیبانگیری و بازیابی
پیش از هر تغییر عمده یک عکسفوری کامل از پایگاه داده بگیرید. یک پشتیبان یک آرشیو
pg_dump فشردهشده با gzip است که روی سرور ذخیره میشود، هرکدام با یک سربرگ SAMM.
Create backup — بهصورت اختیاری یک یادداشت اضافه کنید؛ Skip usage &
history را برای یک dump کوچکتر و سریعتر که جدولهای حجیم لاگ را حذف میکند تیک بزنید.
یک پشتیبان را روی PC خود Download کنید، یا یک
پشتیبان قبلی SAMM را دوباره روی سرور upload کنید.
Restore پایگاه داده فعلی را بازنویسی میکند — پشت یک
دیالوگ type-RESTORE-to-confirm محدود شده است.
پاککننده تاریخچه
ردیفهای قدیمی لاگ و تاریخچه را برای بازپسگیری فضای پایگاه داده بهطور دائمی حذف کنید. یک
پیشتنظیم نگهداری را انتخاب کرده و تأیید کنید. پاککننده نشستهای بستهشده RADIUS، رکوردهای post-auth،
تجمیعهای مصرف روزانه، تاریخچه روتر/واسط، لاگهای محدودیت، ورودیهای audit اعمالشده
و ردیفهای CoA پایانیافته را هرس میکند. هرگز نشستهای زنده، فرمانهای در صف،
CoAهای در انتظار یا مجموعهای مصرف مادامالعمر غیرقابلبازنشانی را دست نمیزند.
ابتدا یک پشتیبان بگیرید
پاککننده تاریخچه بهطور دائمی حذف میکند. اگر ممکن است بعداً به دادهها نیاز داشته باشید
پیش از پاکسازی یک پشتیبان بگیرید.
خروجی / ورودی
خروجی و ورودی انبوه برای Users، Plans و NAS بهصورت
.csv یا .xlsx. یک قالب (ستونهای درست به علاوه یک
ردیف نمونه) یا یک عکسفوری از دادههای فعلی را دانلود کنید، آن را پر کنید و دوباره بارگذاری کنید. هر ردیف
اعتبارسنجی و روی یک صفحه پیشنمایش نمایش داده میشود — موارد تکراری و ردیفهای نامعتبر
نمایان میشوند، و شما انتخاب میکنید که موارد تکراری را رد کنید یا در جا بهروزرسانی کنید — پیش از آنکه
چیزی نوشته شود.
تغییرات انبوه
یک تغییر — مالک، تاریخ انقضا، وضعیت یا تمدید خودکار — را به هر
مشترکی که با یک فیلتر مطابقت دارد، در یک اجرای واحد اعمال کنید. تغییر را انتخاب کنید، فیلتر را بسازید
(وضعیت / طرح / مالک / جستجو)، فهرست مطابق را بازبینی کنید و تأیید کنید.
حذف انبوه
بسیاری از مشترکان یا کارتهای hotspot را که با فیلتر انتخاب شدهاند بهیکباره بهطور دائمی حذف کنید.
حذف یک مشترک، تاریخچه مصرف، نشستها، حسابداری RADIUS و
فاکتورهای او را نیز حذف میکند و هر نشست زنده را قطع میکند. پشت یک دیالوگ type-DELETE-to-confirm محدود شده است.
سیستم
زبانها و پوستهها
زبانها
پرتالهای مدیریت و مشتری کاملاً قابل ترجمه هستند. شش زبان بهصورت درونساخته ارائه میشوند:
انگلیسی، عربی (راستبهچپ)، ترکی، فرانسوی، اسپانیایی
و آلمانی. هر کاربر زبان خود را از نوار بالا یا
پروفایل خود انتخاب میکند؛ این انتخاب برای هر حساب به خاطر سپرده میشود.
ویرایشگر ترجمه
یک superadmin میتواند ترجمهها را بهصورت زنده از
System → Translations ویرایش کند — بدون راهاندازی مجدد، بدون ویرایش فایل.
ویرایشگر همچنین زبانهای کاملاً جدید ایجاد میکند و کارپوشههای ترجمه
را بهصورت .xlsx وارد/صادر میکند، تا بتوانید SAMM را به هر زبانی که سرویس میدهید بومیسازی کنید.
پوستهها
SAMM با ۱۱ پوسته بصری، روشن و تیره، ارائه میشود. هر کاربر یک
پوسته را از نوار بالا انتخاب میکند؛ پیشنمایش بیدرنگ بهروز میشود و برای هر حساب ذخیره میگردد.
اصطلاحات IT هرگز ترجمه نمیشوند، بنابراین صفحههای فنی در هر زبانی دقیق باقی میمانند.
سیستم
گزارش حسابرسی
System → Audit Log سابقه اقدامهای مدیر است —
و صف فرمانی که آنها را اجرا میکند. وقتی یک شمارنده را بازنشانی میکنید، یک طرح را تغییر میدهید،
یا یک مشترک را تمدید میکنید، SAMM اقدام را بهجای دستزدن مستقیم به یک روتر زنده
اینجا مینویسد.
هر ورودی اقدام، هدف آن، مدیری که آن را آغاز کرده، زمان
وقوع، و اینکه آیا هنوز اعمال شده است را نشان میدهد. سرویس
samm-radius ورودیهای در انتظار را در tick بعدی خود تخلیه میکند و در جایی که
لازم باشد یک CoA برای تازه کردن یک نشست زنده صادر میکند. نشان نوار کناری ورودیهایی را که هنوز
در انتظارند میشمارد؛ پنل pipeline-health در Dashboard انباشت کار را دنبال میکند.
چرا یک صف
هدایت هر اقدام مدیر از طریق audit log یعنی تغییرات دقیقاً توسط
یک فرآیند و به ترتیبی قابلپیشبینی اعمال میشوند — هرگز میان پرتال وب و
یک روتر رقابتی رخ نمیدهد.
صدور مجوز
صدور مجوز و سطوح
هر نصب SAMM بهصورت هر دستگاه لایسنس میشود — طرح روی
همان نصب قرار دارد، بنابراین میتوانید چند سرور SAMM اجرا کنید، هرکدام روی تیر خودش. تیر
سه سقف عددی را تعیین میکند.
تیر
کاربران AAA
کارتهای Hotspot
NAS / روترها
ثبتنشده
25
200
1
Free
100
500
2
Pro
2,000
5,000
5
Pro Max
نامحدود
نامحدود
نامحدود
یک نصب تازه بهصورت ثبتنشده در کمترین حد کف اجرا میشود. هر ویژگی
در هر تیر در دسترس است — تیر فقط سقفها را تعیین میکند. ایجاد یک مشترک، کارت یا
NAS فراتر از سقف تا زمانی که ارتقا دهید مسدود میشود؛ هیچ دادهای هرگز از دست نمیرود.
فعالسازی و ارتقا
System → License را باز کنید.
با ورود با حساب SecuryTik خود فعالسازی کنید — یا از
Link this device استفاده کنید، که یک کد نشان میدهد که آن را روی
samm.securytik.com بدون تایپ
رمز عبور خود روی سرور تأیید میکنید. دستگاه روی Free فعال میشود.
برای بالاتر رفتن، Pro یا Pro Max را از
همان صفحه درخواست کنید — یک مدیر SecuryTik آن را بررسی و تأیید میکند.
صفحه License همچنین لایسنس را در صورت درخواست دوباره بررسی میکند و مصرف فعلی
شما را در برابر هر سقف نشان میدهد. Unlink device نصب را بدون حذف هیچ دادهای
به تیر ثبتنشده بازمیگرداند.
اگر یک لایسنس پولی منقضی شود
SAMM هرگز دادهها را حذف نمیکند. یک لایسنس منقضیشده بهآرامی پایین میآید:
مرحله
چه اتفاقی میافتد
هشدار
یک بنر یادآوری؛ همه چیز به کار خود ادامه میدهد
مهلت
یک بازه کوتاه برای فعالسازی مجدد؛ مشترکان آنلاین میمانند
قفل نرم
سرویسهای پسزمینه متوقف میشوند؛ RADIUS حدود ۷ روز به احراز هویت ادامه میدهد
قفل سخت
سرویسها بهجز صفحه فعالسازی مجدد متوقف میشوند
فعالسازی مجدد در هر مرحله، همه سرویسها را بهطور خودکار راهاندازی میکند — تمام دادهها و تاریخچه مشترکان دستنخورده باقی میمانند.
بهروزرسانیهای خودکار
بهروزرسانی خودکار مستقل از صدور مجوز است — همه سطوح بهروزرسانی میشوند و یک مجوز منقضیشده
هرگز آن را مسدود نمیکند. SAMM هر روز نسخه امضاشده جدید را بررسی میکند. از
System → License میتوانید بین
notify (پیشفرض — یک بنر با دکمه Apply now) و
auto (اعمال بدون نظارت) جابهجا شوید. هر بهروزرسانی تأیید، پشتیبانگیری و در
همان محل اعمال میشود. همچنین میتوانید در هر زمان نصبکننده را دوباره اجرا کنید — بهصورت idempotent ارتقا میدهد.
برای مشترکان شما
پرتال مشتری و ربات
SAMM به هر مشترک دو رابط خودخدمت میدهد — یک پورتال وب و یک ربات Telegram —
تا بتوانند بدون تماس با شما مصرف را بررسی کنند و پرداخت انجام دهند.
پورتال مشتری
مشترکان با نام کاربری و رمز عبور SAMM خود در ریشه سایت SAMM (/) وارد میشوند.
پورتال شامل موارد زیر است:
صفحه
آنچه مشترک میبیند
نمای کلی
وضعیت حساب، پلن، انقضا، مصرف امروز و این ماه، و هر فاکتور پرداختنشده
مصرف و نشستها
مجموع دانلود/آپلود، بودجه زمان اتصال، و تاریخچه کامل نشستها
پلنهای من
پلن فعلی بههمراه کاتالوگ پلنهای موجود
فاکتورهای من
تاریخچه صورتحساب با دانلود PDF تککلیکی
تیکتهای پشتیبانی
باز کردن و پیگیری تیکتهای پشتیبانی
پروفایل
ویرایش اطلاعات تماس، تغییر رمز عبور، تنظیم زبان و پوسته، مدیریت اعلانها
از بخش Profile، مشترک میتواند حساب Telegram خود را متصل کند، کانالهای اعلان
مورد نظرش را مرتب کند، یا بهکلی از دریافت اعلانها انصراف دهد. اگر رمز عبور خود را
فراموش کنند، یک کد OTP برایشان ایمیل میشود (این نیازمند پیکربندی
تب Email است).
ربات Telegram
سرویس samm-telegram یک ربات خودخدمت تعاملی اجرا میکند. مشترک
/start را ارسال میکند، یکبار با نام کاربری و رمز عبور SAMM خود احراز هویت
میکند (ربات بلافاصله پیام رمز عبور را حذف میکند) و سپس میتواند بهطور کامل
از داخل چت:
پلن، سهمیه، مصرف و تاریخ انقضای خود را بررسی کند
فاکتورها را بهصورت PDF مشاهده و دانلود کند
پروفایل خود را بهروز کند و رمز عبورش را تغییر دهد
باز کردن و پیگیری تیکتهای پشتیبانی
ربات همچنین اعلانهای خودکار — یادآوری تمدید، اطلاعیههای انقضا،
هشدارهای سهمیه و رسیدها — را به مشترکانی که Telegram را متصل کردهاند تحویل میدهد.
مرجع
کار با SAMM
تقریباً همه چیز از پورتال مدیریت انجام میشود. این صفحه مرجع خط فرمان برای مواقع نادری است که به آن نیاز دارید.
مدیریت سرویس
# Restart all SAMM services
systemctl restart samm-api samm-radius samm-worker samm-notification samm-telegram
# Live logs for one service
journalctl -u samm-api -f
journalctl -u samm-radius -f
# Validate the FreeRADIUS config after any change
freeradius -CX
CLI مدیریت
برای عملیات سریع مشترکان از خط فرمان. هر دستور در گزارش رخدادها صفبندی
میشود و در تیک بعدی samm-radius اعمال میگردد — دقیقاً مانند اقدامات رابط کاربری.
CLI="sudo -u samm /opt/samm/venv/bin/python -m samm_radius.cli"
$CLI reset-quota alice # reset a limit counter
$CLI reset-daily alice
$CLI reset-uptime alice
$CLI reset-expiration alice
$CLI change-plan alice home-50M # switch a subscriber's plan
فایلهای پیکربندی
فایل
شامل
/etc/samm/samm.yaml
DSN پایگاه داده، اندازههای connection-pool، سطح لاگ
/etc/samm/api.env
کلیدهای مخفی نشست پورتال و تنظیمات SMTP بازیابی رمز عبور
/etc/samm/secret.key
کلید رمزگذاری برای رمزهای API روتر ذخیرهشده
این فایلها در طول ارتقاها حفظ میشوند و هرگز با
اجرای مجدد نصبکننده بازنویسی نمیشوند. تنظیمات زمان اجرا (تناوب حلقهها، زمان بازنشانی روزانه، پورتهای CoA)
بهجای آن در Settings قرار دارند و
بدون راهاندازی مجدد اعمال میشوند.
بهروزرسانی SAMM
یا بگذارید SAMM خودش را از System → License بهروز کند،
یا نصبکننده را دوباره اجرا کنید — به Installation →
Upgrading مراجعه کنید. هر دو مسیر مهاجرتها را دوباره اعمال میکنند و سرویسها را راهاندازی مجدد میکنند؛ پیکربندی و
دادههای شما دستنخورده میمانند.
پشتیبانگیری و بازیابی
پیش از هر تغییر عمده، از Tools → Backup & Restore برای یک
عکس کامل از پایگاه داده استفاده کنید. برای بازسازی روی یک میزبان جدید، SAMM را نصب کنید و
سپس پشتیبان را بازیابی کنید.
مرجع
پرسشهای متداول و رفع اشکال
SAMM از چه سیستمعاملهایی پشتیبانی میکند؟
Ubuntu 22.04 LTS، Ubuntu 24.04 LTS و Debian 12. فقط Linux در سطح سرور —
نسخههای دسکتاپ پشتیبانی نمیشوند. نصبکننده به systemd، یک نصب تازه
PostgreSQL (که برایتان راهاندازی میشود) و دسترسی root نیاز دارد.
آیا برای اجرای SAMM به اتصال اینترنت نیاز دارم؟
خیر. SAMM بهطور کامل روی سرور خودتان اجرا میشود و مشترکان را بهصورت محلی
از طریق RADIUS احراز هویت میکند. تنها ترافیک خروجی، یک ضربان دورهای مجوز به
سرور مجوز SecuryTik است تا پلن شما معتبر بماند.
آیا میتوانم SAMM را در فضای ابری اجرا کنم، یا باید on-prem باشد؟
هر دو کار میکند. بیشتر اپراتورها آن را on-prem در کنار روترهای هسته خود اجرا میکنند؛ برخی
روی یک VM ابری کوچک با یک تونل Cloudflare Zero Trust بهعقب اجرا میکنند. تنها لازمه
این است که روترهای MikroTik بتوانند سرور SAMM را روی پورتهای RADIUS
(1812/1813 UDP) دریافت کنند و SAMM بتواند روترها را از طریق API میکروتیک دریافت کند.
آیا هنگام افزودن یا حذف یک روتر باید FreeRADIUS را راهاندازی مجدد کنم؟
خیر. SAMM کلاینتهای NAS را بهصورت پویا از پایگاه داده تشخیص میدهد، بنابراین افزودن،
ویرایش یا حذف یک روتر در MikroTik → NAS
بدون راهاندازی مجدد اعمال میشود.
تغییر پلن یا بازنشانی شمارنده با چه سرعتی اعمال میشود؟
اقدامات مدیریتی صفبندی میشوند و توسط سرویس samm-radius در
تیک بعدیاش اعمال میگردند — بهطور پیشفرض ظرف ۳۰ ثانیه. اگر مشترک آنلاین باشد، SAMM
همچنین یک CoA زنده برای تازهسازی نشست ارسال میکند. برای زمانبندی دقیقتر، بازه samm-radius را در
System → Settings کاهش دهید.
اگر یک مجوز پولی منقضی شود، چه بلایی سر دادههای من میآید؟
هیچ چیز هرگز حذف نمیشود. یک مجوز منقضیشده مرحلهبهمرحله از هشدار، مهلت، یک
قفل نرم (RADIUS حدود یک هفته به احراز هویت ادامه میدهد) و در نهایت یک قفل سخت
پایین میآید. فعالسازی مجدد در هر مرحله، همه سرویسها را با تمام دادههای دستنخورده راهاندازی میکند.
آیا SAMM رایگان است؟ Pro چه چیزی اضافه میکند؟
سطح Free برای همیشه رایگان است و شامل تمام قابلیتها میشود. Pro و Pro Max
قابلیتی را باز نمیکنند — آنها سقف کاربران AAA، کارتهای hotspot و
روترها را افزایش میدهند. به Licensing & tiers مراجعه کنید.
یک مشترک نمیتواند احراز هویت شود — از کجا شروع کنم؟
بررسی کنید که shared secret مربوط به RADIUS روتر دقیقاً با رکورد NAS مطابقت دارد،
که روتر برای PPP / Hotspot RADIUS فعال است، و اینکه حساب مشترک
فعال (Active) و منقضینشده است. journalctl -u samm-api -f
و لاگ FreeRADIUS را زیر نظر بگیرید و تأیید کنید که روتر میتواند میزبان SAMM را روی UDP
1812/1813 دریافت کند.
به کمک بیشتری نیاز دارید؟
برای گزارش یک اشکال یا
درخواست یک قابلیت به [email protected] ایمیل بزنید.