🔑 نصب و پیکربندی Bitwarden Password Manager با Docker Container |

12 دقیقه

مدیر فروشگاه رایگان است

اطلاعات حساس مانند اعتبار وب‌سایت در فضای ذخیره‌سازی رمزگذاری‌شده و همچنین گذرواژه‌های قوی | منحصربه‌فرد برای مرورگرها یا دستگاه‌ها ایجاد می‌کند.

این دو نسخه رایگان و پولی دارد، هر دو ویژگی‌های شگفت‌انگیز زیادی دارند.

قبلاً به آن پرداخته‌ایم: 19659009] شروع به کار

قبل از شروع این آموزش ، مطمئن شوید سیستم شما به روز است و بسته های مورد نیاز نصب شده است.

 ## در RHEL / CentOS / RockyLinux 8
 به روز رسانی sudo yum
sudo yum نصب curl vim

 ## در دبیان / اوبونتو
 sudo apt update && sudo apt upgrade
sudo apt نصب curl vim

 ## در فدورا
 به روز رسانی sudo dnf
sudo dnf -y install curl vim 

مرحله 1 – نصب Docker و Docker-Compose

در این آموزش، شما باید docker و docker-compose را روی دستگاه خود نصب کنید.

آخرین نسخه Docker را بر روی دستگاه خود نصب کنید. سیستم لینوکس. با استفاده از راهنما در:

نسخه docker نصب شده را بررسی کنید.

 $  docker -v 
Docker نسخه 20.10.9 ، ساخت c2ea9bc 

حساب کاربری خود را به گروه Docker اضافه کنید:

 sudo usermod -aG docker $ USER
newgrp docker 

پس از نصب موفقیت آمیز Docker، اقدام به نصب آخرین نسخه Docker-Compose با استفاده از cURL کنید.

 curl -s https://api.github.com/repos/docker/compose/releases/latest | grep browser_download_url | grep docker-compose-linux-x86_64 | cut -d '"' -f 4 | wget -qi - 

فایل دانلود شده را قابل اجرا کنید.

 chmod + x docker-compose-linux-x86_64 

فایل را به PATH خود منتقل کنید.

 mv docker -compose-linux-x86_64 / usr / local / bin / docker-compose 

حالا نصب خود را با بررسی نسخه نصب شده docker-compose تأیید کنید.

 $  نسخه docker-compose 
Docker Compose نسخه v2.0.1 

داکر را راه اندازی و فعال کنید

 sudo systemctl start docker && sudo systemctl enable docker 

مرحله 2 – سرور Bitwarden را ایجاد کنید

اکنون برای سرور Bitwarden یک پوشه ایجاد می کنیم.

من نام پوشه خود را bitwarden

 سی دی ~ می گذارم
mkdir bitwarden && cd bitwarden 

اکنون در این پوشه یک فایل docker-compose.yml ایجاد می کنیم.

این فایل توسط docker-compose برای هماهنگ کردن کانتینرهای docker استفاده می شود.

 touch docker-compose.yml 19659022] سپس فایل را برای ویرایش با ویرایشگر متن مورد علاقه خود باز کنید. 

 vim docker-compose.yml 

محتوای زیر را به فایل اضافه کنید.
نسخه: '3'

خدمات:
bitwarden:
تصویر: bitwardenrs / سرور
راه اندازی مجدد: همیشه
پورت ها:
- 8000: 80
جلدها:
- ./ bw-data : / داده
محیط:
WEBSOCKET_ENABLED: 'true' # مورد نیاز برای استفاده از شبکه های اینترنتی
SIGNUPS_ALLOWED: "true" # برای غیرفعال کردن ثبت نام ها روی false تنظیم شده است

برای این آموزش، من از تصویر bitwarden_rs Docker نوشته شده در Rust استفاده خواهم کرد، که سریعتر و قابل اعتمادتر است، همچنین کاملاً منبع باز است و به طور گسترده در همه جا استفاده می شود.

مرحله 3 – شروع Bitwarden با Docker

اکنون که همه چیز برای سرور Bitwarden آماده است، آن را با دستور ساده زیر شروع می کنیم:

 docker-compose up -d 

اگر دستور بالا اجرا نشد، ممکن است لازم باشد آن را به صورت روت اجرا کنید.
⠿ bitwarden Pulled 6.5s
⠿ 33847f680f63 کشش کامل 1.9 ثانیه
⠿ 64e13e5f1ad2 2.7 ثانیه را کامل بکشید
⠿ 148922a88961 کشش کامل 2.8 ثانیه
⠿ cc66172bd48b کشش کامل 3.2 ثانیه
⠿ 2372942a3bb8 3.6s را کامل بکشید
⠿ 35b316a20d10 Pull full 3.7s
⠿ 6b2893b1d24a 3.9 ثانیه را کامل بکشید
[+] در حال اجرا 2/2
⠿ شبکه bitwarden_default 0.1 ثانیه ایجاد شد
⠿ Container bitwarden-bitwarden-1 0.9s شروع شد

مشاهده کانتینرها با دستور:

 $ docker ps 

نمونه خروجی:

  PORTS NAMES
 62fbe97d43e5 bitwardenrs / سرور "/ usr / bin / dumb-init ..." حدود یک دقیقه پیش بالا حدود یک دقیقه (سالم) 3012 / tcp، 0.0.0.0:8000->80/tcp، ::: 8 -> 80 / tcp bitwarden-bitwarden-1 

اکنون می‌توانید به پانل IP70 به پورت Bitward10 دسترسی داشته باشید. اما اگر دسترسی HTTPS به سایت نداشته باشید، نمی‌توانید با Bitwarden حساب بسازید.

مرحله 4 – از Bitwarden با گواهی‌های قابل اعتماد محافظت کنید.

وب سرور Nginx را برای پروکسی معکوس نصب کنید

 [196590] ## در RHEL / CentOS / Rocky Linux 8
 sudo yum نصب nginx

 ## در دبیان / اوبونتو
 sudo apt install nginx 

برای این مورد من از یک سیستم مبتنی بر لینوکس کالی استفاده می کنم، یک فایل conf در /etc/nginx/conf.d/bitwarden.conf

 sudo vim / etc / nginx ایجاد خواهم کرد. / conf. d / bitwarden.conf 

در فایل، محتوای زیر را برای VirtualHost اضافه کنید، و نام دامنه خود را به طور مناسب جایگزین کنید

امتیازات Nginx را به فایل فوق اعطا کنید.
sudo chown nginx: nginx /etc/nginx/conf.d/bitwarden.conf
sudo chmod 755 /etc/nginx/conf.d/bitwarden.conf

# دبیان / اوبونتو
سودو چاون www-data: www-data /etc/nginx/conf.d/bitwarden.conf
sudo chmod 755 /etc/nginx/conf.d/bitwarden.conf

وب سرور Nginx را راه اندازی کنید.

 sudo systemctl شروع nginx
sudo systemctl nginx را فعال کنید 

اگر Nginx شروع به کار نکرد ، قسمت سرور را در فایل /etc/nginx/nginx.conf حذف کنید. این مرحله اضافه کردن دسترسی HTTPS به سایت BItwarden است.

  • با استفاده از رمزگذاری (IP های عمومی) / FQDN)
  • با استفاده از گواهی امضای خودکار (IPهای خصوصی)

4.a – استفاده از Let's Encrypt SSL

از آنجایی که ما نیاز به دسترسی به اینترنت از طریق HTTPS داریم، باید گواهینامه های SSL تولید کنیم. [07isLet'sEncryptبرایصدورگواهینامههایمعتبرSSLبهصورترایگانبرایهرFQDNاستفادهمیشود

Certbot را مطابق شکل زیر نصب کنید:

  ## در RHEL 8 / CentOS 8 / Rocky Linux 8 / Fedora
 نصب sudo dnf https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf نصب certbot python3-certbot-nginx

 ## در دبیان / اوبونتو
 sudo apt install certbot python3-certbot-nginx 

گواهینامه های SSL را برای نام دامنه خود نصب کنید

 sudo certbot --nginx 

به صورت زیر عمل کنید [1965902/196590/196590/196590/196590/1965902/1965902/1965902/196590/196590/1965902/196590/196590/1965902/196590/1965902/1965902/1965902/196590 decrypt decrypt 2. letsencrypt.log
آدرس ایمیل را وارد کنید (برای تمدید فوری و اعلامیه های امنیتی استفاده می شود)
(برای لغو، 'c' را وارد کنید): یک آدرس ایمیل معتبر در اینجا وارد کنید

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
لطفا شرایط خدمات را در
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. شما باید
برای ثبت نام در سرور ACME موافقت کنید. موافقید؟
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
(Y) es / (N) o: y

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
آیا مایلید، پس از صدور موفقیت آمیز اولین گواهینامه، به
آدرس ایمیل خود را با Electronic Frontier Foundation، یک مؤسس به اشتراک بگذارید
شریک پروژه Let's Encrypt و سازمان غیرانتفاعی آن
Certbot را توسعه می دهد؟ ما می‌خواهیم درباره کارمان در زمینه رمزگذاری وب برای شما ایمیل ارسال کنیم،
اخبار EFF، کمپین ها و راه هایی برای حمایت از آزادی دیجیتال.
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
(Y) es / (N) o: y
حساب ثبت شد

برای کدام نامها می خواهید HTTPS را فعال کنید؟
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
1: bitwarden.example.com
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
اعداد مناسب را که با کاما و / یا فاصله از هم جدا شده اند انتخاب کنید یا ورودی را ترک کنید
برای انتخاب همه گزینه های نشان داده شده خالی (برای لغو عبارت c را وارد کنید): 1

درخواست گواهی برای bitwarden.example.com
انجام چالش های زیر:
چالش http-01 برای bitwarden.example.com
در انتظار تأیید …
پاکسازی چالش ها
استقرار گواهی در VirtualHost /etc/nginx/conf.d/bitwarden.conf
هدایت تمام ترافیک پورت 80 به ssl در /etc/nginx/conf.d/bitwarden.conf

گواهی با موفقیت دریافت شد.
گواهی در: a2enmod ssl ذخیره می شود
/etc/letsencrypt/live/bitwarden.example.com/fullchain.pem
کلید در: /etc/letsencrypt/live/bitwarden.example.com/privkey.pem ذخیره می شود
این گواهی در تاریخ 09/01/2022 منقضی می شود.
این فایل ها با تمدید گواهی به روز می شوند.
Certbot یک کار زمان‌بندی شده برای تمدید خودکار این گواهی در پس‌زمینه تنظیم کرده است.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
اگر Certbot را دوست دارید، لطفاً از کار ما حمایت کنید:
* اهدا به ISRG / اجازه دهید رمزگذاری کنیم: https://letsencrypt.org/donate
* اهدا به EFF: https://eff.org/donate-le
– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

اکنون فایل پیکربندی شما / غیره / nginx / conf.d / bitwarden.conf حاوی گواهینامه های SSL مانند شکل زیر است.

 ...........
    سرور {
        گوش دادن 443 ssl http2 default_server؛
        گوش [::]: 443 ssl http2 default_server؛
        نام ارائهکننده _؛
        root / usr / share / nginx / html.

        ssl_certificate "/etc/letsencrypt/live/ bitwarden.example.com  /fullchain.pem" ؛
        ssl_certificate_key "/etc/letsencrypt/live/[]
        ssl_session_cache به اشتراک گذاشته شده: SSL: 1m;
        ssl_session_timeout 10m;
        ssl_ciphers PROFILE = SYSTEM;
        ssl_prefer_server_ciphers on;

        # فایل های پیکربندی را برای بلوک سرور پیش فرض بارگیری کنید.
        شامل /etc/nginx/default.d/*.conf.

        محل / {
       proxy_pass http: // localhost: 8000 /;
            index index.html index.htm؛
       }

        error_page 404 /404.html;
            مکان = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            مکان = /50x.html {
        }
    } 

4.b – استفاده از گواهی خود امضا

جایگزین دیگر برای کسانی که نام دامنه کاملاً واجد شرایط ندارند ، تأیید گواهینامه های SSL با گواهینامه های خود امضاء شده است.

مطمئن شوید OpenSSL روی سیستم شما نصب شده است. [19659105] سپس این فایل پیکربندی را برای گواهی ها ایجاد کنید

 vim bitwarden_ssl.conf 

موارد زیر را به فایل اضافه کنید:

 [req]
default_bits = 2048
default_keyfile = bitwarden_ssl.key
متمایز_نام = req_نام_متمایز
req_extensions = req_ext
x509_extensions = v3_ca

[req_distinguished_name]
نام کشور = نام کشور (کد 2 حرفی)
countryName_default = KE
stateOrProvinceName = نام ایالت یا استان (نام کامل)
stateOrProvinceName_default = نایروبی
localityName = نام محل (به عنوان مثال ، شهر)
localityName_default = نایروبی
OrganizationName = نام سازمان (به عنوان مثال ، شرکت)
OrganizationName_default = Bitwarden
OrganizationUnitName = واحد سازمانی
organizalUnitName_default = توسعه
CommonName = نام مشترک (به عنوان مثال سرور FQDN یا نام شما)
commonName_default =  Your_IP-Address 
commonName_max = 64

[req_ext]
subjectAltName = @alt_names

[v3_ca]
subjectAltName =alt_names

[alt_names]
DNS.1 = میزبان محلی
DNS.2 =  Your_IP -Address  

اکنون گواهی ها را از فایل پیکربندی مطابق شکل زیر ایجاد کنید

 openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout bitwarden_ssl.key - out bitwarden_ssl.crt -config bitwarden_ssl.conf 

Enter را تا آخر فشار دهید

سپس فایل های تولید شده را در فهرست / etc / ssl / certs کپی کنید، همانطور که در زیر نشان داده شده است:

 sudo cp bitwardcs / etc. / ssl / certs / bitwarden_ssl.crt
sudo mkdir -p / etc / ssl / private /
sudo cp bitwarden_ssl.key /etc/ssl/private/bitwarden_ssl.key 

با استفاده از این دستور، کلید خصوصی و گواهی امضا شده شما (crt.) در دایرکتوری /etc/ssl/certs/ ذخیره می شود. مسیرهای رسیدن به گواهینامه ها در Nginx conf شما همانطور که در زیر نشان داده شده است:

 sudo vim /etc/nginx/conf.d/bitwarden.conf 

شما باید آنها را مطابق شکل زیر به Nginx اضافه کنید.

 سرور {
        گوش دادن 443 ssl http2 default_server;
        listen [::]: 443 ssl http2 default_server;
        server_name  IP_Address شما ;
        root / usr / share / nginx / html.

        ssl_certificate  / etc / ssl / certs /  bitwarden_ssl  .crt ؛
        ssl_certificate_key  / etc / ssl / private /  bitwarden_ssl  کلید ؛
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

        # فایل های پیکربندی را برای بلوک سرور پیش فرض بارگیری کنید.
        شامل /etc/nginx/default.d/*.conf.

        محل / {
       proxy_pass http: // localhost: 8000 /;
            index index.html index.htm;
       }

        error_page 404 /404.html;
            مکان = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            مکان = /50x.html {
        }
    } 

اگر از فایروال استفاده می کنید، HTTP و HTTPS را روی فایروال مجاز کنید.

 sudo firewall-cmd --add-service = http --permanent
sudo firewall-cmd --add-service = https --permanent
sudo firewall-cmd --reload 

سرویس را مجدداً راه اندازی کنید:

 sudo systemctl restart nginx 

مرحله 5 – دسترسی به رابط وب Bitwarden

اکنون می توانید با استفاده از URL/ URL به رابط وب Bitwarden دسترسی پیدا کنید: biwarden.example.com یا https: // IP_Address (برای کسانی که از گواهی‌های خودامضا شده استفاده می‌کنند)

اولین قدم ایجاد یک حساب کاربری با کلیک کردن روی دکمه ایجاد حساب در صفحه ورود به سیستم نمایش داده شده است.

یک پنجره جدید ظاهر می شود که در آن باید داده ها را پر کنید.