عرض مشاركة واحدة
  رقم المشاركة : [ 1  ]
قديم 07-30-2012
samehfr
مراقب فضائيات


المشاركات
17,862

+التقييم
26

تاريخ التسجيل
15 - 5 - 10

الاقامة
مصر

نظام التشغيل

رقم العضوية
2968

samehfr على طريق التميز
غير متواجد
 
افتراضي حل لكل من يعانى من مشاكل فتح البورتات على اللينكس بشكل عام
حل لكل من يعانى من مشاكل فتح البورتات على اللينكس بشكل عام
فهنا تم استنباط لفايروول مبسط جدا جدا
فكرته : مجمعه من مصادر كتيرة
ارتحت معه جداً ففى البداية جمعته خصيصاً لنسخه أبونتو 6.06 سيرفر
ولكن حتى بعد الانتقال للنسخ اللى بعدها وبعد تجربتها قررت العوده له مرة أخرى
ميزاته :
قوى جدا لاعتماده الرئيسي على iptables واللتى هيا نواة حماية اللينكس
لايسحب من موارد الجهاز لانه لايعتبر برنامج وانما مجرد سكريبت وحجمه 1 ك ب فقط ليس إلا
سريع جدا فى تقبل اى تعدبلات او عمل رستارت له لتطبيق اى اعدادات جديده وستدهشون بذلك فعلاً
بسيط فى التعامل معه مايحتاج لحفظ اوامر أو صيغ متعدده كل ماهنالك امرين واحد للتعديل واخر للتطبيق
يقوم بكل الوظائف اللتى من الممكن ان يحتاجها اى فرد متقدم فى استخدام اللينكس فليس فقط للمبتدئين
--------------------------------------------------------------------------------------------------------------------------------------------------------------
أولاً : التخلص من الفايروول الموجود مسبقاً
فمثلاً بالنسبه للابونتو ابتداءاً من النسخ 7.04 يوجد برنامج ال ufw اما ماقبلها فلايوجد
فهذه الخطوة اذن للنسخ من 7.04 ومايليها فقط وماسبقها لايحتاج لهذه الخطوة
كما يجوز استخدامه على اى توزيعه من اللينكس باعتبار انها لاتحتوى على firewall
والله وحتى لو وجد فيها فايروول ولكن تفتقد لطريقه فتح بورت فاعتماد السكريبت ده على ال iptables
يجعل منه أولية للعمل كما ان عمله سيكون بثوانى بعد الفايروول الموجود مسبقا فسيلغى اعداده
ولكن الافضل ازالته وذلك للتخفيف على السيرفر ليس إلا

apt-get purge ufw
--------------------------------------------------------------------------------------------------------------------------------------------------------------
ثانياً : كتابة الفايروول

touch /bin/firewall
pico /bin/firewall
هتجده فارغ تماماً فماعليك سوى إضافه المكتوب اسفله مع مراعاة التعديلات وهيا ماسنتطرق اليه بأخر خطوة :


كود:
#!/bin/sh
set -e

iptables="/sbin/iptables"
modprobe="/sbin/modprobe"

load () {
echo "Loading kernel modules..."
$modprobe ip_tables
$modprobe ip_conntrack
$modprobe iptable_filter
$modprobe ipt_state
# $modprobe iptable_nat

echo "Kernel modules loaded."
echo "Loading rules..."

$iptables -P FORWARD DROP
$iptables -P INPUT DROP

## Enabling IP forwarding ##
# echo 1 > /proc/sys/net/ipv4/ip_forward
# $iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

## open ports ##
$iptables -A INPUT -p tcp -m tcp --destination-port 22 -j ACCEPT
$iptables -A INPUT -p tcp -m tcp --destination-port 12000 -j ACCEPT

## open all ports for local host only ##
$iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -s 127.0.0.1 -j ACCEPT

## open all ports for certain IP ##
# $iptables -A INPUT -s 192.168.1.5 -j ACCEPT


echo "Rules loaded."
}

flush () {
echo "Flushing rules..."
$iptables -P FORWARD ACCEPT
$iptables -F INPUT
$iptables -P INPUT ACCEPT
echo "Rules flushed."
}

case "$1" in
start|restart)
flush
load
;;
stop)
flush
;;
*)
echo "usage: start|stop|restart."
;;
esac
exit 0


--------------------------------------------------------------------------------------------------------------------------------------------------------------
ثالثاً : جعل الفايروول ذاتى التشغيل بالأمر :
chmod +x /bin/firewall

--------------------------------------------------------------------------------------------------------------------------------------------------------------
رابعاً : إضافة الفايروول لمجموعه بدأ التشغيل :
pico /etc/rc.local
ومسح مابداخلها وكتابة :

كود:
firewall start
#
#
#
#
exit 0


يراعى وجود علامات ال # والمقصود هنا انه يوجد اماكن خالية لاضافة برامج اخرى او أى أوامر نحتاجها مثلاً لتشغيل السي كام او ماشابه ذلك
--------------------------------------------------------------------------------------------------------------------------------------------------------------
خامساً : لعمل اى تعديلات على الفايروول نعطى الأمر الأول :
pico /bin/firewall

وبعدها نعطى الامر التانى والأخير وبدون مانحتاج لعمل رستارت للجهاز :
firewall restart

--------------------------------------------------------------------------------------------------------------------------------------------------------------
سادساً وأخيراً : شرح أسطر الفايروول وما فائدتها والتعديلات اللى من الممكن التعديل عليها :

الأسطر
كود:
# $modprobe iptable_nat
# echo 1 > /proc/sys/net/ipv4/ip_forward
# $iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


ودول الهدف منهم فقط السماح بتمرير الباكت من الجهاز ولا نحتاجهم الا فى حاله استخدام السيرفر كراوتر لتوزيع الانترنت او بروكسي
وعندها تزال ال # من اما هذه الأسطر ليس إلا


الأسطر
كود:
$iptables -A INPUT -p tcp -m tcp --destination-port 22 -j ACCEPT
$iptables -A INPUT -p tcp -m tcp --destination-port 12000 -j ACCEPT

ودى اللتى يجب التعديل فيها على حسب البورتات المختارة لدى كل فرد والهدف منها تمرير البورت وهنا يتم التعديل على الرقم
وهيا لفتح فقط البروتوكول TCP ولمن اراد فتح كل من ال TCP , UDP فعليه استبدال كلمه tcp ب ALL


الأسطر
كود:
$iptables -A INPUT -p ALL -m state --state ESTABLISHED,RELATED -j ACCEPT
$iptables -A INPUT -s 127.0.0.1 -j ACCEPT

وهيا الهدف منها فتح البورتات لصالح فقط الجهاز نفسه اى يعنى localhost او الايبي 127.0.0.1
وذلك لعدم إعاقه عمل الجهاز (ولا اعتقد انه هناك تعديل من طرفنا)


وأخيرا السطر

كود:
# $iptables -A INPUT -s 192.168.1.5 -j ACCEPT

والهدف منه فتح الجهاز كاملا بجميع بورتاته لجهاز معين ليكون له كل صلاحيات الدخول على اى بورت
لو فيه احتياج لذلك نزيل ال # ونحدد ال ip تبعه