Nahitabo kini nga pinaagi sa propesyon ako usa ka administrador sa mga sistema sa kompyuter ug mga network (sa laktud: system administrator), ug nakahigayon ako nga isulti sa prof. ang mga kalihokan sa usa ka halapad nga lainlain nga sistema, lakip ang mga nanginahanglan [labi nga] mga lakang sa seguridad. Nahitabo usab nga pipila ka mga panahon ang milabay nakit-an nako kini nga makapaikag dev
, so, nilabay ko). Apan wala ako maghisgot bahin sa pag-uswag, naghisgut ako bahin sa usa ka luwas ug episyente nga palibot alang sa mga aplikasyon.
Pinansyal nga teknolohiya (fintech) adto sunod sa seguridad sa impormasyon (infosec) ug ang una makatrabaho nga wala ang ikaduha, apan dili magdugay. Mao nga gusto nakong ipaambit ang akong kasinatian ug ang set sa mga himan nga akong gigamit, nga naglakip sa duha fintech, ug infosec, ug sa samang higayon, ug mahimo usab nga gamiton alang sa mas lapad o hingpit nga lahi nga katuyoan. Sa kini nga artikulo, isulti ko kanimo dili kaayo bahin sa Bitcoin, apan bahin sa modelo sa imprastraktura alang sa pagpalambo ug operasyon sa pinansyal (ug dili lamang) nga mga serbisyo - sa usa ka pulong, kadtong mga serbisyo diin ang "B" hinungdanon. Kini magamit sa duha sa Bitcoin exchange ug sa labing tipikal nga corporate zoo sa mga serbisyo sa usa ka gamay nga kompanya nga wala konektado sa Bitcoin sa bisan unsa nga paagi.
Gusto nakong timan-an nga tigpaluyo ko sa mga prinsipyo "ipadayon kini nga hungog nga simple" ΠΈ "mas daghan ang gamay", busa, ang artikulo ug ang gihubit niini adunay mga kabtangan nga gipasabut niini nga mga prinsipyo.
Hinanduraw nga senaryo: Atong tan-awon ang tanan gamit ang pananglitan sa usa ka bitcoin exchanger. Nakahukom kami nga ilunsad ang pagbinayloay sa mga rubles, dolyar, euro alang sa bitcoins ug likod, ug kami adunay usa ka nagtrabaho nga solusyon, apan alang sa ubang mga digital nga salapi sama sa qiwi ug webmoney, i.e. Gisirado na namo ang tanang legal nga mga isyu, kami adunay andam nga aplikasyon nga nagsilbing ganghaan sa pagbayad alang sa mga rubles, dolyar ug euro ug uban pang sistema sa pagbayad. Konektado kini sa among mga bank account ug adunay usa ka matang sa API para sa among katapusan nga mga aplikasyon. Adunay usab kami usa ka aplikasyon sa web nga naglihok ingon usa ka tigbaylo alang sa mga tiggamit, maayo, sama sa usa ka tipikal nga qiwi o webmoney account - paghimo usa ka account, pagdugang usa ka kard, ug uban pa. Nakigsulti kini sa among aplikasyon sa gateway, bisan pinaagi sa REST API sa lokal nga lugar. Ug busa nakahukom kami sa pagkonektar sa mga bitcoin ug sa samang higayon pag-upgrade sa imprastraktura, tungod kay... Sa sinugdan, ang tanan gibutang sa pagdali sa virtualboxes sa opisina sa ilalum sa lamesa... ang site nagsugod sa paggamit, ug kami nagsugod sa pagkabalaka mahitungod sa uptime ug performance.
Mao nga, magsugod kita sa panguna nga butang - pagpili sa usa ka server. Kay ang negosyo sa among panig-ingnan gamay ra ug kami nagsalig sa hoster (OVH) nga among pilion
Pag-instalar sa server
Ang tanan yano dinhi. Gipili namo ang hardware nga mohaum sa among mga panginahanglan. Unya pilia ang FreeBSD nga imahe. Aw, o kita magkonektar (sa kaso sa laing hoster ug sa atong kaugalingong hardware) pinaagi sa IPMI o sa usa ka monitor ug pakan-a ang .iso FreeBSD nga larawan ngadto sa download. Para sa orchestral setup akong gigamit
Ang pag-instalar sa sistema mahitabo sa usa ka standard nga paagi, dili ako maghisgot niini, mamatikdan ra nako nga sa wala pa magsugod ang operasyon angay nga hatagan pagtagad -a mga opsyon nga gitanyag niini bsdinstaller
sa katapusan sa pag-instalar (kung ikaw mismo ang nag-install sa sistema):
Adunay
Posible usab nga ma-enable ang nahisgutan nga mga parameter sa usa ka na-install na nga sistema. Aron mahimo kini, kinahanglan nimo nga i-edit ang bootloader file ug i-enable ang mga parameter sa kernel. *ee usa ka editor nga sama niini sa 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
Kinahanglan usab nga imong sigurohon nga ikaw adunay pinakabag-o nga bersyon sa sistema nga na-install, ug
Unya among gi-configure aide
, pagmonitor sa kahimtang sa mga file sa pagsumpo sa sistema. Mahimo nimong basahon ang dugang nga detalye
pkg install aide
ug i-edit ang among 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
Padayon
sysrc auditd_enable=YES
# service auditd start
Kung giunsa pagdumala kini nga butang hingpit nga gihulagway sa
Karon nag-reboot kami ug nagpadayon sa software sa server. Ang matag server usa ka hypervisor alang sa mga sudlanan o bug-os nga virtual machine. Busa, importante nga ang processor nagsuporta sa VT-x ug EPT kon kita nagplano sa paggamit sa bug-os nga virtualization.
Sa pagdumala sa mga sudlanan ug mga virtual machine nga akong gigamit
Mga sudlanan? Docker pag-usab o unsa?
Apan dili. cbsd
sa pag-orchestrate niini nga mga sudlanan, nga gitawag nga mga selula.
Ang hawla usa ka labi ka epektibo nga solusyon alang sa pagtukod sa imprastraktura alang sa lainlaing mga katuyoan, diin ang hingpit nga pag-inusara sa mga indibidwal nga serbisyo o proseso sa katapusan gikinahanglan. Sa tinuud, kini usa ka clone sa host system, apan wala kini magkinahanglan og bug-os nga virtualization sa hardware. Ug salamat niini, ang mga kapanguhaan wala gigasto sa "guest OS", apan sa trabaho nga gihimo. Kung ang mga cell gigamit alang sa internal nga mga panginahanglan, kini usa ka kombenyente kaayo nga solusyon alang sa labing maayo nga paggamit sa kapanguhaan - usa ka hugpong sa mga selyula sa usa ka server sa hardware ang matag usa mahimong mogamit sa tibuuk nga kapanguhaan sa server kung kinahanglan. Gikonsiderar nga kasagaran ang lainlaing mga subservice nanginahanglan dugang. mga kapanguhaan sa lain-laing mga panahon, mahimo nimong makuha ang labing kataas nga pasundayag gikan sa usa ka server kung imong giplano ug gibalanse ang mga selyula tali sa mga server. Kung gikinahanglan, ang mga selula mahimo usab nga hatagan og mga pagdili sa kapanguhaan nga gigamit.
Unsa ang mahitungod sa bug-os nga virtualization?
Ingon sa akong nahibal-an cbsd
nagsuporta sa trabaho bhyve
ug XEN hypervisors. Wala pa nako gigamit ang ikaduha, apan ang una medyo bag-o bhyve
sa pananglitan sa ubos.
Pag-instalar ug Pag-configure sa Host Environment
Gigamit namo ang FS
gpart add -t freebsd-zfs /dev/ada0
/dev/ada0p4 added!
pagdugang usa ka partition sa disk sa nahabilin nga wanang
geli init /dev/ada0p4
isulod ang among encryption password
geli attach /dev/ada0p4
Gisulod namo pag-usab ang password ug kami adunay usa ka device /dev/ada0p4.eli - kini ang among na-encrypt nga luna. Unya gisubli namo ang parehas alang sa / dev / ada1 ug ang nahabilin nga mga disk sa laray. Ug naghimo kami usa ka bag-o
zpool create vms mirror /dev/ada0p4.eli /dev/ada1p4.eli /dev/ada3p4.eli
- Aw, andam na ang minimum nga combat kit. Usa ka salamin nga han-ay sa mga disk kung ang usa sa tulo mapakyas.
Paghimo usa ka dataset sa usa ka bag-ong "pool"
zfs create vms/jails
pkg install cbsd
β Naglunsad kami og usa ka team ug nag-set up sa pagdumala sa among mga cell.
Human sa cbsd
instalar, kini kinahanglan nga magsugod:
# env workdir="/vms/jails" /usr/local/cbsd/sudoexec/initenv
Aw, gitubag namo ang daghang mga pangutana, kasagaran adunay mga default nga tubag.
* Kung naggamit ka og encryption, importante nga ang daemon cbsdd
wala magsugod awtomatiko hangtod nga imong gi-decrypt ang mga disk sa mano-mano o awtomatiko (sa among pananglitan kini gihimo sa zabbix)
** Dili usab ako mogamit sa NAT gikan sa cbsd
, ug ako mismo ang nag-configure niini 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
Ang pag-set up sa mga polisiya sa firewall usa usab ka linain nga hilisgutan, mao nga dili na ko mag-set up sa BLOCK ALL nga polisiya ug pag-set up sa mga whitelist, mahimo nimo kana pinaagi sa pagbasa
Aw... na-install na namo ang cbsd, panahon na sa paghimo sa among unang workhorse - ang caged Bitcoin demon!
cbsd jconstruct-tui
Dinhi atong makita ang dialog sa paghimo sa cell. Human mabutang ang tanan nga mga kantidad, maghimo kita!
Sa paghimo sa imong unang cell, kinahanglan nimo nga pilion kung unsa ang gamiton isip base sa mga selula. Nagpili ako usa ka pag-apod-apod gikan sa repositoryo sa FreeBSD nga adunay mando repo
. Kini nga pagpili gihimo lamang kung maghimo sa unang cell sa usa ka piho nga bersyon (mahimo nimong i-host ang mga cell sa bisan unsang bersyon nga mas tigulang kaysa host nga bersyon).
Human ma-install ang tanan, gilansad namo ang hawla!
# cbsd jstart bitcoind
Apan kinahanglan namon nga i-install ang software sa hawla.
# jls
JID IP Address Hostname Path
1 192.168.0.1 bitcoind.space.com /zroot/jails/jails/bitcoind
jexec bitcoind
aron makasulod sa cell console
ug naa na sa sulod sa cell among gi-install ang software nga adunay mga dependency (ang among host system nagpabilin nga limpyo)
bitcoind:/@[15:25] # pkg install bitcoin-daemon bitcoin-utils
bitcoind:/@[15:30] # sysrc bitcoind_enable=YES
bitcoind:/@[15:30] # service bitcoind start
Adunay Bitcoin sa hawla, apan kinahanglan namon nga dili mailhan tungod kay gusto namon nga makonektar sa pipila ka mga hawla pinaagi sa TOP network. Sa kinatibuk-an, nagplano kami nga modagan ang kadaghanan sa mga cell nga adunay kadudahang software pinaagi lamang sa usa ka proxy. Salamat sa pf
Mahimo nimong i-disable ang NAT alang sa usa ka piho nga mga IP address sa lokal nga network, ug tugotan ang NAT alang lamang sa among TOR node. Busa, bisan kung ang malware mosulod sa cell, lagmit dili kini makigkomunikar sa gawas nga kalibutan, ug kung mahitabo kini, dili kini ipadayag ang IP sa among server. Busa, naghimo kami og laing cell aron "ipasa" ang mga serbisyo isip ".onion" nga serbisyo ug isip proxy alang sa pag-access sa Internet ngadto sa indibidwal nga mga selula.
# 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
Itakda aron maminaw sa usa ka lokal nga adres (anaa alang sa tanan nga mga cell)
SOCKSPort 192.168.0.2:9050
Unsa pa ang atong gikinahanglan alang sa hingpit nga kalipay? Oo, kinahanglan namon ang serbisyo para sa among web, tingali labaw pa sa usa. Atong ilunsad ang nginx, nga molihok isip reverse-proxy ug mag-atiman sa pag-renew sa Let's Encrypt certificates
# cbsd jsconstruct-tui
# cbsd jstart nginx-rev
# jexec nginx-rev
nginx-rev:/@[15:47] # pkg install nginx py36-certbot
Ug busa gibutang namon ang 150 MB nga mga dependency sa usa ka hawla. Ug limpyo pa ang tagbalay.
Balik ta sa pag-set up sa nginx sa ulahi, kinahanglan namong ipataas ang duha pa ka mga cell para sa among gateway sa pagbayad sa mga nodejs ug taya ug usa ka aplikasyon sa web, nga sa pipila ka mga hinungdan naa sa Apache ug PHP, ug ang ulahi nanginahanglan usab usa ka database sa 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
...ug laing 380 MB sa mga pakete gilain
Sunod, among gi-download ang among aplikasyon gamit ang git ug ilunsad kini.
# cbsd jsconstruct-tui
# cbsd jstart webapp
# jexec webapp
webapp:/@[16:02] # pkg install mariadb104-server apache24 php74 mod_php74 php74-pdo_mysql
450 MB nga mga pakete. sa usa ka halwa.
dinhi gihatagan namo ang developer og access pinaagi sa SSH direkta sa cell, buhaton nila ang tanan didto mismo:
webapp:/@[16:02] # ee /etc/ssh/sshd_config
Port 2267
- usba ang SSH port sa cell sa bisan unsang arbitraryo
webapp:/@[16:02] # sysrc sshd_enable=YES
webapp:/@[16:02] # service sshd start
Aw, ang serbisyo nagdagan, ang nahabilin mao ang pagdugang sa lagda sa pf
firewall
Atong tan-awon kung unsa ang IP sa atong mga selyula ug unsa ang hitsura sa atong "lokal nga lugar".
# 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
ug pagdugang usa ka lagda
# 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
Aw, tungod kay ania na kita, magdugang usab kita usa ka lagda alang sa reverse-proxy:
## 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
Aw, karon gamay bahin sa bitcoins
Ang naa kanamo mao nga kami adunay usa ka web application nga nahayag sa gawas ug kini nakigsulti sa lokal sa among gateway sa pagbayad. Karon kinahanglan namon nga mag-andam usa ka palibot sa pagtrabaho alang sa pagpakig-uban sa network sa Bitcoin mismo - ang node bitcoind
kini usa lamang ka daemon nga nagpadayon sa lokal nga kopya sa blockchain hangtod karon. Kini nga daemon adunay RPC ug wallet functionality, apan adunay mas sayon ββββnga "wrappers" alang sa pagpalambo sa aplikasyon. Sa pagsugod, nakahukom kami nga ibutang electrum
usa ka CLI nga pitaka.
mga laptop. Sa pagkakaron atong gamiton ang Electrum sa mga pampublikong server, ug sa ulahi atong ipataas kini sa laing cell
# cbsd jsconstruct-tui
# cbsd jstart electrum
# jexec electrum
electrum:/@[8:45] # pkg install py36-electrum
laing 700 MB nga software sa among halwa
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"
}
Karon naa miy nabuhat nga pitaka.
wallet@electrum:/ % electrum-3.6 listaddresses
[
"18WEhbjvMLGRMfwudzUrUd25U5C7uZYkzE",
"14XHSejhxsZNDRtk4eFbqAX3L8rftzwQQU",
"1KQXaN8RXiCN1ne9iYngUWAr6KJ6d4pPas",
...
"1KeVcAwEYhk29qEyAfPwcBgF5mMMoy4qjw",
"18VaUuSeBr6T2GwpSHYF3XyNgLyLCt1SWk"
]
wallet@electrum:/ % electrum-3.6 help
Sa atong sa kadena Limitado ra nga gidaghanon sa mga tawo ang makakonekta sa pitaka gikan karon. Aron dili maablihan ang pag-access niini nga cell gikan sa gawas, ang mga koneksyon pinaagi sa SSH mahitabo pinaagi sa TOP (usa ka desentralisado nga bersyon sa VPN). Among gilunsad ang SSH sa cell, apan ayaw paghikap sa among pf.conf sa host.
electrum:/@[9:00] # sysrc sshd_enable=YES
electrum:/@[9:00] # service sshd start
Karon atong palongon ang cell nga adunay access sa Internet sa pitaka. Hatagan nato kini og IP address gikan sa laing subnet space nga dili NATed. Unahon nato /etc/pf.conf
sa host
# ee /etc/pf.conf
JAIL_IP_POOL="192.168.0.0/24"
ilisan nato sa JAIL_IP_POOL="192.168.0.0/25"
, busa ang tanang mga adres 192.168.0.126-255 walay direktang access sa Internet. Usa ka matang sa software nga "air-gap" network. Ug ang pagmando sa NAT nagpabilin nga ingon kaniadto
nat pass on $IF_PUBLIC from $JAIL_IP_POOL to any -> $IP_PUBLIC
Pag-overload sa mga lagda
# pfctl -f /etc/pf.conf
Karon atong kuhaon ang atong selda
# 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, apan karon ang sistema mismo mohunong sa pagtrabaho alang kanamo. Bisan pa, mahimo naton ipiho ang usa ka proxy sa sistema. Apan adunay usa ka butang, sa TOR kini usa ka proxy sa SOCKS5, ug alang sa kasayon ββgusto usab namon ang usa ka proxy nga 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
Aw, karon adunay duha ka proxy server sa among sistema, ug pareho nga output pinaagi sa TOR: socks5://192.168.0.2:9050 ug
Karon mahimo na namon nga i-configure ang among palibot sa pitaka
# 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
Aw, karon ang kabhang magtrabaho gikan sa ilawom sa usa ka proxy. Kung gusto namon i-install ang mga pakete, kinahanglan namon nga idugang /usr/local/etc/pkg.conf
gikan sa ilawom sa gamut sa hawla
pkg_env: {
http_proxy: "http://my_proxy_ip:8123",
}
Aw, karon na ang panahon nga idugang ang tinago nga serbisyo sa TOR ingon nga adres sa among serbisyo sa SSH sa cell pitaka.
# 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
Kini ang among adres sa koneksyon. Atong susihon gikan sa lokal nga makina. Apan una kinahanglan natong idugang ang atong SSH key:
wallet@electrum:/ % mkdir ~/.ssh
wallet@electrum:/ % ee ~/.ssh/authorized_keys
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAG9Fk2Lqi4GQ8EXZrsH3EgSrVIQPQaAlS38MmJLBabihv9KHIDGXH7r018hxqLNNGbaJWO/wrWk7sG4T0yLHAbdQAFsMYof9kjoyuG56z0XZ8qaD/X/AjrhLMsIoBbUNj0AzxjKNlPJL4NbHsFwbmxGulKS0PdAD5oLcTQi/VnNdU7iFw== user@local
Aw, gikan sa makina sa kliyente sa 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
Magkonektar ta (Aron kini molihok, kinahanglan nimo ang usa ka lokal nga daemon sa TOR nga naminaw sa 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
Kalampusan!
Aron makatrabaho uban ang instant ug micro-payments, nagkinahanglan usab kami og node c-lightning
gikinahanglan alang sa pag-obra bitcoind
pero oo.
*Adunay lain-laing mga pagpatuman sa Lightning Network protocol sa lain-laing mga pinulongan. Sa mga nasulayan namon, ang c-kilat (gisulat sa C) ingon ang labing lig-on ug episyente sa kapanguhaan.
# 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
Samtang ang tanan nga gikinahanglan gitipon ug gi-install, maghimo kita usa ka tiggamit sa 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
Ang akong gubot nga pagbalhin sa taliwala sa mga selyula nahimo nga dili kaayo gubot kung imong namatikdan ang utility tmux
, nga nagtugot kanimo sa paghimo og daghang mga sub-session sa terminal sulod sa usa ka sesyon. Analogue: screen
Busa, dili namo gusto nga ibutyag ang tinuod nga IP sa among node, ug gusto namo nga ipahigayon ang tanang pinansyal nga transaksyon pinaagi sa TOP. Busa, dili kinahanglan ang laing .sibuyas.
# 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
Karon maghimo kita ug config para sa 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 ~
kinahanglan ka usab nga maghimo usa ka configuration file alang sa bitcoin-cli, usa ka utility nga nakigsulti bitcoind
lightning@lightning:~ % mkdir .bitcoin
lightning@lightning:~ % ee .bitcoin/bitcoin.conf
rpcconnect=192.168.0.1
rpcuser=test
rpcpassword=test
pagsusi
lightning@lightning:~ % bitcoin-cli echo "test"
[
"test"
]
paglusad lightningd
lightning@lightning:~ % lightningd --daemon
Mismo iyang kaugalingon lightningd
makontrol nimo ang utility lightning-cli
sama pananglit:
lightning-cli newaddr
kuhaa ang adres para sa bag-ong umaabot nga bayad
{
"address": "bc1q2n2ffq3lplhme8jufcxahfrnfhruwjgx3c78pv",
"bech32": "bc1q2n2ffq3lplhme8jufcxahfrnfhruwjgx3c78pv"
}
lightning-cli withdraw bc1jufcxahfrnfhruwjgx3cq2n2ffq3lplhme878pv all
ipadala ang tanang kwarta sa pitaka sa adres (tanan nga on-chain nga adres)
Usab mga sugo alang sa off-chain nga mga operasyon lightning-cli invoice
, lightning-cli listinvoices
, lightning-cli pay
ug uban pa
Aw, alang sa komunikasyon sa aplikasyon kami adunay REST Api
curl -k https://192.168.0.7:9737/rpc -d '{"method": "pay", "params": ["lnbc..."]}' -H 'X-Access masterkey'
Himoon naton ang mga resulta
# 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
Kami adunay usa ka set sa mga sudlanan, ang matag usa adunay kaugalingon nga lebel sa pag-access gikan ug sa lokal nga network.
# 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
Sama sa imong nakita, ang bitcoind nagkuha sa tanan nga 190 GB nga wanang. Unsa kaha kung kinahanglan namon ang laing node alang sa pagsulay? Dinhi diin magamit ang ZFS. Uban sa tabang cbsd jclone old=bitcoind new=bitcoind-clone host_hostname=clonedbtc.space.com
makahimo ka og snapshot ug mag-attach og bag-ong cell niini nga snapshot. Ang bag-ong cell adunay kaugalingon nga wanang, apan ang kalainan lamang tali sa karon nga kahimtang ug ang orihinal ang pagaisipon sa file system (makatipig kami labing menos 190 GB)
Ang matag cell adunay kaugalingon nga lahi nga ZFS dataset, ug kini labi ka kombenyente.
Angayan usab nga matikdan ang panginahanglan alang sa hilit nga pag-monitor sa host, alang sa kini nga mga katuyoan nga naa kanato
B - kaluwasan
Mahitungod sa seguridad, magsugod kita gikan sa mahinungdanong mga prinsipyo sa konteksto sa imprastraktura:
Pagkumpidensyal - Ang mga standard nga himan sa mga sistema nga sama sa UNIX nagsiguro sa pagpatuman niini nga prinsipyo. Kami lohikal nga nagbulag sa pag-access sa matag lohikal nga lahi nga elemento sa sistema - usa ka cell. Ang access gihatag pinaagi sa standard user authentication gamit ang personal nga mga yawe sa mga user. Ang tanan nga komunikasyon tali ug hangtod sa katapusan nga mga selyula mahitabo sa naka-encrypt nga porma. Salamat sa pag-encrypt sa disk, dili kami kinahanglan mabalaka bahin sa kaluwasan sa datos kung mag-ilis sa usa ka disk o mobalhin sa lain nga server. Ang bugtong kritikal nga pag-access mao ang pag-access sa host system, tungod kay ang ingon nga pag-access sa kasagaran naghatag access sa datos sa sulod sa mga sudlanan.
Integridad "Ang pagpatuman niini nga prinsipyo mahitabo sa lainlaing lebel. Una, importante nga timan-an nga sa kaso sa server hardware, ECC memory, ZFS na βout of the boxβ nag-atiman sa data integrity sa lebel sa impormasyon bits. Ang mga instant snapshot nagtugot kanimo sa paghimo og mga backup sa bisan unsang oras sa langaw. Ang sayon ββnga cell export/import nga mga himan naghimo sa cell replication nga simple.
Pagkaon - Opsyonal na kini. Nagdepende sa lebel sa imong kabantog ug sa kamatuoran nga ikaw adunay mga nagdumot. Sa among pananglitan, among gisiguro nga ang pitaka ma-access lamang gikan sa TOP network. Kung gikinahanglan, mahimo nimong babagan ang tanan sa firewall ug tugutan ang pag-access sa server nga eksklusibo pinaagi sa mga tunnels (TOR o VPN lain nga butang). Sa ingon, ang server pagaputlon gikan sa gawas nga kalibutan kutob sa mahimo, ug kami ra ang makahimo sa pag-impluwensya sa pagkaanaa niini.
Imposible sa pagdumili - Ug kini nagdepende sa dugang nga operasyon ug pagsunod sa husto nga mga palisiya alang sa mga katungod sa tiggamit, pag-access, ug uban pa. Apan sa husto nga pamaagi, ang tanan nga mga aksyon sa gumagamit gi-audit, ug salamat sa mga solusyon sa cryptographic posible nga mahibal-an nga dili klaro kung kinsa ang naghimo sa pipila nga mga aksyon ug kung kanus-a.
Siyempre, ang gihulagway nga pag-configure dili usa ka hingpit nga panig-ingnan kung giunsa kini kinahanglan kanunay, kini usa ka pananglitan kung giunsa kini mahimo, samtang gipadayon ang labi ka dali nga pag-scale ug mga kapabilidad sa pag-customize.
Unsa ang mahitungod sa bug-os nga virtualization?
Mahitungod sa hingpit nga virtualization gamit ang cbsd mahimo nimo bhyve
Kinahanglan nimong palihokon ang pipila ka mga kapilian sa kernel.
# cat /etc/rc.conf
...
kld_list="vmm if_tap if_bridge nmdm"
...
# cat /boot/loader.conf
...
vmm_load="YES"
...
Mao nga kung kalit ka kinahanglan nga magsugod sa usa ka docker, unya i-install ang pipila ka debian ug lakaw!
Mao ra
Sa akong hunahuna mao ra kana ang gusto nakong ipaambit. Kung ganahan ka sa artikulo, mahimo nimong ipadala kanako ang pipila ka mga bitcoin -
Source: www.habr.com