Чунин шуд, ки аз рӯи ихтисос ман администратори системаҳо ва шабакаҳои компютерӣ ҳастам (хулоса: администратори система) ва ман имкон доштам, ки каме бештар аз 10 сол ба проф. фаъолияти системаҳои гуногун, аз ҷумла онҳое, ки чораҳои бехатариро талаб мекунанд. Ин ҳам рӯй дод, ки чанде пеш ман онро ҷолиб пайдо кардам dev
, ҳамин тавр, ман аз он ҷо мегузаштам). Аммо ман на дар бораи рушд, балки дар бораи муҳити бехатар ва самараноки барномаҳо сухан меронам.
Технологияи молиявӣ (fintech) дар паҳлӯи амнияти иттилоотӣ гузаред (инфосек) ва якум бе дуюм кор карда метавонад, вале на муддати дароз. Аз ин рӯ, ман мехоҳам таҷрибаи худ ва маҷмӯи асбобҳоеро, ки ман истифода мебарам, мубодила кунам, ки ҳардуро дар бар мегирад fintech, ва инфосек, ва дар айни замон, инчунин метавонад барои мақсадҳои васеътар ё тамоман дигар истифода шавад. Дар ин мақола ман ба шумо на он қадар дар бораи Bitcoin, балки дар бораи модели инфрасохтори рушд ва фаъолияти хидматҳои молиявӣ (ва на танҳо) нақл мекунам - як калима, он хидматҳое, ки дар он "B" муҳим аст. Ин ҳам ба биржаи Bitcoin ва ҳам ба зоопаркҳои маъмултарини корпоративии хидматрасонии як ширкати хурде дахл дорад, ки ба ҳеҷ ваҷҳ бо Bitcoin алоқаманд нест.
Кайд кардан мехостам, ки ман тарафдори принципхо мебошам "ин беақлро оддӣ нигоҳ доред" и "камтар аст", аз ин рӯ, ҳам мақола ва ҳам он чизе, ки дар он тавсиф шудааст, дорои хосиятҳое хоҳанд буд, ки ин принсипҳо дар бораи он ҳастанд.
Сенарияи хаёлӣ: Биёед ҳама чизро бо истифода аз мисоли мубодилаи биткоин дида бароем. Мо тасмим гирифтем, ки мубодилаи рубл, доллар, евроро барои биткоинҳо ва бозгашт оғоз кунем ва мо аллакай як ҳалли корӣ дорем, аммо барои дигар пулҳои рақамӣ ба монанди qiwi ва webmoney, яъне. Мо ҳама масъалаҳои ҳуқуқиро бастаем, мо як барномаи омода дорем, ки ҳамчун дарвозаи пардохт барои рубл, доллар ва евро ва дигар системаҳои пардохт хизмат мекунад. Он ба суратҳисобҳои бонкии мо пайваст аст ва барои барномаҳои ниҳоии мо як навъ API дорад. Мо инчунин як барномаи веб дорем, ки ҳамчун мубодила барои корбарон амал мекунад, хуб, ба монанди ҳисоби маъмулии qiwi ё webmoney - эҷод кардани ҳисоб, илова кардани корт ва ғайра. Он бо замимаи дарвозаи мо, ҳарчанд тавассути REST API дар минтақаи маҳаллӣ муошират мекунад. Ва аз ин рӯ, мо тасмим гирифтем, ки биткоинҳоро пайваст кунем ва ҳамзамон инфрасохторро такмил диҳем, зеро... Дар аввал, ҳама чиз дар қуттиҳои виртуалӣ дар дафтари зери миз ҷойгир карда шуд ... сайт ба истифода шурӯъ кард ва мо дар бораи вақти корӣ ва иҷроиш ғамхорӣ кардем.
Пас, биёед бо чизи асосӣ - интихоби сервер оғоз кунем. Зеро тиҷорат дар мисоли мо хурд аст ва мо ба hoster (OVH) боварӣ дорем, ки мо интихоб мекунем
Насби сервер
Дар ин ҷо ҳама чиз оддӣ аст. Мо таҷҳизотеро интихоб мекунем, ки ба талаботи мо мувофиқ бошад. Сипас тасвири FreeBSD-ро интихоб кунед. Хуб, ё мо (дар сурати дигар hoster ва сахтафзори худамон) тавассути IPMI ё бо монитор пайваст мешавем ва тасвири .iso FreeBSD-ро ба зеркашӣ ворид мекунем. Барои насби оркестр ман истифода мекунам
Насбкунии система ба таври стандартӣ сурат мегирад, ман дар ин бора таваққуф намекунам, танҳо қайд мекунам, ки пеш аз оғози кор ба он диққат додан лозим аст. сангдилӣ вариантҳое, ки он пешниҳод мекунад 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
Шумо инчунин бояд боварӣ ҳосил кунед, ки шумо версияи охирини системаро насб кардаед ва
Пас мо танзим мекунем aide
, мониторинги ҳолати файлҳои конфигуратсияи система. Шумо метавонед муфассалтар хонед
pkg install aide
ва 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
Мо дохил мекунем
sysrc auditd_enable=YES
# service auditd start
Чӣ тавр идора кардани ин масъала ба таври комил дар
Акнун мо бозоғоз мекунем ва ба нармафзори сервер идома медиҳем. Ҳар як сервер гипервизор барои контейнерҳо ё мошинҳои пурраи виртуалӣ мебошад. Аз ин рӯ, муҳим аст, ки протсессор VT-x ва EPT -ро дастгирӣ кунад, агар мо нақшаи виртуализатсияи пурраро истифода барем.
Барои идора кардани контейнерҳо ва мошинҳои виртуалӣ ман истифода мекунам
Контейнерҳо? Боз Докер ё чӣ?
Аммо не. cbsd
барои ташкил кардани ин контейнерҳо, ки ҳуҷайраҳо номида мешаванд.
Қафас як ҳалли бениҳоят муассир барои сохтани инфрасохтор барои мақсадҳои гуногун мебошад, ки дар ниҳоят ҷудокунии пурраи хидматҳо ё равандҳои инфиродӣ лозим аст. Аслан, он як клони системаи ҳост аст, аммо он виртуализатсияи пурраи сахтафзорро талаб намекунад. Ва ба шарофати ин, захираҳо на барои "OS-и меҳмон", балки танҳо ба кори иҷрошаванда сарф карда мешаванд. Вақте ки ҳуҷайраҳо барои эҳтиёҷоти дохилӣ истифода мешаванд, ин як ҳалли хеле қулай барои истифодаи оптималии захираҳо мебошад - як гурӯҳи ячейкаҳо дар як сервери сахтафзор ҳар кадоми онҳо метавонанд дар ҳолати зарурӣ тамоми манбаи серверро истифода баранд. Бо назардошти он, ки одатан зерхизматҳои гуногун ба иловагӣ ниёз доранд. Агар шумо ҳуҷайраҳоро дар байни серверҳо дуруст ба нақша гиред ва мувозинат кунед, шумо метавонед аз як сервер самаранокии максималиро ба даст оред. Дар ҳолати зарурӣ, ба ячейкаҳо инчунин метавонанд дар бораи захираҳои истифодашуда маҳдудиятҳо дода шаванд.
Дар бораи виртуализатсияи пурра чӣ гуфтан мумкин аст?
То ҷое ки ман медонам cbsd
корро дастгирй мекунад bhyve
ва гипервизорҳои XEN. Ман ҳеҷ гоҳ дуюмашро истифода накардаам, аммо аввалинаш нисбатан нав аст bhyve
дар мисоли зер.
Насб ва танзими муҳити мизбон
Мо FS-ро истифода мебарем
gpart add -t freebsd-zfs /dev/ada0
/dev/ada0p4 added!
ба фазои боқимонда як қисми диск илова кунед
geli init /dev/ada0p4
пароли рамзгузории моро ворид кунед
geli attach /dev/ada0p4
Мо паролро дубора ворид мекунем ва мо дастгоҳи /dev/ada0p4.eli дорем - ин фазои рамзгузоришудаи мост. Сипас, мо барои /dev/ada1 ва боқимондаи дискҳои массив ҳамин чизро такрор мекунем. Ва мо як нав эҷод мекунем
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
Ташкили сиёсатҳои деворӣ низ як мавзӯи алоҳида аст, аз ин рӯ ман ба танзими сиёсати БЛОК КАРДАН ва танзими рӯйхати сафедҳо амиқ намеравам, шумо метавонед ин корро бо хондан анҷом диҳед.
Хуб... мо cbsd насб кардем, вақти он расидааст, ки аввалин аспи кориамон - деви қафаси Bitcoin эҷод кунем!
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
Дар қафас Bitcoin мавҷуд аст, аммо ба мо беном лозим аст, зеро мо мехоҳем ба баъзе қафасҳо тавассути шабакаи TOP пайваст шавем. Умуман, мо нақша дорем, ки аксари ҳуҷайраҳои дорои нармафзори шубҳанок танҳо тавассути прокси кор кунем. Ташаккур ба pf
Шумо метавонед NAT-ро барои доираи муайяни суроғаҳои IP дар шабакаи маҳаллӣ хомӯш кунед ва 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 МБ вобастагӣ дар қафас ҷойгир кардем. Ва соҳибхона ҳоло ҳам пок аст.
Биёед дертар ба танзими 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 МБ бастаҳои ҷудошуда
Баъдан, мо замимаи худро бо git зеркашӣ мекунем ва онро оғоз мекунем.
# cbsd jsconstruct-tui
# cbsd jstart webapp
# jexec webapp
webapp:/@[16:02] # pkg install mariadb104-server apache24 php74 mod_php74 php74-pdo_mysql
Бастаҳои 450 МБ. дар қафас.
Дар ин ҷо мо ба таҳиягар тавассути 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
Он чизе ки мо дорем, ин аст, ки мо як веб-барнома дорем, ки берун аз он фош карда мешавад ва он ба таври маҳаллӣ бо дарвозаи пардохтии мо сӯҳбат мекунад. Ҳоло ба мо лозим аст, ки муҳити корӣ барои ҳамкорӣ бо худи шабакаи Bitcoin - гиреҳ омода созем bitcoind
он танҳо як демонест, ки нусхаи маҳаллии блокчейнро то ба ҳол нигоҳ медорад. Ин демон дорои функсияҳои RPC ва ҳамён мебошад, аммо барои таҳияи барномаҳо "маҷмӯаҳои" қулайтар мавҷуданд. Барои оғоз, мо қарор додем, ки гузошта electrum
ҳамёни CLI аст.
ноутбукхо. Ҳоло мо Electrum-ро бо серверҳои ҷамъиятӣ истифода мебарем ва баъдтар онро дар ячейкаи дигар мебардорем
# cbsd jsconstruct-tui
# cbsd jstart electrum
# jexec electrum
electrum:/@[8:45] # pkg install py36-electrum
боз 700 МБ нармафзор дар қафаси мо
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 ба Интернет дастрасии мустақим надоранд. Як навъ шабакаи нармафзори "air-gap". Ва қоидаи 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
Hmm, аммо ҳоло худи система барои мо кор намекунад. Аммо, мо метавонем прокси системаро муайян кунем. Аммо як чиз ҳаст, дар 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 ва
Акнун мо метавонем муҳити ҳамёни худро танзим кунем
# 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
Хуб, аз як мошини мизоҷи 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
Биёед пайваст шавем (Барои ин кор, ба шумо демони маҳаллии 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
Муваффақият!
Барои кор бо пардохтҳои фаврӣ ва хурд, ба мо низ гиреҳ лозим аст c-lightning
барои фаъолият зарур аст bitcoind
аммо бале.
*Амалисозии гуногуни протоколи Шабакаи Lightning бо забонҳои гуногун мавҷуданд. Аз онҳое, ки мо озмоиш кардем, c-lightning (дар C навишта шудааст) устувортарин ва каммасраф ба назар мерасид
# 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
Акнун биёед конфигуратсияро барои 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 ~
шумо инчунин бояд файли конфигуратсияро барои 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
Мо маҷмӯи контейнерҳо дорем, ки ҳар кадоми онҳо сатҳи дастрасии худро ҳам аз шабакаи маҳаллӣ ва ҳам ба шабакаи маҳаллӣ доранд.
# 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 ГБ ҷойро ишғол мекунад. Чӣ мешавад, агар ба мо гиреҳи дигар барои санҷиш лозим шавад? Дар ин ҷо ZFS муфид аст. Бо ёрии cbsd jclone old=bitcoind new=bitcoind-clone host_hostname=clonedbtc.space.com
шумо метавонед тасвири лаҳзае эҷод кунед ва ба ин акси нав чашмаки нав замима кунед. Ячейкаи нав фазои худро дорад, аммо танҳо фарқияти байни ҳолати кунунӣ ва аслӣ дар системаи файлӣ ба назар гирифта мешавад (мо ҳадди аққал 190 ГБ сарфа мекунем)
Ҳар як ячейка маҷмӯи додаҳои ZFS-и алоҳидаи худ аст ва ин хеле қулай аст.
Инчунин зарурати мониторинги фосилавии мизбонро қайд кардан лозим аст, ки барои ин мақсадҳо мо дорем
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"
...
Пас, агар ба шумо ногаҳон лозим ояд, ки докерро оғоз кунед, пас каме debian насб кунед ва биравед!
Ҳамааш ҳамин
Фикр мекунам, ин ҳама чизест, ки ман мехостам мубодила кунам. Агар мақола ба шумо маъқул бошад, шумо метавонед ба ман чанд биткоин фиристед -
Манбаъ: will.com