اطلاعیه

بستن
No announcement yet.

20 ترفند برای امنیت سرورهای CentOS - بخش 1

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    20 ترفند برای امنیت سرورهای CentOS - بخش 1

    این مقاله تنها ترفندهای کلی امنیتی را برای لینوکس CentOS 7/8 پوشش میدهد که برای امن کردن سیستم مورد استفاده قرار میگیرد. این ترفندها اکثرا روی انواع سرورهای فیزیکی یا ویرچوال که سرویس های شبکه ای ارائه میدهند مورد استفاده قرار میگیرند. به هر حال بعضی از این ترفندها همچنین میتوانند با موفقیت روی سایر ماشین ها اعمال شوند. مانند دسکتاپ ها، لپ تاپ ها و Raspberry PI (کامپیوترهای تک برد کوچک)


    امنیت سرورهای لینوکس centos








    تجهیزات مورد نیاز

    نصب CentOS 8 Minimal

    نصب CentOS 7 Minimal



    1 - محافظت فیزیکی

    برای اینکه دسترسی به اتاق سرور را محدود کنید از قفل رک و دوربین مدار بسته استفاده کنید. توجه داشته باشید که هر گونه دسترسی فیزیکی به اتاق سرور مسائل جدی امنیتی را برای ماشین شما به همراه میآورد.

    پسورد Bios میتواند با ریست کردن جامپرها روی مادربرد یا به واسطه جدا کردن باطری مادربرد تغییر کند. همچنین یک متجاوز میتواند هارد دیسک و یا هاردهای جدیدی که مستقیما به اینترفیس های مادربرد (SATA, SCSI و غیره) متصل هستند را بدزدد و آن را با یک توزیع لینوکسی Live بوت کند و بدون جاگذاشتن هیچگونه ردی از نرم افزار، از اطلاعات تان کپی یا کلون بگیرد.



    2 - کاهش تاثیرات جاسوسی

    در مواقعی که دیتای بشدت حساسی دارید، شما احتمالا باید از محافظت های فیزیکی پیشرفته همانند قرار دادن و قفل کردن سرورها درون یک قفس Faraday (قفسی که توسط الکتریسته محافظت میشود) و یا استفاده از یک راهکار Tempest نظامی به منظور کاهش تاثیرات جاسوسی سیستم از طریق نشت رادیویی یا الکترونیکی استفاده کنید.



    3 - امنیت BIOS/UEFI

    کار امن کردن سرور خود را با تنظیمات امنیتی BIOS/UEFI شروع کنید. برای BIOS/UEFI یک پسورد تعریف کنید و به منظور جلوگیری از تغییر تنظیمات بایوس سیستم و یا تغییر اولویت بوت و همچنین بوت کردن ماشین از طریق یک مدیای دیگر توسط هر کاربر غیرمجازی، دیوایس های بوت مدیا مانند CD/DVD و USB را غیرفعال کنید.

    به منظور اعمال این نوع تغییرات روی ماشین خود نیاز دارید که دفترچه مادربرد خود را برای دستور العمل های مورد نظر بررسی و مطالعه کنید.



    4 - امن کردن Boot Loader

    به منظور جلوگیری از دستکاری ترتیب اولویت بوت Kernel یا Run Level ها و همچنین ویرایش پارامترهای کرنل یا بردن سیستم به مد Single User به منظور صدمه زدن به سرور و همچنین ریست کردن پسورد root برای دستیابی به سطح دسترسی به منظور کنترل سیستم توسط کاربران مخرب، باید یک پسورد برای گراب تعریف کنیم.



    5 - استفاده از پارتیشن های مجزا

    هنگامیکه CentOS را روی سیستم عملیاتی نصب میکنید از پارتیشن های مجزا و یا حتی هارد دیسک های مجزا برای بخش های زیر از سیستم استفاده کنید.
    کد PHP:
    /(root)
    /
    boot
    /home
    /tmp
    /var 


    6 - به منظور Redundancy و رشد فایل سیستم از LVM و RAID استفاده کنید

    پارتیشن /var مکانیست که log ها روی دیسک نوشته میشود. این بخش از سیستم میتواند در حد غیرمنتظره ای در سرورهایی با ترافیک بالا که سرویس های شبکه ای ارائه میدهند مانند وب سرور و یا فایل سرورها فضای زیادی را اشغال کنند.

    بنابراین از یک پارتیشن بزرگ برای /var استفاده کنید و یا حتی این پارتیشن را با استفاده از LVM یا ترکیب چندین دیسک فیزیکی به یک Raid مجازی بزرگتر (RAID 0) برای نگهداری حجم زیادی از دیتا تعریف کنید.

    برای سرورهای اطلاعاتی امور مربوط به اعمال Redandancy (نسخه پشتیبان) را با استفاده از لایه LVM روی لایه Raid 1 پیاده سازی کنید.

    برای تعریف LVM یا Raid روی دیسک مقالات زیر را دنبال کنید.

    پارتیشن بندی هارد دیسک با LVM در لینوکس

    ایجاد RAID 1 با استفاده از 2 دیسک در لینوکس (به زودی)



    7 - تغییر گزینه های Fstab برای امن کردن پارتیشن های دیتا

    پارتیشن های مربوط به ذخیره اطلاعات را مجزا کنید و از اجرا کردن برنامه ها و مدیاهای مربوط به فایل مانند فلش و یا تعریف setuid bit روی این نوع از پارتیشن ها جلوگیری کنید و گزینه زیر را به فایل fstab همانطور که مشاهده میکنید اضافه کنید.
    کد PHP:
    /dev/sda5 /nas ext4 defaults,nosuid,nodev,noexec 1 2 
    برای جلوگیری از اجرای اسکریپت های مخرب و افزایش دهنده سطوح دسترسی، یک پارتیشن مجزا برای /tmp ایجاد کنید و آنرا با عنوان nosuid ،nodev و noexec مانت کنید.
    کد PHP:
    /dev/sda6 /tmp ext4 defaults,nosuid,nodev,noexec 0 0 


    8 - رمزنگاری هارد دیسک در block level با استفاده از LUKS

    به منظور محافظت از اطلاعات حساس در شرایط دسترسی فیزیکی به هارد سیستم من به شما پیشنهاد میکنم که نحوه رمزنگاری دیسک را با مطالعه مقاله زیر آموزش دیده و مورد استفاده قرار دهید.

    رمزگذاری داده های هارد دیسک لینوکس با استفاده از LUKS



    9 - استفاده از Cryptography (رمزنگاری) با استفاده از PGP و Public-Key

    به منظور رمزنگاری دیسک با استفاده از شیوه رمزنگاری PGP و Public-Key یا دستور OpenSSL برای encrypt و decrypt فایل های حساس با یک پسورد همانند مقاله زیر پیش ببرید.

    رمزنگاری اطلاعات سیستم با استفاده از Parted و SSM (به زودی)



    10 - تنها حداقل پکیج های مورد نیاز را نصب کنید

    از نصب برنامه یا سرویس های غیرمهم و غیرضروری جلوگیری کنید تا جلوی نفوذ پذیری پکیج ها را بگیرید. این امر میتواند ریسک اینکه به واسطه به خطر افتادن بخشی از نرم افزار، ممکن است منجر به نفوذ پذیری سایر اپلیکیشن ها یا بخش های از سیستم و یا حتی فایل سیستم و در نهایت منجر به از دست دادن دیتا و یا جاسوسی اطلاعات شود، را افزایش دهد.



    11 - آپدیت منظم سیستم

    به صورت مرتب سیستم را آپدیت کنید. کرنل لینوکس را با آخرین پچ های امنیتی به روز نگهدارید. همچنین همه نرم افزارهای نصب شده را با آخرین ورژن های موجود و توسط دستور زیر آپدیت کنید.
    کد PHP:
    # yum update 


    12 - غیر فعال کردن Ctrl+Alt+Del

    به منظور جلوگیری از اینکه کاربران به محض دسترسی فیزیکی به یک کیبرد یا از طریق یک کنسول ریموت نرم افزاری یا از طریق کنسول مجازی (KVM واسط نرم افزاری مجازی) بخواهند سرور را ریبوت کنند، شما باید رشته کلیدهای Ctrl+Alt+Del را با اجرای دستور زیر غیر فعال کنید.
    کد PHP:
    # systemctl mask ctrl-alt-del.target 


    13 - حذف پکیج های نرم افزاری غیرضروری

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

    پکیج های نصب شده را با استفاده از یکی از دستورهای زیر بررسی کنید.
    کد PHP:
    # rpm -qa 
    با استفاده از دستور زیر لیستی از پکیج های نصب شده را مشاهده کنید.
    کد PHP:
    # yum list installed >> installed.txt 
    پکیج های غیر مفید را بررسی و لیست کنید و با استفاده از دستور زیر آنها را حذف کنید.
    کد PHP:
    # yum remove package_name 


    14 - Reset سرویس های Systemd بعد از آپدیت پکیج ها

    نمونه دستور زیر را برای ریست کردن یک سرویس systemd به منظور اعمال آپدیت های جدید اجرا کنید.
    کد PHP:
    # systemctl restart httpd.service 


    15 - سرویس های غیر ضروری را حذف کنید

    سرویس هایی که روی پورت های خاص در حال listen هستند را با استفاده از دستور ss زیر شناسایی کنید.
    کد PHP:
    # ss -tulpn 
    برای لیست کردن همه سرویس های نصب شده به همراه وضعیت خروجی آنها دستور زیر را اجرا کنید.
    کد PHP:
    # systemctl list-units -t service 
    برای مثال، نصب CentOS Minimal به صورت پیش فرض سرویس postfix را به همراه دارد که روی پورت 25 اجرا میشود. در صورتیکه سرور شما به عنوان یک میل سرور استفاده نخواهد شد سرویس postfix را حذف کنید.
    کد PHP:
    # yum remove postfix 


    16 - اطلاعات انتقالی را رمز نگاری کنید

    از پروتکل نا امن برای دسترسی ریموت و یا انتقال فایل مانند Telnet ،FTP یا سایر پروتکل های متن ساده (Plain Text) همانند SMTP ،HTTP ،NFS یا SMB استفاده نکنید که به صورت پیش فرض مراحل احراز هویت یا انتقال دیتا را رمز نگاری نمیکند.

    برای انتقال فایل تنها از scp و sftp و همچنین برای ارتباط ریموت به کنسول یا دسترسی گرافیکی از SSH یا VNC روی بستر تانل های SSH استفاده کنید.

    به منظور برقراری یک تانل برای کنسول VNC از طریق SSH دستور زیر را استفاده کنید که پورت VNC شماره 5901 را از ماشین ریموت به کامپیوتر شما فوروارد میکند.
    کد PHP:
    # ssh -L 5902:localhost:5901 remote_machine 
    روی ماشین لوکال خود، دستور زیر را به منظور ارتباط مجازی به دستگاه ریموت اجرا کنید.
    کد PHP:
    # vncviewer localhost:5902 


    17 - اسکن پورت های شبکه

    شما میتوانید با استفاده از ابزار Nmap از یک سیستم ریموت روی LAN پورت های اکسترنال را بررسی کنید. این نوع از اسکن را میتوان برای بررسی نفوذ پذیری شبکه یا تست رول های (قوانین) فایروال استفاده کرد.
    کد PHP:
    # nmap -sT -O 192.168.1.10 
    همچنین توصیه میشود مطالعه کنید :

    نحوه استفاده از دستور Nmap (اسکنر امنیتی شبکه) در لینوکس



    18 - فیلتر کردن پکت ها در فایروال

    از ابزار Firewalld برای محافظت از پورت های سیستم (پورت های مختص سرویس ها، چه باز باشند یا بسته) خصوصا پورت های ناشناخته (بالای 1024) استفاده کنید.

    رول های فایروال را با اجرای دستور زیر install، start، enable و list کنید.
    کد PHP:
    # yum install firewalld
    # systemctl start firewalld.service
    # systemctl enable firewalld.service
    # firewall-cmd --list-all 


    19 - بررسی پکت های پروتکل با استفاده از Tcpdump

    به منظور sniff کردن پکت های شبکه به صورت لوکال و بررسی محتوای هر گونه ترافیک مشکوک از ابزار tcpdump استفاده کنید. که میتواند پورت های مبداء و مقصد، پروتکل های TCP/IP، ترافیک لایه 2، درخواست های ARP غیر معمولی را بررسی کند.

    برای یک تحلیل بهتر از فایل کپچر شده tcpdump ابزار پیشرفته تری مانند وایرشارک استفاده کنید.
    کد PHP:
    # tcpdump -i eno16777736 -w tcpdump.pcap 


    20 - از حملات DNS جلوگیری کنید

    فایل /etc/resolve.conf را بررسی کنید که آدرس IP مربوط به DNS سرورها را در آن تعریف شده باشد که برای نام سرورها از این آدرس ها کوئری (درخواست) گرفته میشود. به منظور جلوگیری از حملات man-in-the-middle، ترافیک غیرضروری برای سرورهای DNS و همچنین جلوگیری از Spoof یا ایجاد یک حمله DOS لازم است محتوای resolver خود را بررسی و بازبینی کنید.


    همچنین توصیه میشود مطالعه کنید :

    5 نمونه از بهترین روش ها برای امنیت و نگهداری سرورهای لینوکس

    فعال کردن احراز هویت دو مرحله ای هنگام لاگین SSH (توسط Google Authenticator)

    چگونه امنیت سیستم عامل لینوکس خود را برقرار کنیم

    ارسال ایمیل هشدار برای ادمین سیستم ها هنگام ssh کردن با یوزر root

    غیرفعال یا فعال کردن دسترسی login یوزر root به SSH

    نمایش بنر هنگام SSH برای محافظت کردن از سرورهای لینوکس

    آموزش SSH کردن بدون پسورد با استفاده از public key در لینوکس

    نحوه مقابله با باج افزار ها

    امنیت سرورهای CentOS 7/8 - بخش دوم (به زودی)

    موارد مطرح شده تنها بخش اول بودند. در بخش بعدی ما درباره سایر ترفندهای امنیتی در CentOS 7/8 بحث خواهیم کرد.
    آخرین ویرایش توسط constantine; در تاریخ/ساعت 02-22-2021, 02:48 PM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X