راهنمای پیشرفته راه‌اندازی CSF و UFW در CentOS و Ubuntu

آموزش فایروال لینوکس

فهرست مطالب

چکیده (Abstract)

در این مقاله پیشرفته، با تمرکز بر راه‌ اندازی CSF و UFW در توزیع‌های پرکاربرد CentOS و Ubuntu، چگونگی نصب، پیکربندی و بهینه‌سازی دیوار آتش (Firewall) را به‌صورت گام‌به‌گام تشریح می‌کنیم. از مباحث اولیه پیش‌نیازها و تفاوت‌های CSF و UFW تا سناریوهای عملی، بهترین شیوه‌ها و خودکارسازی با اسکریپت و Ansible را پوشش می‌دهیم. همچنین نکات امنیتی و روش‌های تشخیص و رفع مشکلات رایج در دیواره آتش توضیح داده می‌شود. این راهنما به مدیران سیستم و مهندسان DevOps کمک می‌کند تا با استفاده از ابزارهای متن‌ باز، زیرساخت خود را در برابر تهدیدات مدرن محافظت کنند.

فهرست مطالب

  1. مقدمه
  2. آشنایی با CSF و UFW
  3. مزایا و مقایسه CSF و UFW
  4. پیش‌نیازها و آماده‌سازی محیط
  5. نصب و پیکربندی CSF در CentOS
  6. نصب و پیکربندی UFW در Ubuntu
  7. سناریوهای عملی: تنظیم قوانین دسترسی
  8. بهترین شیوه‌ها و بهینه‌سازی دیوار آتش
  9. حل مشکلات رایج CSF و UFW
  10. خودکارسازی مدیریت فایروال با اسکریپت و Ansible
  11. معرفی خدمات درفک IT و مشاوره امنیتی
  12. جمع‌بندی
  13. سوالات متداول

1. مقدمه

در دنیای امروز، تعریف و پیاده‌سازی دیوار آتش (Firewall) یکی از واجبات هر زیرساخت شبکه و سرور به‌ شمار می‌آید. بدون کنترل دقیق ترافیک ورودی و خروجی، خطر نفوذ، بدافزارها یا حملات سایبری مانند DDoS، Brute-Force و اسکن درگاه‌ها بر بستر اینترنت، سرور شما را در معرض تهدید قرار می‌دهد. در این میان دو ابزار متن‌ باز و محبوب به‌نام‌های ConfigServer Security & Firewall (CSF) و Uncomplicated Firewall (UFW) جایگاه ویژه‌ای یافته‌اند.

CSF با توجه به امکانات پیشرفته نظیر Rate-Limiting، تشخیص حملات Brute-Force و ادغام با سرویس‌های ایمیل و کنترل پنل‌، به‌ویژه در CentOS محبوبیت دارد. در نقطه مقابل، UFW به‌خاطر سادگی نصب و پیکربندی و ادغام نیتیو با Ubuntu، برای شروع سریع مدیران تازه‌کار و تیم‌های DevOps انتخاب مناسبی است.

هدف این مقاله، ارائه یک راهنمای پیشرفته است که نه تنها مراحل نصب و پیکربندی را شرح دهد، بلکه بهترین شیوه‌ها، روش‌های خودکارسازی، نکات امنیتی و مثال‌های واقعی را نیز پوشش دهد. در پایان با اسکریپت‌ها و Playbookهای Ansible نمونه، مدیریت متمرکز و سریع فایروال را تجربه خواهید کرد.

2. آشنایی با CSF و UFW

2.1 معرفی CSF

ConfigServer Security & Firewall یا به‌اختصار CSF، یک بسته نرم‌افزاری متن‌ باز است که به‌صورت Agent-Based بر روی سرور نصب و راه‌اندازی می‌شود. این دیوار آتش امکانات زیر را در اختیار شما می‌گذارد:

  • فیلتر پیشرفته IP با iptables
  • تشخیص حملات Brute-Force و Rate-Limiting
  • پشتیبانی از Whitelist/Blacklist
  • ادغام با کنترل پنل‌های cPanel, DirectAdmin, Plesk
  • سیستم Alert داخلی برای اطلاع‌رسانی ایمیلی

2.2 معرفی UFW

Uncomplicated Firewall یا UFW، یک ابزار ساده و ردهت‌شده برای دیوار آتش لینوکس است که بر پایه iptables پیاده‌سازی شده. مهم‌ترین ویژگی‌های UFW عبارت‌اند از:

  • نصب و راه‌اندازی سریع با یک دستور
  • دستورات ساده ufw allow/deny
  • پشتیبانی از IPv4 و IPv6
  • امکان تعریف قواعد پیش‌فرض (Default)
  • ادغام با ufw-log برای مشاهده لاگ‌ها

3. مزایا و مقایسه CSF و UFW

ویژگیCSFUFW
پیچیدگی پیکربندیپیشرفته، نیازمند فایل‌های تنظیمی متعددساده، دستورات کم و گویا
امکانات ضد Brute-Forceداردندارد (نیاز به اسکریپت‌های خارجی)
ادغام با کنترل پنلبومی با cPanel, DirectAdmin, Pleskنیاز به تنظیم دستی
مدیریت Whitelist/IPگرافیکی و متنیمتنی و خط فرمان
یادگیری و مستندسازیجامع اما طولانیکوتاه و سریع

از منظر امنیت سرور، CSF به‌دلیل امکانات بیشتر در حفاظت و گزارش‌دهی؛ برای محیط‌های سازمانی و سرورهای پرمخاطب توصیه می‌شود. اما UFW برای سرورهای سبک و نیازمند پیکربندی سریع و ابتدایی مناسب است.

4. پیش‌نیازها و آماده‌سازی محیط

4.1 سخت‌افزار و منابع

  • حداقل 1 گیگابایت رم برای سرور سبک تا متوسط
  • 1 هسته CPU (برای سرورهای پر بار، بیش از 2 هسته توصیه می‌شود)
  • فضای دیسک کافی برای لاگ‌ها (حداقل 100 مگابایت)

4.2 سیستم‌عامل

  • CentOS 7.x یا بالاتر (۸ توصیه می‌شود)
  • Ubuntu 18.04 LTS یا بالاتر

4.3 کاربر و دسترسی

  • دسترسی root یا کاربر با sudo
  • اتصال SSH امن با کلید عمومی

4.4 بروزرسانی بسته‌ها

# CentOS
yum update -y

# Ubuntu
apt update && apt upgrade -y

قبل از نصب CSF یا UFW، همیشه از به‌روز بودن پکیج‌ها اطمینان حاصل کنید تا از تداخل نسخه‌ها جلوگیری شود.

5. نصب و پیکربندی CSF در CentOS

5.1 دانلود و نصب

cd /usr/src
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh

5.2 بررسی پیش‌نیازهای CSF

perl /usr/local/csf/bin/csftest.pl

اگر همه تست‌ها با موفقیت انجام شود، به صفحه‌ی تنظیمات در /etc/csf/csf.conf بروید.

5.3 تنظیمات اولیه

فایل /etc/csf/csf.conf را باز کنید و مقادیر زیر را به‌دلخواه تغییر دهید:

# فعال کردن CSF
TESTING = "0"

# شماره پورت SSH
TCP_IN = "22,80,443"

# تنظیم Whitelist
csf.allow
# مواردی مثل:
# tcp|in|d=22|s=1.2.3.4

5.4 فعال‌سازی و سرویس‌دهی

LF_SSHD = "5"
LF_SSHD_PERM = "1"

با این کار، پس از ۵ تلاش ناموفق SSH از یک آی‌پی، مسدودسازی دائمی برقرار می‌شود.

6. نصب و پیکربندی UFW در Ubuntu

6.1 نصب UFW

apt install ufw -y

6.2 تنظیم قواعد پایه

# فعال کردن ورود SSH
ufw allow ssh

# فعال کردن HTTP/HTTPS
ufw allow 80/tcp
ufw allow 443/tcp

# بررسی قوانین
ufw status verbose

6.3 پیکربندی قواعد پیش‌فرض

ufw default deny incoming
ufw default allow outgoing

6.4 فعال‌سازی UFW

ufw enable

6.5 لاگ‌ گیری و عیب‌یابی

ufw logging on
grep UFW /var/log/ufw.log

از ابزار tail -f /var/log/ufw.log برای مشاهده زنده لاگ‌ها بهره ببرید.

7. سناریوهای عملی: تنظیم قوانین دسترسی

7.1 محدودسازی دسترسی SSH

  • تغییر پورت SSH از ۲۲ به عدد غیر استاندارد مثل ۵۵۵۵
  • مسدودسازی آی‌پی خارج از محدوده سازمان
  • مثال در CSF:
TCP_IN = "5555,80,443"
csf.allow:
tcp|in|d=5555|s=10.0.0.0/24

مثال در UFW:

ufw allow from 10.0.0.0/24 to any port 5555 proto tcp
ufw delete allow ssh

7.2 تعریف گروه‌های IP

در CSF می‌توانید در csf.allow و csf.deny به‌صورت گروهی آی‌پی اضافه کنید. برای UFW از ipsets استفاده نمایید.

7.3 جلوگیری از حمله DDoS

  • تنظیم Rate-Limiting در CSF با پارامترهای LF_*
  • در UFW با ماژول ufw limit
ufw limit ssh/tcp comment "Limit SSH brute-force"

8. بهترین شیوه‌ها و بهینه‌سازی دیوار آتش

  1. تنظیم دقیق Default Policy: همیشه پیش‌فرض ورودی را Deny و خروجی را Allow قرار دهید.
  2. تفکیک قوانین براساس سرویس: قواعد HTTP، DNS، SMTP و غیره را در فایل مجزا نگه دارید.
  3. نیم‌فاصله‌گذاری استاندارد: برچسب‌گذاری لاگ‌ها و مستندسازی را با نیم‌فاصله‌ استاندارد انجام دهید تا خوانایی حفظ شود.
  4. به‌روزرسانی منظم قواعد: از اسکریپت‌های خودکار برای به‌روز کردن Whitelist و Blacklist استفاده کنید.
  5. پایش مداوم لاگ‌ها: ابزارهای SIEM یا ELK Stack را با CSF/UFW ترکیب کنید تا تحلیل‌های لحظه‌ای داشته باشید.

9. حل مشکلات رایج CSF و UFW

  • CSF کار نمی‌کند: مجدداً /usr/local/csf/bin/csftest.pl را اجرا و خطا را بررسی کنید.
  • UFW فعال نمی‌شود: مطمئن شوید ماژول iptables yüklenmiş باشد:
modprobe ip_tables

  • مسدودسازی آی‌پی اشتباه: در CSF از csf -dr <IP> و در UFW از ufw delete deny <rule> بهره ببرید.
  • تداخل با Docker: قواعد iptables داکر را در CSF با DOCKER = "1" نادیده بگیرید یا در UFW از ufw route allow in on docker0 استفاده کنید.

10. خودکارسازی مدیریت فایروال با اسکریپت و Ansible

10.1 نمونه اسکریپت bash برای UFW

#!/bin/bash
# auto-ufw.sh
ufw --force reset
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp comment "SSH"
ufw allow 80/tcp comment "HTTP"
ufw allow 443/tcp comment "HTTPS"
ufw --force enable

10.2 نمونه Playbook Ansible برای CSF

- hosts: all
  become: yes
  tasks:
    - name: Install dependencies
      yum:
        name: perl,iptables,ipset
        state: latest

    - name: Download CSF
      get_url:
        url: https://download.configserver.com/csf.tgz
        dest: /usr/src/csf.tgz

    - name: Extract CSF
      unarchive:
        src: /usr/src/csf.tgz
        dest: /usr/src/

    - name: Install CSF
      command: sh /usr/src/csf/install.sh

    - name: Deploy csf.conf
      template:
        src: csf.conf.j2
        dest: /etc/csf/csf.conf

    - name: Enable and start services
      systemd:
        name: "{{ item }}"
        enabled: yes
        state: started
      loop:
        - csf
        - lfd

11. معرفی خدمات درفک IT و مشاوره امنیتی

در میانه‌ی مسیر پیکربندی و بهینه‌سازی فایروال، ممکن است نیاز به مشاوره تخصصی و بررسی دقیق معماری شبکه و سرور داشته باشید. تیم متخصص درفک IT با آدرس Dorfakit.ir آماده ارائه خدمات امنیت سرور، راه‌ اندازی پیشرفته دیوار آتش و مشاوره DevOps است. برای بهره‌مندی از تجربه‌ی سال‌ها پیاده‌سازی پروژه‌های بزرگ، به وب‌سایت Dorfakit.ir سر بزنید.

12. جمع‌بندی

در این راهنما، مفاهیم پایه و پیشرفته مربوط به راه‌ اندازی CSF و UFW در توزیع‌های CentOS و Ubuntu را تشریح کردیم. از تفاوت‌ها و مزایا تا مثال‌های عملی و خودکارسازی با اسکریپت و Ansible را پوشش دادیم. با به‌کارگیری این دانش، می‌توانید سرور خود را با قواعد سفارشی، به‌روزرسانی مداوم و نظارت مستمر، در برابر تهدیدات مدرن مقاوم سازید.

13. سوالات متداول

  1. CSF بهتر است یا UFW برای سرورهای Production؟
    • در محیط‌های سازمانی با نیاز به گزارش‌‌گیری و تشخیص Brute-Force، CSF ارجحیت دارد؛ برای سرورهای سبک و اجرای سریع، UFW مناسب‌تر است.
  2. چگونه می‌توانم از مسدودسازی آی‌پی اشتباه جلوگیری کنم؟
    • ابتدا از csf --list یا ufw status numbered خروجی بگیرید و سپس با csf -dr <IP> یا ufw delete <num> آی‌پی را آزاد کنید.
  3. آیا می‌توانم همزمان از CSF و UFW استفاده کنم؟
    • توصیه نمی‌شود؛ تداخل قواعد iptables ممکن است باعث اختلال شود. یکی را انتخاب و روی آن تمرکز کنید.
  4. چطور لاگ‌های UFW را به ELK ارسال کنم؟
    • با نصب Beats (filebeat) و تنظیم ماژول system, لاگ‌های /var/log/ufw.log به Elasticsearch ارسال و در Kibana تحلیل می‌شود.
  5. بهترین روش تغییر پورت SSH در CSF چیست؟
    • در /etc/csf/csf.conf متغیر TCP_IN را ویرایش و پورت جدید را اضافه و ۲۲ را حذف کنید، سپس systemctl restart csf را اجرا نمایید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *