బోనులో బిట్‌కాయిన్?

వృత్తిరీత్యా నేను కంప్యూటర్ సిస్టమ్స్ మరియు నెట్‌వర్క్‌ల నిర్వాహకుడిని (సంక్షిప్తంగా: సిస్టమ్ అడ్మినిస్ట్రేటర్) మరియు 10 సంవత్సరాల కంటే కొంచెం ఎక్కువ కాలం పాటు ప్రొఫెసర్‌కి చెప్పే అవకాశం నాకు లభించింది. [అత్యంత] భద్రతా చర్యలు అవసరమయ్యే అనేక రకాల వ్యవస్థల కార్యకలాపాలు. కొంత కాలం క్రితం నాకు ఆసక్తికరంగా అనిపించడం కూడా జరిగింది బిట్‌కాయిన్, మరియు దీనిని ఉపయోగించడమే కాకుండా, డెవలపర్ దృక్కోణం నుండి బిట్‌కాయిన్ నెట్‌వర్క్‌తో (అలా p2p) స్వతంత్రంగా ఎలా పని చేయాలో తెలుసుకోవడానికి అనేక సూక్ష్మ-సేవలను కూడా ప్రారంభించింది (వాటిలో నేను ఒకడిని. dev, కాబట్టి, నేను ప్రయాణిస్తున్నాను). కానీ నేను అభివృద్ధి గురించి మాట్లాడటం లేదు, నేను అప్లికేషన్ల కోసం సురక్షితమైన మరియు సమర్థవంతమైన వాతావరణం గురించి మాట్లాడుతున్నాను.

ఆర్థిక సాంకేతికత (fintech) సమాచార భద్రతకు వెళ్లండి (ఇన్ఫోసెక్) మరియు మొదటిది రెండవది లేకుండా పని చేయవచ్చు, కానీ ఎక్కువ కాలం కాదు. అందుకే నేను నా అనుభవాన్ని మరియు నేను ఉపయోగించే సాధనాల సెట్‌ను పంచుకోవాలనుకుంటున్నాను, ఇందులో రెండూ ఉన్నాయి fintech, మరియు ఇన్ఫోసెక్, మరియు అదే సమయంలో, మరియు విస్తృత లేదా పూర్తిగా భిన్నమైన ప్రయోజనం కోసం కూడా ఉపయోగించవచ్చు. ఈ వ్యాసంలో నేను మీకు బిట్‌కాయిన్ గురించి అంతగా చెప్పలేను, ఆర్థిక (మరియు మాత్రమే కాదు) సేవల అభివృద్ధి మరియు ఆపరేషన్ కోసం మౌలిక సదుపాయాల నమూనా గురించి - ఒక్క మాటలో చెప్పాలంటే, “బి” ముఖ్యమైన సేవలు. ఇది బిట్‌కాయిన్ మార్పిడికి మరియు బిట్‌కాయిన్‌తో ఏ విధంగానూ కనెక్ట్ చేయబడని చిన్న కంపెనీ యొక్క అత్యంత సాధారణ కార్పొరేట్ జూ సేవలకు వర్తిస్తుంది.

నేను సూత్రాలకు మద్దతుదారునని గమనించాలనుకుంటున్నాను "ఇది తెలివితక్కువదని తేలికగా ఉంచండి" и "తక్కువే ఎక్కువ", కాబట్టి, వ్యాసం మరియు దానిలో వివరించబడినవి రెండూ ఈ సూత్రాల గురించిన లక్షణాలను కలిగి ఉంటాయి.

ఊహాత్మక దృశ్యం: బిట్‌కాయిన్ ఎక్స్ఛేంజర్ యొక్క ఉదాహరణను ఉపయోగించి ప్రతిదీ చూద్దాం. మేము బిట్‌కాయిన్‌లు మరియు వెనుకకు రూబిళ్లు, డాలర్లు, యూరోల మార్పిడిని ప్రారంభించాలని నిర్ణయించుకున్నాము మరియు మాకు ఇప్పటికే పని పరిష్కారం ఉంది, కానీ క్వివి మరియు వెబ్‌మనీ వంటి ఇతర డిజిటల్ డబ్బు కోసం, అనగా. మేము అన్ని చట్టపరమైన సమస్యలను మూసివేసాము, రూబిళ్లు, డాలర్లు మరియు యూరోలు మరియు ఇతర చెల్లింపు వ్యవస్థలకు చెల్లింపు గేట్‌వేగా పనిచేసే ఒక రెడీమేడ్ అప్లికేషన్ మాకు ఉంది. ఇది మా బ్యాంక్ ఖాతాలకు కనెక్ట్ చేయబడింది మరియు మా ఎండ్ అప్లికేషన్‌ల కోసం ఒక రకమైన APIని కలిగి ఉంది. మేము ఒక సాధారణ qiwi లేదా webmoney ఖాతా వంటి వినియోగదారులకు ఎక్స్ఛేంజర్‌గా పనిచేసే వెబ్ అప్లికేషన్‌ను కూడా కలిగి ఉన్నాము - ఖాతాను సృష్టించండి, కార్డ్‌ని జోడించండి మరియు మొదలైనవి. ఇది స్థానిక ప్రాంతంలోని REST API ద్వారా మా గేట్‌వే అప్లికేషన్‌తో కమ్యూనికేట్ చేస్తుంది. కాబట్టి మేము బిట్‌కాయిన్‌లను కనెక్ట్ చేయాలని మరియు అదే సమయంలో మౌలిక సదుపాయాలను అప్‌గ్రేడ్ చేయాలని నిర్ణయించుకున్నాము, ఎందుకంటే... ప్రారంభంలో, టేబుల్ కింద కార్యాలయంలోని వర్చువల్‌బాక్స్‌లలో ప్రతిదీ ఆతురుతలో ఉంచబడింది ... సైట్ ఉపయోగించడం ప్రారంభమైంది మరియు మేము సమయ సమయం మరియు పనితీరు గురించి ఆందోళన చెందడం ప్రారంభించాము.

కాబట్టి, ప్రధాన విషయంతో ప్రారంభిద్దాం - సర్వర్‌ను ఎంచుకోవడం. ఎందుకంటే మా ఉదాహరణలోని వ్యాపారం చిన్నది మరియు మేము ఎంచుకునే హోస్టర్ (OVH)ని మేము విశ్వసిస్తాము ఒక బడ్జెట్ ఎంపిక దీనిలో అసలు .iso ఇమేజ్ నుండి సిస్టమ్‌ను ఇన్‌స్టాల్ చేయడం అసాధ్యం, కానీ అది పట్టింపు లేదు, IT భద్రతా విభాగం ఖచ్చితంగా ఇన్‌స్టాల్ చేసిన చిత్రాన్ని విశ్లేషిస్తుంది. మరియు మేము పెద్దయ్యాక, పరిమిత భౌతిక యాక్సెస్‌తో లాక్ మరియు కీ కింద మా స్వంత గదిని అద్దెకు తీసుకుంటాము మరియు బహుశా మేము మా స్వంత DCని నిర్మిస్తాము. ఏదైనా సందర్భంలో, హార్డ్‌వేర్‌ను అద్దెకు తీసుకున్నప్పుడు మరియు రెడీమేడ్ చిత్రాలను ఇన్‌స్టాల్ చేసేటప్పుడు, మీ సిస్టమ్‌లో “ట్రోజన్ ఫ్రమ్ హోస్టర్” వేలాడదీసే అవకాశం ఉందని గుర్తుంచుకోవడం విలువ, ఇది చాలా సందర్భాలలో మీపై నిఘా పెట్టడానికి ఉద్దేశించబడదు. కానీ మరింత అనుకూలమైన నిర్వహణ సాధనాలు సర్వర్ అందించడానికి.

సర్వర్ సంస్థాపన

ఇక్కడ ప్రతిదీ సులభం. మేము మా అవసరాలకు సరిపోయే హార్డ్‌వేర్‌ను ఎంచుకుంటాము. అప్పుడు FreeBSD చిత్రాన్ని ఎంచుకోండి. సరే, లేదా మేము IPMI ద్వారా లేదా మానిటర్‌తో (మరొక హోస్టర్ మరియు మా స్వంత హార్డ్‌వేర్ విషయంలో) కనెక్ట్ చేసి, .iso FreeBSD చిత్రాన్ని డౌన్‌లోడ్‌లోకి ఫీడ్ చేస్తాము. ఆర్కెస్ట్రా సెటప్ కోసం నేను ఉపయోగిస్తాను చేసాడు и mfsbsd. ఒకే విషయం, కిమ్సుఫీతో మా విషయంలో, మేము ఎంచుకున్నాము కస్టమ్ సంస్థాపన మిర్రర్‌లోని రెండు డిస్క్‌లు బూట్ మరియు /హోమ్ విభజనలను మాత్రమే “ఓపెన్” కలిగి ఉండాలంటే, మిగిలిన డిస్క్ స్థలం ఎన్‌క్రిప్ట్ చేయబడుతుంది, అయితే దాని తర్వాత మరింత ఎక్కువ.

బోనులో బిట్‌కాయిన్?

సిస్టమ్ యొక్క ఇన్‌స్టాలేషన్ ప్రామాణిక మార్గంలో జరుగుతుంది, నేను దీనిపై నివసించను, ఆపరేషన్ ప్రారంభించే ముందు దానిపై శ్రద్ధ పెట్టడం విలువ అని మాత్రమే నేను గమనించాను గట్టిపడే ఇది అందించే ఎంపికలు bsdinstaller సంస్థాపన చివరిలో (మీరు సిస్టమ్‌ను మీరే ఇన్‌స్టాల్ చేస్తే):

బోనులో బిట్‌కాయిన్?

ఉన్నాయి మంచి పదార్థం ఈ అంశంపై, నేను ఇక్కడ క్లుప్తంగా పునరావృతం చేస్తాను.

ఇప్పటికే ఇన్‌స్టాల్ చేయబడిన సిస్టమ్‌లో పైన పేర్కొన్న పారామితులను ప్రారంభించడం కూడా సాధ్యమే. దీన్ని చేయడానికి, మీరు బూట్‌లోడర్ ఫైల్‌ను సవరించాలి మరియు కెర్నల్ పారామితులను ప్రారంభించాలి. *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కి మద్దతు ఇవ్వడం ముఖ్యం.

నేను ఉపయోగించే కంటైనర్‌లు మరియు వర్చువల్ మిషన్‌లను నిర్వహించడానికి cbsd от ఒలెవోల్, ఈ అద్భుతమైన ప్రయోజనం కోసం నేను అతనికి మరింత ఆరోగ్యం మరియు ఆశీర్వాదాలను కోరుకుంటున్నాను!

కంటైనర్లు? మళ్ళీ డాకర్ లేదా ఏమిటి?

కానీ కాదు. FreeBSD జైళ్లు కంటైనర్ కోసం ఒక అద్భుతమైన సాధనం, కానీ ప్రస్తావించబడింది cbsd కణాలు అని పిలువబడే ఈ కంటైనర్లను ఆర్కెస్ట్రేట్ చేయడానికి.

పంజరం అనేది వివిధ ప్రయోజనాల కోసం మౌలిక సదుపాయాలను నిర్మించడానికి అత్యంత ప్రభావవంతమైన పరిష్కారం, ఇక్కడ వ్యక్తిగత సేవలు లేదా ప్రక్రియల పూర్తి ఐసోలేషన్ అంతిమంగా అవసరం. ముఖ్యంగా, ఇది హోస్ట్ సిస్టమ్ యొక్క క్లోన్, కానీ దీనికి పూర్తి హార్డ్‌వేర్ వర్చువలైజేషన్ అవసరం లేదు. మరియు దీనికి ధన్యవాదాలు, వనరులు "అతిథి OS" పై ఖర్చు చేయబడవు, కానీ పని చేస్తున్న పనిపై మాత్రమే. అంతర్గత అవసరాల కోసం సెల్‌లను ఉపయోగించినప్పుడు, సరైన వనరుల వినియోగానికి ఇది చాలా అనుకూలమైన పరిష్కారం - ఒక హార్డ్‌వేర్ సర్వర్‌లోని సెల్‌ల సమూహం అవసరమైతే ఒక్కొక్కటిగా మొత్తం సర్వర్ వనరును ఉపయోగించవచ్చు. సాధారణంగా వివిధ సబ్‌సర్వీస్‌లకు అదనపు అవసరం అని పరిగణనలోకి తీసుకుంటే. వివిధ సమయాల్లో వనరులు, మీరు సర్వర్‌ల మధ్య సెల్‌లను సరిగ్గా ప్లాన్ చేసి బ్యాలెన్స్ చేస్తే ఒక సర్వర్ నుండి గరిష్ట పనితీరును పొందవచ్చు. అవసరమైతే, సెల్‌లు ఉపయోగించిన వనరుపై పరిమితులను కూడా ఇవ్వవచ్చు.

బోనులో బిట్‌కాయిన్?

పూర్తి వర్చువలైజేషన్ గురించి ఏమిటి?

నాకు తెలిసి, cbsd పనికి మద్దతు ఇస్తుంది bhyve మరియు XEN హైపర్‌వైజర్లు. నేను రెండవదాన్ని ఎప్పుడూ ఉపయోగించలేదు, కానీ మొదటిది చాలా కొత్తది FreeBSD నుండి హైపర్‌వైజర్. మేము ఉపయోగం యొక్క ఉదాహరణను పరిశీలిస్తాము 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 మీరు డిస్క్‌లను మానవీయంగా లేదా స్వయంచాలకంగా డీక్రిప్ట్ చేసే వరకు స్వయంచాలకంగా ప్రారంభించబడదు (మా ఉదాహరణలో ఇది zabbix ద్వారా చేయబడుతుంది)

**నేను కూడా NAT నుండి ఉపయోగించను 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

ఫైర్‌వాల్ విధానాలను సెటప్ చేయడం కూడా ఒక ప్రత్యేక అంశం, కాబట్టి నేను ALL విధానాన్ని బ్లాక్ చేయి మరియు వైట్‌లిస్ట్‌లను సెటప్ చేయడంలో లోతుగా వెళ్లను, మీరు చదవడం ద్వారా దీన్ని చేయవచ్చు అధికారిక డాక్యుమెంటేషన్ లేదా Googleలో అందుబాటులో ఉన్న భారీ సంఖ్యలో కథనాలలో ఏదైనా.

సరే... మేము cbsd ఇన్‌స్టాల్ చేసాము, ఇది మా మొదటి వర్క్‌హోర్స్‌ను సృష్టించే సమయం - పంజరంలో ఉన్న బిట్‌కాయిన్ భూతం!

cbsd jconstruct-tui

బోనులో బిట్‌కాయిన్?

ఇక్కడ మనం సెల్ క్రియేషన్ డైలాగ్‌ని చూస్తాము. అన్ని విలువలు సెట్ చేయబడిన తర్వాత, సృష్టిద్దాం!

మీ మొదటి సెల్‌ను సృష్టించేటప్పుడు, సెల్‌లకు బేస్‌గా ఏది ఉపయోగించాలో మీరు ఎంచుకోవాలి. నేను కమాండ్‌తో 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

బోనులో బిట్‌కాయిన్ ఉంది, కానీ మేము TOP నెట్‌వర్క్ ద్వారా కొన్ని బోనులకు కనెక్ట్ చేయాలనుకుంటున్నాము కాబట్టి మాకు అజ్ఞాత అవసరం. సాధారణంగా, మేము చాలా సెల్‌లను అనుమానాస్పద సాఫ్ట్‌వేర్‌తో ప్రాక్సీ ద్వారా మాత్రమే అమలు చేయాలని ప్లాన్ చేస్తాము. ధన్యవాదాలు pf మీరు స్థానిక నెట్‌వర్క్‌లో నిర్దిష్ట శ్రేణి IP చిరునామాల కోసం NATని నిలిపివేయవచ్చు మరియు మా TOR నోడ్ కోసం మాత్రమే NATని అనుమతించవచ్చు. అందువల్ల, మాల్వేర్ సెల్‌లోకి ప్రవేశించినప్పటికీ, అది బయటి ప్రపంచంతో కమ్యూనికేట్ చేయదు మరియు అలా చేస్తే, అది మా సర్వర్ యొక్క IPని బహిర్గతం చేయదు. అందువల్ల, సేవలను "ఫార్వార్డ్" చేయడానికి ". ఉల్లిపాయ" సేవగా మరియు వ్యక్తిగత సెల్‌లకు ఇంటర్నెట్‌ని యాక్సెస్ చేయడానికి ప్రాక్సీగా మేము మరొక సెల్‌ని సృష్టిస్తాము.

# 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ని ప్రారంభిద్దాం, ఇది రివర్స్-ప్రాక్సీగా పని చేస్తుంది మరియు సర్టిఫికెట్‌లను ఎన్‌క్రిప్ట్ చేద్దాం.

# cbsd jsconstruct-tui

# cbsd jstart nginx-rev

# jexec nginx-rev

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

కాబట్టి మేము పంజరంలో 150 MB డిపెండెన్సీలను ఉంచాము. మరియు హోస్ట్ ఇప్పటికీ శుభ్రంగా ఉంది.

తర్వాత nginxని సెటప్ చేయడానికి తిరిగి వెళ్దాం, nodejs మరియు రస్ట్ మరియు వెబ్ అప్లికేషన్‌లో మా చెల్లింపు గేట్‌వే కోసం మనం మరో రెండు సెల్‌లను పెంచాలి, ఇది కొన్ని కారణాల వల్ల 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 ప్యాకేజీలు వేరుచేయబడ్డాయి

తరువాత, మేము మా అప్లికేషన్‌ను gitతో డౌన్‌లోడ్ చేసి, దాన్ని ప్రారంభించాము.

# 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 ఫైర్వాల్

మన సెల్‌లు ఏ 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 గురించి కొద్దిగా

మా వద్ద ఉన్నది బాహ్యంగా బహిర్గతమయ్యే వెబ్ అప్లికేషన్ మరియు అది మా చెల్లింపు గేట్‌వేతో స్థానికంగా మాట్లాడుతుంది. ఇప్పుడు మనం బిట్‌కాయిన్ నెట్‌వర్క్‌తో పరస్పర చర్య చేయడానికి పని వాతావరణాన్ని సిద్ధం చేయాలి - నోడ్ bitcoind ఇది బ్లాక్‌చెయిన్ యొక్క స్థానిక కాపీని తాజాగా ఉంచే డెమోన్ మాత్రమే. ఈ డెమోన్ RPC మరియు వాలెట్ ఫంక్షనాలిటీని కలిగి ఉంది, అయితే అప్లికేషన్ డెవలప్‌మెంట్ కోసం మరింత సౌకర్యవంతమైన “ర్యాపర్లు” ఉన్నాయి. ప్రారంభించడానికి, మేము ఉంచాలని నిర్ణయించుకున్నాము electrum CLI వాలెట్. ఈ వాలెట్ మేము దీన్ని మా బిట్‌కాయిన్‌ల కోసం “కోల్డ్ స్టోరేజ్”గా ఉపయోగిస్తాము - సాధారణంగా, వినియోగదారులకు అందుబాటులో ఉండేలా మరియు సాధారణంగా అందరికీ దూరంగా ఉండే సిస్టమ్ “బయట” నిల్వ చేయాల్సిన బిట్‌కాయిన్‌లు. దీనికి GUI కూడా ఉంది, కాబట్టి మేము మాపై అదే వాలెట్‌ని ఉపయోగించబోతున్నాము
ల్యాప్‌టాప్‌లు. ప్రస్తుతానికి మేము పబ్లిక్ సర్వర్‌లతో Electrumని ఉపయోగిస్తాము మరియు తరువాత మేము దానిని మరొక సెల్‌లో పెంచుతాము ElectrumXతద్వారా ఎవరిపైనా ఆధారపడకూడదు.

# 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

ఇప్పుడు వాలెట్ ఇంటర్నెట్ యాక్సెస్‌తో సెల్‌ను ఆఫ్ చేద్దాం. NATed కాని మరొక సబ్‌నెట్ స్పేస్ నుండి దానికి IP చిరునామాను ఇద్దాం. ముందుగా మార్చుకుందాం /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

బోనులో బిట్‌కాయిన్?

బోనులో బిట్‌కాయిన్?

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",
           }

సరే, ఇప్పుడు వాలెట్ కేజ్‌లో మా SSH సేవ యొక్క చిరునామాగా TOR దాచిన సేవను జోడించాల్సిన సమయం వచ్చింది.

# 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

బాగా, Linux క్లయింట్ మెషీన్ నుండి

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

కనెక్ట్ చేద్దాం (ఇది పని చేయడానికి, మీకు 9050లో వినే స్థానిక TOR డెమోన్ అవసరం)

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తో మా ప్రధాన పని సాధనం. U*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

బోనులో బిట్‌కాయిన్?

కాబట్టి, మేము మా నోడ్ యొక్క నిజమైన IPని బహిర్గతం చేయకూడదనుకుంటున్నాము మరియు మేము TOP ద్వారా అన్ని ఆర్థిక లావాదేవీలను నిర్వహించాలనుకుంటున్నాము. అందువల్ల, మరొక .ఉల్లిపాయ అవసరం లేదు.

# 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 ~

మీరు బిట్‌కాయిన్-క్లి కోసం కాన్ఫిగరేషన్ ఫైల్‌ను కూడా సృష్టించాలి, దీనితో కమ్యూనికేట్ చేసే యుటిలిటీ 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

బోనులో బిట్‌కాయిన్?

మేము కంటైనర్‌ల సమితిని కలిగి ఉన్నాము, ప్రతి ఒక్కటి స్థానిక నెట్‌వర్క్ నుండి మరియు దాని స్వంత స్థాయి యాక్సెస్‌ను కలిగి ఉంటాయి.

# 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 ద్వారా స్నాప్‌షాట్‌లను పంపడం వంటి అనేక ఇతర మంచి పనులను చేయండి. మేము దానిని వివరించము, ఇప్పటికే చాలా ఉన్నాయి.

మేము కలిగి ఉన్న ఈ ప్రయోజనాల కోసం హోస్ట్ యొక్క రిమోట్ పర్యవేక్షణ అవసరాన్ని కూడా గుర్తించడం విలువ Zabbix.

B - భద్రత

భద్రతకు సంబంధించి, మౌలిక సదుపాయాల సందర్భంలో కీలక సూత్రాల నుండి ప్రారంభిద్దాం:

గోప్యత - UNIX-వంటి వ్యవస్థల యొక్క ప్రామాణిక సాధనాలు ఈ సూత్రం అమలును నిర్ధారిస్తాయి. మేము సిస్టమ్ యొక్క ప్రతి తార్కికంగా వేరు చేయబడిన మూలకానికి ప్రాప్యతను తార్కికంగా వేరు చేస్తాము - ఒక సెల్. వినియోగదారుల వ్యక్తిగత కీలను ఉపయోగించి ప్రామాణిక వినియోగదారు ప్రమాణీకరణ ద్వారా యాక్సెస్ అందించబడుతుంది. కణాల మధ్య మరియు చివరి వరకు జరిగే అన్ని కమ్యూనికేషన్ ఎన్‌క్రిప్టెడ్ రూపంలో జరుగుతుంది. డిస్క్ ఎన్‌క్రిప్షన్‌కు ధన్యవాదాలు, డిస్క్‌ను భర్తీ చేస్తున్నప్పుడు లేదా మరొక సర్వర్‌కి మారుతున్నప్పుడు డేటా భద్రత గురించి మేము చింతించాల్సిన అవసరం లేదు. హోస్ట్ సిస్టమ్‌కు ప్రాప్యత మాత్రమే క్లిష్టమైన యాక్సెస్, ఎందుకంటే అటువంటి యాక్సెస్ సాధారణంగా కంటైనర్‌లలోని డేటాకు ప్రాప్యతను అందిస్తుంది.

సమగ్రత "ఈ సూత్రం యొక్క అమలు వివిధ స్థాయిలలో జరుగుతుంది. ముందుగా, సర్వర్ హార్డ్‌వేర్, ECC మెమరీ, 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"
...

కాబట్టి మీరు అకస్మాత్తుగా డాకర్‌ని ప్రారంభించవలసి వస్తే, కొంత డెబియన్‌ని ఇన్‌స్టాల్ చేసి, వెళ్ళండి!

బోనులో బిట్‌కాయిన్?

అంతే

నేను పంచుకోవాలనుకున్నది అంతే. మీకు కథనం నచ్చితే, మీరు నాకు కొన్ని బిట్‌కాయిన్‌లను పంపవచ్చు - bc1qu7lhf45xw83ddll5mnzte6ahju8ktkeu6qhttc. మీరు చర్యలో సెల్‌లను ప్రయత్నించాలనుకుంటే మరియు కొన్ని బిట్‌కాయిన్‌లను కలిగి ఉంటే, మీరు నాకి వెళ్లవచ్చు పెంపుడు-ప్రాజెక్ట్.

మూలం: www.habr.com