فحص البرامج الضارة والـ Rootkit: دليل rkhunter و ClamAV
احمِ خادم Linux من البرامج الضارة والـ Rootkit. تثبيت rkhunter و ClamAV، إعداد الفحص، تفسير النتائج، الفحص المجدول والاستجابة للحوادث.
مفاهيم NAT، قواعد DNAT/SNAT، توجيه المنافذ مع iptables و nftables، المخفي وحالات الاستخدام: خوادم الألعاب، خوادم الويب خلف NAT.
توجيه المنافذ و NAT (ترجمة عناوين الشبكة) أدوات أساسية لإدارة حركة الشبكة. تستخدم هذه التقنيات لفتح الخدمات خلف خادم للخارج، وإعداد خوادم الألعاب، أو إدارة خدمات متعددة عبر IP واحد.
NAT (Network Address Translation) تقنية شبكية تعدّل عناوين المصدر أو الوجهة لحزم IP. هناك نوعان رئيسيان:
# تفعيل مؤقت
sudo sysctl -w net.ipv4.ip_forward=1
# تفعيل دائم
sudo nano /etc/sysctl.conf
# أضف السطر:
# net.ipv4.ip_forward=1
# تطبيق التغييرات
sudo sysctl -p
# التحقق
cat /proc/sys/net/ipv4/ip_forward
# الإخراج: 1
# توجيه المنفذ الخارجي 80 إلى الخادم الداخلي
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
# توجيه المنفذ الخارجي 443 إلى الخادم الداخلي
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.1.10:443
# التوجيه إلى رقم منفذ مختلف (خارجي 8080 → داخلي 80)
sudo iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
# السماح بالحركة الموجَّهة
sudo iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT
sudo iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 443 -j ACCEPT
# توجيه منفذ UDP لخادم الألعاب
sudo iptables -t nat -A PREROUTING -p udp --dport 27015 -j DNAT --to-destination 192.168.1.30:27015
sudo iptables -A FORWARD -p udp -d 192.168.1.30 --dport 27015 -j ACCEPT
# Masquerade — للـ IP الديناميكي
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# SNAT — للـ IP الثابت (أكثر كفاءة)
sudo iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 203.0.113.1
# 1. مسح القواعد الموجودة
sudo iptables -F
sudo iptables -t nat -F
# 2. السياسات الافتراضية
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
# 3. Loopback والاتصالات المنشأة
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# 4. وصول SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 5. قواعد توجيه المنافذ
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.1.10:443
sudo iptables -t nat -A PREROUTING -p udp --dport 27015 -j DNAT --to-destination 192.168.1.30:27015
# 6. قواعد FORWARD
sudo iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT
sudo iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 443 -j ACCEPT
sudo iptables -A FORWARD -p udp -d 192.168.1.30 --dport 27015 -j ACCEPT
# 7. Masquerade
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# 8. حفظ القواعد
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
#!/usr/sbin/nft -f
flush ruleset
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
udp dport 27015 dnat to 192.168.1.30:27015
}
chain postrouting {
type nat hook postrouting priority 100;
oif eth0 masquerade
}
}
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established,related accept
tcp dport 22 accept
}
chain forward {
type filter hook forward priority 0; policy drop;
ct state established,related accept
ip daddr 192.168.1.10 tcp dport { 80, 443 } accept
ip daddr 192.168.1.30 udp dport 27015 accept
}
chain output {
type filter hook output priority 0; policy accept;
}
}
# خادم CS2
sudo iptables -t nat -A PREROUTING -p udp --dport 27015 -j DNAT --to-destination 192.168.1.30:27015
sudo iptables -t nat -A PREROUTING -p tcp --dport 27015 -j DNAT --to-destination 192.168.1.30:27015
sudo iptables -A FORWARD -d 192.168.1.30 -p udp --dport 27015 -j ACCEPT
# خادم Minecraft
sudo iptables -t nat -A PREROUTING -p tcp --dport 25565 -j DNAT --to-destination 192.168.1.31:25565
sudo iptables -A FORWARD -d 192.168.1.31 -p tcp --dport 25565 -j ACCEPT
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.10:80
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 192.168.1.10:443
sudo iptables -A FORWARD -i eth0 -d 192.168.1.10 -p tcp -m multiport --dports 80,443 -j ACCEPT
# عرض جدول NAT
sudo iptables -t nat -L -n -v
# عرض جدول تتبع الاتصالات
sudo conntrack -L
# مراقبة الحركة على منفذ محدد
sudo tcpdump -i eth0 port 80
# فحص توجيه IP
cat /proc/sys/net/ipv4/ip_forward
بعد إضافة قواعد توجيه المنافذ، لا تنسَ إضافة كل من قواعد PREROUTING (DNAT) و FORWARD. إضافة قاعدة DNAT فقط غير كافية — يجب أيضًا السماح بالحركة في سلسلة FORWARD.
توجيه المنافذ و NAT مكونات أساسية لإدارة شبكة Linux. بإعداد قواعد DNAT و SNAT و masquerade بشكل صحيح مع iptables أو nftables، يمكنك فتح خوادم الألعاب وخدمات الويب والتطبيقات الأخرى من خلف NAT.
تحقق بالترتيب: 1) هل توجيه IP مفعّل؟ (cat /proc/sys/net/ipv4/ip_forward)، 2) هل توجد قاعدة PREROUTING DNAT؟ (sudo iptables -t nat -L -n -v)، 3) هل توجد قاعدة FORWARD؟ (sudo iptables -L FORWARD -n -v)، 4) هل الخادم الهدف يعمل ويستمع على المنفذ؟
Masquerade يستخدم ديناميكيًا عنوان IP لواجهة الخروج — مثالي للـ IPs التي تتغير عبر DHCP. SNAT يحدد عنوان IP ثابتًا وأكثر كفاءة. يُفضَّل SNAT للخوادم ذات الـ IPs الثابتة.
لا، نفس المنفذ الخارجي يمكن توجيهه لعنوان داخلي واحد فقط. استخدم منافذ خارجية مختلفة: مثلًا خارجي 8080 → خادم داخلي 1:80، خارجي 8081 → خادم داخلي 2:80. أو استخدم موازن حمل.
نعم، قواعد iptables مؤقتة افتراضيًا. اجعلها دائمة بـ 'sudo netfilter-persistent save' أو 'sudo iptables-save > /etc/iptables/rules.v4'. لـ nftables استخدم ملف /etc/nftables.conf.
لا، قواعد PREROUTING لا تُطبَّق على واجهة loopback. للوصول لمنفذ موجَّه عبر localhost، أضف قاعدة DNAT في سلسلة OUTPUT.
احمِ خادم Linux من البرامج الضارة والـ Rootkit. تثبيت rkhunter و ClamAV، إعداد الفحص، تفسير النتائج، الفحص المجدول والاستجابة للحوادث.
احمِ خادمك من هجمات SSH Brute-Force باستخدام Fail2Ban. التثبيت، إعداد jail.local، جيلات Nginx/Apache، القائمة البيضاء للـ IP، مراقبة الحظر وتنبيهات البريد الإلكتروني.
أنشئ خادم WireGuard VPN: توليد المفاتيح، إعداد الخادم والعميل، توجيه IP، قواعد جدار الحماية وإعداد عملاء Windows/Linux/Android.