راهکارهای جلوگیری از دریافت شکایت – Abuse توسط دیتاسنترها



ابیوز سرور

برای جلوگیری از دریافت شکایت (Abuse) از دیتاسنتر، لازم است اقدامات امنیتی مثل فعال کردن Firewall را روی سرور خودتون انجام بدید. در این آموزش دلایل رایج شکایت از سرورها و روش‌ های پیشگیری از اون رو توضیح میدیم. چه تازه‌ کار باشید یا حرفه‌ای، حتما این موارد را مطالعه کنید تا از دریافت شکایت ناخواسته و مسدود شدن سرورتان توسط دیتاسنتر جلوگیری شود.

اگر از v-p-n، پرو-کـسی یا ssh-tunnel روی سرورهای لینوکس یا ویندوز (مثل soft-ether و …) استفاده میکنید، ممکن است موبایل (بخاطر نصب برنامه های آلوده در موبایل که هدفشان برای دیداس و اسکن است) یا کامپیوتر شما آلوده به بدافزار باشد / یا ممکن هست پلاگین (افزونه) نامعتبر یا دارای باگ برای سایتتان نصب کرده باشید، / یا اسکریپت و سورس هایی از گیت هاب و … نصب کرده باشید که دارای باگ و دسترسی ورود به سرورتان یا قرار دادن فایل آلوده در سرورتان باشد، که بدون اطلاع شما فعالیت‌ های مخربی مثل دیداس (DDoS) یا اسکن شبکه (netscan)، ارسال ایمیل اسپم و … انجام دهند. در این حالت، از IP سرور شما برای این فعالیت‌ های مخرب استفاده میشه و شکایتش از دیتاسنتر برای شما میاد و سرورتون مسدود میشه و هزینه ای که بابت خرید سرور کردید رو از دست میدید.

فعال کردن فایروال احتمال دریافت شکایت از دیتاسنتر، بابت شکایت های رایجی که اتفاق میافته رو بسیار کم میکنه، پس حتما چه در سیستم عامل ویندوز و چه در لینوکس firewall فعال کنید و فقط پورت هایی که نیاز دارید را در قسمت inbound و outbound وارد کنید.

 

چه کارهایی با سرور نباید انجام بشه

(دیتاسنترها نسبت به برخی فعالیت‌ها حساس هستند و در صورت مشاهده، سرور را مسدود می‌کنند. بنابراین، هر سروری برای هر کاری مناسب نیست و باید طبق قوانین دیتاسنترها عمل کنید.)

  • انجام Netscan، Port scan، Ip scan، DDOS، SPAM، Hack، Phishing، Email Spam ممنوع است.
  • NetScan (نت اسکن) – Port Scan (پورت اسکن) فعالیتی هست که برای پیدا کردن پورت های باز یک سرور انجام میشه که معمولا هدف از اینکار برای پیدا کردن پورت های سرور و نفوذ به سرور هست. برای پیدا کردن IP سالم کلودفلر با سرورها اسکن انجام ندهید.
  • از سرور برای دانلود تورنت استفاده نکنید.
  • تست نفود/هک/کرک اکانت سایت ها با IP سرور نباید انجام بشه.
  • credential stuffing attack، brute force حملات غیرمجازی هستند که به قصد نفوذ به سایر سرورها، با داشتن لیستی از user/passwordها برای پیدا کردن مشخصات صحیح آن سرور و برای ورود به آن انجام میشود و نباید رو سرورها انجام بشه.
  • قانون کپی رایت فایل ها باید رعایت بشه (فایل هایی که قانون کپی رایت دارن رو داخل سرور نگهداری نکنید و به عنوان هاست دانلود استفاده نکنین. استریم از ویدیوهایی که کپی رایت دارند مثل مسابقات ورزشی، انجام ندید.)
  • انجام ماینینگ ارز دیجیتال یا راه‌اندازی Node کریپتو روی سرورهای دیتاسنتر هتزنر مجاز نیست.

 

نصب فایروال برای کنترل و مدیریت روی پورت ها

این آموزش برای جلوگیری از دریافت شکایت Netscan یا جلوگیری از حملات دیداس و malware میتونه مناسب باشه. پورت‌های رایجی مثل 53، 80 و 443 برای کاربردهایی مثل باز کردن صفحات وب یا پیام‌رسان‌ها استفاده میشوند. تعداد 65535 تا پورت داریم که میتونیم ازشون استفاده کنیم، ولی اگر فایروال فعال نباشه، این پورت ها میتونن توسط بدافزارها و بدون اطلاع شما فعال بشن. با نصب و تنظیم فایروال، جلوی در دسترس بودن سایر پورت هایی که بهشون نیاز نداریم رو میگیرم که بصورت ناخواسته و بدون اجازه ما فعال نشن.

 

1 – نصب فایروال CSF

فایروال CSF یک فایروال با امکانات خوب برای لینوکس هست که دستورات زیر رو به ترتیب در ترمینال لینوکس وارد میکنیم تا فایروال CSF نصب و فعال بشه.

sudo apt-get update -y
cd /usr/src
rm -fv csf.tgz
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
perl /usr/local/csf/bin/csftest.pl
apt-get install zip unzip

echo '#!/bin/sh' > /usr/sbin/sendmail
chmod +x /usr/sbin/sendmail
apt-get install libwww-perl -y
sudo service csf start
sudo service csf status

فایل تنظیمات فایروال CSF در مسیر زیر قرار داره، هم میتونیم از طریق محیط گرافیکی Web UI تنظیمات فایروال انجام بدیم، یا اینکه با استفاده از یک ویرایشگر مثل nano این تنظیمات رو داخل فایل csf.conf اعمال کنیم.

/etc/csf/csf.conf

 

تو این مرحله بدون محیط گرافیکی، با ویرایشگر نانو و دستور nano /etc/csf/csf.conf فایل تنظیمات فایروال CSF باز میکنیم و مقادیر رو در خط 11 و 69 پیدا میکنیم و Testing رو 0 و مقدار RESTRICT_SYSLOG رو هم 3 میذاریم:

TESTING = "0"

RESTRICT_SYSLOG = "3"

و یکم به پایین صفحه اسکرول میکنیم تا به تنظیمات عکس زیر برسیم، در عکس زیر میتونیم پورت های پروتکل TCP و UDP برای IPv4 رو مدیریت کنیم، یعنی هر پورتی که داخل تصویر زیر نوشته شده، توسط فایروال اجازه فعالیت داره و باز هست و بقیه پورت ها بسته هستن و فایروال اجازه فعال شدن بهشون رو نمیده.

 

  • پورت هایی مثل 53 – 80 – 443 و پورت SSH سرورتون باید همیشه چه در ورودی و خروجی باز باشن و پورت SSH سرورتون هم در TCP_IN باید باز باشه.
  • یه سری پورت ها هم برای Cloudflare هست اگه از این CDN استفاده میکنین میتونین باز کنین، مثل 8080 ,8880 ,2052 ,2082 ,2086 ,2095, 2053, 2083, 2087, 2096, 8443
  • اگر استفاده ارسال ایمیل ندارید، بهتر هست که پورت های 25, 587, 465 رو هم استفاده نکنید و ببندید.
  • اگر از داخل سرورتون به سرور دیگه ای SSH نمیزنین، پورت 22 خروجی (TCP_OUT) رو هم برای جلوگیری از حملات brure force که معمولا از پورت 22 خروجی انجام میشه، ببندید.

 

(تصویر زیر برای ipv4 هست، داخل همین صفحه تنظیمات و کمی پایینتر، تنظیمات برای Ipv6 هم قرار داره که اگر سرورتون Ipv6 داره، باید تنظیمات رو هم برای اون انجام بدید.)

مدیریت پورت ها با CSF
مثلا در پورت های زیر، فقط دسترسی به پورت های رایج که عموما برای استفاده های معمول هستن رو باز گذاشتیم. شما هم میتونین هر پورتی که نیاز دارید رو داخل این فیلدها قرار بدید و بعد از انجام با دستور csf -r، فایروال رو ریستارت کنید. هم در قسمت Inbound و هم در outbound پورت ها را محدود کنید.

# Allow incoming TCP ports
TCP_IN = "80,53,443,8080,8880,2052,2082,2086,2095,2053,2083,2087,2096,8443,2200"

# Allow outgoing TCP ports
TCP_OUT = "80,53,443,8080,8880,2052,2082,2086,2095,2053,2083,2087,2096,8443"

# Allow incoming UDP ports
UDP_IN = "80,53,443,8080,8880,2052,2082,2086,2095,2053,2083,2087,2096,8443"

# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list 
UDP_OUT = "80,53,443,8080,8880,2052,2082,2086,2095,2053,2083,2087,2096,8443"

تنظیمات انجام میدیم و ذخیره میکنیم و csf با دستور زیر ریستارت میکنیم

csf -r

توجه : اگر سرورتون IPv6 هم داره، کمی پایینتر از تنظیمات بالا، باید برای ipv6 هم همین تنظیمات پورت هارو انجام بدید.

 

مسدود کردن IP در CSF

اگر هم قصد مسدود کردن IP خاصی را فایروال دارید، فایل زیر را لطفا باز کنید

nano /etc/csf/csf.deny

بعدش IP مورد نظر رو در این فایل وارد میکنیم و فایروال ریست میکنیم.

csf -r

 

ترجیحا بعد از نصب فایروال، IP های زیر رو ببندید، بخاطر اینکه سابقه دریافت abuse برای بدافزارهارو دارن و برای کاربران ایرانی معمولا برای این IP ها شکایت میاد.

54.244.188.177

206.191.152.58

216.218.185.162

 

2 – فایروال UFW

اگر از فایروال پیش فرض اوبونتو که UFW هست استفاده میکنین، از دستورات زیر برای باز کردن پورت هایی که نیاز دارید میتونین استفاده کنین. دقت داشته باشید که بصورت پیش فرض، کانکشن خروجی فایروال UFW بسته نیست و با دستور sudo ufw default deny outgoing طبق کدهای زیر باید inbound/outbound همزمان ببندید.

sudo ufw default deny incoming
sudo ufw default deny outgoing

# اجازه دادن به درخواست‌های ضروری خروجی
sudo ufw allow out 53     # DNS
sudo ufw allow out 80     # HTTP
sudo ufw allow out 443    # HTTPS
sudo ufw allow out 2200   # در صورتی که برای SSH نیاز باشه


# اجازه دادن به درخواست‌های ورودی مورد نیاز
sudo ufw allow 53
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 2200


# اعمال تغییرات و نمایش وضعیت
sudo ufw reload
sudo ufw enable
sudo ufw status verbose

 

برای بستن پورت در ufw هم از دستور زیر استفاده میکنیم

sudo ufw deny out 25

 

دستور بستن IP های خاص

sudo ufw deny from 216.218.185.162
sudo ufw deny out from any to 216.218.185.162

 

در نهایت با دستور زیر، فایروال UFW فعال میکنیم

sudo ufw enable

 

اگر هم IP خاصی را بخواهیم مسدود کنیم، از دستور زیر استفاده میکنیم

sudo ufw deny from 216.218.185.162
sudo ufw deny out from any to 216.218.185.162

 

 

تغییر پورت SSH

حملاتی تحت عنوان brute force توسط botnet ها روی صفحات لاگین مثل SSH یا صفحات ورود cPanel و DirectAdmin انجام میشه تا با لیستی از هزاران و میلیون ها user و password هایی که در اختیار Bot ها هست، به صفحات لاگین حمله کنند و تک تک اون مشخصات رو برای هر سرور تست میکنن و در صورت مطابقت با اطلاعات شما، وارد سرور شما شوند. پس حتما از روزهای قوی استفاده کنین و اینطور فکر نکنین که از کجا ممکن هست که رمز سرور شمارو داشته باشند.

به هیچ عنوان از پورت پیش فرض 22 استفاده نکنین، ما در بلوسرور پورت SSH سرورهارو عوض میکنیم.

bash <(curl -Ls https://gist.github.com/blueserver1/45a9ac3b7230cd3ba4bb9116fde8536b/raw)