Bitcoin هڪ پنجري ۾؟

ائين ٿيو آهي ته پروفيشن جي لحاظ کان مان ڪمپيوٽر سسٽم ۽ نيٽ ورڪ جو ايڊمنسٽريٽر آهيان (مختصر ۾: سسٽم ايڊمنسٽريٽر) ۽ مون کي 10 سالن کان وڌيڪ عرصي کان پروفيسر کي ٻڌائڻ جو موقعو مليو. مختلف قسم جي سسٽم جون سرگرميون، بشمول اهي جيڪي [انتهائي] حفاظتي قدمن جي ضرورت هونديون آهن. اهو به ٿيو ته ڪجهه عرصو اڳ مون کي اهو دلچسپ لڳو bitcoin، ۽ نه صرف ان کي استعمال ڪيو، پر ڪيترن ئي مائڪرو-سروسز پڻ شروع ڪيو ته جيئن آزاديء سان Bitcoin نيٽ ورڪ سان ڪيئن ڪم ڪجي (اڪا p2p آخرڪار) هڪ ڊولپر جي نقطي نظر کان (مان يقيناً انهن مان هڪ آهيان. devتنهن ڪري، مان گذري رهيو هوس). پر مان ترقي بابت نه ڳالهائي رهيو آهيان، مان ايپليڪيشنن لاءِ محفوظ ۽ ڪارائتو ماحول جي ڳالهه ڪري رهيو آهيان.

مالي ٽيڪنالاجي (fintechانفارميشن سيڪيورٽي جي اڳيان وڃو (انفو) ۽ پهريون ٻئي کان سواء ڪم ڪري سگهي ٿو، پر ڊگهي لاء نه. ان ڪري مان چاهيان ٿو ته منهنجو تجربو ۽ اوزارن جو سيٽ جيڪو آئون استعمال ڪريان ٿو، جنهن ۾ ٻئي شامل آهن fintech، ۽ انفو، ۽ ساڳئي وقت، ۽ پڻ وسيع يا مڪمل طور تي مختلف مقصد لاء استعمال ڪري سگهجي ٿو. هن آرٽيڪل ۾ آئون توهان کي Bitcoin بابت گهڻو ڪجهه نه ٻڌائيندس، پر مالياتي (۽ نه رڳو) خدمتن جي ترقي ۽ آپريشن لاءِ بنيادي ڍانچي جي ماڊل بابت - هڪ لفظ ۾، اهي خدمتون جتي "B" اهميت رکي ٿي. اهو ٻنهي تي لاڳو ٿئي ٿو Bitcoin مٽا سٽا تي ۽ هڪ ننڍڙي ڪمپني جي خدمتن جي سڀ کان عام ڪارپوريٽ زو تي جيڪو ڪنهن به طريقي سان Bitcoin سان ڳنڍيل ناهي.

مان سمجهان ٿو ته مان اصولن جو حامي آهيان "ان کي بيوقوف سادو رکو" и "گهٽ وڌيڪ آهي"تنهن ڪري، ٻئي مضمون ۽ جيڪي ان ۾ بيان ڪيو ويو آهي، اهي خاصيتون هونديون جيڪي اهي اصول آهن.

خيالي منظر: اچو ته bitcoin exchanger جو مثال استعمال ڪندي هر شيءِ تي نظر وجهون. اسان bitcoins ۽ واپس لاء روبل، ڊالر، يورو جي بدلي کي شروع ڪرڻ جو فيصلو ڪيو، ۽ اسان وٽ اڳ ۾ ئي هڪ ڪم ڪندڙ حل آهي، پر ٻين ڊجيٽل پئسن جهڙوڪ qiwi ۽ webmoney لاء، i.e. اسان سڀني قانوني مسئلن کي بند ڪري ڇڏيو آهي، اسان وٽ هڪ تيار ٿيل ايپليڪيشن آهي جيڪا روبل، ڊالر ۽ يورو ۽ ٻين ادائگي جي سسٽم لاء ادائيگي گيٽ وي جي طور تي ڪم ڪري ٿي. اهو اسان جي بئنڪ اڪائونٽن سان ڳنڍيل آهي ۽ اسان جي آخري ايپليڪيشنن لاءِ ڪجهه قسم جو API آهي. اسان وٽ هڪ ويب ايپليڪيشن پڻ آهي جيڪا استعمال ڪندڙن لاءِ ايڪسچينج ڪندڙ طور ڪم ڪري ٿي، سٺو، هڪ عام qiwi يا webmoney اڪائونٽ وانگر - هڪ کاتو ٺاهيو، ڪارڊ شامل ڪريو، وغيره. اهو اسان جي گيٽ وي ايپليڪيشن سان رابطو ڪري ٿو، جيتوڻيڪ مقامي علائقي ۾ REST API ذريعي. ۽ تنهنڪري اسان bitcoins کي ڳنڍڻ جو فيصلو ڪيو ۽ ساڳئي وقت انفراسٽرڪچر کي اپڊيٽ ڪيو، ڇاڪاڻ ته ... شروعات ۾، سڀ ڪجھ جلدي ۾ ٽيبل جي هيٺان آفيس ۾ ورچوئل باڪس تي رکيل هئي... سائيٽ استعمال ٿيڻ شروع ٿي، ۽ اسان اپٽائم ۽ ڪارڪردگي بابت پريشان ٿيڻ شروع ڪيو.

تنهن ڪري، اچو ته بنيادي شيء سان شروع ڪريون - هڪ سرور چونڊڻ. ڇاڪاڻ ته اسان جي مثال ۾ ڪاروبار ننڍڙو آهي ۽ اسان ميزبان (OVH) تي ڀروسو ڪنداسين جيڪو اسان چونڊيندا سين هڪ بجيٽ اختيار جنهن ۾ اصل .iso تصوير مان سسٽم کي انسٽال ڪرڻ ناممڪن آهي پر ان سان ڪو فرق نٿو پوي، آئي ٽي سيڪيورٽي ڊپارٽمينٽ ان انسٽال ٿيل تصوير جو ضرور تجزيو ڪندو. ۽ جڏهن اسان وڏا ٿينداسين، اسان محدود جسماني رسائي سان تالا ۽ چاٻي جي هيٺان پنهنجي پنهنجي الماري ڪرائي ڏينداسين، ۽ ٿي سگهي ٿو اسان پنهنجو ڊي سي ٺاهينداسين. ڪنهن به صورت ۾، اهو ياد رکڻ جي قابل آهي ته جڏهن هارڊويئر ڪرائي تي ۽ تيار ڪيل تصويرون نصب ڪرڻ، اتي هڪ موقعو آهي ته توهان وٽ هوندو "ٽروجن مان هوسٽر" توهان جي سسٽم تي لٽڪي رهيو آهي، جيڪو اڪثر ڪيسن ۾ توهان جي جاسوسي ڪرڻ جو ارادو ناهي. پر پيش ڪرڻ لاء وڌيڪ آسان انتظام اوزار سرور.

سرور تنصيب

هتي سڀ ڪجھ سادو آهي. اسان هارڊويئر چونڊيندا آهيون جيڪو اسان جي ضرورتن مطابق هجي. پوءِ چونڊيو FreeBSD تصوير. خير، يا اسان ڳنڍيون ٿا (ٻي ميزبان ۽ اسان جي پنهنجي هارڊويئر جي صورت ۾) IPMI ذريعي يا مانيٽر سان ۽ ڊائون لوڊ ۾ .iso FreeBSD تصوير کي فيڊ ڪريو. آرڪيسٽرل سيٽ اپ لاءِ مان استعمال ڪريان ٿو ناھي и mfsbsd. صرف شيء، اسان جي صورت ۾ kimsufi سان، اسان کي چونڊيو حسب ضرورت تنصيب آئيني ۾ موجود ٻن ڊسڪن لاءِ صرف بوٽ ۽ /هوم پارٽيشنز ”اوپن“ آهن، باقي ڊسڪ اسپيس کي انڪريپٽ ڪيو ويندو، پر ان کان پوءِ وڌيڪ.

Bitcoin هڪ پنجري ۾؟

سسٽم جي انسٽاليشن هڪ معياري طريقي سان ٿيندي آهي، مان هن تي نه ويندس، مان صرف اهو نوٽ ڪندس ته آپريشن شروع ڪرڻ کان پهريان اهو ڌيان ڏيڻ جي قابل آهي. سختي سان اختيار جيڪي پيش ڪري ٿو bsdinstaller انسٽاليشن جي آخر ۾ (جيڪڏهن توهان سسٽم پاڻ کي انسٽال ڪريو):

Bitcoin هڪ پنجري ۾؟

ڪري سگهو ٿا سٺو مواد هن موضوع تي، مان هتي مختصر طور تي ان کي ورجائيندس.

اهو پڻ ممڪن آهي ته اڳ ۾ ئي نصب ٿيل سسٽم تي مٿي بيان ڪيل پيٽرولن کي فعال ڪرڻ لاء. هن کي ڪرڻ لاءِ، توهان کي بوٽ لوڊر فائل کي ايڊٽ ڪرڻ جي ضرورت آهي ۽ ڪرنل پيرا ميٽرز کي فعال ڪرڻ جي ضرورت آهي. *ee BSD ۾ هن جهڙو ايڊيٽر آهي

# ee /etc/rc.conf

...
#sec hard
clear_tmp_enable="YES"
syslogd_flags="-ss"    
sendmail_enable="NONE"

# ee /etc/sysctl.conf

...
#sec hard
security.bsd.see_other_uids=0
security.bsd.see_other_gids=0
security.bsd.unprivileged_read_msgbuf=0
security.bsd.unprivileged_proc_debug=0
kern.randompid=$(jot -r 1 9999)
security.bsd.stack_guard_page=1

توهان کي پڻ پڪ ڪرڻ گهرجي ته توهان وٽ سسٽم جو جديد نسخو نصب ٿيل آهي، ۽ سڀ اپڊيٽ ۽ اپ گريڊ انجام ڏيو. اسان جي صورت ۾، مثال طور، جديد ورزن ۾ اپ گريڊ گهربل آهي، ڇاڪاڻ ته ... قبل از انسٽاليشن تصويرون ڇهن مهينن کان هڪ سال تائين پوئتي هونديون آهن. خير، اتي اسان تبديل ڪريون ٿا SSH بندرگاھ کي ڊفالٽ ھڪڙي کان مختلف شيءِ ۾، ڪيئي تصديق شامل ڪريو ۽ پاسورڊ جي تصديق کي غير فعال ڪريو.

پوء اسان قائم ڪيو aide، سسٽم جي ترتيب واري فائلن جي صورتحال جي نگراني. توھان وڌيڪ تفصيل سان پڙھي سگھو ٿا هتي.

pkg install aide

۽ اسان جي ڪرنٽاب کي تبديل ڪريو

crontab -e

06 01 * * 0-6 /root/chkaide.sh

#! /bin/sh
#chkaide.sh
MYDATE=`date +%Y-%m-%d`
MYFILENAME="Aide-"$MYDATE.txt
/bin/echo "Aide check !! `date`" > /tmp/$MYFILENAME
/usr/local/bin/aide --check > /tmp/myAide.txt
/bin/cat /tmp/myAide.txt|/usr/bin/grep -v failed >> /tmp/$MYFILENAME
/bin/echo "**************************************" >> /tmp/$MYFILENAME
/usr/bin/tail -20 /tmp/myAide.txt >> /tmp/$MYFILENAME
/bin/echo "****************DONE******************" >> /tmp/$MYFILENAME

اسان شامل ڪريون ٿا سسٽم آڊيٽنگ

sysrc auditd_enable=YES

# service auditd start

هن معاملي کي ڪيئن منظم ڪرڻ لاء مڪمل طور تي بيان ڪيو ويو آهي قيادت.

ھاڻي اسان ريبوٽ ڪيو ۽ سرور تي سافٽ ويئر ڏانھن اڳتي وڌو. هر سرور ڪنٽينرز يا مڪمل ورچوئل مشينن لاءِ هڪ هائپرائزر آهي. تنهن ڪري، اهو ضروري آهي ته پروسيسر VT-x ۽ EPT کي سپورٽ ڪري ٿو جيڪڏهن اسان مڪمل ورچوئلائيزيشن کي استعمال ڪرڻ جو منصوبو ٺاهيو.

ڪنٽينرز ۽ ورچوئل مشينن کي منظم ڪرڻ لاءِ آئون استعمال ڪريان ٿو سي بي ايس ڊي от olevole، مان هن کي هن شاندار افاديت لاءِ وڌيڪ صحت ۽ برڪت ڏيان ٿو!

ڪنٽينرز؟ ڊڪر ٻيهر يا ڇا؟

پر نه. مفت بي ايس ڊي جيل ڪنٽينرائزيشن لاءِ هڪ بهترين اوزار آهي، پر ذڪر ڪيل آهي cbsd انهن ڪنٽينرن کي ترتيب ڏيڻ لاءِ، جن کي سيل سڏيو ويندو آهي.

ڪيج مختلف مقصدن لاءِ بنيادي ڍانچي جي تعمير لاءِ هڪ انتهائي موثر حل آهي، جتي انفرادي خدمتن يا عملن کي مڪمل طور تي الڳ ڪرڻ جي ضرورت پوندي آهي. لازمي طور تي، اهو ميزبان سسٽم جو هڪ کلون آهي، پر اهو مڪمل هارڊويئر ورچوئلائيزيشن جي ضرورت ناهي. ۽ انهي جي مهرباني، وسيلن کي "مهمان او ايس" تي خرچ نه ڪيو ويو آهي، پر صرف ڪم تي ڪيو پيو وڃي. جڏهن سيلز اندروني ضرورتن لاءِ استعمال ڪيا ويندا آهن، اهو هڪ تمام آسان حل آهي وسيلن جي بهتر استعمال لاءِ - هڪ هارڊويئر سرور تي سيلز جو هڪ گروپ هر هڪ انفرادي طور تي پوري سرور وسيلن کي استعمال ڪري سگهي ٿو جيڪڏهن ضروري هجي. غور ڪيو ته عام طور تي مختلف ماتحت اضافي جي ضرورت آهي. وسيلا مختلف وقتن تي، توهان هڪ سرور مان وڌ ۾ وڌ ڪارڪردگي ڪڍي سگهو ٿا جيڪڏهن توهان صحيح طريقي سان منصوبابندي ڪري سگهو ٿا ۽ سرور جي وچ ۾ سيلز کي بيلنس ڪريو. جيڪڏهن ضروري هجي ته، سيلز پڻ استعمال ڪيل وسيلن تي پابنديون ڏئي سگهجن ٿيون.

Bitcoin هڪ پنجري ۾؟

مڪمل ورچوئلائيزيشن بابت ڇا؟

جيئن مان ڄاڻان ٿو، cbsd ڪم جي حمايت ڪري ٿو bhyve ۽ XEN هائپر ويزرز. مون ڪڏهن به ٻيو استعمال نه ڪيو آهي، پر پهرين هڪ نسبتا نئين آهي FreeBSD کان hypervisor. اسان استعمال جو هڪ مثال ڏسنداسين bhyve هيٺ ڏنل مثال ۾.

ميزبان ماحول کي انسٽال ڪرڻ ۽ ترتيب ڏيڻ

اسان FS استعمال ڪندا آهيون ZFS. هي سرور جي جڳهه کي منظم ڪرڻ لاء هڪ انتهائي طاقتور اوزار آهي. ZFS جي مهرباني، توهان سڌي طرح ڊسڪ مان مختلف ترتيبن جا صفا ٺاهي سگهو ٿا، متحرڪ طور تي "گرم" جڳهه کي وڌايو، مئل ڊسڪ کي تبديل ڪريو، سنيپ شاٽ منظم ڪريو، ۽ گهڻو ڪجهه، جيڪو مضمونن جي مڪمل سيريز ۾ بيان ڪري سگهجي ٿو. اچو ته اسان جي سرور ۽ ان جي ڊسڪ ڏانهن واپس وڃو. انسٽاليشن جي شروعات ۾، اسان ڊسڪ تي خالي جاء ڇڏي انڪريڊ ٿيل ورهاڱي لاء. ائين ڇو آهي؟ اهو انهي ڪري آهي ته سسٽم خودڪار طور تي جاڳندو آهي ۽ SSH ذريعي ٻڌندو آهي.

gpart add -t freebsd-zfs /dev/ada0

/dev/ada0p4 added!

باقي خلا ۾ هڪ ڊسڪ ورهاڱي شامل ڪريو

geli init /dev/ada0p4

اسان جو انڪرپشن پاسورڊ داخل ڪريو

geli attach /dev/ada0p4

اسان ٻيهر پاسورڊ داخل ڪيو ۽ اسان وٽ هڪ ڊيوائس آهي /dev/ada0p4.eli - هي اسان جي انڪرپٽ ٿيل جڳهه آهي. پوءِ اسان ساڳيو ئي ورجائيندا آهيون /dev/ada1 ۽ باقي ڊسڪ لاءِ صف ۾. ۽ اسان هڪ نئون ٺاهيو ZFS پول.

zpool create vms mirror /dev/ada0p4.eli /dev/ada1p4.eli /dev/ada3p4.eli - چڱو، اسان وٽ گھٽ ۾ گھٽ جنگي کٽ تيار آھي. ٽن مان هڪ ناڪام ٿيڻ جي صورت ۾ ڊسڪ جي هڪ آئيني صف.

نئين "پول" تي ڊيٽا سيٽ ٺاهڻ

zfs create vms/jails

pkg install cbsd - اسان هڪ ٽيم شروع ڪئي ۽ اسان جي سيلز لاء انتظام قائم ڪيو.

کان پوء cbsd انسٽال ٿيل، ان کي شروع ڪرڻ جي ضرورت آهي:

# env workdir="/vms/jails" /usr/local/cbsd/sudoexec/initenv

خير، اسان سوالن جو هڪ گروپ جواب ڏيون ٿا، اڪثر ڪري ڊفالٽ جوابن سان.

*جيڪڏهن توهان انڪرپشن استعمال ڪري رهيا آهيو، اهو ضروري آهي ته ڊيمون cbsdd خودڪار طور تي شروع نه ٿيو جيستائين توهان ڊسڪ کي دستي طور تي يا خودڪار طور تي ڊسڪ نه ڪيو (اسان جي مثال ۾ اهو زبڪس طرفان ڪيو ويو آهي)

** مان پڻ استعمال نٿو ڪريان NAT from cbsd، ۽ مان ان کي پاڻ ۾ ترتيب ڏيان ٿو pf.

# sysrc pf_enable=YES

# ee /etc/pf.conf

IF_PUBLIC="em0"
IP_PUBLIC="1.23.34.56"
JAIL_IP_POOL="192.168.0.0/24"

#WHITE_CL="{ 127.0.0.1 }"

icmp_types="echoreq"

set limit { states 20000, frags 20000, src-nodes 20000 }
set skip on lo0
scrub in all

#NAT for jails
nat pass on $IF_PUBLIC from $JAIL_IP_POOL to any -> $IP_PUBLIC

## Bitcoin network port forward
IP_JAIL="192.168.0.1"
PORT_JAIL="{8333}"
rdr pass on $IF_PUBLIC proto tcp from any to $IP_PUBLIC port $PORT_JAIL -> $IP_JAIL

# service pf start

# pfctl -f /etc/pf.conf

فائر وال جي پاليسين کي ترتيب ڏيڻ پڻ هڪ الڳ موضوع آهي، تنهنڪري آئون بلاڪ آل پاليسي کي ترتيب ڏيڻ ۽ وائيٽ لسٽن کي ترتيب ڏيڻ ۾ نه ويندس، توهان اهو پڙهي سگهو ٿا. سرڪاري دستاويز يا گوگل تي موجود مضمونن جي وڏي تعداد مان ڪو به.

خير... اسان سي بي ايس ڊي انسٽال ڪيو آهي، اهو وقت آهي اسان جو پهريون ڪم هارس ٺاهڻ جو - پنججدار Bitcoin شيطان!

cbsd jconstruct-tui

Bitcoin هڪ پنجري ۾؟

هتي اسان ڏسون ٿا سيل ٺاهڻ وارو ڊائلاگ. سڀني قدرن کي مقرر ڪرڻ کان پوء، اچو ته ٺاهيو!

جڏهن توهان جو پهريون سيل ٺاهيو، توهان کي اهو چونڊڻ گهرجي ته سيلز لاء بنيادي طور تي ڇا استعمال ڪجي. مان ڪمانڊ سان FreeBSD مخزن مان هڪ تقسيم چونڊيو repo. هي انتخاب صرف تڏهن ڪيو ويندو آهي جڏهن هڪ مخصوص ورزن جو پهريون سيل ٺاهيو (توهان ڪنهن به ورزن جي سيلز کي ميزباني ڪري سگهو ٿا جيڪو ميزبان ورزن کان پراڻو آهي).

هر شي کي نصب ڪرڻ کان پوء، اسان پنجري کي لانچ ڪيو!

# cbsd jstart bitcoind

پر اسان کي پنجري ۾ سافٽ ويئر انسٽال ڪرڻو پوندو.

# jls

   JID  IP Address      Hostname                      Path
     1  192.168.0.1     bitcoind.space.com            /zroot/jails/jails/bitcoind

jexec bitcoind سيل ڪنسول ۾ حاصل ڪرڻ لاء

۽ اڳ ۾ ئي سيل اندر اسان سافٽ ويئر انسٽال ڪريون ٿا ان جي انحصار سان (اسان جو ميزبان سسٽم صاف رهي ٿو)

bitcoind:/@[15:25] # pkg install bitcoin-daemon bitcoin-utils

bitcoind:/@[15:30] # sysrc bitcoind_enable=YES

bitcoind:/@[15:30] # service bitcoind start

ڪيج ۾ Bitcoin آهي، پر اسان کي گمنام جي ضرورت آهي ڇو ته اسان TOP نيٽ ورڪ ذريعي ڪجهه ڪيجز سان ڳنڍڻ چاهيون ٿا. عام طور تي، اسان مشڪوڪ سافٽ ويئر سان اڪثر سيلز کي صرف هڪ پراکسي ذريعي هلائڻ جو منصوبو ٺاهيو. مهرباني هن جي pf توھان مقامي نيٽ ورڪ تي IP پتي جي ھڪڙي حد لاءِ NAT کي غير فعال ڪري سگھو ٿا، ۽ NAT کي صرف اسان جي TOR نوڊ لاءِ اجازت ڏيو. ان ڪري، جيتوڻيڪ مالويئر سيل ۾ داخل ٿئي ٿو، اهو گهڻو ڪري ٻاهرئين دنيا سان رابطو نه ڪندو، ۽ جيڪڏهن اهو ڪري ٿو، اهو اسان جي سرور جي IP کي ظاهر نه ڪندو. تنهن ڪري، اسان هڪ ٻيو سيل ٺاهيندا آهيون "اڳتي" خدمتن کي ".onion" سروس جي طور تي ۽ هڪ پراکسي جي طور تي انٽرنيٽ تائين رسائي انفرادي سيلز تائين.

# cbsd jsconstruct-tui

# cbsd jstart tor

# jexec tor

tor:/@[15:38] # pkg install tor

tor:/@[15:38] # sysrc tor_enable=YES

tor:/@[15:38] # ee /usr/local/etc/tor/torrc

مقامي ايڊريس تي ٻڌڻ لاءِ سيٽ ڪريو (سڀني سيلن لاءِ دستياب)

SOCKSPort 192.168.0.2:9050

اسان کي مڪمل خوشين لاءِ ٻيو ڇا گهرجي؟ ها، اسان کي اسان جي ويب لاء هڪ خدمت جي ضرورت آهي، شايد هڪ کان وڌيڪ. اچو ته nginx شروع ڪريون، جيڪو هڪ ريورس-پراڪسي طور ڪم ڪندو ۽ Let's Encrypt سرٽيفڪيٽن جي تجديد جو خيال رکندو

# cbsd jsconstruct-tui

# cbsd jstart nginx-rev

# jexec nginx-rev

nginx-rev:/@[15:47] # pkg install nginx py36-certbot

۽ تنهنڪري اسان هڪ پنجري ۾ 150 MB انحصار رکيا. ۽ ميزبان اڃا تائين صاف آهي.

اچو ته nginx کي ترتيب ڏيڻ لاءِ بعد ۾ واپس وڃون، اسان کي اسان جي ادائيگي جي گيٽ وي لاءِ nodejs ۽ rust ۽ هڪ ويب ايپليڪيشن لاءِ ٻه وڌيڪ سيلز وڌائڻ گهرجن، جيڪي ڪجهه سببن لاءِ Apache ۽ PHP ۾ آهن، ۽ بعد ۾ پڻ MySQL ڊيٽابيس جي ضرورت آهي.

# cbsd jsconstruct-tui

# cbsd jstart paygw

# jexec paygw

paygw:/@[15:55] # pkg install git node npm

paygw:/@[15:55] # curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

... ۽ ٻيو 380 MB پيڪيجز الڳ ٿيل

اڳيون، اسان گٽ سان اسان جي ايپليڪيشن کي ڊائون لوڊ ڪريو ۽ ان کي لانچ ڪيو.

# cbsd jsconstruct-tui

# cbsd jstart webapp

# jexec webapp

webapp:/@[16:02] # pkg install mariadb104-server apache24 php74 mod_php74 php74-pdo_mysql

450 MB پيڪيجز. هڪ پنجري ۾.

هتي اسان ڊولپر کي SSH ذريعي سڌو سيل تائين رسائي ڏيون ٿا، اهي اتي سڀ ڪجهه پاڻ ڪندا:

webapp:/@[16:02] # ee /etc/ssh/sshd_config

Port 2267 - سيل جي SSH بندرگاهن کي ڪنهن به صوابديدي ۾ تبديل ڪريو

webapp:/@[16:02] # sysrc sshd_enable=YES

webapp:/@[16:02] # service sshd start

خير، خدمت هلي رهي آهي، باقي رهي ٿو قاعدي کي شامل ڪرڻ pf firewall

اچو ته ڏسون ته IP اسان جي سيلن ۾ ڇا آهي ۽ اسان جو ”مقامي علائقو“ عام طور تي ڪهڙو نظر اچي ٿو.

# jls

   JID  IP Address      Hostname                      Path
     1  192.168.0.1     bitcoind.space.com            /zroot/jails/jails/bitcoind
     2  192.168.0.2     tor.space.com                 /zroot/jails/jails/tor
     3  192.168.0.3     nginx-rev.space.com           /zroot/jails/jails/nginx-rev
     4  192.168.0.4     paygw.space.com               /zroot/jails/jails/paygw
     5  192.168.0.5     webapp.my.domain              /zroot/jails/jails/webapp

۽ ضابطو شامل ڪريو

# ee /etc/pf.conf

## SSH for web-Devs
IP_JAIL="192.168.0.5"
PORT_JAIL="{ 2267 }"
rdr pass on $IF_PUBLIC proto tcp from any to $IP_PUBLIC port $PORT_JAIL -> $IP_JAIL

خير، جيئن اسان هتي آهيون، اچو ته ريورس-پراڪسي لاءِ به هڪ قاعدو شامل ڪريون:

## web-ports for nginx-rev
IP_JAIL="192.168.0.3"
PORT_JAIL="{ 80, 443 }"
rdr pass on $IF_PUBLIC proto tcp from any to $IP_PUBLIC port $PORT_JAIL -> $IP_JAIL

# pfctl -f /etc/pf.conf

خير، هاڻي bitcoins جي باري ۾ ٿورو

اسان وٽ ڇا آهي اسان وٽ هڪ ويب ايپليڪيشن آهي جيڪا ٻاهران ظاهر ڪئي وئي آهي ۽ اها مقامي طور تي اسان جي ادائيگي گيٽ وي سان ڳالهائي ٿي. هاڻي اسان کي Bitcoin نيٽ ورڪ سان رابطي لاء ڪم ڪندڙ ماحول تيار ڪرڻ جي ضرورت آهي - نوڊ bitcoind اهو صرف هڪ ڊيمون آهي جيڪو بلاڪچين جي مقامي ڪاپي کي تاريخ تائين رکي ٿو. ھن ڊيمن ۾ آر پي سي ۽ والٽ ڪارڪردگي آھي، پر ايپليڪيشن ڊولپمينٽ لاءِ وڌيڪ آسان ”ريپرز“ آھن. شروع ڪرڻ لاء، اسان رکڻ جو فيصلو ڪيو electrum هڪ CLI والٽ آهي. هن پرس اسان ان کي استعمال ڪنداسين "ٿڌي اسٽوريج" جي طور تي اسان جي Bitcoins لاء - عام طور تي، اهي bitcoins جيڪي "ٻاهر" محفوظ ڪرڻ جي ضرورت پوندي سسٽم صارفين جي رسائي ۽ عام طور تي سڀني کان پري. اهو پڻ هڪ GUI آهي، تنهنڪري اسان اسان جي ساڳي والٽ استعمال ڪرڻ وارا آهيون
ليپ ٽاپ في الحال اسان عوامي سرورز سان اليڪٽرم استعمال ڪنداسين، ۽ بعد ۾ اسان ان کي ٻئي سيل ۾ وڌائينداسين اليڪٽرڪ ايڪسته جيئن ڪنهن تي به ڀروسو نه ڪجي.

# cbsd jsconstruct-tui

# cbsd jstart electrum

# jexec electrum

electrum:/@[8:45] # pkg install py36-electrum

ٻيو 700 MB سافٽ ويئر اسان جي پنجري ۾

electrum:/@[8:53] # adduser

Username: wallet
Full name: 
Uid (Leave empty for default): 
Login group [wallet]: 
Login group is wallet. Invite wallet into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh nologin) [sh]: tcsh
Home directory [/home/wallet]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]: 
Username   : wallet
Password   : <disabled>
Full Name  : 
Uid        : 1001
Class      : 
Groups     : wallet 
Home       : /home/wallet
Home Mode  : 
Shell      : /bin/tcsh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (wallet) to the user database.
Add another user? (yes/no): no
Goodbye!
electrum:/@[8:53] # su wallet

electrum:/@[8:53] # su wallet

wallet@electrum:/ % electrum-3.6 create

{
    "msg": "Please keep your seed in a safe place; if you lose it, you will not be able to restore your wallet.",
    "path": "/usr/home/wallet/.electrum/wallets/default_wallet",
    "seed": "jealous win pig material ribbon young punch visual okay cactus random bird"
}

ھاڻي اسان وٽ ھڪڙو پرس ٺاھيو آھي.

wallet@electrum:/ % electrum-3.6 listaddresses

[
    "18WEhbjvMLGRMfwudzUrUd25U5C7uZYkzE",
    "14XHSejhxsZNDRtk4eFbqAX3L8rftzwQQU",
    "1KQXaN8RXiCN1ne9iYngUWAr6KJ6d4pPas",
    ...
    "1KeVcAwEYhk29qEyAfPwcBgF5mMMoy4qjw",
    "18VaUuSeBr6T2GwpSHYF3XyNgLyLCt1SWk"
]

wallet@electrum:/ % electrum-3.6 help

اسان کي زنجير هاڻي کان صرف محدود تعداد ۾ ماڻهو والٽ سان ڳنڍڻ جي قابل هوندا. ٻاهران هن سيل تائين رسائي نه کولڻ لاءِ، SSH ذريعي ڪنيڪشن TOP (VPN جو هڪ غير مرڪزي ورزن) ذريعي ٿيندو. اسان سيل ۾ SSH لانچ ڪيو، پر ميزبان تي اسان جي pf.conf کي نه ڇڪيو.

electrum:/@[9:00] # sysrc sshd_enable=YES

electrum:/@[9:00] # service sshd start

هاڻي اچو ته سيل کي بند ڪريون والٽ جي انٽرنيٽ جي رسائي سان. اچو ته ان کي هڪ IP پتو ڏيو ٻئي سب نيٽ اسپيس مان جيڪو NATed نه آهي. پهرين اچو ته تبديل ڪريون /etc/pf.conf ميزبان تي

# ee /etc/pf.conf

JAIL_IP_POOL="192.168.0.0/24" اچو ته ان کي تبديل ڪريون JAIL_IP_POOL="192.168.0.0/25", اهڙيء طرح سڀني ايڊريس 192.168.0.126-255 انٽرنيٽ تائين سڌي رسائي نه هوندي. سافٽ ويئر جو هڪ قسم ”ايئر-گپ“ نيٽ ورڪ. ۽ NAT قاعدو رهي ٿو جيئن اهو هو

nat pass on $IF_PUBLIC from $JAIL_IP_POOL to any -> $IP_PUBLIC

ضابطن جي اوور لوڊ ڪرڻ

# pfctl -f /etc/pf.conf

هاڻي اچو ته اسان جي سيل تي وڃو

# cbsd jconfig jname=electrum

Bitcoin هڪ پنجري ۾؟

Bitcoin هڪ پنجري ۾؟

jset mode=quiet jname=electrum ip4_addr="192.168.0.200"
Remove old IP: /sbin/ifconfig em0 inet 192.168.0.6 -alias
Setup new IP: /sbin/ifconfig em0 inet 192.168.0.200 alias
ip4_addr: 192.168.0.200

هونءَ، پر هاڻي اهو نظام اسان لاءِ ڪم ڪرڻ بند ڪري ڇڏيندو. بهرحال، اسان هڪ سسٽم پراکسي بيان ڪري سگهون ٿا. پر ھڪڙي شيء آھي، TOR تي اھو ھڪڙو SOCKS5 پراکسي آھي، ۽ اسان کي سهولت لاء ھڪڙو HTTP پراکسي پڻ آھي.

# cbsd jsconstruct-tui

# cbsd jstart polipo

# jexec polipo

polipo:/@[9:28] # pkg install polipo

polipo:/@[9:28] # ee /usr/local/etc/polipo/config

socksParentProxy = "192.168.0.2:9050"
socksProxyType = socks5

polipo:/@[9:42] # sysrc polipo_enable=YES

polipo:/@[9:43] # service polipo start

خير، ھاڻي اسان جي سسٽم ۾ ٻه پراکسي سرور آھن، ۽ ٻئي ٻاھر TOR ذريعي: socks5://192.168.0.2:9050 ۽ http://192.168.0.6:8123

ھاڻي اسان پنھنجي والٽ ماحول کي ترتيب ڏئي سگھون ٿا

# jexec electrum

electrum:/@[9:45] # su wallet

wallet@electrum:/ % ee ~/.cshrc

#in the end of file proxy config
setenv http_proxy http://192.168.0.6:8123
setenv https_proxy http://192.168.0.6:8123

خير، هاڻي شيل هڪ پراکسي جي تحت ڪم ڪندو. جيڪڏهن اسان پيڪيجز کي انسٽال ڪرڻ چاهيون ٿا، پوء اسان کي شامل ڪرڻ گهرجي /usr/local/etc/pkg.conf پنجري جي پاڙ هيٺان

pkg_env: {
               http_proxy: "http://my_proxy_ip:8123",
           }

خير، هاڻي اهو وقت آهي TOR لڪيل خدمت کي شامل ڪرڻ جو پتو اسان جي SSH سروس جي پتي جي طور تي والٽ ڪيج ۾.

# jexec tor

tor:/@[9:59] # ee /usr/local/etc/tor/torrc

HiddenServiceDir /var/db/tor/electrum/
HiddenServicePort 22 192.168.0.200:22

tor:/@[10:01] # mkdir /var/db/tor/electrum

tor:/@[10:01] # chown -R _tor:_tor /var/db/tor/electrum

tor:/@[10:01] # chmod 700 /var/db/tor/electrum

tor:/@[10:03] # service tor restart

tor:/@[10:04] # cat /var/db/tor/electrum/hostname

mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion

هي اسان جي ڪنيڪشن ايڊريس آهي. اچو ته مقامي مشين مان چيڪ ڪريو. پر پهرين اسان کي اسان جي SSH ڪيچ شامل ڪرڻ جي ضرورت آهي:

wallet@electrum:/ % mkdir ~/.ssh

wallet@electrum:/ % ee ~/.ssh/authorized_keys

ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAG9Fk2Lqi4GQ8EXZrsH3EgSrVIQPQaAlS38MmJLBabihv9KHIDGXH7r018hxqLNNGbaJWO/wrWk7sG4T0yLHAbdQAFsMYof9kjoyuG56z0XZ8qaD/X/AjrhLMsIoBbUNj0AzxjKNlPJL4NbHsFwbmxGulKS0PdAD5oLcTQi/VnNdU7iFw== user@local

خير، هڪ لينڪس ڪلائنٽ مشين مان

user@local ~$ nano ~/.ssh/config

#remote electrum wallet
Host remotebtc
        User wallet
        Port 22
        Hostname mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion
        ProxyCommand /bin/ncat --proxy localhost:9050 --proxy-type socks5 %h %p

اچو ته ڳنڍيون (هن ڪم ڪرڻ لاءِ، توهان کي هڪ مقامي TOR ڊيمن جي ضرورت آهي جيڪا 9050 تي ٻڌي)

user@local ~$ ssh remotebtc

The authenticity of host 'mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is SHA256:iW8FKjhVF4yyOZB1z4sBkzyvCM+evQ9cCL/EuWm0Du4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion' (ECDSA) to the list of known hosts.
FreeBSD 12.1-RELEASE-p1 GENERIC 
To save disk space in your home directory, compress files you rarely
use with "gzip filename".
        -- Dru <[email protected]>
wallet@electrum:~ % logout

ڪاميابي!

فوري ۽ مائڪرو ادائگي سان ڪم ڪرڻ لاء، اسان کي پڻ ضرورت آهي نوڊ برائينگ نيٽورڪ، حقيقت ۾، هي هوندو اسان جو مکيه ڪم ڪندڙ اوزار Bitcoin سان. يو*c- روشنيجنهن کي اسان ڊيمن طور استعمال ڪرڻ وارا آهيون اسپارڪو پلگ ان، جيڪو هڪ مڪمل HTTP (REST) ​​انٽرفيس آهي ۽ توهان کي ٻنهي آف-چين ۽ آن-چين ٽرانزيڪشن سان ڪم ڪرڻ جي اجازت ڏئي ٿو. c-lightning ڪم ڪرڻ لاء گهربل bitcoind پر ها.

*مختلف ٻولين ۾ لائيٽنگ نيٽ ورڪ پروٽوڪول جا مختلف لاڳو ٿين ٿا. انهن مان جن کي اسان آزمايو، سي-لائيٽنگ (سي ۾ لکيل) سڀ کان وڌيڪ مستحڪم ۽ وسيلا-موثر لڳي

# cbsd jsconstruct-tui

# cbsd jstart cln

# jexec cln

lightning:/@[10:23] # adduser

Username: lightning
...

lightning:/@[10:24] # pkg install git

lightning:/@[10:23] # su lightning

cd ~ && git clone https://github.com/ElementsProject/lightning

lightning@lightning:~ % exit

lightning:/@[10:30] # cd /home/lightning/lightning/

lightning:/home/lightning/lightning@[10:31] # pkg install autoconf automake gettext git gmp gmake libtool python python3 sqlite3 libsodium py36-mako bash bitcoin-utils

lightning:/home/lightning/lightning@[10:34] # ./configure && gmake && gmake install

جڏهن ته هر شيءِ ضروري آهي مرتب ۽ انسٽال ٿيل آهي، اچو ته ٺاهيون هڪ RPC استعمال ڪندڙ لاءِ lightningd в bitcoind

# jexec bitcoind

bitcoind:/@[10:36] # ee /usr/local/etc/bitcoin.conf

rpcbind=192.168.0.1
rpcuser=test
rpcpassword=test
#allow only c-lightning
rpcallowip=192.168.0.7/32

bitcoind:/@[10:39] # service bitcoind restart

سيلز جي وچ ۾ منهنجي افراتفري واري سوئچنگ ايتري افراتفري نه ٿيندي جيڪڏهن توهان افاديت کي نوٽ ڪيو tmux، جيڪو توهان کي اجازت ڏئي ٿو ته هڪ سيشن اندر ڪيترائي ٽرمينل سب سيشن ٺاهڻ. اينالاگ: screen

Bitcoin هڪ پنجري ۾؟

تنهن ڪري، اسان پنهنجي نوڊ جي حقيقي IP کي ظاهر ڪرڻ نٿا چاهيون، ۽ اسان TOP ذريعي سڀني مالي ٽرانزيڪشن کي هلائڻ چاهيون ٿا. تنهن ڪري، ٻي .onion جي ضرورت ناهي.

# jexec tor

tor:/@[9:59] # ee /usr/local/etc/tor/torrc

HiddenServiceDir /var/db/tor/cln/
HiddenServicePort 9735 192.168.0.7:9735

tor:/@[10:01] # mkdir /var/db/tor/cln

tor:/@[10:01] # chown -R _tor:_tor /var/db/tor/cln

tor:/@[10:01] # chmod 700 /var/db/tor/cln

tor:/@[10:03] # service tor restart

tor:/@[10:04] # cat /var/db/tor/cln/hostname

en5wbkavnytti334jc5uzaudkansypfs6aguv6kech4hbzpcz2ove3yd.onion

هاڻي اچو ته سي-لائيٽنگ لاءِ هڪ ترتيب ٺاهي

lightning:/home/lightning/lightning@[10:31] # su lightning

lightning@lightning:~ % mkdir .lightning

lightning@lightning:~ % ee .lightning/config

alias=My-LN-Node
bind-addr=192.168.0.7:9735
rgb=ff0000
announce-addr=en5wbkavnytti334jc5uzaudkansypfs6aguv6kech4hbzpcz2ove3yd.onion:9735
network=bitcoin
log-level=info
fee-base=0
fee-per-satoshi=1
proxy=192.168.0.2:9050
log-file=/home/lightning/.lightning/c-lightning.log
min-capacity-sat=200000

# sparko plugin
# https://github.com/fiatjaf/lightningd-gjson-rpc/tree/master/cmd/sparko

sparko-host=192.168.0.7
sparko-port=9737

sparko-tls-path=sparko-tls

#sparko-login=mywalletusername:mywalletpassword

#sparko-keys=masterkey;secretread:+listchannels,+listnodes;secretwrite:+invoice,+listinvoices,+delinvoice,+decodepay,+waitpay,+waitinvoice
sparko-keys=masterkey;secretread:+listchannels,+listnodes;ultrawrite:+invoice,+listinvoices,+delinvoice,+decodepay,+waitpay,+waitinvoice
# for the example above the initialization logs (mixed with lightningd logs) should print something like

lightning@lightning:~ % mkdir .lightning/plugins

lightning@lightning:~ % cd .lightning/plugins/

lightning@lightning:~/.lightning/plugins:% fetch https://github.com/fiatjaf/sparko/releases/download/v0.2.1/sparko_full_freebsd_amd64

lightning@lightning:~/.lightning/plugins % mkdir ~/.lightning/sparko-tls

lightning@lightning:~/.lightning/sparko-tls % cd ~/.lightning/sparko-tls

lightning@lightning:~/.lightning/sparko-tls % openssl genrsa -out key.pem 2048

lightning@lightning:~/.lightning/sparko-tls % openssl req -new -x509 -sha256 -key key.pem -out cert.pem -days 3650

lightning@lightning:~/.lightning/plugins % chmod +x sparko_full_freebsd_amd64

lightning@lightning:~/.lightning/plugins % mv sparko_full_freebsd_amd64 sparko

lightning@lightning:~/.lightning/plugins % cd ~

توهان کي bitcoin-cli لاءِ هڪ ٺاھ جوڙ واري فائل پڻ ٺاهڻ جي ضرورت آھي، ھڪڙي يوٽيليٽي جيڪا ڳالھائي ٿي bitcoind

lightning@lightning:~ % mkdir .bitcoin

lightning@lightning:~ % ee .bitcoin/bitcoin.conf

rpcconnect=192.168.0.1
rpcuser=test
rpcpassword=test

چيڪ

lightning@lightning:~ % bitcoin-cli echo "test"

[
  "test"
]

لانچ lightningd

lightning@lightning:~ % lightningd --daemon

پاڻ ۾ lightningd توهان استعمال کي ڪنٽرول ڪري سگهو ٿا lightning-cliمثال طور

lightning-cli newaddr نئين ايندڙ ادائيگي لاءِ پتو حاصل ڪريو

{
   "address": "bc1q2n2ffq3lplhme8jufcxahfrnfhruwjgx3c78pv",
   "bech32": "bc1q2n2ffq3lplhme8jufcxahfrnfhruwjgx3c78pv"
}

lightning-cli withdraw bc1jufcxahfrnfhruwjgx3cq2n2ffq3lplhme878pv all پرس ۾ موجود سڀئي پئسا ايڊريس تي موڪليو (سڀئي آن-چين ايڊريس)

آف-چين آپريشنز لاءِ پڻ حڪم lightning-cli invoice, lightning-cli listinvoices, lightning-cli pay وغيره.

خير، ايپليڪيشن سان رابطي لاءِ اسان وٽ آهي REST Api

curl -k https://192.168.0.7:9737/rpc -d '{"method": "pay", "params": ["lnbc..."]}' -H 'X-Access masterkey'

اچو ته نتيجن کي برابر ڪريو

# jls

   JID  IP Address      Hostname                      Path
     1  192.168.0.1     bitcoind.space.com            /zroot/jails/jails/bitcoind
     2  192.168.0.2     tor.space.com                 /zroot/jails/jails/tor
     3  192.168.0.3     nginx-rev.space.com           /zroot/jails/jails/nginx-rev
     4  192.168.0.4     paygw.space.com               /zroot/jails/jails/paygw
     5  192.168.0.5     webapp.my.domain              /zroot/jails/jails/webapp
     7  192.168.0.200   electrum.space.com            /zroot/jails/jails/electrum
     8  192.168.0.6     polipo.space.com              /zroot/jails/jails/polipo
     9  192.168.0.7     lightning.space.com           /zroot/jails/jails/cln

Bitcoin هڪ پنجري ۾؟

اسان وٽ ڪنٽينرز جو هڪ سيٽ آهي، هر هڪ وٽ پنهنجي پنهنجي سطح جي رسائي ٻنهي کان ۽ مقامي نيٽ ورڪ تائين.

# zfs list

NAME                    USED  AVAIL  REFER  MOUNTPOINT
zroot                   279G  1.48T    88K  /zroot
zroot/ROOT             1.89G  1.48T    88K  none
zroot/ROOT/default     1.89G  17.6G  1.89G  /
zroot/home               88K  1.48T    88K  /home
zroot/jails             277G  1.48T   404M  /zroot/jails
zroot/jails/bitcoind    190G  1.48T   190G  /zroot/jails/jails-data/bitcoind-data
zroot/jails/cln         653M  1.48T   653M  /zroot/jails/jails-data/cln-data
zroot/jails/electrum    703M  1.48T   703M  /zroot/jails/jails-data/electrum-data
zroot/jails/nginx-rev   190M  1.48T   190M  /zroot/jails/jails-data/nginx-rev-data
zroot/jails/paygw      82.4G  1.48T  82.4G  /zroot/jails/jails-data/paygw-data
zroot/jails/polipo     57.6M  1.48T  57.6M  /zroot/jails/jails-data/polipo-data
zroot/jails/tor        81.5M  1.48T  81.5M  /zroot/jails/jails-data/tor-data
zroot/jails/webapp      360M  1.48T   360M  /zroot/jails/jails-data/webapp-data

جئين توهان ڏسي سگهو ٿا، bitcoind سڄي 190 GB جي جاء تي وٺي ٿو. ڇا جيڪڏهن اسان کي جانچ لاءِ ٻئي نوڊ جي ضرورت آهي؟ اهو آهي جتي ZFS هٿ ۾ اچي ٿو. مدد سان cbsd jclone old=bitcoind new=bitcoind-clone host_hostname=clonedbtc.space.com توهان هڪ سنيپ شاٽ ٺاهي سگهو ٿا ۽ هن سنيپ شاٽ سان هڪ نئون سيل جوڙيو. نئين سيل کي پنهنجي جاءِ هوندي، پر رڳو موجوده حالت ۽ اصل جي وچ ۾ فرق کي فائيل سسٽم ۾ رکيو ويندو (اسان گهٽ ۾ گهٽ 190 GB بچائينداسين)

هر سيل پنهنجي الڳ ZFS ڊيٽا سيٽ آهي، ۽ اهو انتهائي آسان آهي. ZFS پڻ اجازت ڏئي ٿو مختلف ٻيون سٺيون شيون ڪريو، جهڙوڪ SSH ذريعي سنيپ شاٽ موڪلڻ. اسان ان کي بيان نه ڪنداسين، اڳ ۾ ئي تمام گهڻو آهي.

اهو پڻ قابل ذڪر آهي ته ميزبان جي ٻاهرين نگراني جي ضرورت آهي، انهن مقصدن لاء اسان وٽ آهي زيبڪس.

ب - حفاظت

سيڪيورٽي جي حوالي سان، اچو ته بنيادي اصولن کان شروع ڪريون بنيادي ڍانچي جي حوالي سان:

اعتماد وارو - UNIX-جهڙوڪ سسٽم جا معياري اوزار هن اصول تي عمل درآمد کي يقيني بڻائين. اسان منطقي طور تي سسٽم جي هر منطقي طور تي الڳ الڳ عنصر تائين رسائي حاصل ڪندا آهيون - هڪ سيل. رسائي فراهم ڪئي وئي آهي معياري صارف جي تصديق ذريعي استعمال ڪندڙن جي ذاتي ڪنجين کي استعمال ڪندي. سڀ ڪميونيڪيشن جي وچ ۾ ۽ آخر تائين سيلز انڪريپٽ فارم ۾ ٿئي ٿي. ڊسڪ انڪرپشن جي مهرباني، اسان کي ڊيٽا جي حفاظت جي باري ۾ پريشان ٿيڻ جي ضرورت ناهي جڏهن ڊسڪ کي تبديل ڪرڻ يا ٻئي سرور ڏانهن لڏپلاڻ. صرف نازڪ رسائي ميزبان سسٽم تائين رسائي آهي، ڇاڪاڻ ته اهڙي رسائي عام طور تي ڪنٽينرز اندر ڊيٽا تائين رسائي فراهم ڪري ٿي.

سالميت ”هن اصول جو نفاذ ڪيترن ئي مختلف سطحن تي ٿئي ٿو. پهرين، اهو نوٽ ڪرڻ ضروري آهي ته سرور هارڊويئر جي صورت ۾، اي سي سي ميموري، ZFS اڳ ۾ ئي "باڪس کان ٻاهر" معلومات بٽ جي سطح تي ڊيٽا جي سالميت جو خيال رکندو آهي. فوري سنيپ شاٽ توهان کي پرواز تي ڪنهن به وقت بيڪ اپ ٺاهڻ جي اجازت ڏين ٿا. آسان سيل برآمد/درآمد جا اوزار سيل نقل کي آسان بڻائي ٿو.

دستياب - هي اڳ ۾ ئي اختياري آهي. توهان جي شهرت جي درجي تي منحصر آهي ۽ حقيقت اها آهي ته توهان وٽ نفرت آهي. اسان جي مثال ۾، اسان پڪ ڪيو ته والٽ خاص طور تي TOP نيٽ ورڪ کان رسائي لائق هو. جيڪڏهن ضروري هجي ته، توهان فائر وال تي هر شي کي بلاڪ ڪري سگهو ٿا ۽ سرنگن ذريعي خاص طور تي سرور تائين رسائي جي اجازت ڏئي سگهو ٿا (TOR يا VPN ٻيو معاملو آهي). اهڙيءَ طرح، سرور جيترو ممڪن ٿي سگهي، ٻاهرئين دنيا کان ڪٽجي ويندو، ۽ صرف اسان پاڻ ئي ان جي موجودگيءَ تي اثر انداز ٿي سگهنداسين.

انڪار ڪرڻ جو امڪان - ۽ اهو منحصر آهي وڌيڪ آپريشن ۽ تعميل تي صحيح پاليسين جي صارف جي حقن، رسائي، وغيره لاءِ. پر صحيح طريقي سان، صارف جي سڀني عملن جي آڊٽ ڪئي ويندي آهي، ۽ ڪرپٽوگرافڪ حلن جي مهرباني، اهو ممڪن آهي ته غير واضح طور تي سڃاڻڻ لاء ڪنهن خاص عملن کي انجام ڏنو ۽ ڪڏهن.

يقينا، بيان ڪيل تشڪيل هڪ مڪمل مثال نه آهي ته اهو ڪيئن هجڻ گهرجي، بلڪه اهو هڪ مثال آهي ته اهو ڪيئن ٿي سگهي ٿو، جڏهن ته تمام لچڪدار اسڪيلنگ ۽ ڪسٽمائيزيشن صلاحيتن کي برقرار رکندي.

مڪمل ورچوئلائيزيشن بابت ڇا؟

cbsd استعمال ڪندي مڪمل ورچوئلائيزيشن بابت توهان ڪري سگهو ٿا هتي پڙهو. مان صرف ڪم لاءِ شامل ڪندس bhyve توھان کي ڪجھ ڪنيل اختيارن کي فعال ڪرڻ جي ضرورت آھي.

# cat /etc/rc.conf

...
kld_list="vmm if_tap if_bridge nmdm"
...

# cat /boot/loader.conf

...
vmm_load="YES"
...

تنهن ڪري جيڪڏهن توهان کي اوچتو هڪ ڊاکر شروع ڪرڻ جي ضرورت آهي، پوء ڪجهه ديبين کي انسٽال ڪريو ۽ وڃو!

Bitcoin هڪ پنجري ۾؟

اهو ئي سڀ ڪجهه آهي

مان سمجهان ٿو ته اهو سڀ ڪجهه آهي جيڪو مان حصيداري ڪرڻ چاهيان ٿو. جيڪڏھن توھان مضمون پسند ڪيو، ته توھان مون کي موڪلي سگھو ٿا ڪجھ Bitcoins - bc1qu7lhf45xw83ddll5mnzte6ahju8ktkeu6qhttc. جيڪڏهن توهان ڪوشش ڪرڻ چاهيو ٿا سيلز کي عمل ۾ ۽ ڪجهه bitcoins آهن، توهان ڏانهن وڃو منهنجي پالتو جانور پروجيڪٽ.

جو ذريعو: www.habr.com