
المصادقة، التفويض، التتبع والتدقيق لوصولات SSH.

الباستيونات (Bastions) هي مجموعة من الأجهزة تُستخدم كنقطة دخول فريدة من قبل الفرق التشغيلية (مثل مدراء الأنظمة، المطورين، مدراء قواعد البيانات، …) للاتصال بشكل آمن بالأجهزة (خوادم، أجهزة افتراضية، مثيلات سحابية، أجهزة شبكات، …)، عادةً باستخدام ssh.
يوفر The Bastion آليات للمصادقة، التفويض، التتبع، والتدقيق للبنية التحتية بأكملها.
بكونه بين المستخدمين والبنية التحتية، يضيف The Bastion طبقة تجريد في المنتصف بحيث لا تحتاج البنية التحتية إلى معرفة أعضاء الفريق التشغيلي بشكل فردي.
كل عضو في فريقك لديه حساب فردي على The Bastion، ويمكن أن يكون عضوًا في مجموعة باستيون واحدة أو أكثر قد تمنحه الوصول إلى بنية تحتية واحدة أو أكثر. تحتاج أجهزة البنية التحتية فقط إلى معرفة والثقة في مجموعة (مجموعات) الباستيون التي قد يكونون جزءًا منها.
نظام RBAC الدقيق في The Bastion يجعل من الممكن تفويض بعض المسؤوليات لأي حساب، سواءً كان محصورًا في المجموعة أو على مستوى الباستيون بأكمله، بما في ذلك الحسابات التي قد تستخدمها الأتمتة الخاصة بك لإدارة دورة حياة الحسابات (مرتبطة بنظام إدارة الموارد البشرية، LDAP أو AD)، وضمان تحديث قوائم التحكم في الوصول (ACL) لمجموعة (مرتبطة بـ CMDB)، إلخ. يسهل تنفيذ العمليات الآلية من خلال واجهة JSON API عبر SSH.
هل تريد معرفة المزيد أثناء مشاهدة بعض الرسومات الجميلة؟ إليك سلسلة من المقالات التي تتعمق أكثر في الوظائف والمبادئ الأساسية لـ The Bastion:
موارد أخرى قد تهمك:
لا حاجة لأي شيء معقد سواء على جانب الدخول (ingress) أو الخروج (egress) لـ The Bastion لتشغيله.
فقط عميل ssh القديم الجيد هو المطلوب للاتصال عبره، وعلى الجانب الآخر، أي خادم sshd قياسي سيفي بالغرض. يشمل ذلك، على سبيل المثال، أجهزة الشبكة التي قد لا تكون لديك إمكانية تثبيت أي برنامج مخصص عليها.
يمكن إخفاء الأجهزة القديمة التي تدعم فقط خوارزميات التشفير منخفضة الأمان أو Telnet عن الإنترنت عن طريق جدران الحماية والسماح فقط لـ The Bastion، وبالتالي تجنب مقايضة الأمان المنخفض مع السماح فقط باتصالات عالية الأمان على جانب الدخول للباستيون.
يرجى الاطلاع على الوثائق عبر الإنترنت أو الإصدار النصي المقابل الموجود في مجلد doc/.
هذه طريقة جيدة لاختبار The Bastion في ثوانٍ، ولكن اقرأ الأسئلة الشائعة إذا كنت جادًا بشأن استخدام الحاويات في الإنتاج.
صورة الصندوق الرمل متاحة للهياكل التالية: linux/386، linux/amd64، linux/arm/v6، linux/arm/v7، linux/arm64، linux/ppc64le، linux/s390x.
لنشغل صورة Docker:
docker run -d -p 22 --name bastiontest ovhcom/the-bastion:sandbox
احصل على مفتاح SSH العام الخاص بك، ثم قم بتكوين حساب المسؤول الأول:
docker exec -it bastiontest /opt/bastion/bin/admin/setup-first-admin-account.sh poweruser auto
نحن الآن جاهزون للتشغيل مع التكوين الافتراضي! لنقم بإعداد اسم مستعار مناسب للباستيون، واختبار الأمر info:
PORT=$(docker port bastiontest | cut -d: -f2)
alias bastion="ssh [email protected] -tp $PORT -- "
bastion --osh info
يجب أن يحييك كمسؤول bastion، مما يعني أن لديك حق الوصول إلى جميع الأوامر. لنقم بالدخول إلى الوضع التفاعلي:
bastion -i
هذا مفيد لاستدعاء عدة إضافات --osh على التوالي. الآن يمكننا طلب المساعدة لرؤية جميع الإضافات:
$> help
إذا كان لديك جهاز بعيد تريد محاولة الاتصال به عبر الباستيون، فاحصل على مفتاح الخروج الخاص بك:
$> selfListEgressKeys
انسخ هذا المفتاح العام إلى ملف authorized_keys على الجهاز البعيد تحت مجلد .ssh/ للحساب الذي تريد الاتصال به، ثم:
$> selfAddPersonalAccess --host <remote_host> --user <remote_account_name> --port-any
$> ssh <remote_account_name>@<remote_host>
لاحظ أنه يمكنك الاتصال مباشرة دون استخدام الوضع التفاعلي، باستخدام:
bastion <remote_account_name>@<remote_machine_host_or_ip>
هذا كل شيء! بالطبع، هناك الكثير غير ذلك، الوثائق متاحة تحت مجلد doc/ وعبر الإنترنت.
تأكد من مراجعة مساعدة الباستيون (bastion --help) ومساعدة كل إضافة osh (bastion --osh command --help).
أيضاً لا تنس تخصيص ملف bastion.conf الخاص بك، والذي يمكن العثور عليه في /etc/bastion/bastion.conf (لنظام Linux).
يتم اختبار توزيعات Linux أدناه مع كل إصدار، ولكن نظرًا لأن هذا منتج أمني، يُنصح بشدة بتشغيله على أحدث إصدار مستقر ومحدث من نظام التشغيل المفضل لديك:
أي إصدار "حديث" آخر من Linux لا يتم اختباره مع كل إصدار، ولكن يجب أن يعمل مع تعديلات طفيفة أو بدونها.
يتم أيضًا اختبار أنظمة التشغيل التالية مع كل إصدار:
FreeBSD لديه دعم جزئي لـ MFA، بسبب مجموعة إضافات pam المتاحة المحدودة. يمكن تكوين دعم إما لعامل كلمة مرور إضافي أو TOTP، ولكن ليس كلاهما في نفس الوقت.
perltidyperlcriticحتى مع أكثر عمليات البرمجة تحفظًا واحتراسًا وجنونًا، فإن الكود يحتوي على أخطاء، لذا لا ينبغي الوثوق به بشكل أعمى. وبالتالي لا يثق الباستيون في كوده الخاص. إنه يستفيد من بدائيات الأمان لنظام التشغيل للحصول على أمان إضافي، كما هو موضح أدناه.
يستخدم التحكم في الوصول التقديري (DAC) المعروف والموثوق في UNIX:
يتم تعريف النص الرئيسي للباستيون كشل نظام حساب مستخدم الباستيون:
bash) على النظامالكود معياري
ssh للأجهزة الأخرىكل الكود الذي يحتاج إلى صلاحيات موسعة للنظام يتم فصله عن الكود الرئيسي، في وحدات تسمى مساعدات
sudosudoers بمجموعة نظام خاصة بالأمر، والتي تُمنح للحسابات على أساس الحاجةsudoers-T) لجميع الكود الذي يعمل تحت ، مما يمنع أي إدخال من المستخدم من التداخل مع المنطق، عن طريق إيقاف التنفيذ فورًاsyslog، والذي يجب أيضًا إرساله إلى خادم syslog بعيد لضمان أنه حتى مسؤولي الباستيون لا يمكنهم التلاعب بمساراتهم، و/أوsqlite3 محلية لسهولة البحثttyrec، ويتم توفير نصوص مساعدة لتشفير ودفع هذه السجلات إلى خادم escrow بعيدقائمة غير شاملة بالأدوات ذات الصلة التي تتم صيانتها من قبل المجتمع:
مرخص بموجب رخصة Apache، الإصدار 2.0 (الترخيص")؛ لا يجوز لك استخدام هذا الملف إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص على
http://www.apache.org/licenses/LICENSE-2.0
ما لم ينص القانون المعمول به أو يتم الاتفاق عليه كتابيًا، يتم توزيع البرنامج المرخص بموجب هذا الترخيص على أساس "كما هو" (AS IS)، دون ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص للاطلاع على اللغة المحددة التي تحكم الأذونات والقيود بموجب الترخيص.
sudosudo لا يثق في المتصل ويعيد التحقق من كل إدخاليتم إجراء قطع بروتوكول بين جانب الدخول والخروج، مما يجعل معظم الثغرات القائمة على البروتوكول غير فعالة