فحص البرامج الضارة والـ Rootkit: دليل rkhunter و ClamAV
احمِ خادم Linux من البرامج الضارة والـ Rootkit. تثبيت rkhunter و ClamAV، إعداد الفحص، تفسير النتائج، الفحص المجدول والاستجابة للحوادث.
مقارنة شاملة بين iptables و nftables، صياغة nftables، دليل الترحيل، مكافئات القواعد الشائعة ومتى تستخدم أي أداة جدار حماية.
لسنوات طويلة كان iptables الأداة المعيارية لتصفية الحزم في Linux. لكن nftables مُدرج في نواة Linux منذ 2014 ويحل محل iptables في التوزيعات الحديثة. سيقارن هذا الدليل الأداتين ويشرح صياغة nftables ويرشدك خلال الترحيل.
| الميزة | iptables | nftables |
|---|---|---|
| الإصدار الأول | 1998 | 2014 |
| الصياغة | معقدة، غير متسقة | متسقة، مقروءة |
| IPv4/IPv6 | أدوات منفصلة | أداة واحدة |
| الأداء | تقييم لكل قاعدة | محسّن |
| التحديثات الذرية | لا | نعم |
| الافتراضي (Ubuntu 20.04+) | لا | نعم |
| الافتراضي (Debian 10+) | لا | نعم |
# عرض قواعد iptables الحالية
sudo iptables -L -n -v
sudo iptables -L -n -v --line-numbers
# القواعد الأساسية
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -P INPUT DROP
# حفظ القواعد
sudo iptables-save > /etc/iptables/rules.v4
في nftables البنية هي: جدول → سلسلة → قاعدة
# تثبيت nftables
sudo apt install nftables -y
sudo systemctl enable nftables
sudo systemctl start nftables
# عرض القواعد الحالية
sudo nft list ruleset
sudo nano /etc/nftables.conf
#!/usr/sbin/nft -f
# مسح القواعد الموجودة
flush ruleset
# عائلة inet تغطي IPv4 و IPv6
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
# السماح بواجهة loopback
iif lo accept
# السماح بالاتصالات المنشأة
ct state established,related accept
# ICMP (ping)
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
# SSH
tcp dport 22 accept
# HTTP/HTTPS
tcp dport { 80, 443 } accept
# تسجيل ورفض
log prefix "nftables-drop: " drop
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
# تطبيق الإعداد
sudo nft -f /etc/nftables.conf
# فحص الصياغة (بدون تطبيق)
sudo nft -c -f /etc/nftables.conf
# iptables NAT
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
# مكافئ nftables NAT
table ip nat {
chain prerouting {
type nat hook prerouting priority -100;
tcp dport 80 dnat to 192.168.1.10:80
tcp dport 443 dnat to 192.168.1.10:443
}
chain postrouting {
type nat hook postrouting priority 100;
oif eth0 masquerade
}
}
# تحديد معدل nftables
chain input {
tcp dport 22 limit rate 3/minute burst 5 packets accept
tcp dport 22 drop
}
# مجموعات nftables (مدمجة)
table inet filter {
set blocked_ips {
type ipv4_addr
elements = { 1.2.3.4, 5.6.7.8 }
}
chain input {
type filter hook input priority 0; policy drop;
ip saddr @blocked_ips drop
tcp dport 22 accept
}
}
# تثبيت أداة التحويل
sudo apt install iptables-nftables-compat -y
# تحويل قواعد iptables الموجودة
iptables-save | iptables-restore-translate -f /etc/nftables.conf
ip6tables-save | ip6tables-restore-translate >> /etc/nftables.conf
# 1. نسخ احتياطي لقواعد iptables
sudo iptables-save > /root/iptables-backup.txt
# 2. إنشاء إعداد nftables
sudo nano /etc/nftables.conf
# 3. اختبار الإعداد
sudo nft -c -f /etc/nftables.conf
# 4. تفعيل nftables
sudo systemctl enable nftables
sudo nft -f /etc/nftables.conf
# 5. تعطيل iptables
sudo systemctl disable iptables
sudo systemctl stop iptables
# 6. التحقق من القواعد
sudo nft list ruleset
منذ Ubuntu 20.04 و Debian 10، أمر iptables يشغّل فعليًا غلاف iptables-nft — أي يستخدم nftables في الخلفية. استخدم iptables-legacy لـ iptables الحقيقي.
nftables يحل محل iptables في أنظمة Linux الحديثة. يوفر صياغة أكثر اتساقًا وإدارة موحدة لـ IPv4/IPv6 وأداءً أفضل. اختر nftables للتثبيتات الجديدة؛ خطّط للترحيل للبنية التحتية الحالية لـ iptables.
ممكن تقنيًا لكن غير موصى به. القواعد المتعارضة قد تؤدي لسلوك غير متوقع. على الأنظمة الحديثة، أمر iptables يستخدم بالفعل خلفية nftables. اختر أحدهما والتزم به.
UFW مبني على iptables. على أنظمة Ubuntu 20.04+، يستخدم UFW nftables عبر غلاف iptables-nft. إذا أردت استخدام nftables مباشرةً، عطّل UFW.
لا، إذا كانت خدمة nftables مفعّلة و /etc/nftables.conf مُعدّ بشكل صحيح، فالقواعد دائمة. فعّل الخدمة بـ 'sudo systemctl enable nftables'.
نعم. Fail2Ban يدعم خلفية nftables. اضبط 'banaction = nftables-multiport' في /etc/fail2ban/jail.local لجعل Fail2Ban ينشئ قواعد nftables.
هي أكثر اتساقًا وقابلية للقراءة مقارنةً بـ iptables. بعد فهم المفاهيم الأساسية (جدول، سلسلة، قاعدة)، تعلّمها سهل نسبيًا. أمر 'nft list ruleset' يعرض القواعد الحالية بتنسيق مقروء.
احمِ خادم Linux من البرامج الضارة والـ Rootkit. تثبيت rkhunter و ClamAV، إعداد الفحص، تفسير النتائج، الفحص المجدول والاستجابة للحوادث.
احمِ خادمك من هجمات SSH Brute-Force باستخدام Fail2Ban. التثبيت، إعداد jail.local، جيلات Nginx/Apache، القائمة البيضاء للـ IP، مراقبة الحظر وتنبيهات البريد الإلكتروني.
أنشئ خادم WireGuard VPN: توليد المفاتيح، إعداد الخادم والعميل، توجيه IP، قواعد جدار الحماية وإعداد عملاء Windows/Linux/Android.