دوره LPIC-3 303: Security یکی از گواهینامههای سطح پیشرفته Linux Professional Institute (LPI) است که بر مهارتهای امنیتی در سیستمهای لینوکس تمرکز دارد. این دوره برای مدیران سیستم و شبکه طراحی شده که نیاز به مهارتهای پیشرفته در زمینه تأمین امنیت شبکهها و سرورها دارند.
سرفصلهای دوره LPIC-3 303: Security
این دوره شامل موضوعات زیر است:
1. رمزنگاری (Cryptography)
1.1 مفاهیم و اصول رمزنگاری
- آشنایی با رمزنگاری متقارن و عدم تقارن
- بررسی الگوریتمهای هشینگ (SHA, MD5 و الگوریتمهای دیگر)
1.2 مدیریت کلیدها
- ایجاد و مدیریت کلیدهای GPG
- استفاده از OpenSSL برای مدیریت کلیدها
- تولید امضای دیجیتال با ابزارهای gpg و openssl
1.3 رمزنگاری فایلها و دادهها
- استفاده از ابزار gpg برای رمزگذاری و رمزگشایی
- رمزگذاری فایلها با OpenSSL
- استفاده از cryptsetup برای مدیریت رمزنگاری دیسک
2. کنترل دسترسی (Access Control)
2.1 مدیریت دسترسی فایلها
- تغییر مالکیت و دسترسی با دستورات chmod, chown
- پیادهسازی ACL با setfacl و getfacl
2.2 مدیریت دسترسی مبتنی بر نقشها (RBAC)
- معرفی و پیادهسازی SELinux
- استفاده از AppArmor برای کنترل دسترسی
2.3 تأمین امنیت کاربران و گروهها
- مدیریت دسترسی کاربران با usermod, passwd
- محدود کردن دسترسی کاربران به منابع سیستم
3. امنیت برنامهها و سرویسها (Application Security)
3.1 امنیت سرورهای وب
- پیکربندی Apache و Nginx برای افزایش امنیت
- استفاده از ModSecurity برای پیشگیری از حملات
3.2 مدیریت سرویسها
- امنسازی SSH، FTP و DNS
- محدود کردن دسترسی SSH با iptables و fail2ban
3.3 شناسایی آسیبپذیریها
- ابزارهای بررسی آسیبپذیری: nmap, nikto, OpenVAS
4. امنیت عملیاتی (Operational Security)
4.1 مدیریت لاگها
- پیکربندی rsyslog و journald
- تجزیه و تحلیل لاگها با logrotate و journalctl
4.2 پاسخ به حوادث امنیتی
- شناسایی حملات DoS و Brute-Force
- استفاده از IDSها مانند Snort
4.3 سیستمهای مانیتورینگ
- پیادهسازی ابزارهای مانیتورینگ مانند Nagios و Zabbix
5. امنیت شبکه (Network Security)
5.1 مدیریت فایروال
- پیکربندی iptables یا nftables
- استفاده از ufw برای مدیریت سادهتر فایروال
5.2 ایجاد تونلهای امن
- راهاندازی VPN با OpenVPN یا IPsec
- انتقال امن دادهها با SSH Tunnel
5.3 امنیت شبکههای بیسیم
- پیکربندی WPA/WPA2
- بررسی تنظیمات امنیتی شبکههای بیسیم
6. رمزنگاری در شبکه (Public Key Infrastructure – PKI)
6.1 ایجاد و مدیریت گواهینامهها
- ساخت گواهینامههای دیجیتال با OpenSSL
- تنظیم یک CA داخلی برای مدیریت گواهینامهها
6.2 مدیریت SSL/TLS
- پیکربندی SSL/TLS برای سرورها
- رفع مشکلات گواهینامهها با ابزارهایی مانند ssllabs
7. مدیریت امنیت در لینوکس (Linux Security Basics)
7.1 امنیت فایل سیستم
- رمزنگاری پارتیشنها با fscrypt و dm-crypt
- بررسی سلامت فایل سیستم با fsck
7.2 ابزارهای امنیتی لینوکس
- استفاده از chkrootkit و rkhunter برای بررسی امنیت
- مدیریت auditd برای نظارت بر رویدادها
7.3 تنظیمات امنیتی سیستم
- مدیریت پارامترهای سیستم با sysctl
8. سختافزار و امنیت فیزیکی (Physical Security)
8.1 امنیت دستگاهها
- کنترل دسترسی به دیسکهای قابل حمل
- پیکربندی تنظیمات برای جلوگیری از دسترسی غیرمجاز
8.2 بوت امن
- فعالسازی Secure Boot
- تنظیمات GRUB برای جلوگیری از تغییرات بوتلودر
ویژگیهای آزمون LPIC-3 303: Security
- نوع آزمون: چندگزینهای و چندپاسخی.
- مدت آزمون: 90 دقیقه.
- پیشنیاز: داشتن گواهینامه LPIC-2.
منابع پیشنهادی برای مطالعه
- کتابهای آموزشی:
- “Linux Security Cookbook” و “Mastering Linux Security”.
- مستندات رسمی LPI و ابزارها:
- lpi.org و سایتهای ابزارهای مربوطه مانند OpenSSL و SELinux.
- دورههای آنلاین:
- دورههای آموزشی امنیت لینوکس در Udemy، Pluralsight و Coursera.
- تمرین عملی:
- راهاندازی سیستمهای لینوکس در محیط مجازی و اعمال تنظیمات امنیتی.
این دوره شما را به یک متخصص امنیت لینوکس تبدیل میکند و مهارتهای مورد نیاز برای مدیریت و محافظت از سرورها و شبکهها در برابر تهدیدات امنیتی را به شما آموزش میدهد. اگر سوالی دارید، بپرسید! 😊
سرفصل دوره
آشنایی با رمزنگاری متقارن و عدم تقارن مقاله
توضیحات کامل
رمزنگاری متقارن چیست؟
رمزنگاری متقارن به نوعی از رمزنگاری اشاره دارد که در آن یک کلید واحد برای رمزگذاری (Encryption) و رمزگشایی (Decryption) استفاده میشود. به عبارت دیگر، همان کلیدی که برای قفل کردن دادهها بهکار میرود، برای باز کردن قفل آن نیز مورد استفاده قرار میگیرد.
ویژگیهای کلیدی رمزنگاری متقارن:
- سرعت بالا: این نوع رمزنگاری به دلیل محاسبات کمتر، سریعتر از رمزنگاری عدم تقارن عمل میکند.
- کلید واحد: نیاز به یک کلید مشترک بین طرفین دارد.
- امنیت کلید: اگر کلید در دسترس شخص غیرمجاز قرار گیرد، امنیت دادهها به خطر میافتد.
الگوریتمهای معروف رمزنگاری متقارن:
- AES (Advanced Encryption Standard): یکی از استانداردهای بسیار امن و پرکاربرد.
- DES (Data Encryption Standard) و نسخه بهبود یافته آن 3DES.
- Blowfish و RC4: الگوریتمهای سبک و سریع برای دادههای با حجم کمتر.
معایب رمزنگاری متقارن:
- نیاز به مدیریت امن کلید: کلید باید بین طرفین انتقال یابد که ممکن است خطر امنیتی ایجاد کند.
- مناسب نبودن برای ارتباطات گسترده: در ارتباطاتی که تعداد طرفین زیاد است، مدیریت کلید دشوار میشود.
رمزنگاری عدم تقارن چیست؟
رمزنگاری عدم تقارن نوعی رمزنگاری است که از دو کلید مختلف استفاده میکند:
- کلید عمومی (Public Key): برای رمزگذاری دادهها بهکار میرود.
- کلید خصوصی (Private Key): برای رمزگشایی دادهها استفاده میشود.
ویژگیهای کلیدی رمزنگاری عدم تقارن:
- کلیدهای متفاوت: نیازی به اشتراک کلید بین طرفین نیست.
- امنیت بالاتر: به دلیل تفاوت کلیدها، شکستن رمز بسیار دشوارتر است.
- کاربردهای گسترده: مناسب برای امضای دیجیتال و تأیید هویت.
الگوریتمهای معروف رمزنگاری عدم تقارن:
- RSA (Rivest-Shamir-Adleman): یکی از پرکاربردترین الگوریتمها در رمزنگاری عدم تقارن.
- ECC (Elliptic Curve Cryptography): الگوریتمی جدیدتر با امنیت بالا و استفاده از کلیدهای کوچکتر.
- DSA (Digital Signature Algorithm): برای امضای دیجیتال و تأیید اعتبار.
معایب رمزنگاری عدم تقارن:
- سرعت پایینتر: به دلیل پیچیدگی بیشتر الگوریتمها، سرعت رمزنگاری کاهش مییابد.
- مصرف منابع: نیازمند توان پردازشی بیشتری نسبت به رمزنگاری متقارن است.
تفاوتهای کلیدی رمزنگاری متقارن و عدم تقارن
ویژگی | رمزنگاری متقارن | رمزنگاری عدم تقارن |
---|---|---|
تعداد کلیدها | یک کلید مشترک | دو کلید (عمومی و خصوصی) |
سرعت | سریعتر | کندتر |
امنیت کلید | خطر افشای کلید مشترک | کلید خصوصی محرمانه باقی میماند |
کاربردها | رمزگذاری فایلها و دادهها | امضای دیجیتال، تأیید هویت |
کاربردهای هر دو نوع رمزنگاری
کاربردهای رمزنگاری متقارن:
- رمزگذاری فایلها در سیستمهای محلی.
- محافظت از دادههای در حال انتقال در شبکههای خصوصی.
- استفاده در VPN و Wi-Fi Security (مانند WPA2).
کاربردهای رمزنگاری عدم تقارن:
- SSL/TLS: برای ایجاد ارتباطات امن در اینترنت.
- GPG/PGP: برای رمزنگاری ایمیلها و فایلها.
- امضای دیجیتال: برای تأیید صحت دادهها و هویت کاربران.
انتخاب بین رمزنگاری متقارن و عدم تقارن
در بسیاری از موارد، این دو نوع رمزنگاری بهصورت ترکیبی استفاده میشوند. به عنوان مثال:
- در پروتکلهای SSL/TLS ابتدا از رمزنگاری عدم تقارن برای تبادل کلید استفاده میشود و سپس رمزنگاری متقارن برای انتقال دادهها به کار میرود.
این ترکیب باعث افزایش امنیت و سرعت انتقال اطلاعات میشود.
نتیجهگیری
رمزنگاری متقارن و عدم تقارن دو ابزار قدرتمند در دنیای امنیت اطلاعات هستند که هر یک کاربردها و مزایای خاص خود را دارند. درک تفاوتها و استفاده صحیح از آنها میتواند نقش مهمی در حفاظت از دادهها و اطلاعات حساس ایفا کند.
بررسی الگوریتمهای هشینگ (SHA, MD5 و الگوریتمهای دیگر) مقاله
توضیحات کامل
هشینگ چیست؟
هشینگ (Hashing) فرآیندی است که طی آن، دادههای ورودی با هر اندازه به یک خروجی با طول ثابت تبدیل میشوند. خروجی تولید شده، به عنوان هش (Hash) شناخته میشود.
ویژگیهای اصلی یک الگوریتم هشینگ خوب عبارتند از:
- یکطرفه بودن: هش باید غیرقابل بازگشت باشد.
- تغییر حساس: تغییر کوچک در ورودی، هش کاملاً متفاوتی تولید کند.
- یکتا بودن: هر ورودی یکتا باید هش یکتایی تولید کند.
- کارایی: فرآیند محاسبه هش باید سریع باشد.
الگوریتم MD5
MD5 (Message Digest 5) یکی از پرکاربردترین الگوریتمهای هشینگ است که توسط Ronald Rivest در سال 1991 توسعه داده شد.
ویژگیها:
- تولید هش 128 بیتی.
- سرعت بالا در محاسبات.
معایب:
- ضعف در امنیت: MD5 در برابر حملات تصادم (Collision Attacks) آسیبپذیر است، یعنی ممکن است دو ورودی متفاوت، هش یکسانی تولید کنند.
- مناسب نبودن برای کاربردهای امنیتی حساس مانند گواهینامههای دیجیتال و ذخیرهسازی رمز عبور.
کاربردها:
- بررسی یکپارچگی فایلها.
- استفاده محدود در سیستمهای قدیمی.
الگوریتمهای خانواده SHA
SHA (Secure Hash Algorithm) یک خانواده از الگوریتمهای هشینگ است که توسط NIST توسعه یافته و دارای نسخههای مختلفی است:
SHA-1
- تولید هش 160 بیتی.
- در گذشته بسیار پرکاربرد بود اما اکنون به دلیل آسیبپذیری در برابر حملات تصادم، منسوخ شده است.
SHA-2
- شامل نسخههای SHA-224، SHA-256، SHA-384 و SHA-512 است.
- امنیت بالاتر نسبت به SHA-1.
- تولید هش با طولهای مختلف (224، 256، 384، و 512 بیت).
SHA-3
- جدیدترین عضو این خانواده که مبتنی بر الگوریتم Keccak طراحی شده است.
- مقاوم در برابر حملات پیشرفته مانند Collision و Length Extension.
الگوریتمهای دیگر هشینگ
1. BLAKE2
- الگوریتمی سریعتر و امنتر از SHA-2.
- مناسب برای کاربردهای عمومی و ذخیرهسازی رمز عبور.
2. RIPEMD
- خانوادهای از الگوریتمهای هشینگ با نسخههای مختلف از جمله RIPEMD-128 و RIPEMD-160.
- امنیت کمتر نسبت به SHA-2.
3. Argon2
- طراحی شده برای ذخیرهسازی امن رمزهای عبور.
- مقاوم در برابر حملات Brute Force و Rainbow Table.
تفاوتهای کلیدی بین الگوریتمهای هشینگ
ویژگی | MD5 | SHA-1 | SHA-2 | SHA-3 | BLAKE2 |
---|---|---|---|---|---|
طول هش | 128 بیت | 160 بیت | 224-512 بیت | 224-512 بیت | متغیر |
امنیت | ضعیف | ضعیف | بالا | بسیار بالا | بسیار بالا |
سرعت | سریع | متوسط | متوسط | کندتر | بسیار سریع |
کاربرد اصلی | بررسی یکپارچگی | امنیت محدود | امنیت بالا | امنیت پیشرفته | رمزنگاری مدرن |
کاربردهای هشینگ
1. ذخیرهسازی رمز عبور
الگوریتمهای هشینگ برای ذخیرهسازی امن رمزهای عبور استفاده میشوند. به عنوان مثال، برای جلوگیری از افشای رمزها در پایگاههای داده از الگوریتمهایی مانند Argon2 یا bcrypt استفاده میشود.
2. بررسی یکپارچگی دادهها
هشینگ میتواند برای اطمینان از عدم تغییر فایلها یا پیامها در طول انتقال استفاده شود.
3. امضای دیجیتال
هشینگ بخشی از فرآیند امضای دیجیتال است که برای تأیید هویت و صحت دادهها به کار میرود.
بهترین الگوریتم برای کاربردهای مختلف
- برای ذخیرهسازی رمز عبور: Argon2، bcrypt، یا PBKDF2.
- برای بررسی یکپارچگی فایلها: SHA-256 یا BLAKE2.
- برای کاربردهای امنیتی پیشرفته: SHA-3.
نتیجهگیری
الگوریتمهای هشینگ نقش کلیدی در امنیت اطلاعات دارند. در حالی که الگوریتمهایی مانند MD5 و SHA-1 اکنون منسوخ شدهاند، الگوریتمهای جدیدتر مانند SHA-3 و BLAKE2 امنیت و کارایی بیشتری ارائه میدهند. انتخاب الگوریتم مناسب برای هر کاربرد، بستگی به نیاز امنیتی و منابع سیستم دارد.
ایجاد و مدیریت کلیدهای GPG مقاله
توضیحات کامل
GPG چیست و چرا استفاده میشود؟
GPG یک ابزار قدرتمند برای:
- رمزنگاری پیامها و فایلها.
- ایجاد و تأیید امضای دیجیتال.
- مدیریت کلیدهای رمزنگاری عمومی و خصوصی.
این ابزار برای محافظت از اطلاعات حساس و تأیید هویت در سیستمهای لینوکسی و محیطهای کاری امن استفاده میشود.
مراحل ایجاد و مدیریت کلیدهای GPG
1. نصب GPG
ابتدا مطمئن شوید که GPG بر روی سیستم شما نصب شده است. اگر نصب نیست، میتوانید با استفاده از دستورات زیر آن را نصب کنید:
- در Debian/Ubuntu:
sudo apt update sudo apt install gnupg
- در Red Hat/CentOS:
sudo yum install gnupg
- در Arch Linux:
sudo pacman -S gnupg
2. ایجاد یک کلید جدید GPG
برای ایجاد یک جفت کلید (کلید عمومی و خصوصی)، دستور زیر را اجرا کنید:
gpg --full-generate-key
مراحل ایجاد کلید:
- انتخاب نوع کلید:
- معمولاً گزینه پیشفرض (
RSA and RSA
) انتخاب میشود.
- معمولاً گزینه پیشفرض (
- تعیین طول کلید:
- طول پیشنهادی 4096 بیت است، زیرا امنیت بالاتری ارائه میدهد.
- تنظیم تاریخ انقضا کلید:
- میتوانید یک بازه زمانی مشخص کنید یا کلید را دائمی تنظیم کنید.
- وارد کردن نام و ایمیل:
- این اطلاعات برای شناسایی کلید شما استفاده میشود.
- تنظیم رمز عبور:
- یک رمز عبور قوی برای محافظت از کلید خصوصی خود انتخاب کنید.
پس از اتمام، کلید شما ایجاد شده و در فایل ~/.gnupg
ذخیره میشود.
3. مشاهده کلیدهای موجود
برای مشاهده کلیدهای عمومی و خصوصی ذخیره شده:
- کلیدهای عمومی:
gpg --list-keys
- کلیدهای خصوصی:
gpg --list-secret-keys
4. صادرات کلید عمومی
برای اشتراکگذاری کلید عمومی با دیگران، باید آن را صادر کنید:
gpg --export -a "نام یا ایمیل شما" > public_key.asc
این فایل میتواند برای رمزنگاری پیامها توسط دیگران استفاده شود.
5. صادرات کلید خصوصی
برای تهیه نسخه پشتیبان از کلید خصوصی خود:
gpg --export-secret-keys -a "نام یا ایمیل شما" > private_key.asc
هشدار: کلید خصوصی را بههیچوجه در اختیار دیگران قرار ندهید.
6. وارد کردن کلید عمومی یا خصوصی
برای وارد کردن کلیدی که از قبل دارید:
- کلید عمومی:
gpg --import public_key.asc
- کلید خصوصی:
gpg --import private_key.asc
7. امضای یک کلید عمومی
برای تأیید اصالت کلید عمومی دیگران:
gpg --sign-key "نام یا ایمیل"
8. حذف کلیدها
- حذف کلید عمومی:
gpg --delete-key "نام یا ایمیل"
- حذف کلید خصوصی:
gpg --delete-secret-key "نام یا ایمیل"
استفاده از GPG برای رمزنگاری و امضای دیجیتال
1. رمزنگاری فایلها
برای رمزنگاری یک فایل با استفاده از کلید عمومی:
gpg --encrypt --recipient "ایمیل گیرنده" file.txt
فایل رمزنگاریشده با پسوند .gpg
ایجاد میشود.
2. رمزگشایی فایلها
برای رمزگشایی یک فایل رمزنگاریشده:
gpg --decrypt file.txt.gpg
3. ایجاد امضای دیجیتال
برای امضای یک فایل:
gpg --sign file.txt
4. تأیید امضای دیجیتال
برای تأیید اصالت یک فایل امضاشده:
gpg --verify file.txt.sig
نکات امنیتی در مدیریت کلیدهای GPG
- کلید خصوصی خود را هرگز به اشتراک نگذارید.
- از رمز عبور قوی برای کلید خصوصی استفاده کنید.
- از کلید خصوصی خود نسخه پشتیبان بگیرید و در جای امن ذخیره کنید.
- تاریخ انقضای مناسبی برای کلیدها تعیین کنید تا امنیت بیشتری داشته باشید.
کاربردهای GPG
- رمزنگاری ایمیلها: با استفاده از ابزارهایی مانند Thunderbird و افزونه Enigmail.
- امضای کدها: برای تأیید اصالت نرمافزارها.
- ذخیرهسازی امن فایلها: برای محافظت از دادههای حساس.
نتیجهگیری
GPG یکی از ابزارهای قوی برای رمزنگاری و مدیریت کلیدها است که بهراحتی میتواند برای افزایش امنیت دادهها و ارتباطات مورد استفاده قرار گیرد. با یادگیری نحوه ایجاد و مدیریت کلیدهای GPG، میتوانید از دادههای حساس خود در برابر تهدیدات محافظت کنید.
استفاده از OpenSSL برای مدیریت کلیدها مقاله
توضیحات کامل
تولید امضای دیجیتال با ابزارهای GPG و OpenSSL مقاله
توضیحات کامل
استفاده از ابزار GPG برای رمزگذاری و رمزگشایی مقاله
توضیحات کامل
رمزگذاری فایلها با استفاده از OpenSSL مقاله
توضیحات کامل
استفاده از cryptsetup برای مدیریت رمزنگاری دیسکها مقاله
توضیحات کامل
استفاده از cryptsetup
برای مدیریت رمزنگاری دیسکها
cryptsetup
یکی از ابزارهای قدرتمند و کاربردی در لینوکس است که برای مدیریت رمزنگاری دیسکها و پارتیشنها با استفاده از سیستم رمزنگاری LUKS (Linux Unified Key Setup) طراحی شده است. این ابزار به شما این امکان را میدهد که دیسکها یا پارتیشنها را به طور کامل رمزگذاری کرده و امنیت دادههای خود را افزایش دهید.
در این مقاله، نحوه استفاده از cryptsetup
برای رمزنگاری و مدیریت دیسکها و پارتیشنها را بررسی خواهیم کرد.
مراحل استفاده از cryptsetup
برای رمزنگاری دیسکها
1. نصب cryptsetup
ابتدا باید اطمینان حاصل کنید که cryptsetup
روی سیستم شما نصب است. برای نصب این ابزار در سیستمهای مختلف از دستورات زیر استفاده کنید:
در سیستمهای Debian/Ubuntu:
sudo apt update
sudo apt install cryptsetup
در سیستمهای Red Hat/CentOS:
sudo yum install cryptsetup
2. آمادهسازی دیسک برای رمزنگاری
قبل از اینکه یک دیسک یا پارتیشن را رمزگذاری کنید، باید اطمینان حاصل کنید که دیسک یا پارتیشن مورد نظر آماده است. برای مثال، اگر میخواهید پارتیشن /dev/sdb1
را رمزگذاری کنید، ابتدا باید آن را فرمت کنید. توجه داشته باشید که فرمت کردن دیسک باعث حذف تمامی دادهها خواهد شد.
2.1. فرمت کردن دیسک (اختیاری)
اگر پارتیشن یا دیسک را برای اولین بار آماده میکنید و میخواهید آن را فرمت کنید، از دستور mkfs
استفاده کنید:
sudo mkfs.ext4 /dev/sdb1
2.2. بررسی وضعیت دیسک
قبل از رمزگذاری، میتوانید وضعیت دیسک را با استفاده از دستور lsblk
بررسی کنید:
lsblk
3. رمزگذاری پارتیشن با استفاده از cryptsetup
3.1. رمزگذاری پارتیشن با استفاده از LUKS
برای رمزگذاری پارتیشن با LUKS از دستور زیر استفاده کنید:
sudo cryptsetup luksFormat /dev/sdb1
در این مرحله، از شما خواسته میشود که یک رمز عبور برای رمزگذاری وارد کنید. این رمز عبور برای دسترسی به دیسک پس از رمزگذاری استفاده خواهد شد. همچنین، این رمز عبور برای باز کردن پارتیشن هنگام بوت یا استفاده از آن ضروری است.
3.2. تأیید رمزگذاری
پس از انجام این مرحله، برای تأیید اینکه پارتیشن به درستی رمزگذاری شده است، میتوانید از دستور زیر استفاده کنید:
sudo cryptsetup luksOpen /dev/sdb1 my_encrypted_disk
در این دستور، my_encrypted_disk
یک نام دلخواه است که برای شناخته شدن دیسک رمزگذاریشده استفاده میشود. پس از وارد کردن رمز عبور، پارتیشن رمزگذاریشده در مسیر /dev/mapper/my_encrypted_disk
قابل دسترسی خواهد بود.
4. فرمت کردن پارتیشن رمزگذاریشده
پس از رمزگذاری دیسک، باید آن را فرمت کرده تا بتوانید از آن برای ذخیرهسازی دادهها استفاده کنید. برای مثال، برای فرمت کردن پارتیشن با سیستم فایل ext4 از دستور زیر استفاده کنید:
sudo mkfs.ext4 /dev/mapper/my_encrypted_disk
5. باز و بسته کردن پارتیشن رمزگذاریشده
5.1. باز کردن پارتیشن
برای باز کردن پارتیشن رمزگذاریشده و دسترسی به آن:
sudo cryptsetup luksOpen /dev/sdb1 my_encrypted_disk
5.2. بستن پارتیشن
برای بستن پارتیشن رمزگذاریشده و قفل کردن آن:
sudo cryptsetup luksClose my_encrypted_disk
6. افزودن رمز عبور برای پارتیشن رمزگذاریشده
اگر بخواهید چندین رمز عبور برای یک پارتیشن رمزگذاریشده داشته باشید (برای مثال برای دسترسیهای مختلف)، میتوانید از دستور زیر استفاده کنید:
sudo cryptsetup luksAddKey /dev/sdb1
در اینجا از شما خواسته میشود که یک رمز عبور جدید وارد کنید. همچنین رمز عبور فعلی پارتیشن را نیز باید وارد کنید تا این تغییرات اعمال شوند.
7. بررسی وضعیت رمزنگاری با cryptsetup
7.1. نمایش اطلاعات پارتیشن رمزگذاریشده
برای مشاهده اطلاعات مربوط به پارتیشن رمزگذاریشده:
sudo cryptsetup luksDump /dev/sdb1
این دستور اطلاعاتی مانند طول کلید و شمارش کلیدها را نمایش میدهد.
7.2. نمایش وضعیت باز بودن پارتیشن
برای مشاهده اینکه پارتیشن رمزگذاریشده باز است یا خیر:
sudo cryptsetup status my_encrypted_disk
8. فعال کردن رمزگذاری برای درایوهای بوت (اختیاری)
اگر قصد دارید که درایو بوت خود را نیز رمزگذاری کنید، باید از LUKS برای رمزگذاری پارتیشن /boot
استفاده کنید. این کار معمولاً پیچیدگی بیشتری دارد و نیاز به تنظیمات خاصی برای بوت شدن سیستم دارد.
9. نکات امنیتی
- رمز عبور خود را ایمن نگه دارید: رمز عبور استفاده شده برای رمزگذاری پارتیشن بسیار مهم است. آن را در جای امن ذخیره کنید.
- پشتیبانگیری از دادهها: قبل از انجام عملیات رمزگذاری، از دادههای خود نسخه پشتیبان تهیه کنید.
- خودکار کردن باز و بسته کردن پارتیشن در بوت: اگر میخواهید پارتیشنها به طور خودکار هنگام بوت باز شوند، باید از ابزارهایی مانند crypttab و fstab استفاده کنید.
- حفاظت از کلیدها: اگر به کلیدهای رمزگذاری نیاز دارید، مطمئن شوید که این کلیدها در جای امن نگهداری شوند.
نتیجهگیری
ابزار cryptsetup
به شما این امکان را میدهد که با استفاده از LUKS دیسکها و پارتیشنهای خود را به طور کامل رمزگذاری کنید. با رمزگذاری دیسکها، میتوانید امنیت دادههای حساس خود را افزایش داده و از دسترسی غیرمجاز به اطلاعات شخصی و مهم خود جلوگیری کنید.
تغییر مالکیت و دسترسی فایلها با دستورات chmod و chown مقاله
توضیحات کامل
chmod
: تغییر دسترسی فایلها و پوشهها.chown
: تغییر مالکیت فایلها و پوشهها.
در این مقاله نحوه استفاده از این دستورات بهطور کامل و با مثال توضیح داده شده است.
1. مفهوم دسترسی و مالکیت در لینوکس
1.1. سطح دسترسی
در لینوکس، هر فایل یا پوشه سه سطح دسترسی دارد:
- مالک فایل (Owner): فردی که فایل را ایجاد کرده است.
- گروه (Group): گروهی از کاربران که ممکن است به فایل دسترسی داشته باشند.
- دیگر کاربران (Others): سایر کاربران سیستم.
1.2. انواع مجوزها
هر فایل دارای سه نوع مجوز است:
- خواندن (Read): توانایی خواندن محتوای فایل یا لیستکردن پوشه.
- نوشتن (Write): توانایی تغییر محتوا یا ایجاد/حذف فایلها.
- اجرا (Execute): توانایی اجرای فایل یا دسترسی به پوشه.
2. تغییر دسترسی فایلها با chmod
دستور chmod
برای تغییر دسترسیهای فایل یا پوشه استفاده میشود.
2.1. نحوه نمایش دسترسیها
برای مشاهده دسترسیها، از دستور زیر استفاده کنید:
ls -l
خروجی این دستور ممکن است به صورت زیر باشد:
-rw-r--r-- 1 user group 1024 Nov 30 12:00 file.txt
-rw-r--r--
: نشاندهنده دسترسیها است.- اولین حرف
-
نشاندهنده نوع فایل است (برای فایلها:-
، برای پوشهها:d
). - سه بلوک بعدی نشاندهنده دسترسیهای مالک، گروه و دیگر کاربران هستند.
rw-
: مالک میتواند بخواند (r) و بنویسد (w)، اما نمیتواند اجرا کند.r--
: گروه فقط میتواند بخواند.r--
: دیگر کاربران فقط میتوانند بخوانند.
- اولین حرف
2.2. تغییر دسترسی با استفاده از نمادها
میتوانید دسترسی فایل را با استفاده از نمادها تغییر دهید:
chmod [کاربر][+/-/=][مجوزها] فایل/پوشه
مثالها:
- اضافه کردن مجوز اجرا برای مالک:
chmod u+x file.txt
این دستور مجوز اجرا را به مالک فایل اضافه میکند.
- حذف مجوز خواندن برای گروه:
chmod g-r file.txt
- تنظیم مجوز کامل فقط برای مالک:
chmod u=rwx,g=,o= file.txt
2.3. تغییر دسترسی با استفاده از اعداد (روش اکتالی)
در این روش، هر نوع مجوز به یک مقدار عددی اختصاص دارد:
- خواندن (r): 4
- نوشتن (w): 2
- اجرا (x): 1
با جمع این مقادیر، دسترسیها به صورت اعداد نمایش داده میشوند:
- 7:
rwx
(خواندن، نوشتن و اجرا) - 6:
rw-
(خواندن و نوشتن) - 5:
r-x
(خواندن و اجرا) - 4:
r--
(فقط خواندن)
مثال:
- تعیین مجوز کامل برای مالک، و فقط خواندن برای دیگران:
chmod 744 file.txt
این دستور دسترسیها را به صورت زیر تنظیم میکند:
rwxr--r--
- تنظیم دسترسی فقط برای خواندن و نوشتن:
chmod 664 file.txt
3. تغییر مالکیت فایلها با chown
دستور chown
برای تغییر مالکیت فایلها و پوشهها استفاده میشود.
3.1. تغییر مالک فایل
برای تغییر مالک فایل، از دستور زیر استفاده کنید:
chown user file.txt
این دستور مالک فایل file.txt
را به کاربر user
تغییر میدهد.
3.2. تغییر مالک گروه
برای تغییر مالک گروه، دستور زیر استفاده میشود:
chown :group file.txt
این دستور گروه فایل را به group
تغییر میدهد.
3.3. تغییر همزمان مالک و گروه
برای تغییر مالک و گروه همزمان:
chown user:group file.txt
مثال:
chown alice:developers file.txt
3.4. تغییر مالکیت پوشهها به صورت بازگشتی
برای تغییر مالکیت یک پوشه و تمامی فایلهای درون آن به صورت بازگشتی، از گزینه -R
استفاده کنید:
chown -R user:group /path/to/directory
4. مثالهای ترکیبی
- تغییر مالک و تنظیم دسترسی برای یک فایل:
chown alice file.txt chmod 640 file.txt
این دستور مالک فایل را به
alice
تغییر داده و دسترسیها را به صورت زیر تنظیم میکند:rw-r-----
- ایجاد دسترسی کامل برای پوشه و تغییر مالکیت:
chmod -R 755 /var/www chown -R www-data:www-data /var/www
این دستور دسترسی کامل به مالک و مجوز خواندن و اجرا به گروه و دیگر کاربران میدهد و مالکیت را تغییر میدهد.
5. نکات امنیتی
- همیشه از دسترسیهای حداقلی استفاده کنید. به فایلها و پوشههایی که نیاز به دسترسی عمومی ندارند، دسترسیهای غیرضروری ندهید.
- از دستورات
chmod
وchown
با دقت استفاده کنید، به ویژه هنگام استفاده از گزینه بازگشتی (-R
). - برای فایلهای حساس، دسترسی را فقط به مالک محدود کنید:
chmod 600 file.txt
نتیجهگیری
دستورات chmod
و chown
ابزارهای اساسی برای مدیریت دسترسی و مالکیت فایلها و پوشهها در لینوکس هستند. با استفاده صحیح از این دستورات، میتوانید امنیت فایلهای خود را بهبود بخشیده و کنترل بهتری بر منابع سیستم خود داشته باشید.
پیادهسازی ACL در لینوکس با setfacl و getfacl مقاله
توضیحات کامل
در این مقاله، نحوه استفاده از ابزارهای setfacl
و getfacl
برای مدیریت ACL توضیح داده شده است.
1. مفهوم ACL
1.1. چرا ACL مهم است؟
مجوزهای سنتی لینوکس (مالک، گروه، دیگران) در شرایطی که نیاز به تنظیم دسترسی دقیق برای کاربران یا گروههای خاص داریم، محدود هستند. ACL این مشکل را حل میکند.
1.2. انواع ACL
- ACL استاندارد: دسترسیهای پیشفرض مالک، گروه، و دیگر کاربران.
- ACL پیشفرض: برای فایلها و پوشههایی که داخل یک پوشه خاص ایجاد میشوند، به صورت خودکار اعمال میشود.
2. بررسی و فعالسازی ACL
2.1. بررسی پشتیبانی از ACL
برای بررسی اینکه فایلسیستم شما از ACL پشتیبانی میکند، از دستور زیر استفاده کنید:
mount | grep acl
اگر فایلسیستم از ACL پشتیبانی نمیکند، باید آن را هنگام مونت فعال کنید:
sudo mount -o remount,acl /mount/point
2.2. فعالسازی ACL در فایل fstab
برای فعالسازی دائمی ACL:
- فایل
/etc/fstab
را ویرایش کنید. - گزینه
acl
را به فایلسیستم اضافه کنید. مثال:/dev/sda1 / ext4 defaults,acl 0 1
- فایلسیستم را دوباره مونت کنید:
sudo mount -o remount /mount/point
3. مشاهده ACL با getfacl
برای مشاهده ACL یک فایل یا پوشه از دستور getfacl
استفاده میشود:
getfacl file_name
مثال:
فرض کنید فایل example.txt
وجود دارد:
getfacl example.txt
خروجی ممکن است شبیه به زیر باشد:
# file: example.txt
# owner: alice
# group: developers
user::rw-
group::r--
other::r--
user::rw-
: دسترسی مالک فایل.group::r--
: دسترسی گروه فایل.other::r--
: دسترسی دیگر کاربران.
4. تنظیم ACL با setfacl
برای تنظیم ACL جدید یا تغییر ACL موجود از دستور setfacl
استفاده میشود.
4.1. تنظیم ACL برای یک کاربر
برای اختصاص دسترسی خواندن (r)، نوشتن (w) یا اجرا (x) به یک کاربر:
setfacl -m u:username:permissions file_name
مثال:
اختصاص دسترسی خواندن و نوشتن به کاربر bob
:
setfacl -m u:bob:rw example.txt
4.2. تنظیم ACL برای یک گروه
برای اختصاص دسترسی به یک گروه:
setfacl -m g:groupname:permissions file_name
مثال:
اختصاص دسترسی فقط خواندن به گروه managers
:
setfacl -m g:managers:r example.txt
4.3. حذف یک ACL
برای حذف دسترسی یک کاربر یا گروه خاص:
setfacl -x u:username file_name
مثال:
حذف دسترسی کاربر bob
:
setfacl -x u:bob example.txt
4.4. تنظیم ACL پیشفرض برای پوشهها
برای تنظیم ACL پیشفرض که بهطور خودکار روی فایلها و پوشههای جدید اعمال میشود:
setfacl -m d:u:username:permissions directory_name
مثال:
اختصاص دسترسی خواندن و نوشتن پیشفرض به کاربر bob
در پوشه project
:
setfacl -m d:u:bob:rw project
4.5. حذف تمام ACLها
برای حذف کامل ACLها از یک فایل یا پوشه:
setfacl -b file_name
مثال:
حذف تمام ACLها از فایل example.txt
:
setfacl -b example.txt
5. مثالهای کاربردی
مثال 1: تنظیم دسترسی پیشرفته برای چند کاربر
فرض کنید میخواهید دسترسی زیر را برای فایل report.txt
تنظیم کنید:
- مالک (
alice
): دسترسی کامل (rw-). - کاربر
bob
: دسترسی خواندن و نوشتن (rw-). - گروه
developers
: دسترسی فقط خواندن (r–).
دستورات:
setfacl -m u:alice:rw report.txt
setfacl -m u:bob:rw report.txt
setfacl -m g:developers:r report.txt
مثال 2: تنظیم دسترسی پیشفرض در یک پوشه
برای پوشه shared
، دسترسی پیشفرض زیر را تنظیم کنید:
- تمام کاربران جدید، دسترسی خواندن و نوشتن داشته باشند.
دستور:
setfacl -m d:o:rw shared
6. بررسی تاثیر ACL بر دسترسی فایل
برای اطمینان از اعمال درست ACL، میتوانید دسترسی فایل را با ls -l
بررسی کنید:
ls -l
خروجی ممکن است شامل یک +
در کنار مجوزهای فایل باشد که نشاندهنده وجود ACL است:
-rw-rw-r--+ 1 alice developers 1024 Nov 30 12:00 example.txt
7. نکات امنیتی
- پشتیبانی از ACL را بررسی کنید: پیش از استفاده از ACL، اطمینان حاصل کنید که فایلسیستم شما از ACL پشتیبانی میکند.
- تنظیم دسترسی پیشفرض برای پوشههای اشتراکی: در محیطهای چندکاربری، ACL میتواند جایگزین موثری برای مجوزهای سنتی باشد.
- بررسی دسترسیها به طور منظم: با استفاده از
getfacl
، دسترسیهای فایلها و پوشهها را بررسی کنید.
نتیجهگیری
ACL ابزار قدرتمندی برای تنظیم دسترسی پیشرفته فایلها و پوشهها در لینوکس است. با استفاده از دستورات setfacl
و getfacl
میتوانید کنترل دقیقتری روی دسترسیها داشته باشید و نیازهای پیچیده امنیتی را برطرف کنید.
پیادهسازی ACL با setfacl و getfacl در لینوکس مقاله
توضیحات کامل
1. فعالسازی و بررسی پشتیبانی از ACL
بررسی پشتیبانی ACL:
برای اطمینان از فعال بودن ACL در فایلسیستم، دستور زیر را اجرا کنید:
mount | grep acl
اگر فایلسیستم شما از ACL پشتیبانی نمیکند، باید هنگام مونت کردن، آن را فعال کنید:
sudo mount -o remount,acl /mount/point
افزودن ACL به فایل /etc/fstab
برای دائمی کردن تنظیمات:
- فایل
/etc/fstab
را باز کنید:sudo nano /etc/fstab
- گزینه
acl
را به تنظیمات فایلسیستم اضافه کنید. مثال:/dev/sda1 / ext4 defaults,acl 0 1
- فایلسیستم را دوباره مونت کنید:
sudo mount -o remount /
2. مشاهده ACL با getfacl
برای مشاهده لیست ACLهای یک فایل یا پوشه، از دستور زیر استفاده کنید:
getfacl file_or_directory
مثال:
getfacl example.txt
خروجی:
# file: example.txt
# owner: alice
# group: developers
user::rw-
group::r--
other::r--
3. تنظیم ACL با setfacl
3.1. تخصیص دسترسی به یک کاربر:
برای افزودن دسترسی خاص به یک کاربر:
setfacl -m u:username:permissions file_or_directory
مثال: اختصاص دسترسی خواندن و نوشتن به کاربر bob
:
setfacl -m u:bob:rw example.txt
3.2. تخصیص دسترسی به یک گروه:
برای تنظیم دسترسی یک گروه:
setfacl -m g:groupname:permissions file_or_directory
مثال: اختصاص دسترسی فقط خواندن به گروه managers
:
setfacl -m g:managers:r example.txt
3.3. تنظیم ACL پیشفرض برای یک پوشه:
برای اعمال تنظیمات پیشفرض به فایلها و پوشههای جدید داخل یک پوشه خاص:
setfacl -m d:u:username:permissions directory
مثال: اختصاص دسترسی پیشفرض خواندن و نوشتن به کاربر bob
در پوشه shared
:
setfacl -m d:u:bob:rw shared
3.4. حذف دسترسی یک کاربر:
برای حذف یک ACL خاص از یک فایل یا پوشه:
setfacl -x u:username file_or_directory
مثال: حذف دسترسی کاربر bob
از فایل example.txt
:
setfacl -x u:bob example.txt
3.5. حذف تمامی ACLها:
برای پاک کردن تمامی تنظیمات ACL از یک فایل یا پوشه:
setfacl -b file_or_directory
مثال: حذف تمامی ACLها از فایل example.txt
:
setfacl -b example.txt
4. مثالهای کاربردی
مثال 1: تنظیم دسترسیهای خاص
برای فایل document.txt
تنظیمات زیر را اعمال کنید:
- کاربر
alice
دسترسی کامل (rw-). - کاربر
bob
فقط خواندن (r–). - گروه
developers
دسترسی کامل (rw-).
دستورات:
setfacl -m u:alice:rw document.txt
setfacl -m u:bob:r document.txt
setfacl -m g:developers:rw document.txt
مثال 2: تنظیم ACL پیشفرض
در پوشه project
، دسترسی پیشفرض زیر را تنظیم کنید:
- همه کاربران جدید دسترسی خواندن و نوشتن داشته باشند.
دستور:
setfacl -m d:o:rw project
مثال 3: بررسی اعمال تنظیمات
پس از اعمال ACLها، دسترسی فایل یا پوشه را بررسی کنید:
getfacl document.txt
خروجی مشابه زیر خواهد بود:
# file: document.txt
# owner: alice
# group: developers
user::rw-
user:bob:r--
group::rw-
mask::rw-
other::---
5. نکات مهم در استفاده از ACL
- ماسک دسترسی (Mask): ماسک مشخص میکند که حداکثر سطح دسترسی قابل اعمال به کاربران و گروههای دیگر چیست. برای تغییر ماسک:
setfacl -m m:permissions file_or_directory
- همکاری با ابزارهای سنتی: ابزارهایی مانند
chmod
ممکن است ACL را بازنویسی کنند. برای حفظ تنظیمات ACL، از تغییر مستقیم مجوزها اجتناب کنید. - پشتیبانگیری از ACL: برای ذخیره تنظیمات ACL، از دستور زیر استفاده کنید:
getfacl -R directory > acl_backup.txt
برای بازیابی:
setfacl --restore=acl_backup.txt
نتیجهگیری
با استفاده از setfacl
و getfacl
، میتوانید کنترل دقیقتری بر دسترسی کاربران و گروهها به فایلها و پوشهها داشته باشید. این ابزارها به شما امکان میدهند تا سیاستهای امنیتی پیشرفته را در سیستمهای لینوکسی پیادهسازی کنید و از منابع خود به بهترین شکل محافظت کنید.
معرفی و پیادهسازی SELinux مقاله
توضیحات کامل
معرفی و پیادهسازی AppArmor برای کنترل دسترسی در لینوکس مقاله
توضیحات کامل
معرفی و پیادهسازی AppArmor
AppArmor (Application Armor) یک سیستم کنترل دسترسی اختیاری (DAC) در لینوکس است که با اعمال پروفایلهای امنیتی، رفتار برنامهها را محدود میکند. این ابزار بهویژه برای جلوگیری از سوءاستفاده از برنامههای آسیبپذیر طراحی شده است و بهطور گسترده در توزیعهایی مانند Ubuntu و Debian استفاده میشود.
1. AppArmor چیست و چگونه کار میکند؟
AppArmor از پروفایلهای متنی استفاده میکند تا رفتار یک برنامه را محدود کند. این پروفایلها تعیین میکنند که یک برنامه:
- به چه فایلهایی دسترسی دارد.
- کدام سرویسهای شبکه را میتواند استفاده کند.
- چه نوع عملیاتهایی را میتواند انجام دهد.
مزایای AppArmor:
- سادگی: استفاده و پیکربندی آن نسبت به ابزارهایی مانند SELinux سادهتر است.
- انعطافپذیری: میتوان پروفایلهای مختلفی را برای هر برنامه ایجاد کرد.
- امنیت بالا: برنامهها فقط به منابعی که صراحتاً اجازه دارند، دسترسی پیدا میکنند.
2. نصب و فعالسازی AppArmor
نصب AppArmor:
در بسیاری از توزیعهای لینوکس، AppArmor بهطور پیشفرض نصب است. اگر نصب نشده باشد:
sudo apt update
sudo apt install apparmor apparmor-utils
بررسی وضعیت AppArmor:
برای اطمینان از فعال بودن AppArmor:
sudo aa-status
خروجی شامل اطلاعات زیر خواهد بود:
- حالت فعال (enforcing) یا آزمایشی (complain).
- پروفایلهای بارگذاری شده.
3. حالتهای کاری AppArmor
AppArmor دو حالت اصلی دارد:
- Enforcing (اجباری): محدودیتهای تعریفشده در پروفایلها اعمال میشود.
- Complain (آزمایشی): تخلفها فقط ثبت (log) میشوند و هیچ محدودیتی اعمال نمیشود.
تغییر حالت:
برای تغییر حالت یک پروفایل:
sudo aa-complain /path/to/program
sudo aa-enforce /path/to/program
4. مدیریت پروفایلهای AppArmor
پروفایلها در مسیر /etc/apparmor.d/
ذخیره میشوند و شامل تنظیمات دسترسی برنامهها هستند.
4.1. مشاهده پروفایلهای فعال:
برای لیست پروفایلهای بارگذاریشده:
sudo aa-status
4.2. ایجاد پروفایل جدید:
- ایجاد پروفایل: برای ایجاد پروفایل یک برنامه، از ابزار
aa-genprof
استفاده کنید:sudo aa-genprof /usr/bin/program_name
سپس برنامه را اجرا کنید و دسترسیهای لازم را تعیین کنید.
- ویرایش پروفایل: پروفایل برنامهها به صورت فایلهای متنی در مسیر
/etc/apparmor.d/
قرار دارند. میتوانید آنها را با یک ویرایشگر متن تغییر دهید:sudo nano /etc/apparmor.d/usr.bin.program_name
- بارگذاری مجدد پروفایل: پس از ویرایش پروفایل، آن را مجدداً بارگذاری کنید:
sudo systemctl reload apparmor
5. تحلیل لاگها
وقتی AppArmor یک عملیات را مسدود میکند، لاگهای آن در سیستم ثبت میشوند.
مشاهده لاگهای AppArmor:
لاگها معمولاً در فایل /var/log/syslog
یا /var/log/audit/audit.log
ثبت میشوند:
sudo grep apparmor /var/log/syslog
6. مثالهای کاربردی
6.1. محدود کردن دسترسی یک برنامه
فرض کنید برنامهای به نام example_app
دارید و میخواهید دسترسی آن به دایرکتوری خاص محدود شود.
- ایجاد پروفایل:
sudo aa-genprof /usr/bin/example_app
- ویرایش پروفایل: پروفایل را باز کنید و دسترسیهای لازم را اضافه کنید:
sudo nano /etc/apparmor.d/usr.bin.example_app
نمونه دسترسی:
/path/to/allowed_dir/** rw, /path/to/denied_dir/** deny,
- بارگذاری مجدد پروفایل:
sudo systemctl reload apparmor
6.2. تغییر حالت برنامه به Complain
برای اجرای آزمایشی و مشاهده لاگهای برنامه بدون اعمال محدودیت:
sudo aa-complain /usr/bin/example_app
6.3. غیرفعالسازی موقت پروفایل
برای غیرفعال کردن یک پروفایل خاص:
sudo aa-disable /usr/bin/example_app
7. مدیریت سیاستهای AppArmor
مشاهده تمام سیاستهای موجود:
sudo aa-status
بازنشانی پروفایل:
اگر پروفایل خراب شده یا نیاز به تنظیمات پیشفرض دارد:
sudo apt reinstall apparmor-profiles
8. مقایسه AppArmor و SELinux
ویژگی | AppArmor | SELinux |
---|---|---|
پیچیدگی | ساده و کاربرپسند | پیچیدهتر و دقیقتر |
سطح کنترل دسترسی | مبتنی بر مسیر فایل | مبتنی بر برچسب (Labels) |
کاربرد پیشفرض | Ubuntu, Debian | RHEL, CentOS, Fedora |
مناسب برای | کاربران تازهکار | مدیران سیستم با تجربه بالا |
نتیجهگیری
AppArmor یک ابزار قدرتمند و ساده برای مدیریت امنیت در لینوکس است. این ابزار به شما امکان میدهد تا با تعریف سیاستهای امنیتی دقیق، برنامهها را محدود کنید و از سوءاستفاده احتمالی جلوگیری کنید. استفاده از AppArmor، بهویژه در محیطهای تولیدی و حساس، یک راهکار موثر برای افزایش امنیت سیستم است.
مدیریت دسترسی کاربران در لینوکس با ابزارهای usermod و passwd مقاله
توضیحات کامل
usermod
و passwd
از ابزارهای قدرتمند برای تغییر مشخصات کاربران و مدیریت دسترسی آنها هستند. در این مقاله، به بررسی نحوه استفاده از این ابزارها برای تنظیم دسترسی کاربران میپردازیم.
1. معرفی ابزار usermod
usermod ابزاری است که به مدیران سیستم اجازه میدهد مشخصات و تنظیمات کاربران موجود را تغییر دهند. این تغییرات شامل تنظیم گروهها، تغییر مسیر خانگی (home directory)، تغییر شل (shell) و قفل کردن حساب کاربری است.
1.1. سینتکس کلی:
usermod [OPTIONS] USERNAME
1.2. گزینههای پرکاربرد در usermod
گزینه | توضیح |
---|---|
aG GROUP- |
افزودن کاربر به گروههای اضافی (append to groups). |
d DIR- |
تغییر مسیر دایرکتوری خانگی کاربر. |
l NEW_NAME- |
تغییر نام کاربری. |
L- |
قفل کردن حساب کاربری. |
U- |
باز کردن قفل حساب کاربری. |
s SHELL- |
تغییر شل کاربر. |
e DATE- |
تعیین تاریخ انقضا برای حساب کاربری. |
1.3. مثالهای کاربردی با usermod
افزودن کاربر به گروه اضافی:
فرض کنید کاربری به نام john
دارید و میخواهید او را به گروه sudo
اضافه کنید:
sudo usermod -aG sudo john
تغییر مسیر خانگی کاربر:
برای تغییر مسیر خانگی کاربری به نام john
به /home/newhome
:
sudo usermod -d /home/newhome john
قفل کردن حساب کاربری:
برای قفل کردن حساب کاربری:
sudo usermod -L john
باز کردن قفل حساب کاربری:
برای باز کردن قفل حساب:
sudo usermod -U john
تغییر شل کاربر:
برای تغییر شل پیشفرض کاربری به /bin/bash
:
sudo usermod -s /bin/bash john
تعیین تاریخ انقضا برای حساب کاربری:
اگر بخواهید حساب کاربری تا تاریخ مشخصی معتبر باشد:
sudo usermod -e 2024-12-31 john
2. معرفی ابزار passwd
passwd ابزاری برای مدیریت رمز عبور کاربران و تنظیم سیاستهای مرتبط با رمز عبور است.
2.1. سینتکس کلی:
passwd [OPTIONS] USERNAME
2.2. گزینههای پرکاربرد در passwd
گزینه | توضیح |
---|---|
بدون گزینه | تغییر رمز عبور کاربر فعلی. |
l- |
قفل کردن حساب کاربر. |
u- |
باز کردن قفل حساب کاربر. |
e- |
تعیین زمان انقضای رمز عبور برای اجبار به تغییر رمز. |
n DAYS- |
تعیین حداقل تعداد روزها قبل از امکان تغییر مجدد رمز عبور. |
x DAYS- |
تعیین حداکثر تعداد روزها قبل از اجبار به تغییر رمز عبور. |
w DAYS- |
تنظیم تعداد روزهای هشدار قبل از انقضای رمز عبور. |
2.3. مثالهای کاربردی با passwd
تغییر رمز عبور کاربر فعلی:
برای تغییر رمز عبور کاربر جاری:
passwd
تغییر رمز عبور یک کاربر دیگر:
به عنوان مدیر سیستم:
sudo passwd john
قفل کردن حساب کاربری:
برای قفل کردن حساب یک کاربر:
sudo passwd -l john
باز کردن قفل حساب کاربری:
برای باز کردن قفل حساب:
sudo passwd -u john
تنظیم انقضای رمز عبور:
برای تنظیم رمز عبور به گونهای که کاربر مجبور شود آن را در اولین ورود تغییر دهد:
sudo passwd -e john
تنظیم سیاستهای رمز عبور:
برای تعیین حداکثر تعداد روزهای اعتبار رمز عبور به 90 روز:
sudo passwd -x 90 john
برای تعیین هشدار انقضای رمز 7 روز قبل از انقضا:
sudo passwd -w 7 john
3. ترکیب usermod و passwd برای مدیریت کاربران
مثال: ایجاد یک کاربر با تنظیمات کامل
فرض کنید میخواهید یک کاربر جدید به نام developer
ایجاد کنید و مشخصات زیر را برای او تنظیم کنید:
- عضو گروههای
sudo
وdevelopers
. - مسیر خانگی
/home/devuser
. - شل
/bin/bash
. - رمز عبور تنظیمشده و انقضای 90 روزه.
مراحل:
- ایجاد کاربر:
sudo useradd -m -d /home/devuser -s /bin/bash developer
- افزودن کاربر به گروهها:
sudo usermod -aG sudo,developers developer
- تنظیم رمز عبور:
sudo passwd developer
- تنظیم انقضای رمز عبور:
sudo passwd -x 90 developer
4. نتیجهگیری
ابزارهای usermod
و passwd
نقش مهمی در مدیریت کاربران و تنظیم دسترسی آنها در لینوکس دارند. با استفاده از این ابزارها، مدیران سیستم میتوانند امنیت کاربران را افزایش داده و حسابهای کاربری را بهصورت کارآمد مدیریت کنند.
محدود کردن دسترسی کاربران به منابع سیستم در لینوکس مقاله
توضیحات کامل
پیکربندی Apache و Nginx برای افزایش امنیت مقاله
توضیحات کامل
استفاده از ModSecurity برای پیشگیری از حملات مقاله
توضیحات کامل
امنسازی SSH، FTP و DNS مقاله
توضیحات کامل
1. امنسازی SSH
SSH (Secure Shell) یکی از پرکاربردترین پروتکلها برای مدیریت سرورها است. با تنظیمات مناسب، میتوانید امنیت این سرویس را افزایش دهید.
1.1. تغییر پورت پیشفرض
پورت پیشفرض SSH عدد 22 است و اغلب هدف حملات brute-force قرار میگیرد. با تغییر پورت، میتوانید احتمال این نوع حملات را کاهش دهید.
ویرایش فایل کانفیگ:
sudo nano /etc/ssh/sshd_config
خط زیر را پیدا کرده و مقدار آن را تغییر دهید:
Port 2222
سپس سرویس SSH را مجدداً راهاندازی کنید:
sudo systemctl restart sshd
1.2. استفاده از کلیدهای عمومی-خصوصی
برای افزایش امنیت، از کلیدهای SSH به جای رمز عبور استفاده کنید:
- تولید کلید:
ssh-keygen -t rsa -b 4096
- آپلود کلید به سرور:
ssh-copy-id user@server-ip
1.3. غیرفعال کردن ورود با رمز عبور
برای جلوگیری از حملات brute-force:
ویرایش فایل /etc/ssh/sshd_config
و غیرفعال کردن ورود با رمز:
PasswordAuthentication no
سپس سرویس را مجدداً راهاندازی کنید:
sudo systemctl restart sshd
1.4. محدود کردن دسترسی با فایروال
دسترسی به پورت SSH را به آیپیهای مشخص محدود کنید: برای ufw:
sudo ufw allow from 192.168.1.100 to any port 2222
sudo ufw enable
2. امنسازی FTP
FTP (File Transfer Protocol) معمولاً دادهها را به صورت متنی انتقال میدهد که این امر آن را آسیبپذیر میکند. برای افزایش امنیت میتوانید از موارد زیر استفاده کنید:
2.1. استفاده از SFTP
به جای FTP از SFTP که از پروتکل SSH استفاده میکند بهره بگیرید. این روش رمزگذاری شده و امن است:
- SFTP به صورت پیشفرض در SSH فعال است، بنابراین نیازی به نصب جداگانه نیست.
- برای اتصال به SFTP:
sftp user@server-ip
2.2. محدود کردن دسترسی کاربران
- ایجاد chroot jail برای کاربران FTP تا به سایر فایلها دسترسی نداشته باشند: ویرایش فایل
/etc/ssh/sshd_config
:Subsystem sftp internal-sftp Match User ftpuser ChrootDirectory /home/ftpuser ForceCommand internal-sftp AllowTcpForwarding no
- مجدد راهاندازی SSH:
sudo systemctl restart sshd
2.3. استفاده از FTPS
FTPS نسخه امن FTP است که از TLS برای رمزگذاری استفاده میکند:
- نصب vsftpd:
sudo apt install vsftpd
- فعالسازی TLS در فایل تنظیمات:
sudo nano /etc/vsftpd.conf
خطوط زیر را اضافه یا فعال کنید:
ssl_enable=YES rsa_cert_file=/etc/ssl/certs/vsftpd.pem rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- سرویس را مجدداً راهاندازی کنید:
sudo systemctl restart vsftpd
3. امنسازی DNS
DNS (Domain Name System) یکی از زیرساختهای حیاتی شبکه است. حملاتی مانند DNS Spoofing یا DNS Amplification میتوانند به راحتی از سرورهای DNS ناامن سوءاستفاده کنند.
3.1. استفاده از DNSSEC
DNSSEC یک افزونه امنیتی است که صحت اطلاعات DNS را تضمین میکند:
- بررسی پشتیبانی سرور از DNSSEC.
- فعالسازی DNSSEC در تنظیمات سرویسدهنده DNS (مانند BIND یا Unbound).
3.2. محدود کردن درخواستها
برای جلوگیری از حملات DNS Amplification:
- در BIND، تعداد درخواستهای مجاز را محدود کنید:
ویرایش فایل کانفیگ:rate-limit { responses-per-second 10; window 5; };
3.3. جلوگیری از Recursion ناخواسته
Recursion در سرورهای DNS فقط باید برای کاربران داخلی فعال باشد:
- ویرایش فایل
/etc/bind/named.conf.options
:allow-recursion { 192.168.1.0/24; };
3.4. استفاده از فایروال
دسترسی به پورت 53 (TCP/UDP) را محدود کنید: برای ufw:
sudo ufw allow from 192.168.1.0/24 to any port 53
sudo ufw enable
نتیجهگیری
امنسازی سرویسهای SSH، FTP، و DNS یک فرآیند چندمرحلهای است که شامل استفاده از ابزارهای امنتر (مانند SFTP و DNSSEC)، محدود کردن دسترسیها، و بهکارگیری تنظیمات مناسب میشود. با انجام این مراحل، میتوانید به طور موثری از سرورهای خود در برابر تهدیدات رایج محافظت کنید.
محدود کردن دسترسی SSH با iptables و Fail2Ban مقاله
توضیحات کامل
1. محدود کردن دسترسی SSH با iptables
iptables به شما امکان میدهد قوانین فایروال پیشرفتهای برای مدیریت ترافیک شبکه تنظیم کنید.
1.1. محدود کردن دسترسی به آیپیهای خاص
برای اطمینان از اینکه فقط آیپیهای خاصی به SSH دسترسی دارند:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
این دستور تنها به آیپی 192.168.1.100 اجازه میدهد به پورت 22 (پورت پیشفرض SSH) متصل شود و دیگر آیپیها را مسدود میکند.
1.2. محدود کردن تعداد اتصالات
برای جلوگیری از حملات Brute-Force یا DoS:
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP
- –seconds 60: محدودیت زمانی (در اینجا 60 ثانیه).
- –hitcount 5: حداکثر تعداد تلاشها (در اینجا 5 تلاش در 60 ثانیه).
1.3. ذخیره قوانین iptables
برای ذخیره تغییرات:
sudo iptables-save > /etc/iptables/rules.v4
و برای بازیابی در زمان بوت سیستم:
sudo iptables-restore < /etc/iptables/rules.v4
2. محدود کردن دسترسی SSH با Fail2Ban
Fail2Ban یک ابزار قدرتمند برای شناسایی و مسدود کردن آیپیهایی است که چندین بار تلاش ناموفق برای ورود به SSH یا سایر سرویسها داشتهاند.
2.1. نصب Fail2Ban
در توزیعهای Debian و Ubuntu:
sudo apt update
sudo apt install fail2ban
2.2. پیکربندی Fail2Ban
- فایل پیکربندی محلی Fail2Ban را ایجاد کنید:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- فایل jail.local را ویرایش کنید:
sudo nano /etc/fail2ban/jail.local
تنظیمات بخش SSH:
[sshd] enabled = true port = 22 maxretry = 5 bantime = 3600 findtime = 600
- enabled: فعال کردن حفاظت از SSH.
- port: پورت مورد استفاده (در صورت تغییر پورت SSH، این مقدار را تغییر دهید).
- maxretry: تعداد تلاشهای ناموفق قبل از مسدود شدن.
- bantime: مدت زمان مسدودیت (به ثانیه).
- findtime: مدت زمانی که تلاشها محاسبه میشوند.
- Fail2Ban را راهاندازی مجدد کنید:
sudo systemctl restart fail2ban
2.3. مشاهده وضعیت Fail2Ban
برای مشاهده وضعیت Jailها:
sudo fail2ban-client status
برای مشاهده آیپیهای مسدودشده در بخش SSH:
sudo fail2ban-client status sshd
3. ترکیب iptables و Fail2Ban
Fail2Ban به طور خودکار از iptables برای مسدود کردن آیپیهای مهاجم استفاده میکند. بنابراین، ترکیب این دو ابزار امنیت SSH را به طور قابلتوجهی افزایش میدهد.
3.1. مزایای ترکیب
- iptables به شما امکان میدهد قوانین پایهای برای دسترسی تعیین کنید.
- Fail2Ban روی قوانین پویا تمرکز میکند و رفتارهای مشکوک را مسدود میکند.
4. نکات تکمیلی
- استفاده از پورت غیرپیشفرض SSH: تغییر پورت SSH (مانند 2222) به کاهش احتمال حملات کمک میکند.
- احراز هویت با کلید SSH: استفاده از کلید عمومی-خصوصی به جای رمز عبور، امنیت را بیشتر میکند.
- نظارت بر لاگها: لاگهای مربوط به SSH را به طور منظم بررسی کنید:
sudo tail -f /var/log/auth.log
نتیجهگیری
استفاده از iptables و Fail2Ban به عنوان دو ابزار مکمل میتواند امنیت دسترسی به SSH را به میزان قابل توجهی افزایش دهد. با محدود کردن آیپیها، تنظیم تعداد تلاشها، و استفاده از قوانین پویا، میتوانید از حملات رایج مانند Brute-Force جلوگیری کنید و سرور خود را ایمن نگه دارید.
ابزارهای بررسی آسیبپذیری: Nmap، Nikto، و OpenVAS مقاله
توضیحات کامل
پیکربندی rsyslog و journald برای مدیریت لاگها مقاله
توضیحات کامل
1. rsyslog
معرفی
rsyslog یکی از محبوبترین ابزارهای مدیریت لاگ در لینوکس است که امکان جمعآوری، فیلتر کردن، و ارسال لاگها به مکانهای مختلف (فایل، دیتابیس یا سرورهای راه دور) را فراهم میکند.
نصب و فعالسازی
در بسیاری از توزیعهای لینوکس، rsyslog به صورت پیشفرض نصب شده است. برای نصب در Debian/Ubuntu:
sudo apt update
sudo apt install rsyslog
برای اطمینان از فعال بودن:
sudo systemctl enable rsyslog
sudo systemctl start rsyslog
فایل پیکربندی
فایل اصلی پیکربندی:
/etc/rsyslog.conf
پیکربندی پایه
- تنظیم لاگهای سیستم در فایلهای مشخص: خطوط زیر در فایل پیکربندی تعریف میکنند که هر نوع لاگ در کجا ذخیره شود:
*.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* /var/log/maillog cron.* /var/log/cron *.emerg *
- authpriv.none: از لاگهایی مانند احراز هویت خصوصی صرفنظر میشود.
- *.info: همه لاگهای سطح اطلاعاتی و بالاتر.
- ارسال لاگ به سرور راه دور: برای ارسال لاگها به سرور دیگر:
*.* @@remote-log-server:514
- @@: استفاده از TCP (یک @ به جای دو تا نشاندهنده UDP است).
- 514: پورت پیشفرض syslog.
- پس از تغییرات:
sudo systemctl restart rsyslog
2. journald
معرفی
journald بخشی از systemd است و برای ثبت و مدیریت لاگهای سیستم طراحی شده است. این ابزار امکان ذخیره لاگها در فرمت باینری، جستجوی سریع، و فیلتر کردن لاگها را فراهم میکند.
پیکربندی journald
فایل پیکربندی:
/etc/systemd/journald.conf
- ویرایش فایل پیکربندی: دستور زیر را اجرا کنید:
sudo nano /etc/systemd/journald.conf
مهمترین گزینهها:
[Journal] Storage=persistent Compress=yes SystemMaxUse=1G SystemKeepFree=100M MaxFileSec=1month
- Storage=persistent: ذخیره لاگها به صورت دائمی در دیسک (در حالت پیشفرض، لاگها فقط در حافظه ذخیره میشوند).
- Compress=yes: فشردهسازی لاگها برای کاهش حجم.
- SystemMaxUse=1G: محدود کردن حجم کلی لاگها به 1 گیگابایت.
- SystemKeepFree=100M: اطمینان از وجود حداقل 100 مگابایت فضای خالی.
- MaxFileSec=1month: حفظ لاگها برای حداکثر یک ماه.
- اعمال تغییرات:
sudo systemctl restart systemd-journald
مشاهده لاگها با journald
برای مشاهده لاگهای ثبتشده توسط journald از ابزار journalctl استفاده کنید:
- مشاهده همه لاگها:
journalctl
- مشاهده لاگهای مرتبط با یک سرویس خاص:
journalctl -u sshd.service
- مشاهده لاگهای جدید به صورت لحظهای:
journalctl -f
- جستجوی لاگهای خاص با کلیدواژه:
journalctl | grep "error"
ترکیب rsyslog و journald
اگر از هر دو ابزار استفاده میکنید، میتوانید journald را طوری پیکربندی کنید که لاگها را به rsyslog ارسال کند:
- در فایل
/etc/systemd/journald.conf
، مطمئن شوید که خط زیر فعال باشد:ForwardToSyslog=yes
- سپس rsyslog لاگهای journald را پردازش خواهد کرد.
مقایسه rsyslog و journald
ویژگی | rsyslog | journald |
---|---|---|
نوع ذخیرهسازی | متنی (Text-based) | باینری (Binary) |
ارسال به سرور | پشتیبانی از ارسال به سرورهای راه دور | نیازمند ForwardToSyslog است |
سرعت جستجو | وابسته به ابزار خارجی (مانند grep) | سریع با استفاده از journalctl |
انعطافپذیری | بسیار بالا با قابلیت فیلتر و ارسال | محدودتر نسبت به rsyslog |
نتیجهگیری
هر دو ابزار rsyslog و journald برای مدیریت لاگها بسیار قدرتمند هستند. در حالی که rsyslog برای ذخیرهسازی، فیلتر کردن و ارسال لاگها به سرورهای راه دور مناسبتر است، journald برای جستجو و تحلیل سریع لاگهای سیستم داخلی برتری دارد. ترکیب این دو ابزار میتواند بهترین نتیجه را در مدیریت لاگها فراهم کند.
تجزیه و تحلیل لاگها با logrotate و journalctl مقاله
توضیحات کامل
شناسایی حملات DoS و Brute-Force در لینوکس مقاله
توضیحات کامل
استفاده از IDSها مانند Snort در لینوکس مقاله
توضیحات کامل
1. Snort چیست؟
Snort یک سیستم تشخیص نفوذ (IDS) متنباز است که به منظور نظارت بر ترافیک شبکه و شناسایی حملات به کار میرود. این ابزار میتواند ترافیک شبکه را از نظر الگوهای حمله شبیهسازی شده تحلیل کرده و هشدارهایی را در صورت شناسایی فعالیتهای مشکوک صادر کند. Snort قادر به شناسایی انواع مختلف حملات است، از جمله:
- حملات DoS و DDoS.
- حملات Brute-Force.
- نفوذ به شبکه.
- ویروسها و بدافزارها.
2. نصب و پیکربندی Snort
نصب Snort در لینوکس
برای نصب Snort در توزیعهای مبتنی بر Debian (مانند Ubuntu)، دستور زیر را وارد کنید:
sudo apt update
sudo apt install snort
برای نصب در توزیعهای مبتنی بر Red Hat (مانند CentOS):
sudo yum install snort
پیکربندی اولیه Snort
پس از نصب Snort، باید فایل پیکربندی آن را ویرایش کنید. فایل پیکربندی اصلی Snort در مسیر /etc/snort/snort.conf
قرار دارد. برای تنظیمات اولیه، مراحل زیر را دنبال کنید:
- ویرایش فایل پیکربندی:
sudo nano /etc/snort/snort.conf
- تنظیمات مختلف مانند آدرسهای شبکه، فیلترهای خاص، و مسیرهای فایلهای لاگ را در این فایل انجام دهید.
تنظیم قوانین و الگوها
Snort برای شناسایی حملات از قوانین (Rules) استفاده میکند که به صورت فایلهای متنی ذخیره شدهاند. برای شروع، میتوانید از قوانین پیشفرض Snort استفاده کنید، اما ممکن است نیاز به دانلود قوانین بهروز داشته باشید.
برای دانلود قوانین Snort:
sudo snort -c /etc/snort/snort.conf -T
شروع Snort به عنوان IDS
برای اجرای Snort به عنوان IDS، از دستور زیر استفاده کنید:
sudo snort -A console -c /etc/snort/snort.conf -i eth0
- -A console: برای نمایش هشدارها در کنسول.
- -i eth0: مشخص کردن اینترفیس شبکه برای تحلیل ترافیک (به جای
eth0
نام اینترفیس شبکه خود را وارد کنید).
3. نحوه کارکرد Snort
Snort ترافیک شبکه را بر اساس قوانین تعریفشده بررسی کرده و هرگونه فعالیت مشکوک یا غیرعادی را شناسایی و گزارش میکند. نحوه شناسایی حملات توسط Snort به این صورت است که:
- فیلتر کردن بستههای شبکه: بستهها یا دادههایی که از شبکه عبور میکنند، توسط Snort به صورت آنی بررسی میشوند.
- مقایسه با قوانین تعریفشده: Snort قوانینی دارد که الگوهای مشخص حملات را تعریف میکنند. بستهها با این الگوها مقایسه میشوند.
- صدور هشدار: اگر بستهای مطابقت با یکی از قوانین داشته باشد که یک حمله شبیهسازی شده باشد، Snort هشدار را صادر کرده و آن را در فایل لاگ ذخیره میکند.
نوع هشدارها
- Critical: حملاتی که به شدت خطرناک هستند.
- Warning: حملات یا فعالیتهایی که ممکن است خطرناک باشند.
- Informational: گزارشهای معمولی برای نظارت بر وضعیت شبکه.
4. شناسایی حملات با Snort
Snort میتواند حملات مختلف را شناسایی کند. در اینجا به برخی از انواع حملات و چگونگی شناسایی آنها با Snort اشاره میکنیم:
شناسایی حملات DoS و DDoS
حملات DoS و DDoS به طور عمده با هدف اشباع منابع سیستم یا شبکه انجام میشوند. Snort میتواند ترافیک شبکه را برای شناسایی الگوهایی مانند تعداد زیاد بستههای SYN یا بستههای ICMP پینگ از یک منبع مشخص تجزیه و تحلیل کند.
برای شناسایی حملات DDoS، Snort میتواند حملات با ترافیک زیاد از یک آدرس IP یا شبکه خاص را شناسایی کند.
شناسایی حملات Brute-Force
حملات Brute-Force اغلب به شکل تلاشهای متعدد برای ورود به یک سیستم با استفاده از رمز عبورهای مختلف انجام میشود. Snort میتواند تلاشهای ورود ناموفق متعدد به سرویسهای مانند SSH یا FTP را شناسایی کند.
Snort برای شناسایی این نوع حملات از قوانین خاصی استفاده میکند که هرگونه تلاش متعدد برای ورود را بررسی میکند و گزارش میدهد.
شناسایی دیگر حملات شبکه
- Scans: بررسی شبکه برای شناسایی دستگاهها یا آسیبپذیریها.
- Malware: بدافزارها و تهدیدات دیگر.
- Exploits: تلاش برای بهرهبرداری از آسیبپذیریهای امنیتی.
5. پیکربندی قوانین و الگوهای Snort
دانلود و بهروزرسانی قوانین Snort
برای اطمینان از اینکه Snort قوانین بهروز دارد، میتوانید قوانین را از سایت رسمی یا منابع معتبر دیگری دانلود کنید. برای بهروزرسانی قوانین، دستور زیر را اجرا کنید:
sudo snort -c /etc/snort/snort.conf -T
اضافه کردن قوانین سفارشی
شما میتوانید قوانین سفارشی برای شناسایی حملات خاص بنویسید. این قوانین در فایلهای متنی با فرمت خاص قرار دارند و میتوانند بر اساس نیازهای شما تنظیم شوند.
نمونه قانون برای شناسایی حملات DoS:
alert tcp any any -> any 80 (msg:"DoS Attack detected"; flags:S,12; classtype:attempted-dos; sid:1000001;)
- alert: تولید هشدار.
- msg: پیامی که در صورت شناسایی حمله نمایش داده میشود.
- sid: شناسه منحصر به فرد قانون.
6. گزارشها و تجزیه و تحلیل با Snort
برای تجزیه و تحلیل حملات شناساییشده، Snort گزارشهایی در قالبهای مختلف مانند console، syslog، یا نرمافزارهای مدیریت لاگ تولید میکند. این گزارشها شامل اطلاعات دقیق در مورد حملات، آدرسهای IP مهاجم، نوع حمله و زمان وقوع آن هستند.
برای تجزیه و تحلیل بیشتر میتوان از ابزارهای مدیریت لاگ مانند Splunk یا ELK stack (Elasticsearch, Logstash, Kibana) برای نمایش و تجزیه و تحلیل گزارشهای تولیدشده توسط Snort استفاده کرد.
7. نتیجهگیری
استفاده از Snort به عنوان یک IDS میتواند نقش مهمی در شناسایی و مقابله با حملات شبکه در سیستمهای لینوکسی ایفا کند. این ابزار قادر است حملات متنوعی مانند DoS، DDoS و Brute-Force را شناسایی و گزارش دهد. با پیکربندی صحیح، دانلود قوانین بهروز و تحلیل دقیق لاگها، میتوان از سیستمها و شبکهها در برابر تهدیدات مختلف محافظت کرد.
پیادهسازی ابزارهای مانیتورینگ مانند Nagios و Zabbix مقاله
توضیحات کامل
1. مقایسه کلی Nagios و Zabbix
ویژگی | Nagios | Zabbix |
---|---|---|
معماری | ماژولار، نیازمند افزونهها برای ویژگیهای پیشرفته | یکپارچه و آماده به کار |
پیکربندی | مبتنی بر فایلهای متنی | مبتنی بر رابط وب و پایگاه داده |
مقیاسپذیری | مناسب برای محیطهای کوچکتر | مناسب برای محیطهای متوسط تا بزرگ |
گزارشدهی | محدود به افزونهها | پیشرفته و داخلی |
هر دو ابزار برای مانیتورینگ شبکه، سرورها، برنامهها و سرویسها قابل استفادهاند و انتخاب میان آنها بستگی به نیازها و سطح دانش فنی شما دارد.
2. نصب و راهاندازی Nagios
پیشنیازها
- یک سرور لینوکسی (مانند Ubuntu یا CentOS).
- دسترسی به خط فرمان با سطح دسترسی root.
- نصب Apache، PHP و mailutils.
مراحل نصب در Ubuntu:
2.1 نصب پیشنیازها:
sudo apt update
sudo apt install -y apache2 php libapache2-mod-php build-essential libgd-dev
2.2 دانلود و نصب Nagios Core:
- دانلود نسخه پایدار:
cd /tmp wget https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.4.6.tar.gz tar -xzf nagios-4.4.6.tar.gz cd nagios-4.4.6
- کامپایل و نصب:
./configure make all sudo make install-groups-users sudo make install sudo make install-init sudo make install-config sudo make install-commandmode sudo make install-webconf
2.3 تنظیم Apache:
- ایجاد کاربر مدیریت Nagios:
sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
- سپس Apache را ریاستارت کنید:
sudo systemctl restart apache2
2.4 اجرای Nagios:
- سرویس Nagios را فعال کنید:
sudo systemctl start nagios sudo systemctl enable nagios
- با مراجعه به http://<IP-سرور>/nagios و ورود به سیستم با نام کاربری
nagiosadmin
وارد شوید.
3. نصب و راهاندازی Zabbix
پیشنیازها
- یک سرور لینوکسی.
- نصب MySQL/MariaDB، Apache/Nginx و PHP.
مراحل نصب در Ubuntu:
3.1 نصب مخزن Zabbix:
wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo dpkg -i zabbix-release_6.0-4+ubuntu22.04_all.deb
sudo apt update
3.2 نصب Zabbix Server، رابط وب و Agent:
sudo apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent
3.3 ایجاد پایگاه داده:
- وارد MySQL شوید:
sudo mysql -u root -p
- ایجاد پایگاه داده:
CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON zabbix.* TO 'zabbix'@'localhost'; FLUSH PRIVILEGES;
- وارد کردن ساختار اولیه:
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -u zabbix -p zabbix
3.4 پیکربندی Zabbix Server:
- فایل تنظیمات را ویرایش کنید:
sudo nano /etc/zabbix/zabbix_server.conf
- خط زیر را تغییر دهید:
DBPassword=password
3.5 شروع Zabbix:
<code class="!whitespace-pre hljs language-bash">
sudo systemctl restart zabbix-server zabbix-agent apache2
sudo systemctl enable zabbix-server zabbix-agent apache2
3.6 دسترسی به رابط وب:
- به http://<IP-سرور>/zabbix مراجعه کنید و مراحل نصب را تکمیل کنید.
4. ویژگیها و امکانات اصلی
ویژگیهای Nagios:
- نظارت بر سرورها، سرویسها و تجهیزات شبکه.
- هشدارهای بلادرنگ از طریق ایمیل.
- قابلیت گسترش با افزونههای متعدد.
ویژگیهای Zabbix:
- داشبورد کاربرپسند با نمودارها و گزارشهای پیشرفته.
- قابلیت پیشبینی و تحلیل.
- تنظیمات هشداردهی چندگانه (ایمیل، SMS، و غیره).
- اتوماسیون در نظارت بر منابع جدید.
5. مقایسه عملی برای انتخاب ابزار مناسب
زمانی که Nagios مناسب است:
- شما نیاز به نظارت ساده و سریع دارید.
- تجربه کافی در مدیریت فایلهای متنی و پیکربندی دستی دارید.
- محیط شما کوچک یا متوسط است.
زمانی که Zabbix مناسب است:
- محیط شبکه شما بزرگ و پیچیده است.
- به گزارشها و نمودارهای پیشرفته نیاز دارید.
- خواستار ابزار مدیریتی یکپارچه با رابط گرافیکی هستید.
جمعبندی
هم Nagios و هم Zabbix ابزارهای قدرتمندی برای مانیتورینگ هستند. Nagios سادهتر است و برای شروع سریع مناسب است، در حالی که Zabbix امکانات پیشرفتهتر و مدیریتی جامعتری ارائه میدهد. انتخاب میان این دو به نیازها، اندازه شبکه و سطح تجربه شما بستگی دارد.
برای محیطهای پیچیده و نیاز به گزارشهای پیشرفته، Zabbix توصیه میشود، اما اگر به یک راهحل سبکتر و سادهتر نیاز دارید، Nagios گزینه خوبی است.
پیکربندی iptables و nftables در لینوکس مقاله
توضیحات کامل
1. مقایسه iptables و nftables
iptables:
- قدیمیتر و به خوبی مستندسازی شده.
- مبتنی بر جدولها و زنجیرهها برای مدیریت قوانین.
- برخی محدودیتها در مدیریت محیطهای پیچیده.
nftables:
- جایگزین مدرن برای iptables.
- کارایی بیشتر و پیکربندی سادهتر.
- انعطافپذیرتر برای مدیریت محیطهای پیچیده.
2. نصب ابزارها
نصب iptables:
در اکثر توزیعهای لینوکس، iptables به صورت پیشفرض نصب شده است. اگر نصب نیست، میتوانید از دستور زیر استفاده کنید:
sudo apt install iptables # برای اوبونتو
sudo yum install iptables # برای CentOS
نصب nftables:
nftables معمولاً در توزیعهای جدید لینوکس موجود است:
sudo apt install nftables # برای اوبونتو
sudo yum install nftables # برای CentOS
3. پیکربندی iptables
اصول اولیه:
- جدولها: شامل
filter
(فیلتر کردن)،nat
(ترجمه آدرس شبکه)، و غیره. - زنجیرهها: شامل
INPUT
(ترافیک ورودی)،OUTPUT
(ترافیک خروجی)، وFORWARD
(ترافیک عبوری). - قوانین: تعریف اقدامات (مانند
ACCEPT
،DROP
) بر اساس شرایط.
ایجاد قوانین:
3.1 مسدود کردن یک آدرس IP خاص:
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
3.2 اجازه دسترسی به SSH فقط از یک شبکه خاص:
sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
3.3 فعال کردن NAT برای اشتراکگذاری اینترنت:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
ذخیره قوانین:
برای ذخیره تنظیمات و اعمال آنها در راهاندازی مجدد:
sudo iptables-save > /etc/iptables/rules.v4
4. پیکربندی nftables
اصول اولیه:
- قوانین در قالب مجموعهای از جداول (tables) و زنجیرهها (chains) تعریف میشوند.
- دستورات در یک فایل کانفیگ ذخیره میشوند.
ایجاد قوانین:
4.1 راهاندازی جدول و زنجیرهها:
sudo nft add table ip mytable
sudo nft add chain ip mytable input { type filter hook input priority 0\; }
4.2 مسدود کردن یک آدرس IP:
sudo nft add rule ip mytable input ip saddr 192.168.1.100 drop
4.3 اجازه دسترسی به SSH فقط از یک شبکه خاص:
sudo nft add rule ip mytable input ip saddr 192.168.1.0/24 tcp dport 22 accept
sudo nft add rule ip mytable input tcp dport 22 drop
4.4 فعال کردن NAT:
sudo nft add table ip nat
sudo nft add chain ip nat postrouting { type nat hook postrouting priority 100\; }
sudo nft add rule ip nat postrouting oifname "eth0" masquerade
ذخیره قوانین:
برای ذخیره تنظیمات:
sudo nft list ruleset > /etc/nftables.conf
و برای بارگذاری در راهاندازی مجدد:
sudo systemctl enable nftables
5. بررسی و مدیریت قوانین
با iptables:
- نمایش تمام قوانین:
sudo iptables -L -v
- حذف یک قانون خاص:
sudo iptables -D INPUT -s 192.168.1.100 -j DROP
با nftables:
- نمایش قوانین:
sudo nft list ruleset
- حذف یک قانون:
sudo nft delete rule ip mytable input handle <rule-handle>
6. نکات و بهترین شیوهها
- همزمان از iptables و nftables استفاده نکنید، زیرا میتواند باعث تداخل شود.
- قبل از اعمال تغییرات، همیشه تنظیمات فعلی را ذخیره کنید.
- برای آزمایش قوانین، ابتدا آنها را در حالت LOG تنظیم کنید تا ترافیک بدون تاثیر رصد شود:
sudo iptables -A INPUT -s 192.168.1.100 -j LOG --log-prefix "Blocked IP: "
- برای محیطهای پیچیده، از nftables استفاده کنید، زیرا مدیریت سادهتری دارد.
7. جمعبندی
- iptables و nftables ابزارهای قدرتمندی برای مدیریت فایروال در لینوکس هستند.
- iptables برای کاربران قدیمی و محیطهای ساده مناسب است، در حالی که nftables برای کاربران حرفهای و محیطهای پیچیده توصیه میشود.
- با انتخاب ابزار مناسب و تنظیم دقیق قوانین، میتوانید امنیت شبکه خود را بهبود بخشید
استفاده از UFW برای مدیریت فایروال لینوکس مقاله
توضیحات کامل
راهاندازی VPN با OpenVPN و IPsec مقاله
توضیحات کامل
انتقال امن دادهها با SSH Tunnel مقاله
توضیحات کامل
1. SSH Tunnel چیست؟
SSH Tunnel روشی است برای هدایت ترافیک شبکه از طریق یک اتصال SSH رمزنگاریشده. این روش میتواند برای موارد زیر استفاده شود:
- عبور از فایروالها و NAT.
- دسترسی امن به سرویسهای داخلی.
- محافظت از دادهها در برابر حملات استراق سمع (eavesdropping).
2. انواع SSH Tunnel
- Local Port Forwarding:
هدایت ترافیک از کلاینت به سرور SSH.- مثال: دسترسی به یک سرور داخلی از طریق SSH.
- Remote Port Forwarding:
هدایت ترافیک از سرور SSH به کلاینت.- مثال: دسترسی به سرویسی که پشت NAT قرار دارد.
- Dynamic Port Forwarding:
ایجاد یک پراکسی SOCKS با استفاده از SSH.- مثال: ارسال تمام ترافیک مرورگر از طریق تونل SSH.
3. پیشنیازها
- دسترسی به یک سرور SSH: باید بتوانید با سرور SSH ارتباط برقرار کنید.
- کلاینت SSH: ابزارهایی مانند
ssh
در لینوکس یا PuTTY در ویندوز.
4. ایجاد تونل با Local Port Forwarding
مثال: دسترسی به یک سرویس وب در پشت سرور SSH
فرض کنید سرور SSH به یک سرویس وب داخلی روی پورت 8080 دسترسی دارد. برای هدایت ترافیک از پورت 8080 سیستم محلی:
ssh -L 8080:localhost:8080 user@remote-server
- 8080: پورت محلی برای دسترسی.
- localhost:8080: سرویس هدف روی سرور SSH.
- user@remote-server: اطلاعات ورود به سرور SSH.
تست:
مرورگر خود را باز کنید و به آدرس زیر بروید:
http://localhost:8080
5. ایجاد تونل با Remote Port Forwarding
مثال: دسترسی به یک وبسرور محلی پشت NAT
فرض کنید وبسرور شما روی پورت 8000 سیستم محلی اجرا میشود و میخواهید از طریق سرور SSH به آن دسترسی داشته باشید:
ssh -R 8000:localhost:8000 user@remote-server
- 8000: پورت سرور SSH برای هدایت ترافیک.
- localhost:8000: سرویس وبسرور محلی.
تست:
روی سرور SSH:
http://localhost:8000
6. ایجاد پراکسی با Dynamic Port Forwarding
مثال: ارسال ترافیک مرورگر از طریق تونل SSH
برای ایجاد یک پراکسی SOCKS:
ssh -D 1080 user@remote-server
- 1080: پورت محلی پراکسی.
تنظیم مرورگر:
- به تنظیمات پراکسی مرورگر بروید.
- SOCKS Proxy را فعال کنید.
- آدرس پراکسی را به
localhost
و پورت را به1080
تغییر دهید.
7. نکات امنیتی
- کلیدهای SSH:
برای امنیت بیشتر، به جای رمز عبور از کلیدهای SSH استفاده کنید:ssh-keygen -t rsa ssh-copy-id user@remote-server
- محدود کردن دسترسیها:
در فایل/etc/ssh/sshd_config
تنظیمات زیر را اعمال کنید:AllowTcpForwarding yes GatewayPorts no
- فایروال:
مطمئن شوید پورتهای مورد استفاده برای تونل باز هستند.
8. بررسی لاگها و خطایابی
برای مشاهده خطاها:
ssh -v -L 8080:localhost:8080 user@remote-server
برای مشاهده لاگها روی سرور:
tail -f /var/log/auth.log
جمعبندی
SSH Tunnel یک راهحل قوی برای انتقال امن دادهها است. با استفاده از این روش میتوانید بدون نیاز به ابزارهای پیچیده، امنیت انتقال اطلاعات خود را تضمین کنید. انتخاب نوع تونل بستگی به نیاز شما دارد:
- Local Forwarding: برای دسترسی به سرویسهای داخلی.
- Remote Forwarding: برای دسترسی از راه دور به منابع محلی.
- Dynamic Forwarding: برای ایجاد یک پراکسی امن.
با رعایت نکات امنیتی، میتوانید از قابلیتهای قدرتمند SSH Tunnel بهرهمند شوید
پیکربندی WPA/WPA2 برای امنیت شبکههای بیسیم مقاله
توضیحات کامل
1. پیشنیازها
- مودم یا روتر بیسیم: که از WPA/WPA2 پشتیبانی کند.
- دستگاه کلاینت (کامپیوتر، موبایل): برای اتصال به شبکه.
- دسترسی به رابط مدیریت روتر: (معمولاً از طریق مرورگر وب یا ابزارهای مدیریتی).
2. مقایسه WPA و WPA2
- WPA:
- از پروتکل TKIP (Temporal Key Integrity Protocol) استفاده میکند.
- امنیت نسبتاً کمتری دارد.
- WPA2:
- از پروتکل AES (Advanced Encryption Standard) استفاده میکند.
- امنیت بالاتر و توصیهشده برای اکثر شبکهها.
3. پیکربندی WPA/WPA2 در روتر بیسیم
3.1 دسترسی به تنظیمات روتر
- آدرس IP روتر را در مرورگر وارد کنید (معمولاً
192.168.1.1
یا192.168.0.1
). - با نام کاربری و رمز عبور وارد شوید (اطلاعات پیشفرض معمولاً در پشت دستگاه نوشته شده است).
3.2 تنظیم امنیت بیسیم
- به بخش Wireless Settings یا Wi-Fi Settings بروید.
- تنظیمات Security Mode را روی WPA2-PSK (AES) قرار دهید.
- یک رمز عبور قوی برای شبکه بیسیم خود انتخاب کنید:
- حداقل 12 کاراکتر.
- شامل حروف بزرگ، کوچک، اعداد و کاراکترهای خاص.
- تنظیمات را ذخیره کنید و روتر را مجدداً راهاندازی کنید (در صورت نیاز).
4. پیکربندی WPA/WPA2 در کلاینت
4.1 اتصال در ویندوز:
- به Settings > Network & Internet > Wi-Fi بروید.
- نام شبکه (SSID) خود را انتخاب کنید.
- رمز عبور را وارد کرده و اتصال را تایید کنید.
4.2 اتصال در لینوکس:
- در محیط گرافیکی، به تنظیمات شبکه بروید.
- SSID را انتخاب کرده و رمز عبور را وارد کنید.
4.3 اتصال در موبایل (Android/iOS):
- به بخش Wi-Fi تنظیمات بروید.
- SSID را پیدا کرده و روی آن کلیک کنید.
- رمز عبور را وارد کنید.
5. تنظیمات پیشرفته WPA2
5.1 مخفی کردن SSID
برای جلوگیری از شناسایی شبکه:
- گزینه Hide SSID یا Disable SSID Broadcast را فعال کنید.
- هنگام اتصال کلاینتها باید نام شبکه به صورت دستی وارد شود.
5.2 فیلتر مک آدرس (MAC Filtering)
- لیستی از آدرسهای MAC مجاز برای اتصال به شبکه تعریف کنید.
- این قابلیت در بخش Wireless Security یا Access Control روتر وجود دارد.
5.3 تغییر کانال و پهنای باند
- برای کاهش تداخل و بهبود امنیت، کانال و پهنای باند شبکه را در بخش Wireless Channel تنظیم کنید.
- کانالهای 1، 6، و 11 در باند 2.4 گیگاهرتز کمتر تداخل دارند.
6. نکات امنیتی مهم
- بروزرسانی Firmware روتر:
همیشه جدیدترین نسخه Firmware روتر خود را نصب کنید. - انتخاب رمز عبور قوی:
از رمزهای ساده مانند12345678
یاpassword
استفاده نکنید. - غیرفعال کردن WPS (Wi-Fi Protected Setup):
اگرچه WPS اتصال را آسانتر میکند، اما میتواند یک نقطه ضعف امنیتی باشد. - فعال کردن فایروال داخلی روتر:
برخی روترها دارای فایروال داخلی هستند که باید فعال شود.
7. ابزارهای تست امنیت شبکه بیسیم
- Wireshark: برای تحلیل ترافیک شبکه.
- aircrack-ng: برای آزمایش رمز WPA2.
- NetSpot: برای بررسی پوشش شبکه و تداخل کانالها.
جمعبندی
استفاده از WPA2 با پروتکل AES بهترین گزینه برای ایمنسازی شبکههای بیسیم خانگی و اداری است. با رعایت تنظیمات و نکات امنیتی ذکرشده، میتوانید شبکهای امن و پایدار داشته باشید.
بررسی تنظیمات امنیتی شبکههای بیسیم مقاله
توضیحات کامل
1. انتخاب استاندارد امنیتی مناسب
پروتکلهای رایج:
- WEP (Wired Equivalent Privacy):
- قدیمیترین پروتکل امنیتی؛ امنیت ضعیفی دارد و قابل شکستن است.
- استفاده از آن به شدت توصیه نمیشود.
- WPA (Wi-Fi Protected Access):
- از پروتکل TKIP استفاده میکند.
- امنیت بیشتری نسبت به WEP دارد اما همچنان در برابر حملات پیشرفته آسیبپذیر است.
- WPA2:
- از پروتکل AES برای رمزنگاری استفاده میکند.
- امنترین گزینه برای بیشتر شبکهها است و استفاده از آن توصیه میشود.
- WPA3:
- جدیدترین استاندارد؛ ویژگیهای امنیتی پیشرفتهای مانند رمزنگاری شخصیسازی شده و محافظت در برابر حملات آفلاین دارد.
توصیه:
از WPA2 یا WPA3 برای شبکههای بیسیم خود استفاده کنید.
2. انتخاب رمز عبور قوی
- از رمز عبور پیچیده و حداقل 12 کاراکتری استفاده کنید.
- رمز عبور باید شامل حروف بزرگ و کوچک، اعداد و کاراکترهای خاص باشد.
- از رمزهای پیشفرض روتر به هیچ عنوان استفاده نکنید.
3. مخفی کردن SSID (Service Set Identifier)
SSID نام شبکه بیسیم شماست. با مخفی کردن آن:
- دستگاهها برای اتصال باید نام شبکه را به صورت دستی وارد کنند.
- این روش میتواند از شناسایی شبکه توسط افراد غیرمجاز جلوگیری کند.
توجه: مخفی کردن SSID امنیت کامل را تضمین نمیکند اما لایهای اضافی از امنیت فراهم میآورد.
4. فعال کردن فایروال داخلی روتر
بیشتر روترها دارای فایروال داخلی هستند که میتواند ترافیک ورودی و خروجی را کنترل کند.
- مطمئن شوید فایروال روتر شما فعال است.
- در صورت نیاز قوانین خاصی برای بلاک یا اجازه دسترسی به پورتها تعریف کنید.
5. غیرفعال کردن WPS (Wi-Fi Protected Setup)
- WPS برای آسانتر کردن اتصال دستگاهها به شبکه طراحی شده است.
- با این حال، این ویژگی میتواند یک نقطه ضعف امنیتی باشد.
- در تنظیمات روتر، WPS را غیرفعال کنید.
6. فیلتر کردن آدرسهای MAC
- MAC Address شناسنامهی یکتای هر دستگاه در شبکه است.
- با تنظیم فیلتر MAC، فقط دستگاههای مشخص شده اجازه اتصال به شبکه را خواهند داشت.
محدودیت:
این روش امنیت صددرصدی ندارد زیرا آدرسهای MAC قابل جعل هستند.
7. بروزرسانی Firmware روتر
- Firmware روتر خود را به طور مرتب بروزرسانی کنید.
- نسخههای جدید معمولاً شامل پچهای امنیتی برای رفع آسیبپذیریهای شناختهشده هستند.
8. کنترل دسترسی از راه دور
- قابلیت Remote Management را در تنظیمات روتر غیرفعال کنید.
- در صورت نیاز به مدیریت از راه دور، از VPN یا ابزارهای امن استفاده کنید.
9. تنظیمات پیشرفته امنیتی
9.1 کاهش محدوده سیگنال
- با کاهش قدرت آنتن روتر، محدوده سیگنال Wi-Fi خود را محدود کنید تا به بیرون از محدوده فیزیکی ساختمان نرسد.
9.2 فعالسازی Captive Portal
- اگر شبکه عمومی دارید، Captive Portal میتواند برای احراز هویت کاربران قبل از دسترسی به شبکه استفاده شود.
9.3 استفاده از VPN
- با راهاندازی VPN در شبکه، ترافیک تمام دستگاهها رمزنگاری میشود و امنیت بیشتری ایجاد میشود.
10. نظارت و بررسی دورهای شبکه
10.1 ابزارهای نظارت:
- NetSpot: بررسی محدوده و کیفیت سیگنال.
- Wireshark: مانیتورینگ ترافیک شبکه.
- Fing: شناسایی دستگاههای متصل به شبکه.
10.2 بررسی لاگهای روتر:
- به لاگهای روتر دسترسی پیدا کنید و فعالیتهای مشکوک را بررسی کنید.
- در صورت مشاهده اتصالهای غیرمجاز، رمز عبور شبکه را تغییر دهید.
جمعبندی
امنیت شبکههای بیسیم باید با استفاده از تنظیمات مناسب، رمزگذاری قوی و نظارت مداوم تضمین شود. با پیادهسازی روشهای ذکر شده، میتوانید خطر نفوذ به شبکه خود را به حداقل برسانید و از اطلاعات حساس خود محافظت کنید
ساخت گواهینامههای دیجیتال با OpenSSL مقاله
توضیحات کامل
گام 1: نصب OpenSSL
1.1 بررسی نصب OpenSSL
در اکثر توزیعهای لینوکس، OpenSSL به صورت پیشفرض نصب است. برای اطمینان، دستور زیر را اجرا کنید:
openssl version
1.2 نصب OpenSSL (در صورت نیاز)
- در اوبونتو/دبیان:
sudo apt update sudo apt install openssl
- در سنتاواس/رد هت:
sudo yum install openssl
گام 2: ایجاد یک کلید خصوصی (Private Key)
کلید خصوصی پایهای برای تولید گواهینامه است. برای ایجاد آن از دستور زیر استفاده کنید:
openssl genrsa -out private.key 2048
private.key
: نام فایل کلید خصوصی.2048
: طول کلید (توصیه میشود 2048 یا 4096 استفاده شود).
کلید تولید شده در فایل private.key
ذخیره میشود.
گام 3: ایجاد درخواست امضای گواهینامه (CSR)
برای درخواست گواهینامه از یک Certificate Authority (CA) یا ایجاد گواهینامه خودامضا، باید یک CSR (Certificate Signing Request) ایجاد کنید:
openssl req -new -key private.key -out request.csr
3.1 پر کردن اطلاعات CSR
دستور فوق اطلاعاتی را از شما درخواست میکند:
- Country Name: کد کشور (مثلاً
IR
برای ایران). - State/Province Name: استان (مثلاً
Tehran
). - Locality Name: شهر (مثلاً
Tehran
). - Organization Name: نام سازمان.
- Organizational Unit Name: واحد سازمانی (اختیاری).
- Common Name: دامنه یا نام سرور (مثلاً
example.com
). - Email Address: ایمیل مدیر سرور.
فایل درخواست request.csr
تولید خواهد شد.
گام 4: ایجاد گواهینامه خودامضا (Self-Signed Certificate)
برای ایجاد گواهینامهای که توسط CA امضا نشده و به صورت مستقل استفاده میشود:
openssl x509 -req -days 365 -in request.csr -signkey private.key -out certificate.crt
-req
: مشخص میکند که ورودی یک فایل CSR است.-days 365
: مدت اعتبار گواهینامه (اینجا یک سال).certificate.crt
: نام فایل گواهینامه تولید شده.
گام 5: بررسی گواهینامه
5.1 مشاهده محتویات گواهینامه
برای بررسی جزئیات گواهینامه تولید شده:
openssl x509 -in certificate.crt -text -noout
5.2 بررسی کلید خصوصی
برای اطمینان از صحت کلید خصوصی:
openssl rsa -in private.key -check
گام 6: ایجاد یک CA داخلی برای امضای گواهینامهها
6.1 تولید کلید خصوصی برای CA
openssl genrsa -out ca.key 2048
6.2 ایجاد گواهینامه ریشه CA
openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt
- این گواهینامه ریشه برای امضای گواهینامههای دیگر استفاده میشود.
6.3 امضای گواهینامه با استفاده از CA
openssl x509 -req -in request.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out signed_certificate.crt -days 365 -sha256
CAcreateserial
: فایل شماره سریال گواهینامه ایجاد میکند.signed_certificate.crt
: گواهینامه امضا شده.
گام 7: ترکیب گواهینامهها برای نصب روی سرور
7.1 ترکیب گواهینامه و کلید خصوصی
بعضی سرورها نیاز به ترکیب کلید خصوصی و گواهینامه دارند:
cat certificate.crt private.key > server.pem
7.2 استفاده از گواهینامههای CA
فایلهای زنجیرهای CA (Chain Certificates) باید در سرور تعریف شوند تا مرورگرها به گواهینامه شما اعتماد کنند.
گام 8: استفاده از گواهینامه در سرورهای وب
8.1 Apache
- فایلهای زیر را مشخص کنید:
SSLCertificateFile /path/to/certificate.crt SSLCertificateKeyFile /path/to/private.key SSLCACertificateFile /path/to/ca.crt
8.2 Nginx
- تنظیمات مشابه Apache اما با ساختار
ssl_certificate
وssl_certificate_key
.
نکات امنیتی
- کلید خصوصی را در مکان امنی نگه دارید و از دسترسی غیرمجاز محافظت کنید.
- از گواهینامههای خودامضا فقط در محیطهای آزمایشی استفاده کنید.
- گواهینامههای معتبر را از یک CA شناختهشده مانند Let’s Encrypt دریافت کنید.
جمعبندی
OpenSSL یک ابزار قدرتمند برای تولید و مدیریت گواهینامههای دیجیتال است. با استفاده از مراحل بالا، میتوانید گواهینامههای امن و مطمئنی برای سرورهای خود ایجاد کنید و امنیت ارتباطات خود را تضمین کنید.
تنظیم یک CA داخلی برای مدیریت گواهینامهها مقاله
توضیحات کامل
گام 1: نصب و آمادهسازی OpenSSL
اطمینان حاصل کنید که OpenSSL روی سیستم شما نصب شده است.
نصب OpenSSL
- در دبیان/اوبونتو:
sudo apt update sudo apt install openssl
- در رد هت/سنتاواس:
sudo yum install openssl
بررسی نسخه OpenSSL
openssl version
گام 2: ایجاد فایل ساختار CA
برای راهاندازی CA، به یک دایرکتوری ساختاردهیشده نیاز دارید.
ساخت دایرکتوری CA
mkdir -p ~/myCA/{certs,crl,newcerts,private}
chmod 700 ~/myCA/private
touch ~/myCA/index.txt
echo 1000 > ~/myCA/serial
- certs: برای ذخیره گواهینامهها.
- crl: لیست گواهینامههای باطلشده.
- newcerts: گواهینامههای جدید.
- private: کلید خصوصی CA.
- index.txt: پایگاه داده گواهینامهها.
- serial: شماره سریال گواهینامه.
گام 3: ایجاد کلید خصوصی و گواهینامه ریشه (Root Certificate)
3.1 ایجاد کلید خصوصی CA
openssl genrsa -out ~/myCA/private/ca.key 4096
chmod 600 ~/myCA/private/ca.key
ca.key
: کلید خصوصی CA.- طول کلید 4096 بیت برای امنیت بیشتر انتخاب شده است.
3.2 ایجاد گواهینامه ریشه
openssl req -x509 -new -nodes -key ~/myCA/private/ca.key -sha256 -days 3650 -out ~/myCA/ca.crt
-x509
: تولید یک گواهینامه خودامضا.-days 3650
: اعتبار گواهینامه (10 سال).ca.crt
: فایل گواهینامه ریشه.
پر کردن اطلاعات گواهینامه
اطلاعات زیر را وارد کنید:
- Country Name (مثلاً IR)
- State/Province (مثلاً Tehran)
- Organization Name
- Common Name (مانند “My Internal CA”)
گام 4: تنظیم فایل پیکربندی OpenSSL
فایل پیکربندی OpenSSL را ویرایش کنید. این فایل معمولاً در مسیر /etc/ssl/openssl.cnf
قرار دارد یا میتوانید نسخهای از آن ایجاد کنید.
افزودن تنظیمات CA
بخش زیر را به فایل پیکربندی خود اضافه کنید:
[ ca ]
default_ca = my_ca
[ my_ca ]
dir = ~/myCA
certs = $dir/certs
crl_dir = $dir/crl
new_certs_dir = $dir/newcerts
database = $dir/index.txt
serial = $dir/serial
RANDFILE = $dir/private/.rand
private_key = $dir/private/ca.key
certificate = $dir/ca.crt
default_days = 365
default_md = sha256
policy = my_policy
[ my_policy ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
گام 5: تولید و امضای گواهینامهها
5.1 ایجاد درخواست گواهینامه (CSR)
یک کلید خصوصی و درخواست CSR برای سرور یا کلاینت خود ایجاد کنید:
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr
5.2 امضای گواهینامه با CA داخلی
openssl ca -config /path/to/openssl.cnf -in server.csr -out server.crt -batch
server.crt
: گواهینامه امضا شده توسط CA.-batch
: جلوگیری از پرسش تعاملات دستی.
گام 6: مدیریت گواهینامهها
6.1 مشاهده گواهینامههای صادر شده
فایل index.txt
شامل اطلاعات تمامی گواهینامههای صادر شده است.
6.2 ابطال گواهینامهها
برای ابطال گواهینامه:
openssl ca -config /path/to/openssl.cnf -revoke /path/to/certificate.crt
6.3 تولید لیست CRL (Certificate Revocation List)
openssl ca -config /path/to/openssl.cnf -gencrl -out ~/myCA/crl/crl.pem
گام 7: نصب گواهینامه ریشه در سیستمهای کلاینت
برای اینکه سیستمها و مرورگرها به گواهینامههای صادر شده توسط CA شما اعتماد کنند، باید گواهینامه ریشه (Root Certificate) را نصب کنند.
نصب در لینوکس
sudo cp ~/myCA/ca.crt /usr/local/share/ca-certificates/
sudo update-ca-certificates
نصب در ویندوز
- گواهینامه ریشه را در یک فایل قابل دسترسی قرار دهید.
- روی فایل کلیک راست کرده و گزینه Install Certificate را انتخاب کنید.
- گواهینامه را به Trusted Root Certification Authorities اضافه کنید.
جمعبندی
ایجاد و راهاندازی یک CA داخلی با استفاده از OpenSSL به شما این امکان را میدهد که کنترل کاملی بر گواهینامههای دیجیتال در محیط سازمانی خود داشته باشید. با این روش میتوانید امنیت ارتباطات داخلی را افزایش دهید و از ابزارهای پیشرفته OpenSSL برای مدیریت گواهینامهها بهرهمند شوید.
پیکربندی SSL/TLS برای سرورها مقاله
توضیحات کامل
رفع مشکلات گواهینامهها با ابزارهایی مانند SSL Labs مقاله
توضیحات کامل
1. معرفی SSL Labs
SSL Labs یک ابزار آنلاین رایگان است که توسط Qualys ارائه شده و برای تحلیل تنظیمات SSL/TLS سرورها و گواهینامهها استفاده میشود. این ابزار نمره امنیتی (A+ تا F) به سرور شما اختصاص میدهد و جزئیات دقیقی از مشکلات امنیتی ارائه میکند.
ویژگیهای SSL Labs
- ارزیابی پیکربندی SSL/TLS
- شناسایی نسخههای قدیمی یا ناامن پروتکلها
- بررسی گواهینامهها و زنجیرههای اعتماد
- پیشنهادات برای بهبود امنیت
2. نحوه استفاده از SSL Labs
2.1 بررسی سرور
- به وبسایت SSL Labs مراجعه کنید:
SSL Labs Test - در بخش Test Your Server، نام دامنه خود را وارد کرده و روی Submit کلیک کنید.
- منتظر بمانید تا گزارش کامل تولید شود.
2.2 بررسی نتایج
گزارش شامل بخشهای زیر است:
- Overall Rating: نمره کلی امنیت سرور (A+, A, B و غیره).
- Certificate: وضعیت گواهینامه، اعتبار و زنجیره اعتماد.
- Protocol Support: نسخههای پروتکل SSL/TLS پشتیبانی شده.
- Cipher Suites: الگوریتمهای رمزنگاری پشتیبانی شده.
- Key Exchange: امنیت تبادل کلید.
- Vulnerabilities: آسیبپذیریهای شناخته شده.
3. رفع مشکلات رایج گواهینامهها
3.1 گواهینامه نامعتبر
مشکل: گواهینامه معتبر نیست یا توسط مرورگر به عنوان امن شناخته نمیشود.
علتها:
- گواهینامه توسط یک Certificate Authority (CA) معتبر صادر نشده است.
- دامنه موجود در گواهینامه با نام سرور مطابقت ندارد.
- گواهینامه منقضی شده است.
راهحلها:
- از یک CA معتبر (مانند Let’s Encrypt یا DigiCert) گواهینامه دریافت کنید.
- اطمینان حاصل کنید که Common Name (CN) یا Subject Alternative Names (SAN) شامل دامنه صحیح باشد.
- گواهینامههای منقضی را بهروزرسانی کنید.
3.2 زنجیره اعتماد ناقص
مشکل: مرورگرها نمیتوانند زنجیره کامل گواهینامهها را تأیید کنند.
علتها:
- فایلهای واسط (Intermediate Certificates) نصب نشدهاند.
- CA اصلی به درستی پیکربندی نشده است.
راهحلها:
- فایل گواهینامههای واسط را از CA خود دریافت کنید.
- گواهینامههای واسط را به فایل اصلی گواهینامه اضافه کنید:
cat intermediate.crt >> server.crt
- سرور را مجدداً راهاندازی کنید.
3.3 استفاده از پروتکلهای ناامن
مشکل: سرور از نسخههای قدیمی و ناامن SSL یا TLS (مانند SSLv3 یا TLS 1.0) پشتیبانی میکند.
راهحلها:
- پیکربندی سرور را تغییر دهید تا فقط از نسخههای TLS 1.2 و TLS 1.3 پشتیبانی کند.
- Apache:
SSLProtocol -all +TLSv1.2 +TLSv1.3
- Nginx:
ssl_protocols TLSv1.2 TLSv1.3;
- Apache:
3.4 الگوریتمهای رمزنگاری ضعیف
مشکل: سرور از الگوریتمهای ضعیف یا منسوخ (مانند MD5 یا RC4) استفاده میکند.
راهحلها:
- تنها الگوریتمهای امن را فعال کنید:
- Apache:
SSLCipherSuite HIGH:!aNULL:!MD5
- Nginx:
ssl_ciphers HIGH:!aNULL:!MD5;
- Apache:
3.5 اندازه کلید رمزنگاری ناکافی
مشکل: اندازه کلید کمتر از حد توصیه شده (2048 بیت) است.
راهحل:
- کلید جدید با اندازه حداقل 2048 بیت ایجاد کنید:
openssl genrsa -out server.key 2048
3.6 عدم استفاده از HSTS
مشکل: مرورگرها ممکن است درخواستهای HTTP را به HTTPS تغییر ندهند.
راهحل:
- HSTS را فعال کنید:
- Apache:
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- Nginx:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
- Apache:
3.7 ضعف در Perfect Forward Secrecy (PFS)
مشکل: سرور از الگوریتمهای رمزنگاری که PFS ارائه میدهند، استفاده نمیکند.
راهحل:
- اطمینان حاصل کنید که PFS در الگوریتمها پشتیبانی میشود:
ssl_ciphers EECDH+AESGCM:EDH+AESGCM; ssl_prefer_server_ciphers on;
4. بررسی و بهینهسازی دوباره
پس از رفع مشکلات، دوباره تست SSL Labs را اجرا کنید و اطمینان حاصل کنید که نمره شما A یا A+ است.
جمعبندی
ابزار SSL Labs یکی از بهترین روشها برای شناسایی و رفع مشکلات مربوط به گواهینامههای SSL/TLS است. با بررسی و اصلاح مواردی مانند زنجیره گواهینامهها، پروتکلهای رمزنگاری و تنظیمات امنیتی، میتوانید سرور خود را امنتر کنید و اعتماد کاربران را جلب کنید.
رمزنگاری پارتیشنها با fscrypt و dm-crypt مقاله
توضیحات کامل
1. آشنایی با رمزنگاری پارتیشن
رمزنگاری پارتیشن به فرآیندی گفته میشود که تمام دادههای موجود در یک پارتیشن خاص را با استفاده از الگوریتمهای رمزنگاری بهصورت امن ذخیره میکند. این کار باعث میشود در صورت دسترسی فیزیکی یا سرقت دیسک، دادهها بدون کلید رمزنگاری قابل خواندن نباشند.
2. ابزارهای رمزنگاری پارتیشن در لینوکس
2.1 fscrypt
fscrypt ابزاری برای رمزنگاری سطح فایل در سیستم فایلهای لینوکسی است که با فایلسیستمهای زیر سازگار است:
- ext4
- F2FS
- UBIFS
ویژگیهای fscrypt:
- رمزنگاری در سطح فایل (نه کل دیسک).
- کارایی بالا.
- استفاده از کتابخانه Linux Keyring برای مدیریت کلیدها.
2.2 dm-crypt
dm-crypt یک ماژول کرنل لینوکس برای رمزنگاری کامل دیسک است که اغلب با LUKS (Linux Unified Key Setup) برای مدیریت کلیدها استفاده میشود.
ویژگیهای dm-crypt:
- رمزنگاری کل دیسک یا پارتیشن.
- پشتیبانی از استانداردهای رمزنگاری قوی.
- پشتیبانی از یکپارچگی با ابزارهای مدیریتی مانند cryptsetup.
3. رمزنگاری با fscrypt
3.1 نصب fscrypt
برای استفاده از fscrypt، ابزار آن را نصب کنید:
sudo apt update
sudo apt install fscrypt
3.2 آمادهسازی سیستم فایل
سیستم فایل شما باید از رمزنگاری پشتیبانی کند. برای مثال، در ext4، باید هنگام فرمت کردن پارتیشن، پشتیبانی از رمزنگاری فعال شود:
sudo mkfs.ext4 -O encrypt /dev/sdX
3.3 فعالسازی fscrypt
- ایجاد دایرکتوری رمزنگاری شده:
mkdir ~/encrypted
- پیکربندی fscrypt:
sudo fscrypt setup /mnt
- فعالسازی رمزنگاری برای دایرکتوری:
fscrypt encrypt ~/encrypted
- وارد کردن رمز عبور: fscrypt یک رمز عبور یا کلید برای دایرکتوری رمزنگاری شده ایجاد میکند.
3.4 دسترسی به دادهها
برای دسترسی به دادهها، باید رمز عبور وارد شود:
fscrypt unlock ~/encrypted
4. رمزنگاری با dm-crypt
4.1 نصب cryptsetup
برای استفاده از dm-crypt، باید ابزار cryptsetup نصب شود:
sudo apt update
sudo apt install cryptsetup
4.2 آمادهسازی پارتیشن
- شناسایی پارتیشن موردنظر:
lsblk
- پاکسازی پارتیشن:
sudo wipefs -a /dev/sdX
4.3 رمزنگاری پارتیشن با LUKS
- تنظیم رمزنگاری:
sudo cryptsetup luksFormat /dev/sdX
تأیید کنید و یک رمز عبور قوی وارد کنید.
- باز کردن پارتیشن:
sudo cryptsetup open /dev/sdX encrypted_partition
- فرمت کردن پارتیشن رمزنگاری شده:
sudo mkfs.ext4 /dev/mapper/encrypted_partition
- مونت کردن پارتیشن:
sudo mount /dev/mapper/encrypted_partition /mnt
4.4 بستن پارتیشن رمزنگاری شده
برای بستن پارتیشن و جلوگیری از دسترسی:
sudo umount /mnt
sudo cryptsetup close encrypted_partition
5. مقایسه fscrypt و dm-crypt
ویژگی | fscrypt | dm-crypt |
---|---|---|
سطح رمزنگاری | فایلها و دایرکتوریها | کل دیسک یا پارتیشن |
کارایی | کارایی بالا | کمی کندتر (به دلیل رمزنگاری کامل) |
پیادهسازی | نیازمند فایلسیستم خاص | مستقل از فایلسیستم |
کاربرد | مناسب برای کاربران و سیستمهای کوچک | مناسب برای سرورها و سیستمهای حساس |
6. نکات امنیتی
- از رمزهای عبور قوی و مدیریت کلید مناسب استفاده کنید.
- حتماً از دادههای مهم نسخه پشتیبان تهیه کنید.
- برای دسترسی به دادههای رمزنگاریشده، تنها در زمان نیاز پارتیشنها را باز کنید.
- ابزارهای خود را بهروز نگه دارید تا از آسیبپذیریهای شناختهشده جلوگیری شود.
جمعبندی
استفاده از fscrypt و dm-crypt، هر دو راهحلهای قدرتمندی برای رمزنگاری دادهها در لینوکس ارائه میدهند. اگر نیاز به رمزنگاری در سطح فایل دارید، fscrypt گزینه مناسبی است. اما اگر به امنیت کامل دیسک نیاز دارید، dm-crypt با ترکیب LUKS بهترین انتخاب است. با پیادهسازی این روشها، امنیت دادههای خود را به سطح بالاتری ارتقا دهید.
بررسی سلامت فایل سیستم با fsck مقاله
توضیحات کامل
بررسی امنیت سیستم با chkrootkit و rkhunter مقاله
توضیحات کامل
در این مقاله، به معرفی این دو ابزار، نحوه نصب، کاربرد، و بهترین شیوههای استفاده از آنها میپردازیم.
1. chkrootkit چیست؟
chkrootkit ابزاری متنباز و محبوب برای شناسایی روتکیتها است. این ابزار اسکریپتی است که با بررسی فایلهای سیستمی، کرنل، و تنظیمات مهم سیستم به جستجوی نشانههای وجود روتکیت میپردازد.
ویژگیهای کلیدی chkrootkit:
- بررسی فایلهای باینری سیستم برای تشخیص تغییرات مخرب.
- شناسایی فایلهای مشکوک در دایرکتوریها.
- بررسی ماژولهای مشکوک کرنل.
2. rkhunter چیست؟
rkhunter (مخفف Rootkit Hunter) ابزار دیگری برای شناسایی روتکیتها، بکدورها و دیگر تهدیدات امنیتی است. این ابزار بهطور خاص روی بررسی یکپارچگی فایلها، مجوزها و تنظیمات حیاتی سیستم تمرکز دارد.
ویژگیهای کلیدی rkhunter:
- شناسایی تغییرات در فایلهای حساس.
- بررسی پیکربندیهای نامناسب.
- تحلیل ماژولهای کرنل و تنظیمات شبکه.
3. نصب chkrootkit و rkhunter
3.1 نصب chkrootkit
روی توزیعهای مبتنی بر دبیان (مانند اوبونتو):
sudo apt update
sudo apt install chkrootkit
روی توزیعهای مبتنی بر RHEL (مانند CentOS):
sudo yum install chkrootkit
3.2 نصب rkhunter
روی توزیعهای مبتنی بر دبیان:
sudo apt update
sudo apt install rkhunter
روی توزیعهای مبتنی بر RHEL:
sudo yum install rkhunter
4. استفاده از chkrootkit
4.1 اجرای بررسی اولیه
برای اجرای chkrootkit و بررسی سیستم برای روتکیتها:
sudo chkrootkit
4.2 بررسی یک برنامه خاص
برای بررسی یک فایل یا برنامه خاص:
sudo chkrootkit <file_path>
4.3 تحلیل خروجیها
- INFECTED: نشاندهنده احتمال وجود بدافزار است.
- not infected: نشاندهنده سلامت فایل سیستم است.
5. استفاده از rkhunter
5.1 بروزرسانی پایگاه داده
قبل از استفاده، پایگاه داده rkhunter را بروزرسانی کنید:
sudo rkhunter --update
sudo rkhunter --propupd
5.2 اجرای اسکن کامل
برای اجرای اسکن کامل سیستم:
sudo rkhunter --check
5.3 اجرای بررسی تعاملی
برای بررسی بهصورت تعاملی و تایید دستی:
sudo rkhunter --check --interactive
6. نکات مهم در استفاده از این ابزارها
- بروزرسانی منظم: مطمئن شوید که پایگاه داده ابزارها بهروز است تا بتوانند جدیدترین تهدیدات را شناسایی کنند.
- بروزرسانی chkrootkit معمولاً از طریق بستههای رسمی توزیع انجام میشود.
- برای rkhunter از دستور
--update
استفاده کنید.
- تحلیل دقیق گزارشها: این ابزارها ممکن است هشدارهای نادرست (false positives) ایجاد کنند. گزارشها را دقیقاً بررسی کنید و برای اقدامات بعدی اطمینان حاصل کنید.
- اجرای دورهای: برای جلوگیری از تهدیدات، اسکن سیستم را بهصورت منظم (هفتگی یا ماهانه) اجرا کنید.
- ایمنسازی سیستم: اگر نشانهای از بدافزار یافتید:
- سیستم را ایزوله کنید.
- فایلهای مشکوک را بررسی کنید.
- از بکاپهای سالم بازیابی کنید.
7. تفاوت chkrootkit و rkhunter
ویژگی | chkrootkit | rkhunter |
---|---|---|
شناسایی روتکیتها | بله | بله |
بررسی یکپارچگی فایلها | خیر | بله |
بررسی تنظیمات شبکه | خیر | بله |
بروزرسانی پایگاه داده | نیاز به بروزرسانی دستی ندارد | نیاز به بروزرسانی دستی دارد |
جمعبندی
ابزارهای chkrootkit و rkhunter از ابزارهای ضروری برای مدیران سیستم لینوکس هستند که به شناسایی روتکیتها و تهدیدات امنیتی کمک میکنند. استفاده منظم از این ابزارها و تحلیل دقیق خروجیها میتواند به بهبود امنیت سیستم کمک کند. همچنین، ترکیب این ابزارها با دیگر اقدامات امنیتی (مانند دیوارهای آتش و تنظیمات دسترسی) میتواند به یکپارچگی و امنیت بیشتر سیستم شما منجر شود.
مدیریت auditd برای نظارت بر رویدادها در لینوکس مقاله
توضیحات کامل
در این مقاله، به معرفی auditd، نحوه نصب و پیکربندی، و کاربردهای آن در نظارت بر سیستم میپردازیم.
1. auditd چیست؟
auditd یک سرویس سیستم در لینوکس است که وظیفه جمعآوری، ثبت و ذخیره رویدادهای امنیتی را بر عهده دارد. این ابزار بخشی از Linux Audit Framework است و به شما امکان میدهد سیاستهای نظارت و ثبت لاگهای امنیتی را تنظیم کنید.
2. کاربردهای auditd
- نظارت بر دسترسی فایلها: ثبت دسترسیها به فایلهای حساس مانند
/etc/passwd
. - ردیابی تغییرات: شناسایی تغییرات در فایلهای حیاتی یا تنظیمات سیستم.
- ثبت دستورات اجرایی: ثبت دستورات اجراشده توسط کاربران.
- بررسی فعالیت کاربران: مشاهده لاگینها و دسترسی کاربران.
- تطابق با استانداردهای امنیتی: کمک به تطابق با استانداردهایی مانند PCI DSS یا HIPAA.
3. نصب auditd
3.1 نصب در توزیعهای مبتنی بر دبیان
sudo apt update
sudo apt install auditd audispd-plugins
3.2 نصب در توزیعهای مبتنی بر RHEL
sudo yum install audit
3.3 بررسی وضعیت سرویس
پس از نصب، مطمئن شوید که سرویس فعال است:
sudo systemctl status auditd
4. پیکربندی auditd
4.1 فایل تنظیمات اصلی
فایل تنظیمات اصلی auditd در مسیر زیر قرار دارد:
/etc/audit/auditd.conf
برخی از تنظیمات مهم در این فایل:
- log_file: مسیر فایل لاگ (پیشفرض:
/var/log/audit/audit.log
). - log_format: قالب لاگها (
RAW
یاENRICHED
). - max_log_file: حداکثر حجم لاگ (به مگابایت).
- space_left: آستانه هشدار برای کمبود فضای دیسک.
4.2 ایجاد قوانین نظارت
قوانین نظارت بر سیستم در فایل زیر تعریف میشوند:
/etc/audit/audit.rules
مثالهایی از قوانین:
- نظارت بر تغییرات یک فایل خاص:
-w /etc/passwd -p wa -k passwd_changes
این قانون دسترسیهای write و attribute change را در فایل
/etc/passwd
ثبت میکند. - ثبت دسترسی به یک دایرکتوری:
-w /var/log/ -p rwxa -k log_access
این قانون تمامی عملیات read, write, execute, attribute change را در دایرکتوری
/var/log/
ثبت میکند. - ثبت اجرای دستورات توسط کاربران:
-a always,exit -F arch=b64 -S execve -k exec_commands
5. اجرای auditd و بررسی لاگها
5.1 شروع و توقف سرویس
برای شروع، توقف یا راهاندازی مجدد سرویس:
sudo systemctl start auditd
sudo systemctl stop auditd
sudo systemctl restart auditd
5.2 مشاهده لاگها
لاگهای ثبتشده توسط auditd در فایل زیر ذخیره میشوند:
/var/log/audit/audit.log
برای مشاهده لاگها:
sudo cat /var/log/audit/audit.log
5.3 تحلیل لاگها با ausearch
ausearch یک ابزار خط فرمان برای جستجو در لاگهای auditd است.
- جستجوی رویدادهای مرتبط با یک کلید خاص:
sudo ausearch -k passwd_changes
- جستجوی فعالیتهای یک کاربر:
sudo ausearch -ua <user_id>
6. گزارشگیری با aureport
aureport ابزار دیگری است که برای خلاصهسازی و گزارشگیری از لاگهای auditd استفاده میشود.
6.1 تولید گزارش ورود و خروج کاربران
sudo aureport -l
6.2 تولید گزارش دسترسی به فایلها
sudo aureport -f
6.3 تولید گزارش تغییرات سیاستها
sudo aureport -k
7. نکات کلیدی در استفاده از auditd
- انتخاب قوانین مناسب: تنها رویدادهای مرتبط و ضروری را ثبت کنید تا از پر شدن سریع فضای ذخیرهسازی جلوگیری شود.
- مدیریت فایلهای لاگ: از ابزارهایی مانند
logrotate
برای مدیریت و آرشیو کردن لاگها استفاده کنید. - ایمنسازی لاگها: اطمینان حاصل کنید که دسترسی به فایلهای لاگ محدود به کاربران مجاز باشد.
- بازبینی دورهای: لاگها و گزارشهای تولیدشده را بهصورت دورهای بررسی کنید.
8. جمعبندی
ابزار auditd یکی از موثرترین راهکارها برای نظارت و مدیریت رویدادهای امنیتی در لینوکس است. این ابزار با قابلیتهای پیشرفتهای که ارائه میدهد، به مدیران سیستم امکان میدهد تا فعالیتهای سیستم را به دقت رصد کرده و مشکلات امنیتی را شناسایی کنند. تنظیم قوانین مناسب و تحلیل لاگها میتواند به بهبود امنیت و تطابق با استانداردهای امنیتی کمک کند
مدیریت پارامترهای سیستم با sysctl مقاله
توضیحات کامل
در این مقاله به نحوه استفاده از sysctl برای مدیریت پارامترهای سیستم و کاربردهای عملی آن میپردازیم.
1. sysctl چیست؟
sysctl ابزاری است که به شما امکان مشاهده و تغییر مقادیر پارامترهای هسته لینوکس را میدهد. این پارامترها در فایلهای مجازی موجود در دایرکتوری /proc/sys/ قرار دارند.
به عنوان مثال، پارامترهای مرتبط با شبکه در مسیر زیر ذخیره میشوند:
/proc/sys/net/
2. کاربردهای sysctl
- بهبود امنیت سیستم: محدود کردن رفتارهای بالقوه ناامن مانند پاسخدهی به درخواستهای پینگ.
- بهبود عملکرد شبکه: تنظیم مقادیر مرتبط با بافرها و مدیریت اتصالهای TCP.
- مدیریت منابع سیستم: تغییر محدودیتهای استفاده از حافظه و CPU.
- عیبیابی و پشتیبانی: اعمال تنظیمات خاص برای رفع مشکلات خاص در سیستم.
3. مشاهده پارامترهای sysctl
3.1 مشاهده تمام پارامترها
برای لیست کردن تمام پارامترهای موجود:
sysctl -a
3.2 مشاهده مقدار یک پارامتر خاص
برای مشاهده مقدار فعلی یک پارامتر:
sysctl <parameter_name>
مثال:
sysctl net.ipv4.ip_forward
یا:
cat /proc/sys/net/ipv4/ip_forward
4. تغییر مقادیر پارامترها با sysctl
4.1 تغییر موقت مقادیر
برای تغییر موقت مقادیر (تا زمانی که سیستم ریاستارت نشده):
sysctl -w <parameter_name>=<value>
مثال:
sysctl -w net.ipv4.ip_forward=1
4.2 تغییر دائمی مقادیر
برای اینکه تغییرات دائمی شوند، باید آنها را در فایل تنظیمات sysctl ذخیره کنید:
/etc/sysctl.conf
مثال:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
سپس برای اعمال تنظیمات جدید:
sysctl -p
5. تنظیمات کاربردی با sysctl
5.1 بهبود امنیت شبکه
- غیرفعال کردن پاسخ به درخواستهای Broadcast (پیشگیری از حملات Smurf):
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
تنظیم دائمی:
echo "net.ipv4.icmp_echo_ignore_broadcasts = 1" >> /etc/sysctl.conf
- غیرفعال کردن پاسخدهی به بستههای ICMP Redirect:
sysctl -w net.ipv4.conf.all.accept_redirects=0 sysctl -w net.ipv4.conf.default.accept_redirects=0
- فعال کردن محافظت در برابر حملات SYN Flood:
sysctl -w net.ipv4.tcp_syncookies=1
5.2 بهبود عملکرد شبکه
- افزایش اندازه بافر TCP:
sysctl -w net.ipv4.tcp_rmem="4096 87380 6291456" sysctl -w net.ipv4.tcp_wmem="4096 87380 6291456"
- فعال کردن ارسال بستهها در شبکه (IP Forwarding):
sysctl -w net.ipv4.ip_forward=1
5.3 مدیریت منابع سیستم
- محدود کردن استفاده از حافظه برای کش دیسک:
sysctl -w vm.dirty_ratio=10 sysctl -w vm.dirty_background_ratio=5
- مدیریت تعداد فایلهای باز همزمان:
sysctl -w fs.file-max=2097152
6. بررسی و بازگشت به تنظیمات پیشفرض
6.1 بررسی تغییرات فعلی
برای مشاهده تغییرات اعمالشده:
sysctl -a
6.2 بازگشت به تنظیمات پیشفرض
برای بازگشت به تنظیمات اولیه هسته، سیستم را ریاستارت کنید. همچنین میتوانید فایل /etc/sysctl.conf را ویرایش کرده و مقادیر پیشفرض را بازگردانید.
7. عیبیابی sysctl
- بررسی خطاهای پیکربندی: پس از اعمال تغییرات با sysctl -p، اگر خطایی مشاهده کردید، بررسی کنید که مقادیر پارامترها معتبر باشند.
- بررسی فایلهای لاگ: در صورت بروز مشکل، فایلهای لاگ سیستم مانند /var/log/syslog یا /var/log/messages را بررسی کنید.
جمعبندی
sysctl ابزار قدرتمندی برای مدیریت پارامترهای هسته لینوکس است که میتواند به بهبود امنیت، عملکرد و پایداری سیستم کمک کند. با استفاده صحیح از این ابزار و تنظیمات مناسب، میتوانید سیستم خود را بهینهسازی کنید و از آن در برابر تهدیدات محافظت کنید.
همیشه پیش از تغییر مقادیر پارامترها، تاثیر آنها بر سیستم را بررسی کنید و تنظیمات را به صورت مستند نگه دارید.
کنترل دسترسی به دیسکهای قابل حمل در لینوکس مقاله
توضیحات کامل
۱. دلایل کنترل دسترسی به دیسکهای قابل حمل
- محافظت در برابر بدافزارها: جلوگیری از ورود بدافزارها از طریق USB.
- حفظ حریم خصوصی: جلوگیری از کپیبرداری غیرمجاز از دادهها.
- کنترل اطلاعات خروجی: محدود کردن دسترسی کاربران به انتقال دادهها به دیسکهای خارجی.
- رعایت سیاستهای امنیتی سازمانی: اطمینان از رعایت استانداردهای امنیتی در محیطهای حساس.
۲. روشهای کنترل دسترسی به دیسکهای قابل حمل
۲.۱ غیرفعال کردن دسترسی USB
یکی از روشهای اساسی، غیرفعال کردن پورتهای USB در سطح کرنل یا سیستم است.
غیرفعال کردن ماژول USB Storage
ماژول usb-storage به لینوکس اجازه میدهد دیسکهای قابل حمل را شناسایی کند. با غیرفعال کردن این ماژول، میتوانید دسترسی به دیسکهای USB را مسدود کنید.
برای غیرفعال کردن موقت:
modprobe -r usb-storage
برای غیرفعال کردن دائمی:
- فایل /etc/modprobe.d/blacklist.conf را باز کنید:
sudo nano /etc/modprobe.d/blacklist.conf
- خط زیر را اضافه کنید:
blacklist usb-storage
- سیستم را ریاستارت کنید.
۲.۲ مدیریت دسترسی با udev
udev به شما امکان میدهد قوانین سفارشی برای دستگاههای سختافزاری تعریف کنید.
مسدود کردن تمام دیسکهای USB
- فایل /etc/udev/rules.d/99-usbblock.rules را ایجاد کنید:
sudo nano /etc/udev/rules.d/99-usbblock.rules
- خط زیر را اضافه کنید:
ACTION=="add", SUBSYSTEMS=="usb", ATTR{bInterfaceClass}=="08", ATTR{authorized}="0"
- سرویس udev را ریاستارت کنید:
sudo udevadm control --reload-rules sudo systemctl restart udev
اجازه دادن به دستگاههای خاص
برای اجازه دادن فقط به دیسکهای خاص:
- شناسایی Vendor ID و Product ID دستگاه با دستور زیر:
lsusb
- اضافه کردن قانون مشابه زیر در فایل udev:
ACTION=="add", SUBSYSTEMS=="usb", ATTR{idVendor}=="1234", ATTR{idProduct}=="5678", ATTR{authorized}="1"
۲.۳ استفاده از SELinux یا AppArmor
اگر سیستم شما از SELinux یا AppArmor استفاده میکند، میتوانید پروفایلهایی برای محدود کردن دسترسی به دیسکهای قابل حمل ایجاد کنید.
SELinux
- ایجاد قوانین برای جلوگیری از دسترسی کاربران به فایلهای متصل به USB.
- استفاده از audit2allow برای ایجاد قوانین سفارشی.
AppArmor
- پیدا کردن مسیر ماونت دیسک:
df -h
- ایجاد یک پروفایل محدودکننده برای مسدود کردن دسترسی به این مسیر.
۲.۴ اعمال محدودیت با PAM
PAM (Pluggable Authentication Modules) میتواند برای مسدود کردن دسترسی کاربران به دیسکهای قابل حمل استفاده شود.
- فایل /etc/security/limits.conf را ویرایش کنید:
sudo nano /etc/security/limits.conf
- محدودیتهای زیر را اضافه کنید:
@users - nice -20
یا محدودیتهای مربوط به دسترسی به دیسکها.
۲.۵ استفاده از ابزارهای مدیریت سازمانی
ابزارهایی مانند udevil یا usbguard امکان مدیریت پیشرفتهتر دیسکهای USB را فراهم میکنند.
UsbGuard
- نصب:
sudo apt install usbguard
- فعالسازی سرویس:
sudo systemctl enable usbguard sudo systemctl start usbguard
- پیکربندی:
sudo usbguard generate-policy > /etc/usbguard/rules.conf
۳. مانیتورینگ و شناسایی دستگاهها
برای مشاهده دستگاههای متصل:
lsblk
یا:
dmesg | grep usb
برای مشاهده تاریخچه دستگاههای متصلشده:
journalctl | grep usb
۴. باز کردن دسترسی در شرایط خاص
اگر نیاز است دیسکهای USB فقط در شرایط خاصی فعال شوند:
- تعریف زمانبندی دسترسی با cron.
- استفاده از اسکریپتهای Bash برای فعالسازی و غیرفعالسازی ماژول USB Storage.
۵. نکات امنیتی
- رمزگذاری اطلاعات: اگر نیاز به استفاده از دیسکهای قابل حمل دارید، از ابزارهایی مانند cryptsetup برای رمزگذاری دادهها استفاده کنید.
- مانیتورینگ لاگها: لاگهای سیستم را مرتباً بررسی کنید تا هرگونه دسترسی غیرمجاز شناسایی شود.
- آموزش کاربران: سیاستهای امنیتی و اهمیت مدیریت دیسکهای USB را به کاربران توضیح دهید.
نتیجهگیری
کنترل دسترسی به دیسکهای قابل حمل یکی از گامهای حیاتی برای افزایش امنیت سیستم است. لینوکس ابزارها و روشهای متعددی برای محدود کردن یا مسدود کردن این دسترسیها فراهم میکند. با اعمال تنظیمات مناسب، میتوانید سیستم خود را در برابر تهدیدات ناشی از دستگاههای خارجی محافظت کنید.
پیکربندی تنظیمات برای جلوگیری از دسترسی غیرمجاز در لینوکس مقاله
توضیحات کامل
فعالسازی Secure Boot در لینوکس مقاله
توضیحات کامل
در این مقاله، به نحوه فعالسازی Secure Boot در سیستمهای لینوکس میپردازیم و توضیح خواهیم داد که چگونه این ویژگی امنیتی میتواند به محافظت از سیستم در برابر تهدیدات مختلف کمک کند.
۱. پیشنیازها برای فعالسازی Secure Boot
قبل از اینکه بتوانید Secure Boot را فعال کنید، باید موارد زیر را در نظر داشته باشید:
- UEFI فعال باشد: Secure Boot تنها در سیستمهایی که از UEFI (Unified Extensible Firmware Interface) به جای BIOS استفاده میکنند، فعال است.
- گواهینامه دیجیتال معتبر: سیستمهای لینوکس معمولاً از گواهینامههای امضا شده توسط شرکتهای معتبری مثل Microsoft و Ubuntu برای راهاندازی Secure Boot پشتیبانی میکنند.
۲. نحوه فعالسازی Secure Boot در UEFI
۲.۱ ورود به تنظیمات UEFI/BIOS
برای فعالسازی Secure Boot، ابتدا باید وارد تنظیمات UEFI یا BIOS سیستم شوید. برای این کار، مراحل زیر را دنبال کنید:
- سیستم را ریاستارت کنید.
- هنگام راهاندازی سیستم، کلید مورد نظر برای ورود به BIOS/UEFI را فشار دهید. معمولاً این کلید یکی از کلیدهای F2, F10, Del یا Esc است (بسته به مدل مادربورد شما).
- پس از ورود به UEFI یا BIOS، به تبهای مختلف بروید و گزینههای Boot یا Security را جستجو کنید.
۲.۲ فعالسازی Secure Boot
- در بخش Boot یا Security، گزینهای به نام Secure Boot خواهید دید. این گزینه را پیدا کرده و روی Enabled تنظیم کنید.
- پس از انجام تنظیمات، تغییرات را ذخیره کنید و سیستم را ریاستارت کنید.
۳. نصب و پیکربندی لینوکس با Secure Boot فعال
۳.۱ نصب لینوکس با پشتیبانی از Secure Boot
اگر در حال نصب یک توزیع لینوکس هستید، بیشتر توزیعها مانند Ubuntu, Fedora, و openSUSE به طور پیشفرض از Secure Boot پشتیبانی میکنند. این توزیعها گواهینامههای معتبر را برای تأیید هویت در زمان راهاندازی سیستم استفاده میکنند.
در صورت استفاده از یک توزیع لینوکس که به صورت پیشفرض از Secure Boot پشتیبانی نمیکند، ممکن است نیاز به غیرفعال کردن Secure Boot در تنظیمات UEFI یا BIOS داشته باشید تا نصب به درستی انجام شود.
۳.۲ مدیریت Secure Boot در لینوکس
در صورت نصب لینوکس و استفاده از Secure Boot، لینوکس معمولاً با گواهینامههای خود به طور خودکار همگامسازی میشود. اما در برخی موارد، ممکن است لازم باشد که گواهینامههای مورد نیاز را به صورت دستی وارد کنید.
- بررسی وضعیت Secure Boot: برای بررسی وضعیت Secure Boot در لینوکس، از دستور زیر استفاده کنید:
mokutil --sb-state
اگر این دستور خروجی
SecureBoot enabled
را نشان دهد، به این معنی است که Secure Boot فعال است. - غیرفعال کردن Secure Boot: اگر در هنگام نصب یا استفاده از لینوکس با مشکلاتی مواجه شدید، میتوانید Secure Boot را غیرفعال کنید. برای غیرفعال کردن Secure Boot، دوباره به UEFI/BIOS بروید و آن را روی Disabled تنظیم کنید.
۴. مشکلات مرتبط با Secure Boot
۴.۱ عدم پشتیبانی از درایورهای خاص
یکی از مشکلات رایج هنگام استفاده از Secure Boot در لینوکس، عدم پشتیبانی از برخی درایورها است که گواهینامه دیجیتال معتبر ندارند. در این صورت، سیستم نمیتواند آنها را بارگذاری کند.
۴.۲ نیاز به وارد کردن گواهینامهها
گاهی اوقات نیاز به وارد کردن دستی گواهینامههای خاص (برای درایورها یا کرنلهای خاص) در UEFI دارید. این فرایند میتواند کمی پیچیده باشد، اما معمولاً از طریق ابزارهایی مثل MOK (Machine Owner Key) و mokutil انجام میشود.
نتیجهگیری
فعالسازی Secure Boot یکی از روشهای مؤثر برای افزایش امنیت سیستمهای لینوکس است. با فعالسازی این ویژگی، از بارگذاری نرمافزارهای غیرمجاز و بدافزارها در زمان راهاندازی سیستم جلوگیری میشود. اگرچه ممکن است در برخی موارد نیاز به پیکربندیهای اضافی و وارد کردن گواهینامهها باشد، استفاده از Secure Boot به طور کلی به ارتقاء امنیت سیستم کمک میکند.
تنظیمات GRUB برای جلوگیری از تغییرات بوتلودر مقاله
توضیحات کامل
در این مقاله، نحوه تنظیمات GRUB برای جلوگیری از تغییرات بوتلودر و محافظت از سیستم در برابر دسترسی غیرمجاز به فرایند بوت را توضیح خواهیم داد.
1. اهمیت محافظت از GRUB
بوتلودر GRUB اولین مرحلهای است که پس از روشن شدن سیستم شروع به کار میکند. به همین دلیل، دسترسی به آن میتواند به مهاجمین این امکان را بدهد که سیستم را تحت کنترل بگیرند. بهعنوان مثال، اگر فردی به GRUB دسترسی پیدا کند، میتواند کرنل سیستم را تغییر دهد یا از گزینههای بوت غیرمجاز استفاده کند.
برای جلوگیری از این تهدیدات، تنظیمات خاصی در GRUB وجود دارد که میتواند از تغییرات غیرمجاز جلوگیری کند. این تنظیمات بیشتر به رمزگذاری و کنترل دسترسی به گزینههای بوت مربوط میشوند.
2. تنظیم رمز عبور برای GRUB
اولین قدم برای محافظت از GRUB، تنظیم یک رمز عبور برای جلوگیری از دسترسی غیرمجاز به منوی بوت است. این رمز عبور تنها به کاربران مجاز اجازه میدهد تا گزینههای بوت یا تنظیمات GRUB را تغییر دهند.
2.1. ایجاد فایل رمز عبور برای GRUB
برای تنظیم رمز عبور در GRUB، باید ابتدا یک فایل رمز عبور ایجاد کنید. از دستور grub-mkpasswd-pbkdf2
استفاده میکنیم تا یک رمز عبور امن ایجاد کنیم:
$ grub-mkpasswd-pbkdf2
این دستور از شما میخواهد که یک رمز عبور وارد کنید و سپس یک هش از آن تولید میشود. هش تولید شده را کپی کنید، چرا که به آن نیاز خواهید داشت.
2.2. ویرایش فایل تنظیمات GRUB
فایل تنظیمات GRUB معمولاً در مسیر /etc/grub.d/40_custom
قرار دارد. این فایل را ویرایش کنید تا رمز عبور تولید شده را اضافه کنید:
$ sudo nano /etc/grub.d/40_custom
در انتهای فایل، خط زیر را اضافه کنید:
set superusers="root"
password_pbkdf2 root [password_hash]
در اینجا، root
نام کاربری است که میخواهید به آن دسترسی بدهید، و [password_hash]
باید هش تولید شده در مرحله قبلی باشد.
2.3. آپدیت GRUB
پس از ذخیره تغییرات، باید GRUB را آپدیت کنید تا تغییرات اعمال شوند:
$ sudo update-grub
3. فعالسازی گزینههای امنیتی در GRUB
GRUB به شما امکان میدهد که علاوه بر رمز عبور، از ویژگیهای امنیتی بیشتری برای محافظت استفاده کنید.
3.1. غیرفعال کردن تغییرات از طریق منوی بوت
برای جلوگیری از دسترسی به منوی بوت و تغییرات آن، میتوانید تغییرات خاصی را در تنظیمات GRUB اعمال کنید.
- وارد فایل
/etc/default/grub
شوید:
$ sudo nano /etc/default/grub
- گزینههای زیر را برای محدود کردن دسترسی به منوی بوت اضافه کنید:
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
این تنظیمات باعث میشود که منوی بوت سریعاً مخفی شود و دسترسی به آن فقط در صورتی ممکن باشد که کاربر از پیش رمز عبور را وارد کرده باشد.
3.2. تنظیم فهرست گزینههای بوت به صورت ایمن
برای جلوگیری از بوت کردن سیستمهای غیرمجاز یا تغییر گزینههای بوت، میتوانید فقط به یک گزینه خاص اجازه دهید:
- وارد فایل
/etc/grub.d/40_custom
شوید و تنها گزینهای که میخواهید اجازه دهید تا بوت شود را اضافه کنید. - پس از ویرایش، مجدداً GRUB را آپدیت کنید:
$ sudo update-grub
4. رمزگذاری GRUB برای حفاظت از فایلها
برای حفاظت بیشتر، میتوانید از رمزگذاری برای فایلهای تنظیمات GRUB استفاده کنید. این روش اطمینان میدهد که حتی اگر کسی به فایلهای GRUB دسترسی فیزیکی پیدا کند، نمیتواند آنها را مشاهده یا تغییر دهد.
برای رمزگذاری، از LUKS یا dm-crypt برای رمزگذاری درایو ریشه استفاده کنید. این فرآیند نیاز به پیکربندیهای پیچیدهتری دارد و ممکن است در بعضی از توزیعها از پیش تنظیم شده باشد.
5. سایر اقدامات امنیتی
5.1. غیرفعال کردن دسترسی به حالت تککاربره
یکی از روشهای معمول برای تغییر تنظیمات سیستم، دسترسی به حالت single-user mode است. میتوانید دسترسی به این حالت را غیرفعال کنید تا از تغییرات غیرمجاز جلوگیری شود:
- وارد فایل
/etc/default/grub
شوید:
$ sudo nano /etc/default/grub
- مقدار
GRUB_CMDLINE_LINUX_DEFAULT
را تغییر دهید تا پارامترsingle
را حذف کنید. - مجدداً GRUB را آپدیت کنید:
$ sudo update-grub
5.2. تنظیمات اضافی در UEFI
در صورتی که سیستم شما از UEFI استفاده میکند، میتوانید دسترسی به تنظیمات GRUB را از طریق UEFI تنظیم کنید. این کار میتواند شامل تنظیمات Secure Boot یا استفاده از ویژگیهای دیگر امنیتی UEFI باشد.
نتیجهگیری
پیکربندی GRUB برای جلوگیری از تغییرات غیرمجاز یکی از گامهای مهم در محافظت از سیستمهای لینوکس است. با تنظیم رمز عبور، محدود کردن دسترسی به منوی بوت و اعمال سایر اقدامات امنیتی، میتوان از دسترسی غیرمجاز به بخشهای حساس سیستم جلوگیری کرد. این روشها بهویژه برای سرورها و سیستمهای حساس مهم هستند که نیاز به حفاظت قوی دارند.
پارت 1: معرفی دوره آموزشی امنیت سرورهای لینوکسی ویدئو
توضیحات کامل
آیا امنیت سرورهای لینوکسی شما یک دغدغه است؟ آیا میخواهید از اطلاعات حساس خود در برابر حملات سایبری محافظت کنید؟ این دوره دقیقاً همان چیزی است که به آن نیاز دارید!
در این دوره جامع و کاربردی، از مبانی امنیت لینوکس تا پیشرفتهترین تکنیکها برای محافظت از سرورها و شبکههای لینوکسی، قدم به قدم با شما خواهیم بود.
ویژگیهای برجسته این دوره:
✅ آموزش عملی و کاربردی: شما نهتنها مفاهیم را یاد میگیرید، بلکه با سناریوهای واقعی و ابزارهای قدرتمند مانند SELinux، iptables، OpenVPN، و GPG کار خواهید کرد.
✅ پوشش کامل امنیت: از رمزنگاری پیشرفته و مدیریت دسترسیها گرفته تا امنسازی شبکهها و سرویسها، همه چیز در این دوره گنجانده شده است.
✅ ویژه مدیران سیستم و علاقهمندان حرفهای: این دوره برای کسانی طراحی شده که میخواهند در امنیت لینوکس حرفهای شوند یا سرورهای حیاتی خود را ایمن نگه دارند.
✅ ترفندهای پیشرفته: یاد بگیرید چطور حملات را شناسایی کنید، از لاگها تحلیل کنید و پاسخ سریع به تهدیدات بدهید.
نتیجه چیست؟
🔐 تبدیل به یک متخصص امنیت لینوکس شوید که میتواند از هر سرور لینوکسی مانند یک دژ مستحکم محافظت کند.
✨ پس منتظر چی هستید؟ امنیت را همین امروز شروع کنید! این دوره راهنمایی است که شما را از یک مدیر عادی به یک متخصص امنیت لینوکس تبدیل خواهد کرد. 🌐
پارت 2: آشنایی با انواع سرویس های هاستینگ و همچنین امنیت وب سرورهای لینوکس ویدئو
توضیحات کامل
پارت 3: آشنایی با پیکربندی فایروال در لینوکس ویدئو
توضیحات کامل
پارت 4: آشنایی با پیکربندی فایروال IPtable ویدئو
توضیحات کامل
پارت 5: نصب و پیکربندی آنتی ویروس و آنتی شلر ویدئو
توضیحات کامل
پارت 6: نصب و پیکربندی Mod Security ویدئو
توضیحات کامل
پارت 7: راهکارهای عملی و مناسب جهت جلوگیری از حملات DDOS ویدئو
توضیحات کامل
پارت 8: بررسی ابزار های Anti-Rootkit ویدئو
توضیحات کامل
پارت 9: محدود کردن دسترسی در لینوکس جهت امن سازی پوشه های tmp و var ویدئو
توضیحات کامل
پارت 10: ایمن سازی سرویس دهنده وب Apache/HTTP/HTTPS ویدئو
توضیحات کامل
پارت 11: امنیت پروتکل SSH ویدئو
توضیحات کامل
پارت 12: ایمن سازی سرویس دهنده PHP ویدئو
توضیحات کامل
پارت 13: ایمن سازی BIND/DNS ویدئو
توضیحات کامل
پارت 14: ایمن سازی سرویس SQL ویدئو
توضیحات کامل
پارت 15: ایمن سازی سرویس Mail ویدئو
توضیحات کامل
پارت 16: مانیتورنیگ سرورهای لینوکسی با Zabbix ویدئو
توضیحات کامل
پارت 17: Optimize کردن سرویس دهنده SQL ویدئو
توضیحات کامل
پارت 18: راهکارهای عملی جهت جلوگیری از Bypass شدن سرور ویدئو
توضیحات کامل
پارت 19: جلوگیری از سیمیلینک خوردن و روت شدن سرور ویدئو
توضیحات کامل
پاسخ به سوالات فنی کاربران
پشتیبانی دائمی و در لحظه رایگان
توضیحات کامل
- پرسشهای شما، بخش مهمی از دوره است:
هر سوال یا مشکلی که مطرح کنید، با دقت بررسی شده و پاسخ کامل و کاربردی برای آن ارائه میشود. علاوه بر این، سوالات و پاسخهای شما به دوره اضافه خواهند شد تا برای سایر کاربران نیز مفید باشد. - پشتیبانی دائمی و در لحظه:
تیم ما همواره آماده پاسخگویی به سوالات شماست. هدف ما این است که شما با خیالی آسوده بتوانید مهارتهای خود را به کار بگیرید و پروژههای واقعی را با اعتماد به نفس کامل انجام دهید. - آپدیت دائمی دوره:
این دوره به طور مداوم بهروزرسانی میشود تا همگام با نیازهای جدید و سوالات کاربران تکمیلتر و بهتر گردد. هر نکته جدید یا مشکل رایج، در نسخههای بعدی دوره قرار خواهد گرفت.
حرف آخر
با ما همراه باشید تا نه تنها به مشکلات شما پاسخ دهیم، بلکه در مسیر یادگیری و پیشرفت حرفهای، شما را پشتیبانی کنیم. هدف ما این است که شما به یک متخصص حرفهای و قابلاعتماد تبدیل شوید و بتوانید با اطمینان پروژههای واقعی را بپذیرید و انجام دهید.
📩 اگر سوالی دارید یا به مشکلی برخوردید، همین حالا مطرح کنید!
ما در کوتاهترین زمان ممکن پاسخ شما را ارائه خواهیم داد. 🙌
درخواست مشاوره
برای کسب اطلاعات بیشتر درباره این دوره درخواست مشاوره خود را ارسال کنید و یا با ما در تماس باشید.
درخواست مشاورهدوره های مرتبط
آموزش اسکریپ نویسی سرور های لینوکسی (Bash Scripting)
دوره 100% عملی و کاربردی تدریس شده
ورود به دنیای جذاب لینوکس با دوره جامع آموزشی Linux Essentials
دوره 100% عملی و کاربردی تدریس شده
آموزش پیشرفته نصب و پیکربندی سرویس های امنیتی Tunnelling در Linux
دوره 100% عملی و کاربردی تدریس شده
آموزش مدیریت متمرکز شبکه با Ansible
دوره 100% عملی و کاربردی تدریس شده
امتیاز دانشجویان دوره
نظرات
تنها اشخاصی که این محصول را خریداری کرده اند و وارد سایت شده اند می توانند در مورد این محصول بازبینی ارسال کنند.
۱,۶۹۰,۰۰۰ تومان قیمت اصلی: ۱,۶۹۰,۰۰۰ تومان بود.۵۹۹,۰۰۰ تومانقیمت فعلی: ۵۹۹,۰۰۰ تومان.

mohammad.arshia.mohammad
سلام دوره حدودا چند ساعته ؟