
هذا الكوكبوك الخاص بـ Chef يوفر إعدادات آمنة لكل من ssh-client و ssh-server.
[][1]
[
][2]
[
][3]
[
][4]
يوفر هذا الـ cookbook إعدادات آمنة لكل من ssh-client و ssh-server. لا يوفر هذا الـ cookbook إمكانيات لإدارة المستخدمين و/أو مفاتيح ssh، يرجى استخدام cookbooks أخرى لهذا الغرض.
فيما يلي يمكنك العثور على توثيق الخصائص وقيمها الافتراضية.
ملاحظة: بعض القيم الافتراضية لخصائص هذا الـ cookbook يتم تعيينها في الـ recipes. يجب عليك استخدام مستوى أولوية خصائص أعلى لتجاوز هذه الخصائص. يتم تمييز هذه الخصائص بـ #override attribute# في القائمة أدناه. مثال لتجاوز مثل هذه الخاصية:
override['ssh-hardening']['ssh']['server']['listen_to'] = node['ipaddress']
['ssh-hardening']['network']['ipv6']['enable'] - false. اضبط على true إذا كان IPv6 مطلوبًا['ssh-hardening']['ssh']['ports'] - 22. المنافذ التي يجب أن يستمع إليها ssh-server ويتصل بها ssh-client['ssh-hardening']['ssh'][{'client', 'server'}]['kex'] - nil لحساب أفضل تبادل مفاتيح (KEX) بناءً على إصدار الخادم، وإلا حدد سلسلة من قيم Kex['ssh-hardening']['ssh'][{'client', 'server'}]['mac'] - nil لحساب أفضل رموز مصادقة الرسائل (MACs) بناءً على إصدار الخادم، وإلا حدد سلسلة من قيم Mac['ssh-hardening']['ssh'][{'client', 'server'}]['cipher'] - nil لحساب أفضل التشفيرات بناءً على إصدار الخادم، وإلا حدد سلسلة من قيم Cipher['ssh-hardening']['ssh'][{'client', 'server'}]['cbc_required'] - false. اضبط على true إذا كان CBC مطلوبًا للتشفيرات. هذا عادةً ضروري فقط إذا كانت آليات M2M الأقدم بحاجة للتواصل مع SSH، والتي لا تحتوي على أي من التشفيرات الآمنة المكوّنة مفعّلة. CBC هو بديل ضعيف. يجب تجنب أي شيء أضعف وبالتالي فهو غير متاح.['ssh-hardening']['ssh'][{'client', 'server'}]['weak_hmac'] - false. اضبط على true إذا كانت آليات HMAC الأضعف مطلوبة. هذا عادةً ضروري فقط إذا كانت آليات M2M الأقدم بحاجة للتواصل مع SSH، والتي لا تحتوي على أي من HMACs الآمنة المكوّنة مفعّلة.['ssh-hardening']['ssh'][{'client', 'server'}]['weak_kex'] - false. اضبط على true إذا كانت آليات تبادل المفاتيح (KEX) الأضعف مطلوبة. هذا عادةً ضروري فقط إذا كانت آليات M2M الأقدم بحاجة للتواصل مع SSH، والتي لا تحتوي على أي من KEXs الآمنة المكوّنة مفعّلة.['ssh-hardening']['ssh']['client']['remote_hosts'] - [] - مضيف واحد أو أكثر، يمكن لـ ssh-client الاتصال بها.['ssh-hardening']['ssh']['client']['password_authentication'] - false. اضبط على true إذا كان يجب تفعيل مصادقة كلمة المرور.['ssh-hardening']['ssh']['client']['roaming'] - false. اضبط على true إذا كان يجب تفعيل التجوال التجريبي للعميل. من المعروف أن هذا يسبب مشكلات محتملة مع كشف الأسرار لخوادم ضارة ويكون معطلاً افتراضيًا.['ssh-hardening']['ssh']['client']['extras'] - {}. أضف خيارات تكوين إضافية، انظر أدناه للتفاصيل['ssh-hardening']['ssh']['server']['host_key_files'] - nil لحساب أفضل تكوين لمفاتيح المضيف بناءً على إصدار الخادم، وإلا حدد مصفوفة بمسارات الملفات (مثل /etc/ssh/ssh_host_rsa_key)['ssh-hardening']['ssh']['server']['dh_min_prime_size'] - 2048 - الحد الأدنى المقبول لطول الأعداد الأولية بالبت في /etc/ssh/moduli. سيتم إزالة الأعداد الأولية الأقل من هذا الرقم. (انظر هذا لمزيد من المعلومات والخلفية)['ssh-hardening']['ssh']['server']['dh_build_primes'] - false - إذا كان يجب بناء أعداد أولية خاصة. عملية إعادة البناء هذه تحدث مرة واحدة فقط وتستغرق وقتًا طويلاً (~ 1.5 - 2 ساعة على الأجهزة الحديثة لطول 4096).['ssh-hardening']['ssh']['server']['dh_build_primes_size'] - 4096 - طول العدد الأولي الذي يجب توليده. هذا الخيار صالح فقط إذا كان dh_build_primes مفعّلاً.['ssh-hardening']['ssh']['server']['listen_to'] #override attribute# - عنوان IP واحد أو أكثر، يجب أن يستمع إليها ssh-server. الافتراضي هو الاستماع على جميع الواجهات. يجب تكوينه لأسباب أمنية!['ssh-hardening']['ssh']['server']['allow_root_with_key'] - false لتعطيل تسجيل دخول الجذر تمامًا. اضبط على true للسماح للجذر بتسجيل الدخول عبر آلية تعتمد على المفاتيح['ssh-hardening']['ssh']['server']['allow_tcp_forwarding'] - false. اضبط على true للسماح بإعادة توجيه TCP['ssh-hardening']['ssh']['server']['allow_agent_forwarding'] - false. اضبط على true للسماح بإعادة توجيه الوكيل (Agent)['ssh-hardening']['ssh']['server']['allow_x11_forwarding'] - false. اضبط على true للسماح بإعادة توجيه X11['ssh-hardening']['ssh']['server']['permit_tunnel'] - false لتعطيل إعادة توجيه جهاز tun. اضبط على true للسماح بإعادة توجيه جهاز tun. قيم مقبولة أخرى: 'yes', 'no', 'point-to-point', 'ethernet'. راجع man sshd_config للسلوكيات الدقيقة. ملاحظة: ستحتاج أيضًا إلى تفعيل allow_tcp_forwarding.['ssh-hardening']['ssh']['server']['use_pam'] - true. اضبط على false لتعطيل مصادقة pam الخاصة بـ sshd['ssh-hardening']['ssh']['server']['challenge_response_authentication'] - false. اضبط على true لتفعيل مصادقة الاستجابة للتحدي.['ssh-hardening']['ssh']['server']['deny_users'] - [] لتكوين DenyUsers، إذا تم تحديده، يُمنع تسجيل الدخول لأسماء المستخدمين التي تطابق أحد الأنماط.['ssh-hardening']['ssh']['server']['allow_users'] - [] لتكوين AllowUsers، إذا تم تحديده، يُسمح بتسجيل الدخول فقط لأسماء المستخدمين التي تطابق أحد الأنماط.['ssh-hardening']['ssh']['server']['deny_groups'] - [] لتكوين DenyGroups، إذا تم تحديده، يُمنع تسجيل الدخول للمستخدمين الذين تطابق مجموعتهم الأساسية أو قائمة مجموعاتهم الإضافية أحد الأنماط.['ssh-hardening']['ssh']['server']['allow_groups'] - [] لتكوين AllowGroups، إذا تم تحديده، يُسمح بتسجيل الدخول فقط للمستخدمين الذين تطابق مجموعتهم الأساسية أو قائمة مجموعاتهم الإضافية أحد الأنماط.['ssh-hardening']['ssh']['server']['print_motd'] - false. اضبط على true لتفعيل طباعة الـ MOTD['ssh-hardening']['ssh']['server']['print_last_log'] - false. اضبط على true لتفعيل طباعة معلومات آخر تسجيل دخول['ssh-hardening']['ssh']['server']['banner'] - nil. اضبط مسارًا مثل '/etc/issue.net' لتفعيل اللافتة (banner)['ssh-hardening']['ssh']['server']['os_banner'] - false لتعطيل معلومات الإصدار أثناء المصافحة البروتوكولية (عائلة debian فقط). اضبط على true لتفعيلها['ssh-hardening']['ssh']['server']['use_dns'] - nil لاستخدام الافتراضي الخاص بـ openssh. اضبط على true أو false لتفعيل/تعطيل بحث DNS والتحقق من المضيف البعيد['ssh-hardening']['ssh']['server']['use_privilege_separation'] - nil لحساب أفضل قيمة بناءً على إصدار الخادم، وإلا اضبط على true أو false['ssh-hardening']['ssh']['server']['login_grace_time'] - 30s. الوقت الذي يجب أن يتم فيه تسجيل الدخول بنجاح، وإلا يتم فصل المستخدم.['ssh-hardening']['ssh']['server']['max_auth_tries'] - 2. عدد محاولات المصادقة لكل اتصال['ssh-hardening']['ssh']['server']['max_sessions'] - 10 عدد الجلسات لكل اتصال['ssh-hardening']['ssh']['server']['password_authentication'] - false. اضبط على true إذا كان يجب تفعيل مصادقة كلمة المرور['ssh-hardening']['ssh']['server']['log_level'] - verbose. مستوى تسجيل sshd. راجع LogLevel في man 5 sshd_config للقيم الممكنة.['ssh-hardening']['ssh']['server']['sftp']['enable'] - false. اضبط على true لتفعيل ميزة SFTP الخاصة بخادم OpenSSH['ssh-hardening']['ssh']['server']['sftp']['group'] - sftponly. يضبط خيار Match Group الخاص بـ SFTP للسماح بـ SFTP فقط للمستخدمين المخصصين['ssh-hardening']['ssh']['server']['sftp']['chroot'] - /home/%u. يضبط الدليل الذي يجب أن يُقيّد فيه مستخدم SFTP (chroot)