SSHGUARD(8) SSHGuard Manual SSHGUARD(8)

sshguard - مسدودسازی حملات بروت‌فورس با تجمیع لاگ‌های سیستم

sshguard [-hv] [-a threshold] [-b threshold:blacklist_file] [-i pidfile] [-p blocktime] [-s detection_time] [-w address | whitelist_file] [file ...]

دستور sshguard از میزبان‌ها در برابر حملات بروت‌فورس علیه SSH و سایر سرویس‌ها محافظت می‌کند. این برنامه لاگ‌های سیستم را تجمیع کرده و با استفاده از یکی از چندین بک‌اند فایروال، متخلفان مکرر را مسدود می‌سازد.

sshguard می‌تواند فایل‌های لاگ و خروجی استاندارد حاصل از اجرای یک دستور پوسته را پایش کند. پیام‌های لاگ خط‌به‌خط برای یافتن الگوهای حمله شناخته‌شده تجزیه می‌شوند. مهاجمان هنگامی مسدود می‌شوند که الگوهای حمله به تعداد کافی در یک بازه زمانی قابل‌پیکربندی شناسایی شوند. مهاجمان به صورت موقت مسدود می‌شوند اما با استفاده از گزینه لیست سیاه می‌توان آن‌ها را به طور دائم نیز مسدود کرد.

sshguard باید پیش از نخستین اجرای خود پیکربندی شود. به sshguard-setup(7) مراجعه کنید.

هر حمله شناسایی‌شده، امتیاز حمله مهاجم را معمولاً ۱۰ واحد افزایش می‌دهد. هنگامی که امتیاز حمله مهاجم از threshold فراتر رود، مهاجم مسدود می‌شود.
هنگامی که امتیاز حمله یک مهاجم از threshold بیشتر شود، آن را در لیست سیاه قرار می‌دهد. نشانی‌های مسدودشده در لیست سیاه در blacklist_file نوشته می‌شوند و حتی پس از راه‌اندازی مجدد sshguard هرگز رفع مسدودیت نمی‌شوند.
شناسه فرایند (PID) مربوط به sshguard را در pidfile می‌نویسد. پس از خروج sshguard فایل pidfile حذف می‌شود.
مهاجمانی را که برای نخستین بار حمله می‌کنند به مدت blocktime ثانیه مسدود می‌کند. مدت زمان مسدودسازی‌های بعدی با ضریب ۲ افزایش می‌یابد. از آنجا که sshguard مهاجمان را در فواصل زمانی تصادفی رفع مسدودیت می‌کند، زمان واقعی انسداد ممکن است تا حدی طولانی‌تر باشد.
امتیاز حمله مهاجم را پس از سپری شدن detection_time ثانیه از آخرین حمله بازنشانی می‌کند. این بدان معناست که مهاجمانی که هر detection_time ثانیه یک بار حمله می‌کنند، هرگز توسط sshguard مسدود نمی‌شوند. با این حال، افزایش مقدار detection_time ممکن است بر روی کاربران مجاز نیز تأثیر بگذارد.
[-w address | whitelist_file]
یک نشانی مجزا، نام میزبان یا بلوک نشانی ارائه‌شده در address را در لیست سفید قرار می‌دهد. این گزینه را می‌توان چندین بار مشخص کرد. همچنین می‌توان مسیر مطلق به یک whitelist_file شامل نشانی‌های مجاز ارائه داد. بخش «لیست سفید» (WHITELISTING) را ببینید.
نمایش اطلاعات نحوه استفاده و خروج.
نمایش اطلاعات نسخه و خروج.

در صورت تعیین، فرایندهای درون محیط ایزوله (سندباکس) با تغییر هویت به این کاربر، سطح دسترسی خود را کاهش می‌دهند. این مقدار معمولاً در sshguard.conf با استفاده از متغیر SSHGUARD_USER تعیین شده و بازنویسی می‌شود.
برای فعال‌سازی خروجی با جزئیات کامل از sshg-blocker تنظیم می‌شود.
در صورت تنظیم، آمارهای سازگار با سامانه پرومتئوس (Prometheus) هر دقیقه در قالب فایل‌های ‎.prom‎ در این دایرکتوری نوشته می‌شوند. متغیر STATS_DIR در فایل sshguard.conf این متغیر محیطی را تنظیم کرده و بر آن اولویت خواهد داشت.

%PREFIX%/etc/sshguard.conf
فایل نمونه پیکربندی را ببینید.

نشانی‌های موجود در لیست سفید هرگز مسدود نمی‌شوند. نشانی‌ها را می‌توان در خط فرمان مشخص کرد یا در یک فایل ذخیره نمود.

در خط فرمان، گزینه -w را یک یا چند بار همراه با یک نشانی IP، بلوک نشانی CIDR یا نام میزبان به عنوان آرگومان وارد کنید. نام‌های میزبان یک بار هنگام راه‌اندازی ارزیابی و حل می‌شوند. اگر یک نام میزبان به چند نشانی ارجاع داده شود، تمامی آن‌ها در لیست سفید قرار می‌گیرند. برای نمونه:

sshguard -w 192.168.1.10 -w 192.168.0.0/24 -w friend.example.com
    -w 2001:0db8:85a3:0000:0000:8a2e:0370:7334
    -w 2002:836b:4179::836b:0000/126

اگر آرگومان ارائه‌شده به -w با یک اسلش ('/') یا نقطه ('.') آغاز شود، به عنوان مسیر فایل لیست سفید در نظر گرفته می‌شود.

فایل لیست سفید شامل توضیحات (خطوطی که با '#' آغاز می‌شوند)، نشانی‌ها، بلوک‌های نشانی یا نام‌های میزبان به صورت هر مورد در یک خط است.

sshguard-setup(7)

January 1, 2025 2.5.1