شرح GIPTables Firewall

Spread the love

GIPTables Firewall

الكاتب : Net Spider بالاضافة الى حوار مع بلاك هنتر وسوبر لينكسهذا الدرس متشعب

شكرا لسوبر لينوكس لدعوتي لهذا المنتدى
احب اسلم الاول على الاصدقاء واعضاء المنتدى
اكيد فيه ناس فاكراني من ايام ArabSecure.net الذي اغلق بسبب الانشغال
يلا مش مشكله حصل خير

المهم
ده موضوع بسيط حبيت ابدء بيه كأول مشاركه

وهو بيتكلم عن GIPTables Firewall وهو يعتبر فايروول مناسب جدا لمن له خلفية عن ال IPTables بالاضافه انه بيديك تحكم قوي جدا بالفايروول ويتيح لك ان تضيف عليه
عكس APF Firewall اللي يعتبر Less configurable

والموضوع يعتبر مختصر … لكن انا سايب التفاصيل حسب الاستفسارات من القراء

اهم مميزات GIPTables :
– سهل التثبيت والاعداد
– يحتاج فقط الى IPTables ولا يحتاج الى برامج اخرى
– يضمن حماية جيده ضد هجوم TCP-SYN Flood (احد انواع Dos attack)
– حماية فعالة ضد IP Spoofing , بالاضافة الى توفر ميزات NAT و MASQ

طبعا يشترط ان يكون الكرنل يدعم ال Netfilter وهذا الوضع الطبيعي للكيرنل في انظمة ريدهات وفيدورا
اما اذا كان الكرنل بتاعك لا يدعم ال Netfilter وهذه حاله نادرة ناتجه مثلا عند تثبيت كيرنل جديد مع عدم دعم ال Netfilter به , فسيتطلب
منك عمل Recompile للكيرنل ولكن مع اتباع الخطوات التالية:

* Networking options
*
Packet socket (CONFIG_PACKET) ? Y
Packet socket: mmapped IO (CONFIG_PACKET_MMAP) ? Y
Netlink device emulation (CONFIG_NETLINK_DEV) ? Y
Network packet filtering (replaces ipchains) (CONFIG_NETFILTER) ? Y
Network packet filtering debugging (CONFIG_NETFILTER_DEBUG) ? Y
Socket Filtering (CONFIG_FILTER) ? N
Unix domain sockets (CONFIG_UNIX) ? Y
TCP/IP networking (CONFIG_INET) ? Y
IP: multicasting (CONFIG_IP_MULTICAST) ? N
IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) ? N
IP: kernel level autoconfiguration (CONFIG_IP_PNP) ? N
IP: tunneling (CONFIG_NET_IPIP) ? Answer N here
IP: GRE tunnels over IP (CONFIG_NET_IPGRE) ? N
IP: TCP Explicit Congestion Notification support (CONFIG_INET_ECN) ? N
IP: TCP syncookie support (disabled per default) (CONFIG_SYN_COOKIES) ? Y
*
* IP: Netfilter Configuration
*
Connection tracking (required for masq/NAT) (CONFIG_IP_NF_CONNTRACK) ? Y
FTP protocol support (CONFIG_IP_NF_FTP) ? Y
IRC protocol support (CONFIG_IP_NF_IRC) ? N
IP tables support (required for filtering/masq/NAT) (CONFIG_IP_NF_IPTABLES) ? Y
limit match support (CONFIG_IP_NF_MATCH_LIMIT) ? Y
MAC address match support (CONFIG_IP_NF_MATCH_MAC) ? Y
netfilter MARK match support (CONFIG_IP_NF_MATCH_MARK) ? Y
Multiple port match support (CONFIG_IP_NF_MATCH_MULTIPORT) ? Y
TOS match support (CONFIG_IP_NF_MATCH_TOS) ? Y
LENGTH match support (CONFIG_IP_NF_MATCH_LENGTH) ? Y
TTL match support (CONFIG_IP_NF_MATCH_TTL) ? Y
tcpmss match support (CONFIG_IP_NF_MATCH_TCPMSS) ? Y
Connection state match support (CONFIG_IP_NF_MATCH_STATE) ? Y
Packet filtering (CONFIG_IP_NF_FILTER) ? Y
REJECT target support (CONFIG_IP_NF_TARGET_REJECT) ? Y
Full NAT (CONFIG_IP_NF_NAT) ? Y
Packet mangling (CONFIG_IP_NF_MANGLE) ? Y
TOS target support (CONFIG_IP_NF_TARGET_TOS) ? Y
MARK target support (CONFIG_IP_NF_TARGET_MARK) ? Y
LOG target support (CONFIG_IP_NF_TARGET_LOG) ? Y
TCPMSS target support (CONFIG_IP_NF_TARGET_TCPMSS) ? Y

Here are the required kernel setups for a Gateway/Proxy server:
* Networking options
*
Packet socket (CONFIG_PACKET) ? Y
Packet socket: mmapped IO (CONFIG_PACKET_MMAP) ? Y
Netlink device emulation (CONFIG_NETLINK_DEV) ? Y
Network packet filtering (replaces ipchains) (CONFIG_NETFILTER) ? Y
Network packet filtering debugging (CONFIG_NETFILTER_DEBUG) ? Y
Socket Filtering (CONFIG_FILTER) ? Y
Unix domain sockets (CONFIG_UNIX) ? Y
TCP/IP networking (CONFIG_INET) ? Y
IP: multicasting (CONFIG_IP_MULTICAST) ? Y
IP: advanced router (CONFIG_IP_ADVANCED_ROUTER) ? Y
IP: policy routing (CONFIG_IP_MULTIPLE_TABLES) ? Y
IP: use netfilter MARK value as routing key (CONFIG_IP_ROUTE_FWMARK) ? Y
IP: fast network address translation (CONFIG_IP_ROUTE_NAT) ? Y
IP: equal cost multipath (CONFIG_IP_ROUTE_MULTIPATH) ? Y
IP: use TOS value as routing key (CONFIG_IP_ROUTE_TOS) ? Y
IP: verbose route monitoring (CONFIG_IP_ROUTE_VERBOSE) ? Y
IP: large routing tables (CONFIG_IP_ROUTE_LARGE_TABLES) ? Y
IP: kernel level autoconfiguration (CONFIG_IP_PNP) ? N
IP: tunneling (CONFIG_NET_IPIP) ? Y
IP: GRE tunnels over IP (CONFIG_NET_IPGRE) ? Y
IP: TCP Explicit Congestion Notification support (CONFIG_INET_ECN) ? N
IP: TCP syncookie support (disabled per default) (CONFIG_SYN_COOKIES) ? Y
*
* IP: Netfilter Configuration
*
Connection tracking (required for masq/NAT) (CONFIG_IP_NF_CONNTRACK) ? Y
FTP protocol support (CONFIG_IP_NF_FTP) ? Y
IRC protocol support (CONFIG_IP_NF_IRC) ? Y
IP tables support (required for filtering/masq/NAT) (CONFIG_IP_NF_IPTABLES) ? Y
limit match support (CONFIG_IP_NF_MATCH_LIMIT) ? Y
MAC address match support (CONFIG_IP_NF_MATCH_MAC) ? Y
netfilter MARK match support (CONFIG_IP_NF_MATCH_MARK) ? Y
Multiple port match support (CONFIG_IP_NF_MATCH_MULTIPORT) ? Y
TOS match support (CONFIG_IP_NF_MATCH_TOS) ? Y
LENGTH match support (CONFIG_IP_NF_MATCH_LENGTH) ? Y
TTL match support (CONFIG_IP_NF_MATCH_TTL) ? Y
tcpmss match support (CONFIG_IP_NF_MATCH_TCPMSS) ? Y
Connection state match support (CONFIG_IP_NF_MATCH_STATE) ? Y
Packet filtering (CONFIG_IP_NF_FILTER) ? Y
REJECT target support (CONFIG_IP_NF_TARGET_REJECT) ? Y
Full NAT (CONFIG_IP_NF_NAT) ? Y
MASQUERADE target support (CONFIG_IP_NF_TARGET_MASQUERADE) ? Y
REDIRECT target support (CONFIG_IP_NF_TARGET_REDIRECT) ? Y
Packet mangling (CONFIG_IP_NF_MANGLE) ? Y
TOS target support (CONFIG_IP_NF_TARGET_TOS) ? Y
MARK target support (CONFIG_IP_NF_TARGET_MARK) ? Y
LOG target support (CONFIG_IP_NF_TARGET_LOG) ? Y
TCPMSS target support (CONFIG_IP_NF_TARGET_TCPMSS) ? Y
ipchains (2.2-style) support (CONFIG_IP_NF_COMPAT_IPCHAINS) ? N
ipfwadm (2.0-style) support (CONFIG_IP_NF_COMPAT_IPFWADM) ? N

التثبيت :

wget http://www.giptables.org/downloads/giptables-1.1.tar.gz

gunzip giptables-1.1.tar.gz | tar xfv –

cd giptables-1.1

./install.sh

cd ..

rm -f giptables-1.1.tar.gz

بعد الانتهاء من التثبيت سيتكون مجلدين هما
/lib/giptables/modules/ وبه modules الخاصة بالفايروول
/lib/giptables/conf وبه ملفات الاعداد

و ملف /etc/rc.d/rc.giptables.blocked وبه العناوين المحظروة

الاعدادات :

يحتوي مجلد /lib/giptables/conf على عدة ملفات الاعداد وهي

giptables.conf.dns1 الاعدادات الخاصه بـ Master DNS Server
giptables.conf.dns2 الاعدادات الخاصه بـ Slave DNS Server
giptables.conf.ftpserver الاعدادات الخاصه بـ FTP Server
giptables.conf.gateway الاعدادات الخاصه بـ Gateway Server
giptables.conf.mailserver الاعدادات الخاصه بـ Mail Server
giptables.conf.ppp الاعدادات الخاصه بـ PPP gateway server
giptables.conf.webserver الاعدادات الخاصه بـ Web Server

ولكننا سنقوم بأستخدام ملف واحد فقط والذي يكون مناسب للسيرفر , وبما ان معظم سيرفراتكم هي Web Server
فسنستخدم ملف giptables.conf.webserver كالاتي

cd /lib/giptables/conf/

cp giptables.conf.webserver giptables.conf.mybox

ln -sf /lib/giptables/conf/giptables.conf.mybox /etc/giptables.conf

بعد ذلك سنقوم بفتح ملف الاعدادت وتعديله حسب حاجتنا :

vi /etc/giptables.conf

وملف الاعداد سهل وعند كل option في الملف شرح بسيط له للمساعده
ولان ملف الاعداد سيتطلب وقتا كبير في شرحه فلن استطيع شرحه

بعض الملاحظات في ملف الاعداد:

لا تنسو اسم interface و IP السيرفر كالاتي مع تغيير القيم

INTERFACE0=’eth0′
INTERFACE0_IPADDR=’1.2.3.4′

ونفس الحكاية بالنسبة لل name servers كالاتي

ISP_PRIMARY_DNS_SERVER=’a.a.a.a’
ISP_SECONDARY_DNS_SERVER=’b.b.b.b’

بالنسبة لملف /etc/rc.d/rc.giptables.custom يمكن تحتاجه في كتابة اوامر iptables خاصه ستعمل عند تشغيل giptables
ولكي يعمل هذا الملف تأكد من وجود هذه القيمة في ملف الاعداد :

LOAD_CUSTOM_RULES=’yes’

ولو فيه اي مشكله في ملف الاعدادت قابلت اي حد ممكن يطرحها ونحاول نحلها

اخر حاجه بالنسبة لملف /etc/rc.d/rc.giptables.blocked قم بتعديله واضافه الايبيهات اللي تريد عمل حظر لها

vi /etc/rc.d/rc.giptables.blocked

وضع كل IP على سطر لوحده

واخيرا وبعد ان انتهينا من الاعدادات قم بتشغيل GIPTables

/etc/init.d/giptables start

سؤال سوبر لينكس

بس عندي سوال

الـ، APF احد عيوبه لمن يكون السيرفر المركب عليه حاصل عليه ضغط من قبل الاتصالات يعني سيرفر كبير انا اشوفه ان اللود يترفع لو راكب عليه الـ APF

فاتوقع مدام الـ gip يحاكي الـ iptables فاتوقع مافي مشكله ؟ ولا انت شرايك ؟

الجواب من سبيادر نت

شكرا على الترحيب ياجماعه

صراحه يا Super Linux انا افضل GIPTables عن APF في نواحي كتيرة اهمها انه بيديك تحكم اكبر بالفايروول وانك تقدر تعدل عليه بسهولة

اما بالنسبة لاستهلاك الموارد في APF فدي ممكن تحلها عن طريق وضع Limit لموارد السيرفر كالرام والبروسسور للفايروول APF

كل المطلوب منك انك تعرف اليوزر اللي شغال عليه البرنامج , لان زي مانت عارف ان معظم البرامج بتعملها يوزر في ملف passwd . وبعد ماتعرف اليوزر ممكن تضيف السطر التالي في ملف /etc/security/limits.conf

كود

PHP CODE:
0001
0002

<?php apf        hard        rss       10000

وهنا انا حددت لليوزر apf عشرة ميجا من الرامات ميقدرش يتعداها ونفس الحكاية لوضع ليميت على البروسيسور مع تغيير rss الى cpu وممكن تحط مجال معين زي مثلا مسموح له حتى عشرة ميجا والحد الاقصى مثلا 15 ميجا ودي تعملها بقيم hard & soft
وممكن عن طريق الملف ده تعمل ليميت لحاجات تانية غير الرامات والبروسسور
طبعا تقدر تحدد لود للاباتشي والداتا بيس ولاي حاجه على النظام
ده بالنسبه للتحكم باللود في السيرفر

ملاحظة اخيرة نسيت احطها في الموضوع و هي اضافة تعديلات على الكيرنل مهمة في اي فايروول

والتعديلات دي ممكن تحطها في ملفات proc/ او عن طريق امر sysctl واخر طريقة وهي اللي انصح بيها عن طريق ملف /etc/sysctl.conf

افتح الملف وضيف به الاتي:

كود PHP:

PHP CODE:
0001
0002

<?php net.ipv4.icmp_echo_ignore_broadcasts = 1

ودي تعتبر اختيارية وهي انك تخلي النظام ميستقبلش اي باكيت
icmp
زي البنج مثلا .. بدل ماتتعب الفايروول وياخد لود عالفاضي

كود PHP:

PHP CODE:
0001
0002
0003

<?php net.ipv4.conf.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

ودي علشات توقف موضوع الاي بي راوتينج اللي ممكن تستخدم في السبوفينج

كود PHP:

PHP CODE:
0001
0002

<?php net.ipv4.tcp_syncookies = 1

ودي تساعدك في وقف فلود
syn

كود PHP:

PHP CODE:
0001
0002
0003

<?php net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1

ودي علشان ينبهك اذا فيه Spoofed, Source Routed, Redirect Packets

كود PHP:

PHP CODE:
0001
0002
0003

<?php net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2

ودي بتضيف حماية ضد IP spoofing

واخيرا وبعد التعديلات والاضافات دي اعمل ريستارت للنتورك

كود PHP:

PHP CODE:
0001
0002

<?php /etc/init.d/network restart

كده انت بئى عندك حصن مش فايروول

تعليق اخر ل سبيادر نت

السلام عليكم

العفو يا Super Linux ..

B-Hunter ان شاء الله في موضوع جديد اشرح بالتفصيل ملف االيميت بالاضافة الى بقية الملفات تحت مجلد /etc/security/
مثل ملف time.conf اللي ممكن تحدد بيه الاكسس على السيرفر حسب الوقت … يعني ممكن مثل تحدد في الملف ان اليوزر الفلاني مسموح له يدخل من اللوكال جميع ايام الاسبوع معدا الجمعه مثلا
ومسموح له يدخل السيرفر يوم الجمعه من السكيور شيل من الساعه واحد لحد اربعه مثلا

وملف access.conf اللي بتتحكم بيه بمصدر الدخور على السيرفر .. يعني مثلا ممكن تحدد في الملف ده ان اليوزر الفلاني مسموحله يدخل من الاي بي او الدومين الفلاني فقط الى اخره

بس ملاحظة: الملفات دي بتشتغل على السيرفيسس اللي بتدعم pam فقط
وممكن تشوف السيرفريسس اللي بتعدم البام من المسار التالي:
/etc/pam.d/
وبالتالي ان شاء الله في اقرب فرصه اكتب عن pam وملفات /etc/security/
وعلى فكرة ياجماعه الـ pam يعتبر من اكبر التطبيقات الامنية في لينوكس .. وانصح اي واحد مهتم بامن لينوكس يقرء كتير عن ال pam

واعتذر لضيق الوقت عندي
والسلام عليكم

الكاتب geek4arab

geek4arab

مواضيع متعلقة

التعليقات مغلقة