এসএসএইচ হেডলেস সার্ভার বুট করার সময় এনক্রিপ্ট করা এলভিএম ডিক্রিপ্ট করবেন?


59

আমি যখন উবুন্টু 10.04 ইনস্টল করেছি এবং এখন, 10.10, তখন আমার হার্ড ড্রাইভের জন্য "এনক্রিপ্টড এলভিএম" সক্ষম করার বিকল্পটি আমাকে দেওয়া হয়েছিল। এই বিকল্পটি চয়ন করার পরে, বুট করার সময় আমার পাসওয়ার্ডের জন্য অনুরোধ জানানো হয় LVM ডিক্রিপ্ট করার জন্য।

এখন, আমি একটি হেডলেস সার্ভার স্থাপনের কথা ভাবছি যা লিনাক্স চালায় (অগত্যা উবুন্টু নয়), তবে আমি উদ্বিগ্ন যে সার্ভারটি মাথা বিহীন হওয়ায় আমি এটি প্রারম্ভকালে এটি ডিক্রিপ্ট করতে পারব না। এনক্রিপ্ট করা এলভিএমের জন্য আমার পাসওয়ার্ডটি প্রবেশ করতে আমি কি বুট চলাকালীন এসএসএইচ করতে সক্ষম হব? যদি তাই হয় কিভাবে আমি এটি সেট আপ করব? অথবা অন্য সমাধান আছে? আবার এই প্রশ্নটি উবুন্টুর সাথে নির্দিষ্ট নয়। ধন্যবাদ।


4
এছাড়াও দেখুন:zless /usr/share/doc/cryptsetup/README.remote.gz
0xC0000022L

আমি মনে করি @ নেটের জবাব গ্রহণযোগ্য হওয়া উচিত: এটি (মূলত, যেহেতু একটি লিঙ্কযুক্ত ব্লগের পরিবর্তনগুলি প্রতিস্থাপন করার জন্য একটি সম্পাদনা প্রয়োজন) ব্যক্তিগত ব্যক্তিগতগুলির পরিবর্তে সর্বজনীন কীগুলি ব্যবহার করে ।
জনাথন ওয়াই।

উত্তর:


25

উবুন্টুর নতুন সংস্করণগুলির জন্য, উদাহরণস্বরূপ, ১৪.০৪, আমি @ ডিগ্রি এবং এই ব্লগপোস্টগুলির উত্তরগুলির একটি সমন্বয় পেয়েছি very প্যারাফ্রেজ করতে:

  1. (সার্ভারে) ড্রপবিয়ার ইনস্টল করুন

    sudo apt-get install dropbear
    
  2. (সার্ভারে) মূল পাবলিক / প্রাইভেট কী লগইনের জন্য অনুলিপিগুলি অনুমতি দিন এবং বরাদ্দ করুন

    sudo cp /etc/initramfs-tools/root/.ssh/id_rsa ~/.
    sudo chown user:user ~/id_rsa
    

সার্ভারে আপনার ব্যবহারকারীর নাম ব্যবহারকারীর পরিবর্তন করতে মনে রাখবেন

  1. (ক্লায়েন্টে) সার্ভার থেকে ব্যক্তিগত কী আনুন

    scp user@remote.server:~/id_rsa ~/.ssh/id_rsa_dropbear
    
  2. (ক্লায়েন্টে) ssh কনফিগারেশনে একটি এন্ট্রি যুক্ত করুন

    Host parkia
        Hostname 192.168.11.111
        User root
        UserKnownHostsFile ~/.ssh/know_hosts.initramfs
        IdentityFile ~/.ssh/id_rsa_dropbear
    Remember to change _parkia_ to whatever you'd like to type `ssh my-box` to be.
    
  3. (সার্ভারে) এ ফাইলটি তৈরি করুন/etc/initramfs-tools/hooks/crypt_unlock.sh

  4. (সার্ভারে) সেই ফাইলটি কার্যকর করা যায়

    sudo chmod +x /etc/initramfs-tools/hooks/crypt_unlock.sh
    
  5. Initramfs আপডেট করুন

    sudo update-initramfs -u
    
  6. বুটে ড্রপবার পরিষেবাটি অক্ষম করুন যাতে পার্টিশন ডিক্রিপ্ট করার পরে ওপেনশ ব্যবহার করা হয়

    sudo update-rc.d dropbear disable
    

তুমি করেছ. চেষ্টা কর. স্ট্যাটিক আইপি অ্যাড্রেস দিয়ে সার্ভারটি কীভাবে কনফিগার করতে হয় সে সম্পর্কে নির্দেশনার জন্য উপরের সাথে লিঙ্কযুক্ত ব্লগ পোস্টটি দেখুন that


লিঙ্কযুক্ত ব্লগটি কোনও ক্লায়েন্টের সর্বজনীন কী সার্ভারের সাথে যুক্ত করার জন্য একটি উল্লেখ যুক্ত করেছে /etc/initramfs-tools/root/.ssh/authorized_keys, এমনকি যদি এটি ড্রপবারের ব্যক্তিগত কীটি অনুলিপি করেও যায়, যা একে একে পুরোপুরি উপেক্ষা করতে পারে। বাকী নির্দেশাবলী অনুসরণ করা আমার পক্ষে কাজ করে, যার অর্থ এটি গ্রহণযোগ্য উত্তর হওয়া উচিত (একবারে এটি সেই পরিবর্তনটি প্রতিফলিত করে) কারণ এটি কেবল সর্বজনীন কী ব্যবহার করে।
জোনাথন ওয়াই।

23

ব্যাসিবক্স এবং ড্রপবারের সাথে এই জাতীয় একটি সেটআপ করার জন্য একটি গাইড এই ব্লগ পোস্টে দেখানো হয়েছে । প্রারম্ভিক-এসএসএস আমার পক্ষে কাজ করেনি এবং স্পষ্টতই আর প্রয়োজন হয় না।

নিম্নলিখিতগুলিতে আপনাকে কী করতে হবে তা আমি সংক্ষেপে জানিয়েছি। আরও তথ্যের জন্য উপরের পোস্টটি একবার দেখুন:

  1. আপনার সার্ভারে ব্যাসিবক্স এবং ড্রপবার ইনস্টল করুন

    sudo apt-get install dropbear busybox
    
  2. সার্ভারে আপনার initramfs আপডেট করুন

    sudo update-initramfs -u
    
  3. আপনার ক্লায়েন্ট মেশিনে ড্রপবার দ্বারা উত্পন্ন ব্যক্তিগত কী অনুলিপি করুন। আপনাকে এটি একটি নতুন দির অনুলিপি করতে হবে এবং এটি করার জন্য মালিকানা পরিবর্তন করতে হবে। আপনার সার্ভারে নিম্নলিখিতটি করুন:

    sudo cp /etc/initramfs-tools/root/.ssh/id_rsa ~/.
    sudo chown user:user ~/id_rsa
    

    আপনার ব্যবহারকারী নাম ব্যবহারকারীর সাথে প্রতিস্থাপন মনে রাখবেন। পাসওয়ার্ড লগইনগুলি কাজ করছে বলে মনে হচ্ছে না।

  4. এখন আপনি আপনার ক্লায়েন্টে নিম্নলিখিত কল করে scp দিয়ে ব্যক্তিগত কী স্থানান্তর করতে পারেন :

    scp user@remote.server:~/id_rsa ~/.ssh/id_rsa_dropbear
    
  5. সহজেই লগইন করার জন্য আপনার ক্লায়েন্টের ~ / .ssh / কনফিগারেশন ফাইল সেট আপ করুন । এটি একটি পাঠ্য সম্পাদক দিয়ে খুলুন এবং নিম্নলিখিত যুক্ত করুন:

    Host myremoteserver
        HostName my.remote.server
        User root
        UserKnownHostsFile ~/.ssh/known_hosts.initramfs
        IdentityFile ~/.ssh/id_rsa_dropbear
    

    আপনার পছন্দমতো হোস্ট এবং হোস্টনেমকে আপনার সার্ভারের নামে পরিবর্তন করুন। ব্যবহারকারীকে মূল হতে দিন। এটি ড্রপবিয়ারের একমাত্র গৃহীত ব্যবহারকারী হিসাবে উপস্থিত বলে মনে হচ্ছে। সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন।

  6. আপনার সার্ভারটি পুনরায় চালু করুন এবং পাসফ্রেজ প্রম্পটের জন্য অপেক্ষা করুন। এর ইন্টারনেট সংযোগ সনাক্ত এবং সেট আপ করতে ড্রপবারকে কয়েক সেকেন্ড দিন। আপনার ক্লায়েন্টের নিম্নলিখিত কমান্ডের সাথে আপনার সার্ভারের সাথে সংযুক্ত করুন :

    ssh myremoteserver # or any name you chose
    
  7. লগ ইন করার পরে, আপনার সার্ভারে নিম্নলিখিত কমান্ডটি জারি করুন । বিশদ জন্য ব্লগ পোস্ট দেখুন:

    pid=`ps | grep "/scripts/local-top/cryptroot" | cut -d " " -f 3`
    kill -9 $pid
    sleep 35
    /scripts/local-top/cryptroot
    pid=`ps | grep "/bin/sh" | cut -d " " -f 3`
    kill -9 $pid;
    

    আপনি আপনার পাসফ্রেজ টাইপ করতে কিছু সময় (30 সেকেন্ড) সময় লাগবে। জিজ্ঞাসা করা হলে এটি টাইপ করুন।

  8. টাইপ করে সংযোগটি বন্ধ করুন

    exit
    
  9. আপনার সার্ভারে এখন এর এনক্রিপ্ট করা হার্ড ড্রাইভটি আনলক করা উচিত এবং স্বাভাবিক হিসাবে বুট করা উচিত।

(ব্লগ পোস্টের মূল লেখকের জন্য একটি বিশাল ধন্যবাদ!)


2
আমি ব্যক্তিগত কীগুলি নিয়ে ঘোরাঘুরি করার কারণটি বেশ বুঝতে পারি না। রুট সার্ভারের জন্য অনুমোদিত কী হিসাবে ক্লায়েন্ট মেশিনে আপনার সার্বজনীন কীটি সার্ভারে অনুলিপি করা যথেষ্ট?
জার্মটভিডিজক

আমি নিশ্চিত যে ক্লায়েন্ট মেশিনে কী জুটি তৈরি করা সম্ভব এবং কেবল সেখান থেকে সর্বজনীন কীটি সার্ভারে সরিয়ে নেওয়া সম্ভব, তবে আমি যদি সঠিকভাবে মনে করি তবে আমি মনে করি যে ব্যাসিবক্স গ্রহণ করবে এমন ফর্ম্যাট খুঁজে পেতে কিছু সমস্যা হয়েছিল। সুতরাং সার্ভারে থাকা কীগুলি পুনরায় ব্যবহার করা আমার কাজ করার একমাত্র বিকল্প ছিল।
টানুন

1
আর্চ লিনাক্সে এই কাজটি করার জন্য আমার কী করা উচিত?
গেরহার্ডডি

1
@Gerhman পরীক্ষা করে দেখুন dropbear_initrd_encrypt Archlinux উপর প্রারম্ভিক SSH সমর্থনের জন্য অর মধ্যে প্যাকেজ।
কালেব

1
@ জেরহমান আর্কউইকি পৃষ্ঠা: মূল বা অন্যান্য বিভাজনকে দূরবর্তী থেকে আনলক করা এখনও এটি করেনি, তবে এটি আকর্ষণীয় দেখাচ্ছে। এটি পরীক্ষা করে দেখতে হবে :)
হান্টেজার

18

আমার ধারণা শুরুর দিকে এসএসএস সরবরাহ করে যা আপনি অনুসন্ধান করছেন:

Early-ssh is a simple initramfs hook, which installs Dropbear SSH server into  
your initramfs, and starts it at boottime, so you will be able to do a lot of  
things remotely over SSH, before your root partition gets mounted, for example:

* unlocking LUKS encrypted crypto devices - 
  even your root can be an encrypted filesystem
* assembling/altering RAID arrays (mdadm)
* checking the root filesystem in read-write mode, 
  taking action in case of errors
* and so on...

ইতিমধ্যে একটি .deb প্যাকেজ উপলব্ধ আছে, সুতরাং আপনি সম্ভবত উবুন্টু সঙ্গে ভাল।


দেখে মনে হচ্ছে ঠিক এটি আমি যা খুঁজছি, ধন্যবাদ!
এইচপি

3
আপনার একটি ভাল টিউটোরিয়াল বা হাউটো লিঙ্ক আছে? আমি আমার ডেবিয়ান স্কিজে বাক্সে প্রারম্ভিক-এসএসএস দিয়ে আটকে আছি

1
হ্যাঁ একটি টিউটোরিয়াল দুর্দান্ত হবে।
এইচপি


16

এর জন্য /usr/share/doc/cryptsetup/README.remote.gz(উবুন্টু প্যাকেজ cryptsetup) ক্রিপ্টসেটআপ রিডমি একবার দেখুন । এটি সম্পন্ন করার জন্য একটি পূর্ণাঙ্গ গাইড রয়েছে। এটি ড্রাগলির উত্তরের মতো , তবে আমি মনে করি এটি কিছুটা মার্জিত। (ড্রপবিয়ার ফর্ম্যাট কীগুলি, একটি ভঙ্গুর শেল স্ক্রিপ্ট ইত্যাদির পরিবর্তে একটি ফিফোর মাধ্যমে পাসফ্রেজ পাস করা)

initramfs এ ssh লগইনের মাধ্যমে রুটফগুলি আনলক করা

ইনিশ্রাম চালিত অবস্থায় চালিত অবস্থায় বুটিং সিস্টেমে লগ ইন করতে ssh ব্যবহার করে আপনি দূরবর্তী থেকে বুটআপে আপনার রুটফগুলি আনলক করতে পারেন।

সেটআপ

রিমোট আনলকিংয়ের কাজ করতে, initramfs তৈরির আগে নিম্নলিখিত প্যাকেজগুলি ইনস্টল করতে হবে: dropbear busybox

ফাইলটি /etc/initramfs-tools/initramfs.confinitramfs তৈরি করার সময় ব্যবহৃত কনফিগারেশন বিকল্পগুলি ধারণ করে। এটা তোলে থাকা উচিত BUSYBOX=y initramfs -র মধ্যে ইনস্টল, busybox আছে (এই ডিফল্ট হিসাবে যখন, busybox প্যাকেজ ইনস্টল করা সেট করা হয়), এবং থাকা উচিত নয় DROPBEAR=n, যা initramfs -র কাছে dropbear ইনস্টলেশনের নিস্ক্রিয় করবে। যদি সেট DROPBEAR=yকরা থাকে তবে যে কোনও ক্ষেত্রে ড্রপবার ইনস্টল করা হবে; যদি DROPBEARএকেবারেই সেট না করা থাকে, তবে ড্রপবায়ারটি কেবল বিদ্যমান ক্রিপট্রূট সেটআপের ক্ষেত্রে ইনস্টল করা হবে।

Initramfs এর জন্য ব্যবহৃত হোস্ট কীগুলি হ'ল dropbear_dss_host_keyএবং dropbear_rsa_host_keyউভয়ই এতে অবস্থিত /etc/initramfs-tools/etc/dropbear/। Initramfs সংকলন করার সময় যদি সেগুলি উপস্থিত না থাকে তবে সেগুলি স্বয়ংক্রিয়ভাবে তৈরি হবে। এগুলি ম্যানুয়ালি তৈরির আদেশগুলি নীচে দেওয়া হয়েছে:

dropbearkey -t dss -f /etc/initramfs-tools/etc/dropbear/dropbear_dss_host_key
dropbearkey -t rsa -f /etc/initramfs-tools/etc/dropbear/dropbear_rsa_host_key

যেমন initramfs এনক্রিপ্ট করা হবে না, পাবলিককি প্রমাণীকরণ অনুমান করা হয়। এর জন্য ব্যবহৃত কী (গুলি) নেওয়া হবে /etc/initramfs-tools/root/.ssh/authorized_keys। এই ফাইলটি যদি ইনস্ট্র্যামগুলি সংকলিত করার সময় উপস্থিত না থাকে তবে এটি তৈরি /etc/initramfs-tools/root/.ssh/id_rsa.pubহবে এবং এতে যুক্ত হবে। যদি পরবর্তী ফাইলটি অস্তিত্ব না থাকে তবে তা স্বয়ংক্রিয়ভাবে উত্পন্ন হবে - আপনি মিলে যাওয়া ব্যক্তিগত কীটি পাবেন যা আপনাকে পরে ইন্ট্রামফগুলিতে লগ ইন করতে হবে /etc/initramfs-tools/root/.ssh/id_rsa (অথবা id_rsa.dropbearযদি আপনাকে ড্রপবার ফর্ম্যাটে এটি প্রয়োজন হয়)। ম্যানুয়ালি সংশ্লিষ্ট পদক্ষেপগুলি করার জন্য নিম্নলিখিত আদেশগুলি দেওয়া হল:

একটি কী (ড্রপবার ফর্ম্যাটে) তৈরি করতে:

dropbearkey -t rsa -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear

ড্রপবিয়ার ফর্ম্যাট থেকে কীটিকে ওপেনশ ফরমেটে রূপান্তর করতে:

/usr/lib/dropbear/dropbearconvert dropbear openssh \
    /etc/initramfs-tools/root/.ssh/id_rsa.dropbear \
    /etc/initramfs-tools/root/.ssh/id_rsa

সর্বজনীন কীটি বের করতে:

dropbearkey -y -f /etc/initramfs-tools/root/.ssh/id_rsa.dropbear | \
    grep "^ssh-rsa " > /etc/initramfs-tools/root/.ssh/id_rsa.pub

অনুমোদিত_কিজ ফাইলগুলিতে সর্বজনীন কী যুক্ত করতে:

cat /etc/initramfs-tools/root/.ssh/id_rsa.pub >> /etc/initramfs-tools/root/.ssh/authorized_keys

যদি আপনি কিছু ইন্টারফেস DHCP ব্যবহার কনফিগার করতে, সেটিং চান DEVICE=মধ্যে /etc/initramfs-tools/initramfs.confযথেষ্ট হওয়া উচিত। Initramfs ip=কার্নেল পরামিতি সম্মান করা উচিত । যদি আপনি গ্রাব ব্যবহার করেন তবে আপনি সম্ভবত এটি সেট করতে চান /boot/grub/menu.lst, হয় ' # kopt=' লাইনে বা নির্দিষ্ট ' kernel' লাইন (গুলি) এ যুক্ত হন। ip=কার্নেল পরামিতি মধ্যে নথিভুক্ত করা Documentation/nfsroot.txtকার্নেল সোর্স গাছে।

সমস্যা

update-initramfsএটি কার্যকর করার জন্য আপনি যখন কনফিগারেশন পরিবর্তন করেছেন তখন চালাতে ভুলবেন না !

এসএসএস ডেমনটির জন্য পর্যাপ্ত এনট্রপি সংগ্রহ করা কখনও কখনও একটি সমস্যা হিসাবে দেখা দেয়। পর্যাপ্ত এনট্রপি পুনরুদ্ধার করা না হওয়া পর্যন্ত ssh ডিমনটির প্রারম্ভিকরণে বিলম্ব হতে পারে। এটি প্রারম্ভিক প্রক্রিয়াটির জন্য অবরুদ্ধকরণ নয়, সুতরাং আপনি যখন কনসোলে থাকবেন তখন আপনাকে sshd এর শুরুটি শেষ করার জন্য অপেক্ষা করতে হবে না।

আনলকিং পদ্ধতি

রিমোট থেকে আনলক করতে, আপনি এর মতো কিছু করতে পারেন:

ssh -o "UserKnownHostsFile=~/.ssh/known_hosts.initramfs" \
    -i "~/id_rsa.initramfs" root@initramfshost.example.com \
    "echo -ne \"secret\" >/lib/cryptsetup/passfifo"

এই উদাহরণটিতে অনুমান আপনি একটি অতিরিক্ত আছে known_hostsফাইল " ~/.ssh/known_hosts.initramfs" যা cryptroot সিস্টেমের হোস্ট-কি ঝুলিতে, আপনি একটি ফাইল আছে যে, " ~/id_rsa.initramfs" যা cryptroot সিস্টেমের জন্য অনুমোদিত কী ঝুলিতে, যে cryptroot সিস্টেমের নাম "হয় initramfshost.example.com", এবং যে ক্রিপট্রুট পাসফ্রেজ হ'ল " secret"

- < debian@x.ray.net>, বুধ, 30 সেপ্টেম্বর 2009

অন্য একটি চ্যানেলে এটি আমাকে দেখানোর জন্য জাপকে ধন্যবাদ ।


1
এটি হ্যাকিশ পিএস-গ্রেপিংয়ের চেয়ে অনেক ভাল ধারণা (অফিশিয়াল ডক্স এবং সমস্ত কিছুতে বর্ণিত) বলে মনে হচ্ছে। যদিও প্রদত্ত আনলকিং পদ্ধতির পাশের নোট হিসাবে, কেউ হয়তো কমান্ড লাইনে পাসফ্রেজ টাইপ করার বিষয়ে সতর্ক থাকতে চান কারণ সম্ভবত এটি কোথাও শেল ইতিহাসের ফাইলটিতে শেষ হবে। একটি সম্ভাব্য সমাধান পাসফ্রেজ ব্যবহার করে অনুরোধ জানানো একটি ক্ষুদ্র র‌্যাপার স্ক্রিপ্ট তৈরি করছে read -s -p
জোয়েলপেট

1
নোট করুন যে সাম্প্রতিক উবুন্টু সংস্করণগুলিতে সেই পদ্ধতির সাথে সমস্যাগুলি রয়েছে, যেমন বাগস.লাঞ্চপ্যাড.এন.বুন্টু
ফ্রেডরিক নর্ড

6

আপনি যদি অপ্রয়োজনীয় পাশাপাশি দূরবর্তীভাবে বুট করতে সক্ষম হতে চান তবে আপনার মান্ডোসের দিকেও নজর দেওয়া উচিত (যা আমি এবং অন্যরা লিখেছেন):

ম্যান্ডোস হ'ল এনক্রিপ্ট করা রুট ফাইল সিস্টেমগুলির সাথে সার্ভারগুলিকে অযৌক্তিকভাবে এবং / অথবা দূর থেকে পুনরায় বুট করার অনুমতি দেওয়ার জন্য একটি সিস্টেম। দেখুন ইন্ট্রো ম্যানুয়েল পৃষ্ঠা একটি প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী তালিকা সহ, আরও তথ্যের জন্য ফাইল।

সংক্ষেপে, বুটিং সার্ভারটি নিরাপদে ফ্যাশনে নেটওয়ার্কের মাধ্যমে পাসওয়ার্ড পেয়ে যায়। বিশদের জন্য পুনরায় দেখুন।


আপনার অবদানের জন্য আপনাকে ধন্যবাদ, তবে মনে রাখবেন যে আপনার পোস্টগুলির 100% আপনার পণ্যের প্রায় একইরকম উল্লেখ হিসাবে সীমান্তরেখা আচরণ , এবং আপনি স্প্যাম হিসাবে বিবেচিত হওয়ার ঝুঁকি চালান (মান্ডোস বিনামূল্যে সফ্টওয়্যার না থাকলে আমি আপনার পোস্টগুলিতে পতাকাঙ্কিত করেছি) অথবা আপনার অন্যান্য সাইটগুলিতে ম্যান্ডোস-বিহীন পোস্টের ইতিহাস নেই)।
গিলস 21

@ গিলস: এখন হয়ে গেছে।
টেডি

2

হেডলেস সার্ভার? এটির যদি সিরিয়াল বন্দর থাকে তবে এটি ব্যবহার করুন।

সিরিয়াল পোর্টে কাজ করতে GRUB কনফিগার করা যায়। প্রারম্ভিক বুট বার্তাগুলি আউটপুট, ড্রাইভগুলি আনলক করতে পাসওয়ার্ড ইনপুট এবং লগ ইন করার জন্য আপনার কর্নেলটি কনফিগার করা যেতে পারে ( মেশিনে একটি মনিটর)।

হেডলেস সার্ভারে যাওয়ার জন্য একটি "নন-নেটওয়ার্ক" উপায় থাকা সর্বদা একটি ভাল ধারণা।


দুর্দান্ত পয়েন্ট! যদিও ক্লায়েন্ট / সার্ভারের মধ্যে শারীরিক সান্নিধ্য কাছাকাছি থাকলে " নন-নেটওয়ার্ক " হেডলেস সার্ভারে প্রবেশের উপায়গুলি বেশিরভাগ ক্ষেত্রে ( কেবল ) প্রাসঙ্গিক; যদি না আমি সিরিয়াল সংযোগের অন্য কোনও সম্ভাবনা / বৈশিষ্ট্য উপেক্ষা করছি।
ILMostro_7

2

আর্চ লিনাক্সে, একটি আউর প্যাকেজ ড্রপবায়ার_ইন্টার্ড_ইনক্রিপেট রয়েছে যা আপনি বাক্সের বাইরে যা চান তা করে। তারযুক্ত ইন্টারফেসের জন্য বেশ ভাল কাজ করে। ওয়্যারলেস জন্য আমাকে কিছুটা হ্যাক করতে হয়েছিল।


2

দুর্ভাগ্যক্রমে, উপরের কোনও উত্তর আমার পক্ষে কাজ করেনি। তদুপরি, সার্ভার থেকে একটি প্রাইভেট কী অনুলিপি করা বিপরীত মনে হয় ical

যাইহোক, নিম্নলিখিত নির্দেশাবলী কার্যকর :

আপনার ক্লায়েন্টের মাধ্যমে এনক্রিপ্ট করা পার্টিশনটি সংযুক্ত করে এবং আনলক করে আপনার সার্ভারটি বুট করুন

বাধ্যতামূলক প্যাকেজগুলি ইনস্টল করুন (SERVER এ)

apt-get install dropbear initramfs-tools busybox

আপনার পছন্দসই পাবলিক কীগুলি SERVER এর অনুমোদিত_কিজি ফাইলগুলিতে যুক্ত করুন

শুধু কপি এবং আপনার সর্বজনীন কী (গুলি) পেস্ট /etc/dropbear-initramfs/authorized_keysসার্ভারে

আনলক স্ক্রিপ্ট তৈরি করুন

নিম্নলিখিত স্ক্রিপ্ট তৈরি করুন /etc/initramfs-tools/hooks/crypt_unlock.sh

#!/bin/sh

PREREQ="dropbear"

prereqs() {
  echo "$PREREQ"
}

case "$1" in
  prereqs)
    prereqs
    exit 0
  ;;
esac

. "${CONFDIR}/initramfs.conf"
. /usr/share/initramfs-tools/hook-functions

if [ "${DROPBEAR}" != "n" ] && [ -r "/etc/crypttab" ] ; then
cat > "${DESTDIR}/bin/unlock" << EOF
#!/bin/sh
if PATH=/lib/unlock:/bin:/sbin /scripts/local-top/cryptroot; then
kill \`ps | grep cryptroot | grep -v "grep" | awk '{print \$1}'\`
# following line kill the remote shell right after the passphrase has
# been entered.
kill -9 \`ps | grep "\-sh" | grep -v "grep" | awk '{print \$1}'\`
exit 0
fi
exit 1
EOF

  chmod 755 "${DESTDIR}/bin/unlock"

  mkdir -p "${DESTDIR}/lib/unlock"
cat > "${DESTDIR}/lib/unlock/plymouth" << EOF
#!/bin/sh
[ "\$1" == "--ping" ] && exit 1
/bin/plymouth "\$@"
EOF

  chmod 755 "${DESTDIR}/lib/unlock/plymouth"

  echo To unlock root-partition run "unlock" >> ${DESTDIR}/etc/motd

fi

এটি সম্পাদনযোগ্য করুন:

chmod +x /etc/initramfs-tools/hooks/crypt_unlock.sh

একটি স্ট্যাটিক আইপি তৈরি করুন (বা ডিএইচসিপি ব্যবহার করতে এই পদক্ষেপটি এড়িয়ে যান)

/etc/initramfs-tools/initramfs.confলাইন যুক্ত করতে (বা পরিবর্তন করতে) সম্পাদনা করুন:

#format [host ip]::[gateway ip]:[netmask]:[hostname]:[device]:[autoconf]
#([hostname] can be omitted)
IP=192.168.1.254::192.168.1.1:255.255.255.0::eth0:off

ইনিশিয়ালরামগুলি আপডেট করুন

update-initramfs -u

বুটে ড্রপবার পরিষেবাটি অক্ষম করুন যাতে পার্টিশন ডিক্রিপ্ট করার পরে ওপেনশ ব্যবহার করা হয়

sudo update-rc.d dropbear disable

পরীক্ষামূলক

  • আপনার সার্ভারটি পুনরায় বুট করুন
  • এর মাধ্যমে আপনার সার্ভারের সাথে সংযুক্ত হন ssh root@192.168.1.254 [-i ~/.ssh/id_rsa]

2

ডেবিয়ান 9 (স্থিতিশীল) এ, এই সমাধানটি পুরানো হয়েছিল। ইনস্টলেশন চলাকালীন, আমি একটি সতর্কতা dropbear: WARNING: Invalid authorized_keys file, remote unlocking of cryptroot via SSH won't work!পেয়েছি এবং আমি প্রয়োজনীয় কীগুলি খুঁজে পেতে সক্ষম হইনি। এই পদ্ধতিটি সত্যিই সহজ, এবং মহান # ডেবিয়ান চ্যানেলে আমাকে ব্যাখ্যা করা হয়েছিল (আবার আপনাকে ধন্যবাদ):

প্রথমে নিশ্চিত যে busybox, dropbearএবং dropbear-initramfsইনস্টল করা

sudo apt install busybox dropbear*

তারপরে ~/.ssh/id_rsa.pubফাইলটিতে আপনার সর্বজনীন কী (বেশিরভাগ সময় ) যুক্ত করুন /etc/dropbear-initramfs/authorized_keys

পরিবর্তনগুলি initramfsআমলে নেওয়ার জন্য আপডেট করুন:: আপডেট-initramfs -u

এখানেই শেষ!

দ্রষ্টব্য, যদি আপনি কীগুলির মধ্যে সংঘর্ষ বাড়াতে চান dropbearএবং openssh(তারা একই আইপি ভাগ করেন তবে আলাদা কী ব্যবহার করেন), আপনি নিজের ক্লায়েন্টকে ~/.ssh/configএমন কিছু রাখতে চাইতে পারেন:

Host myserver_luks_unlock
     User root
     Hostname <myserver>
     # The next line is useful to avoid ssh conflict with IP
     HostKeyAlias <myserver>_luks_unlock
     Port 22
     PreferredAuthentications publickey
     IdentityFile ~/.ssh/id_rsa

তারপরে, আপনি কেবল এটি ব্যবহার করে সংযুক্ত করুন:

ssh myserver_luks_unlock

এবং একবার আপনি কোনও প্রম্পট পেলে ব্যস্তবক্স প্রম্পটের পরামর্শ অনুযায়ী টাইপ করুন:

cryptroot-unlock

এবং আপনার পাসওয়ার্ড টাইপ করুন।

উপভোগ করুন!



0

আমি এই পৃষ্ঠায় অন্যদের দ্বারা ব্যাখ্যা করা কৌশলটি ব্যবহার করেছি ( IPনেটওয়ার্কিং কনফিগার করার জন্য কার্নেল প্যারামিটারের সাথে initramfs এ এসএসএইচ ) এখন বেশ কয়েক বছর ধরে হেডলেস উবুন্টু লিনাক্স সার্ভারগুলি (12.02, 14.04, 16.04 এবং 18.04) দূরবর্তীভাবে আনলক করতে।

এমনকি আমি পাইথন প্রোগ্রাম ( আনলক-রিমোট-সিস্টেম ) বিকাশ করতে পেরেছি যা প্রকৃতপক্ষে আমার জন্য আনলকিং করে, কারণ এটি নিজে করার প্রক্রিয়াটি কিছুটা ভঙ্গুর অনুভূত হয়েছিল এবং আমি আমার সার্ভারগুলি পুনরায় চালু করার ভয় পেয়েছিলাম, তাই আত্মায় এর "যদি এটির ক্ষতি হয় তবে এটি স্বয়ংক্রিয়ভাবে মূল্যবান হবে" আমি পাইথনে আমার জ্ঞানটি এনকোড করেছি 😇 (এবং এটি সুরক্ষা আপডেটগুলি প্রয়োগ করার জন্য নিয়মিত রিবুটগুলি করা আরও সহজ করে দেওয়া হয়েছে)।

সেই থেকে আমি আমার ব্যক্তিগত নোটগুলি বিশ্বের সাথে রিমোট রুট ডিস্ক এনক্রিপশনে শেয়ার করার সিদ্ধান্ত নিয়েছি । লিঙ্কযুক্ত পৃষ্ঠায় প্রক্রিয়া সম্পর্কে বেশ কয়েকটি বিশদ রয়েছে (এছাড়াও এখানে কিছু উল্লেখ করা হয়নি এমন কিছু ইঙ্গিত) এবং আমি তা আপ টু ডেট রাখার ইচ্ছা করি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.