Bitcoin ann an cèidse?

Tha e mar sin a thachair gu bheil mi mar neach-rianachd air siostaman coimpiutair agus lìonraidhean (ann an ùine ghoirid: rianadair an t-siostaim), agus bha cothrom agam innse don Ollamh airson beagan a bharrachd air 10 bliadhna. gnìomhan raon farsaing de shiostaman, a’ gabhail a-steach an fheadhainn a dh’ fheumas ceumannan tèarainteachd [fìor]. Thachair e cuideachd gun robh e inntinneach o chionn ùine air ais bitcoin, agus chan ann a-mhàin ga chleachdadh, ach cuideachd air grunn meanbh-sheirbheisean a chuir air bhog gus ionnsachadh mar a dh’ obraicheas tu gu neo-eisimeileach leis an lìonra Bitcoin (aka p2p às deidh a h-uile càil) bho shealladh leasaiche (tha mi gu dearbh mar aon dhiubh sin dev, mar sin, bha mi a 'dol seachad). Ach chan eil mi a 'bruidhinn mu leasachadh, tha mi a' bruidhinn mu dheidhinn àrainneachd shàbhailte agus èifeachdach airson iarrtasan.

Teicneòlas ionmhais (fintech) a dhol ri taobh tèarainteachd fiosrachaidh (fiosrachadh) agus faodaidh a’ chiad fhear obrachadh às aonais an dàrna fear, ach chan ann fada. Sin as coireach gu bheil mi airson m ’eòlas agus an seata innealan a bhios mi a’ cleachdadh a cho-roinn, a tha a ’toirt a-steach an dà chuid fintech, agus fiosrachadh, agus aig an aon àm, agus faodar a chleachdadh cuideachd airson adhbhar nas fharsainge no gu tur eadar-dhealaichte. Anns an aiste seo innsidh mi dhuibh nach eil uiread mu Bitcoin, ach mu dheidhinn a 'mhodail bun-structair airson leasachadh agus obrachadh ionmhasail (agus chan ann a-mhàin) seirbheisean - ann am facal, na seirbheisean sin far a bheil "B" cudromach. Tha seo a 'buntainn an dà chuid ris an iomlaid Bitcoin agus ris an t-sùgh corporra as àbhaistiche de sheirbheisean companaidh beag nach eil ceangailte ri Bitcoin ann an dòigh sam bith.

Bu mhath leam a thoirt fa-near gu bheil mi a’ toirt taic do na prionnsapalan "cùm e gòrach sìmplidh" и "nas lugha tha barrachd", mar sin, bidh na feartan aig a bheil na prionnsapalan sin mu dheidhinn an artaigil agus na tha air a mhìneachadh ann.

Suidheachadh mac-meanmnach: Bheir sinn sùil air a h-uile càil a ’cleachdadh an eisimpleir de iomlaidear bitcoin. Cho-dhùin sinn iomlaid rubles, dhollairean, iùro a chuir air bhog airson bitcoins agus air ais, agus tha fuasgladh obrach againn mu thràth, ach airson airgead didseatach eile leithid qiwi agus webmoney, i.e. Tha sinn air a h-uile cùis laghail a dhùnadh, tha tagradh deiseil againn a tha na gheata pàighidh airson rubles, dhollairean agus iùro agus siostaman pàighidh eile. Tha e ceangailte ris na cunntasan banca againn agus tha seòrsa de API ann airson na tagraidhean deireannach againn. Tha tagradh lìn againn cuideachd a bhios ag obair mar iomlaid airson luchd-cleachdaidh, gu math, mar chunntas àbhaisteach qiwi no webmoney - cruthaich cunntas, cuir cairt ris, agus mar sin air adhart. Bidh e a’ conaltradh ris an tagradh geata againn, ged is ann tron ​​​​REST API san sgìre ionadail. Agus mar sin chuir sinn romhainn bitcoins a cheangal agus aig an aon àm am bun-structar ùrachadh, air sgàth ... An toiseach, chaidh a h-uile càil a chuir suas ann an cabhaig air bogsaichean brìgheil san oifis fon bhòrd ... thòisich an làrach air a chleachdadh, agus thòisich sinn a ’gabhail dragh mu ùrachadh agus coileanadh.

Mar sin, leig leinn tòiseachadh leis a 'phrìomh rud - a' taghadh frithealaiche. Air sgàth tha an gnìomhachas san eisimpleir againn beag agus tha earbsa againn san neach-aoigheachd (OVH) a thaghas sinn roghainn buidseit anns a bheil e do-dhèanta an siostam a chuir a-steach bhon ìomhaigh .iso tùsail, ach chan eil e gu diofar, nì an roinn tèarainteachd IT gu cinnteach mion-sgrùdadh air an ìomhaigh stàlaichte. Agus nuair a dh’ fhàsas sinn suas, bidh sinn a’ faighinn a’ chlòsaid againn fhìn air màl fo ghlas is iuchair le beagan ruigsinneachd corporra, agus is dòcha gun tog sinn an DC againn fhèin. Ann an suidheachadh sam bith, is fhiach cuimhneachadh, nuair a bhios tu a ’faighinn bathar-cruaidh air màl agus a’ stàladh ìomhaighean deiseil, gu bheil teansa gum bi “Trojan bhon neach-aoigheachd” agad crochte air an t-siostam agad, nach eil sa mhòr-chuid an dùil brath a ghabhail ort. ach gus frithealaiche innealan riaghlaidh nas goireasaiche a thabhann.

Stàladh an fhrithealaiche

Tha a h-uile dad sìmplidh an seo. Bidh sinn a’ taghadh am bathar-cruaidh a fhreagras air na feumalachdan againn. An uairsin tagh an ìomhaigh FreeBSD. Uill, no bidh sinn a’ ceangal (ann an cùis òstair eile agus ar bathar-cruaidh fhèin) tro IPMI no le monitor agus thoir biadh don ìomhaigh .iso FreeBSD a-steach don luchdachadh sìos. Airson suidheachadh orcastra bidh mi a’ cleachdadh Freagair и mfsbsd. An aon rud, anns a 'chùis againn le kimsufi, thagh sinn stàladh àbhaisteach gus nach bi an dà dhiosca san sgàthan ach na pìosan bròg agus / dachaigh “fosgailte”, thèid an còrr den àite diosc a chrioptachadh, ach barrachd air sin nas fhaide air adhart.

Bitcoin ann an cèidse?

Tha stàladh an t-siostaim a 'tachairt ann an dòigh àbhaisteach, cha bhith mi a' fuireach air an seo, cha toir mi fa-near ach mus tòisich mi air obrachadh, is fhiach aire a thoirt dha dhìon roghainnean a tha e a’ tabhann bsdinstaller aig deireadh an stàlaidh (ma stàlaicheas tu an siostam thu fhèin):

Bitcoin ann an cèidse?

tha stuth math air a’ chuspair seo, nì mi ath-aithris goirid an seo.

Tha e comasach cuideachd na paramadairean gu h-àrd a chomasachadh air siostam a chaidh a chuir a-steach mu thràth. Gus seo a dhèanamh, feumaidh tu am faidhle bootloader a dheasachadh agus paramadairean kernel a chomasachadh. *Tha ee na dheasaiche mar seo ann am 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

Bu chòir dhut cuideachd dèanamh cinnteach gu bheil an tionndadh as ùire den t-siostam agad air a chuir a-steach, agus dèan a h-uile ùrachadh agus ùrachadh. Anns a ’chùis againn, mar eisimpleir, tha feum air ùrachadh chun dreach as ùire, oir ... tha ìomhaighean ro-stàladh a’ dol air dheireadh sia mìosan gu bliadhna. Uill, an sin atharraichidh sinn am port SSH gu rudeigin eadar-dhealaichte bhon fhear àbhaisteach, cuir prìomh dhearbhadh agus cuir à comas dearbhadh facal-faire.

An uairsin bidh sinn a 'rèiteachadh aide, a’ cumail sùil air inbhe faidhlichean rèiteachaidh an t-siostaim. Faodaidh tu barrachd a leughadh gu mionaideach an seo.

pkg install aide

agus deasaich ar crontab

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

Tionndaidh air sgrùdadh siostam

sysrc auditd_enable=YES

# service auditd start

Tha mar a bhithear a’ riaghladh na cùise seo air a mhìneachadh gu foirfe ann an stiùireadh.

A-nis bidh sinn ag ath-thòiseachadh agus a’ dol air adhart chun bhathar-bog air an fhrithealaiche. Tha gach frithealaiche na hypervisor airson soithichean no làn innealan brìgheil. Mar sin, tha e cudromach gum bi am pròiseasar a’ toirt taic do VT-x agus EPT ma tha sinn an dùil làn virtualization a chleachdadh.

Airson rian a chumail air soithichean agus innealan mas-fhìor a bhios mi a’ cleachdadh cbsd от ollabhol, Tha mi a' guidhe barrachd slàinte agus beannachdan dha airson a' ghoireas iongantach seo!

Soithichean? Docker a-rithist no dè?

Ach chan eil. Prìosanan FreeBSD na inneal sàr-mhath airson containerization, ach an iomradh cbsd gus na soithichean sin a chuir air dòigh, ris an canar ceallan.

Tha an cèidse na fhuasgladh air leth èifeachdach airson bun-structar a thogail airson grunn adhbharan, far a bheil feum air aonaranachd iomlan de sheirbheisean no phròiseasan fa leth aig a’ cheann thall. Gu bunaiteach, is e clon den t-siostam aoigheachd a th ’ann, ach chan eil feum air virtualization bathar-cruaidh iomlan. Agus taing dha seo, chan eil goireasan a chosg air an "aoigheachd OS", ach a-mhàin air an obair a thathar a 'coileanadh. Nuair a thèid ceallan a chleachdadh airson feumalachdan a-staigh, tha seo na fhuasgladh gu math goireasach airson an fheum as fheàrr de ghoireasan - faodaidh dòrlach de cheallan air aon fhrithealaiche bathar-cruaidh an goireas frithealaiche gu lèir a chleachdadh leotha fhèin ma tha sin riatanach. Leis gu bheil feum air diofar fo-sheirbheisean mar as trice. goireasan aig diofar amannan, faodaidh tu an coileanadh as àirde a thoirt a-mach à aon fhrithealaiche ma tha thu a’ dealbhadh agus a’ cothromachadh nan ceallan eadar frithealaichean gu ceart. Ma tha feum air, faodar casg a chuir air ceallan cuideachd air a’ ghoireas a thathar a’ cleachdadh.

Bitcoin ann an cèidse?

Dè mu dheidhinn virtualization iomlan?

Cho fad ‘s as aithne dhomh cbsd a’ toirt taic do dh’ obair bhyve agus hypervisors XEN. Cha do chleachd mi an dàrna fear a-riamh, ach tha a’ chiad fhear gu math ùr hypervisor bho FreeBSD. Bheir sinn sùil air eisimpleir de chleachdadh bhyve anns an eisimpleir gu h-ìosal.

A 'stàladh agus a' rèiteachadh na h-àrainneachd aoigheachd

Bidh sinn a’ cleachdadh FS ZFS. Is e inneal air leth cumhachdach a tha seo airson àite frithealaiche a riaghladh. Taing do ZFS, is urrainn dhut gu dìreach a 'togail diofar rèiteachaidhean bho diosgan, fiùghantach "teth" leudachadh àite, atharraich marbh diosgan, a' stiùireadh dealbhan-camara, agus mòran, mòran a bharrachd, a dh'fhaodar a mhìneachadh ann an sreath slàn de artaigilean. Tillidh sinn chun an fhrithealaiche againn agus na diosgan aige. Aig toiseach an stàlaidh, dh'fhàg sinn àite an-asgaidh air na diosgan airson sgaraidhean crioptaichte. Carson a tha sin? Tha seo gus am bi an siostam a’ dùsgadh gu fèin-ghluasadach agus ag èisteachd tro SSH.

gpart add -t freebsd-zfs /dev/ada0

/dev/ada0p4 added!

cuir sgaradh diosc ris an àite a tha air fhàgail

geli init /dev/ada0p4

cuir a-steach am facal-faire crioptachaidh againn

geli attach /dev/ada0p4

Cuiridh sinn a-steach am facal-faire a-rithist agus tha inneal /dev/ada0p4.eli againn - is e seo an t-àite crioptaichte againn. An uairsin bidh sinn ag ath-aithris an aon rud airson / dev/ada1 agus an còrr de na diosgan san raon. Agus bidh sinn a’ cruthachadh fear ùr ZFS pool.

zpool create vms mirror /dev/ada0p4.eli /dev/ada1p4.eli /dev/ada3p4.eli - Uill, tha an uidheamachd sabaid as ìsle againn deiseil. Sreath de dhioscaichean le sgàthan air eagal ’s gum fàillig aon de na trì.

A 'cruthachadh dàta air "pool" ùr

zfs create vms/jails

pkg install cbsd - chuir sinn sgioba air bhog agus stèidhich sinn riaghladh airson ar ceallan.

Às deidh cbsd stàladh, feumar a thòiseachadh:

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

Uill, freagraidh sinn dòrlach de cheistean, gu ìre mhòr le freagairtean bunaiteach.

* Ma tha thu a’ cleachdadh crioptachadh, tha e cudromach gum bi an daemon cbsdd cha do thòisich thu gu fèin-ghluasadach gus an dì-chrioptaich thu na diosgan le làimh no gu fèin-ghluasadach (san eisimpleir againn tha seo air a dhèanamh le zabbix)

** Cha bhith mi a’ cleachdadh NAT bho cbsd, agus tha mi ga rèiteachadh fhèin ann 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

Tha stèidheachadh poileasaidhean balla-teine ​​cuideachd na chuspair air leth, agus mar sin cha tèid mi gu domhainn a-steach a bhith a’ stèidheachadh a’ phoileasaidh BLOCK UILE agus a’ stèidheachadh liostaichean geala, faodaidh tu sin a dhèanamh le bhith a’ leughadh sgrìobhainnean oifigeil no gin den àireamh mhòr de artaigilean a tha rim faighinn air Google.

Uill... tha sinn air cbsd a chuir a-steach, tha an t-àm ann a’ chiad each-obrach againn a chruthachadh - an deamhan Bitcoin cèidse!

cbsd jconstruct-tui

Bitcoin ann an cèidse?

An seo chì sinn an còmhradh cruthachadh cealla. Às deidh na luachan gu lèir a bhith air an suidheachadh, cruthaichidh sinn!

Nuair a chruthaicheas tu a’ chiad chealla agad, bu chòir dhut taghadh dè a chleachdas tu mar bhunait airson na ceallan. Bidh mi a’ taghadh cuairteachadh bhon stòr FreeBSD leis an àithne repo. Chan eil an roghainn seo air a dhèanamh ach nuair a chruthaicheas tu a 'chiad chealla de dhreach sònraichte (faodaidh tu ceallan de dhreach sam bith a tha nas sine na an dreach aoigheachd).

Às deidh a h-uile càil a chuir a-steach, bidh sinn a ’cur air bhog an cèidse!

# cbsd jstart bitcoind

Ach feumaidh sinn bathar-bog a stàladh sa chèidse.

# jls

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

jexec bitcoind gus faighinn a-steach don consol cealla

agus mu thràth taobh a-staigh na cealla bidh sinn a’ stàladh am bathar-bog leis na h-eisimeileachd aige (tha an siostam aoigheachd againn fhathast glan)

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

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

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

Tha Bitcoin anns a 'chèidse, ach feumaidh sinn a bhith gun urra oir tha sinn airson ceangal ri cuid de chèidsichean tron ​​​​lìonra TOP. San fharsaingeachd, tha sinn an dùil a’ mhòr-chuid de cheallan a ruith le bathar-bog amharasach a-mhàin tro neach-ionaid. Taing do pf Faodaidh tu NAT a dhì-cheadachadh airson raon sònraichte de sheòlaidhean IP air an lìonra ionadail, agus cead a thoirt do NAT a-mhàin airson an nód TOR againn. Mar sin, eadhon ged a gheibh malware a-steach don chill, is coltaiche nach bi e a’ conaltradh ris an t-saoghal a-muigh, agus ma nì e, cha nochd e IP an t-seirbheisiche againn. Mar sin, bidh sinn a’ cruthachadh cealla eile gu seirbheisean “air adhart” mar sheirbheis “.onion” agus mar neach-ionaid airson faighinn chun eadar-lìn gu ceallan fa leth.

# 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

Suidhich airson èisteachd aig seòladh ionadail (ri fhaighinn airson a h-uile cealla)

SOCKSPort 192.168.0.2:9050

Dè eile a tha a dhìth oirnn airson toileachas iomlan? Tha, tha feum againn air seirbheis airson ar lìn, 's dòcha barrachd air aon. Nach cuir sinn nginx air bhog, a bhios mar neach-ionaid cùil agus a bheir aire do bhith ag ùrachadh theisteanasan Let's Encrypt

# cbsd jsconstruct-tui

# cbsd jstart nginx-rev

# jexec nginx-rev

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

Agus mar sin chuir sinn 150 MB de eisimeileachd ann an cèidse. Agus tha an taigh-òsta fhathast glan.

Tillidh sinn gu stèidheachadh nginx nas fhaide air adhart, feumaidh sinn dà chealla a bharrachd a thogail airson ar geata pàighidh air nodejs agus meirge agus tagradh lìn, a tha airson adhbhar air choireigin ann an Apache agus PHP, agus tha feum aig an fhear mu dheireadh air stòr-dàta MySQL cuideachd.

# 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

...agus 380 MB eile de phasganan leotha fhèin

An uairsin, bidh sinn a’ luchdachadh sìos an tagradh againn le git agus ga chuir air bhog.

# cbsd jsconstruct-tui

# cbsd jstart webapp

# jexec webapp

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

450 MB pacaidean. ann an cèidse.

an seo bheir sinn cothrom don leasaiche tro SSH gu dìreach chun chill, nì iad a h-uile càil an sin iad fhèin:

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

Port 2267 - atharraich port SSH na cealla gu fear neo-riaghailteach sam bith

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

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

Uill, tha an t-seirbheis a’ ruith, chan eil air fhàgail ach an riaghailt a chur ris pf cachaileith-theine

Chì sinn dè an IP a th’ aig na ceallan againn agus cò ris a tha an “sgìre ionadail” againn coltach sa chumantas.

# 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

agus cuir ri riaghailt

# 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

Uill, leis gu bheil sinn an seo, cuiridh sinn cuideachd riaghailt airson neach-ionaid cùil:

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

Uill, a-nis beagan mu bitcoins

Is e na tha againn gu bheil tagradh lìn againn a tha fosgailte air an taobh a-muigh agus bidh e a’ bruidhinn gu h-ionadail ris a ’gheata pàighidh againn. A-nis feumaidh sinn a bhith ag ullachadh àrainneachd obrach airson eadar-obrachadh leis an lìonra Bitcoin fhèin - an nód bitcoind chan eil ann ach daemon a chumas an leth-bhreac ionadail den blockchain ùraichte. Tha comas-gnìomh RPC agus wallet aig an daemon seo, ach tha “còmhdaichean” nas freagarraiche ann airson leasachadh thagraidhean. An toiseach, chuir sinn romhainn a chuir electrum is e wallet CLI a th’ ann. An sporan seo cleachdaidh sinn e mar “stòradh fuar” airson ar bitcoins - san fharsaingeachd, na bitcoins sin a dh’ fheumas a bhith air an stòradh “taobh a-muigh” an t-siostam ruigsinneach do luchd-cleachdaidh agus san fharsaingeachd air falbh bhon h-uile duine. Tha GUI aige cuideachd, agus mar sin tha sinn gu bhith a’ cleachdadh an aon wallet air ar
coimpiutairean glùine. Airson a-nis cleachdaidh sinn Electrum le frithealaichean poblach, agus nas fhaide air adhart togaidh sinn e ann an cealla eile ElectrumXgus nach bi e an urra ri duine sam bith.

# cbsd jsconstruct-tui

# cbsd jstart electrum

# jexec electrum

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

700 MB eile de bhathar-bog nar cèidse

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

A-nis tha wallet againn air a chruthachadh.

wallet@electrum:/ % electrum-3.6 listaddresses

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

wallet@electrum:/ % electrum-3.6 help

Do ar air-slabhraidh Is e dìreach àireamh bheag de dhaoine a bhios comasach air ceangal ris an wallet bho seo a-mach. Gus nach fosgail cothrom air a’ chill seo bhon taobh a-muigh, bidh ceanglaichean tro SSH a’ tachairt tro TOP (dreach dì-mheadhanaichte de VPN). Bidh sinn a’ cur SSH air bhog sa chill, ach na cuir suathadh air ar pf.conf air an aoigh.

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

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

A-nis leig dhuinn an cealla a chuir dheth le ruigsinneachd eadar-lìn an wallet. Bheir sinn seòladh IP dha bho àite subnet eile nach eil NATed. An toiseach atharraichidh sinn /etc/pf.conf air an aoigh

# ee /etc/pf.conf

JAIL_IP_POOL="192.168.0.0/24" atharraichidh sinn e gu JAIL_IP_POOL="192.168.0.0/25", mar sin cha bhi cothrom dìreach aig a h-uile seòladh 192.168.0.126-255 air an eadar-lìon. Seòrsa de lìonra “beàrn adhair” bathar-bog. Agus tha riaghailt NAT fhathast mar a bha e

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

A luchdadh a-nuas na riaghailtean

# pfctl -f /etc/pf.conf

A nis gabhamaid ar cill

# cbsd jconfig jname=electrum

Bitcoin ann an cèidse?

Bitcoin ann an cèidse?

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

Hmm, ach a-nis sguir an siostam fhèin ag obair dhuinne. Ach, is urrainn dhuinn neach-ionaid siostam a shònrachadh. Ach tha aon rud ann, air TOR tha e na neach-ionaid SOCKS5, agus airson goireasachd bu mhath leinn neach-ionaid HTTP cuideachd.

# 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

Uill, a-nis tha dà fhrithealaiche progsaidh san t-siostam againn, agus an dà chuid a ’toirt a-mach tro TOR: stocainnean 5: / 192.168.0.2: 9050 agus http://192.168.0.6:8123

A-nis is urrainn dhuinn an àrainneachd wallet againn a rèiteachadh

# 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

Uill, a-nis obraichidh an t-slige bho bhith fo neach-ionaid. Ma tha sinn airson pacaidean a stàladh, bu chòir dhuinn cuir ris /usr/local/etc/pkg.conf bho bhith fo freumh a 'chèidse

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

Uill, a-nis tha an t-àm ann an t-seirbheis falaichte TOR a chuir ris mar sheòladh ar seirbheis SSH anns a ’chill wallet.

# 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

Is e seo an seòladh ceangail againn. Feuch an dèan sinn sgrùdadh bhon inneal ionadail. Ach an toiseach feumaidh sinn an iuchair SSH againn a chuir ris:

wallet@electrum:/ % mkdir ~/.ssh

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

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

Uill, bho inneal teachdaiche 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

Dèanamaid ceangal (Airson seo a bhith ag obair, feumaidh tu daemon TOR ionadail a bhios ag èisteachd air 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

Soirbheachas!

Gus obrachadh le pàighidhean sa bhad agus meanbh-phàighidhean, feumaidh sinn nód cuideachd Lìonra dealanach, gu dearbh, bidh seo na phrìomh inneal obrach againn le Bitcoin. U*c-dealanacha tha sinn a’ dol a chleachdadh mar dheamhan Plugin sparko, a tha na eadar-aghaidh HTTP (REST) ​​làn-chuimseach agus a leigeas leat obrachadh le gach cuid gnothaichean far-slabhraidh agus air-slabhraidh. c-lightning riatanach airson obrachadh bitcoind ach tha.

*Tha diofar bhuileachadh de phròtacal Lightning Network ann an diofar chànanan. Den fheadhainn a rinn sinn deuchainn, bha coltas c-dealanach (sgrìobhte ann an C) mar an fheadhainn as seasmhaiche agus as èifeachdaiche a thaobh ghoireasan

# 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

Fhad ‘s a tha a h-uile dad riatanach air a chuir ri chèile agus air a chuir a-steach, cruthaichidh sinn cleachdaiche RPC airson 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

Tha e coltach nach bi an gluasad mì-rianail agam eadar ceallan cho mì-rianail ma bheir thu fa-near don ghoireas tmux, a leigeas leat grunn fo-sheiseanan crìochnachaidh a chruthachadh taobh a-staigh aon seisean. Analog: screen

Bitcoin ann an cèidse?

Mar sin, chan eil sinn airson fìor IP ar nód fhoillseachadh, agus tha sinn airson a h-uile gnothach ionmhais a dhèanamh tro TOP. Mar sin, chan eil feum air .onion eile.

# 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

A-nis cruthaichidh sinn config airson c-lightning

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 ~

feumaidh tu cuideachd faidhle rèiteachaidh a chruthachadh airson bitcoin-cli, goireas a bhios a’ conaltradh ris bitcoind

lightning@lightning:~ % mkdir .bitcoin

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

rpcconnect=192.168.0.1
rpcuser=test
rpcpassword=test

a' cumail sùil

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

[
  "test"
]

cur air bhog lightningd

lightning@lightning:~ % lightningd --daemon

E fhèin lightningd faodaidh tu smachd a chumail air a’ ghoireas lightning-climar eisimpleir:

lightning-cli newaddr faigh an seòladh airson pàigheadh ​​​​ùr a-steach

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

lightning-cli withdraw bc1jufcxahfrnfhruwjgx3cq2n2ffq3lplhme878pv all cuir an t-airgead gu lèir sa wallet chun t-seòladh (gach seòladh air slabhraidh)

Cuideachd òrdughan airson obrachaidhean far-slabhraidh lightning-cli invoice, lightning-cli listinvoices, lightning-cli pay agus mar sin air adhart

Uill, airson conaltradh leis an tagradh tha REST Api againn

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

Leigamaid a-steach na toraidhean

# 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 ann an cèidse?

Tha seata de shoithichean againn, gach fear le a ìre ruigsinneachd fhèin bho agus chun lìonra ionadail.

# 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

Mar a chì thu, bidh bitcoind a’ toirt suas 190 GB de rùm gu lèir. Dè ma tha feum againn air nód eile airson deuchainn? Seo far a bheil ZFS a’ tighinn gu feum. Le cuideachadh cbsd jclone old=bitcoind new=bitcoind-clone host_hostname=clonedbtc.space.com 's urrainn dhut dealbh a chruthachadh agus cealla ùr a cheangal ris an dealbh seo. Bidh àite fhèin aig a’ chill ùr, ach cha tèid ach an diofar eadar an staid làithreach agus an tè thùsail a thoirt fa-near san t-siostam faidhle (sàbhailidh sinn co-dhiù 190 GB)

Tha an stòr-dàta ZFS fhèin aig gach cealla, agus tha seo air leth goireasach. Tha ZFS cuideachd a 'ceadachadh dèan grunn rudan fionnar eile, leithid a bhith a’ cur dhealbhan-camara tro SSH. Cha toir sinn cunntas air, tha tòrr ann mu thràth.

Is fhiach a bhith mothachail cuideachd gu bheil feum air sgrùdadh iomallach air an aoigh, airson na h-adhbharan sin a tha againn Zabbix.

B - sàbhailteachd

A thaobh tèarainteachd, tòisichidh sinn bho na prìomh phrionnsabalan ann an co-theacsa bun-structair:

Dìomhaireachd - Bidh innealan àbhaisteach de shiostaman coltach ri UNIX a’ dèanamh cinnteach gu bheil am prionnsapal seo air a bhuileachadh. Bidh sinn gu loidsigeach a’ sgaradh ruigsinneachd gu gach eileamaid den t-siostam a tha air leth fa leth - cealla. Tha ruigsinneachd air a thoirt seachad tro dhearbhadh cleachdaiche àbhaisteach a’ cleachdadh iuchraichean pearsanta an neach-cleachdaidh. Bidh a h-uile conaltradh eadar agus gu na ceallan deiridh a’ tachairt ann an cruth crioptaichte. Taing do chrioptachadh diosc, chan fheum sinn dragh a ghabhail mu shàbhailteachd dàta nuair a bhios sinn ag ath-nuadhachadh diosc no a’ gluasad gu frithealaiche eile. Is e an aon ruigsinneachd riatanach ruigsinneachd air an t-siostam aoigheachd, leis gu bheil ruigsinneachd mar sin mar as trice a’ toirt cothrom air dàta taobh a-staigh soithichean.

Ionracas “Tha buileachadh a’ phrionnsapail seo a’ tachairt aig grunn ìrean eadar-dhealaichte. An toiseach, tha e cudromach toirt fa-near, a thaobh bathar-cruaidh frithealaiche, cuimhne ECC, gu bheil ZFS mar-thà “a-mach às a’ bhogsa ”a’ toirt aire do ionracas dàta aig ìre pìosan fiosrachaidh. Leigidh dealbhan sa bhad leat cùl-taic a dhèanamh aig àm sam bith air an itealan. Bidh innealan goireasach às-mhalairt / in-mhalairt cealla a’ dèanamh ath-riochdachadh cealla sìmplidh.

Ri fhaotainn - Tha seo mar-thà roghainneil. Tha e an urra ri ìre do chliù agus gu bheil gràin agad. Anns an eisimpleir againn, rinn sinn cinnteach gun robh am wallet ruigsinneach a-mhàin bhon lìonra TOP. Ma tha feum air, faodaidh tu a h-uile càil air a’ bhalla-teine ​​​​a bhacadh agus cothrom a thoirt don fhrithealaiche a-mhàin tro thunailean (TOR no VPN na chùis eile). Mar sin, thèid an frithealaiche a ghearradh dheth bhon t-saoghal a-muigh cho mòr ‘s as urrainn, agus is e sinne fhìn a bhios comasach air buaidh a thoirt air na tha ri fhaighinn.

Do-dhèanta diùltadh - Agus tha seo an urra ri tuilleadh obrachaidh agus gèilleadh ris na poileasaidhean ceart airson còraichean luchd-cleachdaidh, ruigsinneachd, msaa. Ach leis an dòigh-obrach cheart, tha gnìomhan luchd-cleachdaidh uile air an sgrùdadh, agus le taing do fhuasglaidhean criptografach tha e comasach comharrachadh gun teagamh cò a rinn gnìomhan sònraichte agus cuin.

Gu dearbh, chan eil an rèiteachadh a chaidh a mhìneachadh na eisimpleir iomlan de mar a bu chòir dha a bhith an-còmhnaidh, tha e na aon eisimpleir de mar as urrainn dha a bhith, agus aig an aon àm a ’gleidheadh ​​​​comasan sgèileachaidh is gnàthachaidh gu math sùbailte.

Dè mu dheidhinn virtualization iomlan?

Mu dheidhinn virtualization iomlan a’ cleachdadh cbsd as urrainn dhut Leugh an seo. Cuiridh mi sin dìreach airson obair bhyve Feumaidh tu cuid de roghainnean kernel a chomasachadh.

# cat /etc/rc.conf

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

# cat /boot/loader.conf

...
vmm_load="YES"
...

Mar sin ma dh’ fheumas tu docker a thòiseachadh gu h-obann, an uairsin stàlaich beagan debian agus falbh!

Bitcoin ann an cèidse?

Sin e

Tha mi creidsinn gur e sin a bha mi airson a roinn. Nam bu toil leat an artaigil, faodaidh tu beagan bitcoins a chuir thugam - bc1qu7lhf45xw83ddll5mnzte6ahju8ktkeu6qhttc. Ma tha thu airson feuchainn air ceallan ann an gnìomh agus gu bheil beagan bitcoins agad, faodaidh tu a dhol gu mo peat-pròiseict.

Source: www.habr.com