ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘?

ื›ืš ืงืจื” ืฉื‘ืžืงืฆื•ืขื™ ืื ื™ ืžื ื”ืœ ืžืขืจื›ื•ืช ืžื—ืฉื•ื‘ ื•ืจืฉืชื•ืช (ื‘ืงื™ืฆื•ืจ: ืžื ื”ืœ ืžืขืจื›ืช), ื•ื”ื–ื“ืžืŸ ืœื™ ืœืกืคืจ ืœืคืจื•ืค' ืงืฆืช ื™ื•ืชืจ ืž-10 ืฉื ื™ื. ื”ืคืขื™ืœื•ืช ืฉืœ ืžื’ื•ื•ืŸ ืจื—ื‘ ืฉืœ ืžืขืจื›ื•ืช, ืœืจื‘ื•ืช ื›ืืœื” ื”ื“ื•ืจืฉื•ืช ืืžืฆืขื™ ืื‘ื˜ื—ื” [ืงื™ืฆื•ื ื™ื™ื]. ืงืจื” ื’ื ืฉืœืคื ื™ ื–ืžืŸ ืžื” ืžืฆืืชื™ ืืช ื–ื” ืžืขื ื™ื™ืŸ ื‘ื™ื˜ืงื•ื™ืŸ, ื•ืœื ืจืง ื”ืฉืชืžืฉื• ื‘ื•, ืืœื ื’ื ื”ืฉื™ืง ืžืกืคืจ ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ืขืœ ืžื ืช ืœืœืžื•ื“ ื›ื™ืฆื“ ืœืขื‘ื•ื“ ื‘ืื•ืคืŸ ืขืฆืžืื™ ืขื ืจืฉืช ื”ื‘ื™ื˜ืงื•ื™ืŸ (ื”ืžื›ื•ื ื” ื‘ื›ืœ ื–ืืช p2p) ืžื ืงื•ื“ืช ืžื‘ื˜ื• ืฉืœ ืžืคืชื— (ืื ื™ ื›ืžื•ื‘ืŸ ืื—ื“ ืžืืœื” dev, ืื– ืขื‘ืจืชื™ ืœื™ื“). ืื‘ืœ ืื ื™ ืœื ืžื“ื‘ืจ ืขืœ ืคื™ืชื•ื—, ืื ื™ ืžื“ื‘ืจ ืขืœ ืกื‘ื™ื‘ื” ื‘ื˜ื•ื—ื” ื•ื™ืขื™ืœื” ืœืืคืœื™ืงืฆื™ื•ืช.

ื˜ื›ื ื•ืœื•ื’ื™ื” ืคื™ื ื ืกื™ืช (fintech) ืขื‘ื•ืจ ืœืฆื“ ืื‘ื˜ื—ืช ืžื™ื“ืข (INFOSEC) ื•ื”ืจืืฉื•ืŸ ื™ื›ื•ืœ ืœืขื‘ื•ื“ ื‘ืœื™ ื”ืฉื ื™, ืื‘ืœ ืœื ืœืื•ืจืš ื–ืžืŸ. ืœื›ืŸ ืื ื™ ืจื•ืฆื” ืœื—ืœื•ืง ืืช ื”ื—ื•ื•ื™ื” ืฉืœื™ ื•ืืช ืกื˜ ื”ื›ืœื™ื ืฉื‘ื”ื ืื ื™ ืžืฉืชืžืฉ, ื”ื›ื•ืœืœ ืืช ืฉื ื™ื”ื fintechื• - INFOSEC, ื•ื‘ืžืงื‘ื™ืœ, ื•ื™ื›ื•ืœ ืœืฉืžืฉ ื’ื ืœืžื˜ืจื” ืจื—ื‘ื” ื™ื•ืชืจ ืื• ืฉื•ื ื” ืœื—ืœื•ื˜ื™ืŸ. ื‘ืžืืžืจ ื–ื” ืืกืคืจ ืœื›ื ืœื ื›ืœ ื›ืš ืขืœ ื‘ื™ื˜ืงื•ื™ืŸ, ืืœื ืขืœ ืžื•ื“ืœ ื”ืชืฉืชื™ืช ืœืคื™ืชื•ื— ื•ืชืคืขื•ืœ ืฉืœ ืฉื™ืจื•ืชื™ื ืคื™ื ื ืกื™ื™ื (ื•ืœื ืจืง) - ื‘ืžื™ืœื” ืื—ืช, ืื•ืชื ืฉื™ืจื•ืชื™ื ืฉื‘ื”ื "B" ื—ืฉื•ื‘. ื–ื” ื—ืœ ื”ืŸ ืขืœ ื‘ื•ืจืกืช ื”ื‘ื™ื˜ืงื•ื™ืŸ ื•ื”ืŸ ืขืœ ื’ืŸ ื”ื—ื™ื•ืช ื”ืืจื’ื•ื ื™ ื”ืื•ืคื™ื™ื ื™ ื‘ื™ื•ืชืจ ืฉืœ ืฉื™ืจื•ืชื™ื ืฉืœ ื—ื‘ืจื” ืงื˜ื ื” ืฉืื™ื ื” ืงืฉื•ืจื” ืœื‘ื™ื˜ืงื•ื™ืŸ ื‘ืฉื•ื ืฆื•ืจื”.

ืื ื™ ืจื•ืฆื” ืœืฆื™ื™ืŸ ืฉืื ื™ ืชื•ืžืš ื‘ืขืงืจื•ื ื•ืช "ืฉืžื•ืจ ืขืœ ื–ื” ื˜ื™ืคืฉื™ ืคืฉื•ื˜" ะธ "ืคื—ื•ืช ื–ื” ื™ื•ืชืจ"ืœืคื™ื›ืš, ื”ืŸ ืœืžืืžืจ ื•ื”ืŸ ืœืžืชื•ืืจ ื‘ื• ื™ื”ื™ื• ื”ืžืืคื™ื™ื ื™ื ืฉืขืœื™ื”ื ืขืงืจื•ื ื•ืช ืืœื” ืขื•ืกืงื™ื.

ืชืจื—ื™ืฉ ื“ืžื™ื•ื ื™: ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ื›ืœ ื‘ืืžืฆืขื•ืช ื”ื“ื•ื’ืžื” ืฉืœ ืžื—ืœื™ืฃ ื‘ื™ื˜ืงื•ื™ืŸ. ื”ื—ืœื˜ื ื• ืœื”ืฉื™ืง ื”ื—ืœืคืช ืจื•ื‘ืœ, ื“ื•ืœืจื™ื, ื™ื•ืจื• ืœื‘ื™ื˜ืงื•ื™ืŸ ื•ื‘ื—ื–ืจื”, ื•ื›ื‘ืจ ื™ืฉ ืœื ื• ืคืชืจื•ืŸ ืขื•ื‘ื“, ืื‘ืœ ืœื›ืกืฃ ื“ื™ื’ื™ื˜ืœื™ ืื—ืจ ื›ืžื• qiwi ื•-webmoney, ื›ืœื•ืžืจ. ืกื’ืจื ื• ืืช ื›ืœ ื”ื ื•ืฉืื™ื ื”ืžืฉืคื˜ื™ื™ื, ื™ืฉ ืœื ื• ืืคืœื™ืงืฆื™ื” ืžื•ื›ื ื” ื”ืžืฉืžืฉืช ื›ืฉืขืจ ืชืฉืœื•ื ืขื‘ื•ืจ ืจื•ื‘ืœื™ื, ื“ื•ืœืจื™ื ื•ื™ื•ืจื• ื•ืžืขืจื›ื•ืช ืชืฉืœื•ื ืื—ืจื•ืช. ื”ื•ื ืžื—ื•ื‘ืจ ืœื—ืฉื‘ื•ื ื•ืช ื”ื‘ื ืง ืฉืœื ื• ื•ื™ืฉ ืœื• ืื™ื–ืฉื”ื• API ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ ื”ืงืฆื” ืฉืœื ื•. ื™ืฉ ืœื ื• ื’ื ืืคืœื™ืงืฆื™ื™ืช ืื™ื ื˜ืจื ื˜ ืฉืคื•ืขืœืช ื›ืžื—ืœื™ืฃ ืœืžืฉืชืžืฉื™ื, ื•ื‘ื›ืŸ, ื›ืžื• ื—ืฉื‘ื•ืŸ qiwi ืื• webmoney ื˜ื™ืคื•ืกื™ - ืฆื•ืจ ื—ืฉื‘ื•ืŸ, ื”ื•ืกืฃ ื›ืจื˜ื™ืก ื•ื›ืŸ ื”ืœืื”. ื”ื•ื ืžืชืงืฉืจ ืขื ืืคืœื™ืงืฆื™ื™ืช ื”ืฉืขืจ ืฉืœื ื•, ืื ื›ื™ ื‘ืืžืฆืขื•ืช ืžืžืฉืง API ืฉืœ REST ื‘ืื–ื•ืจ ื”ืžืงื•ืžื™. ื•ื›ืš ื”ื—ืœื˜ื ื• ืœื—ื‘ืจ ื‘ื™ื˜ืงื•ื™ื ื™ื ื•ื‘ืžืงื‘ื™ืœ ืœืฉื“ืจื’ ืืช ื”ืชืฉืชื™ืช, ื›ื™... ื‘ืชื—ื™ืœื” ื”ื›ืœ ื”ื•ืขืœื” ื‘ื—ื™ืคื–ื•ืŸ ืขืœ ืงื•ืคืกืื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื‘ืžืฉืจื“ ืžืชื—ืช ืœืฉื•ืœื—ืŸ... ื”ืืชืจ ื”ื—ืœ ื‘ืฉื™ืžื•ืฉ, ื•ื”ืชื—ืœื ื• ืœื“ืื•ื’ ืœื’ื‘ื™ ื–ืžืŸ ืคืขื•ืœื” ื•ื‘ื™ืฆื•ืขื™ื.

ืื– ื ืชื—ื™ืœ ืžื”ืขื™ืงืจ โ€“ ื‘ื—ื™ืจืช ืฉืจืช. ื›ื™ ื”ืขืกืง ื‘ื“ื•ื’ืžื” ืฉืœื ื• ืงื˜ืŸ ื•ืื ื• ืกื•ืžื›ื™ื ืขืœ ื”ืžืืจื— (OVH) ืฉื ื‘ื—ืจ ืืคืฉืจื•ืช ืชืงืฆื™ื‘ื™ืช ืฉื‘ื”ื ืื™ ืืคืฉืจ ืœื”ืชืงื™ืŸ ืืช ื”ืžืขืจื›ืช ืžืชืžื•ื ืช ื”-iso ื”ืžืงื•ืจื™ืช, ืื‘ืœ ื–ื” ืœื ืžืฉื ื”, ืžื—ืœืงืช ืื‘ื˜ื—ืช ื”-IT ื‘ื”ื—ืœื˜ ืชื ืชื— ืืช ื”ืชืžื•ื ื” ื”ืžื•ืชืงื ืช. ื•ื›ืฉื ื’ื“ืœ, ื ืฉื›ื•ืจ ืืจื•ืŸ ืžืฉืœื ื• ื‘ืžื ืขื•ืœ ื•ืžืคืชื— ืขื ื’ื™ืฉื” ืคื™ื–ื™ืช ืžื•ื’ื‘ืœืช, ื•ืื•ืœื™ ื ื‘ื ื” DC ืžืฉืœื ื•. ื‘ื›ืœ ืžืงืจื”, ื›ื“ืื™ ืœื–ื›ื•ืจ ืฉื›ืืฉืจ ืฉื•ื›ืจื™ื ื—ื•ืžืจื” ื•ื”ืชืงื ืช ืชืžื•ื ื•ืช ืžื•ื›ื ื•ืช, ื™ืฉ ืกื™ื›ื•ื™ ืฉืชืœื•ื™ ืขืœ ื”ืžืขืจื›ืช ืฉืœืš "ื˜ืจื•ื™ืื ื™ ืžื”ืžืืจื—", ืฉื‘ืจื•ื‘ ื”ืžืงืจื™ื ืœื ื ื•ืขื“ ืœืจื’ืœ ืื—ืจื™ืš. ืืœื ืœื”ืฆื™ืข ืฉืจืช ื›ืœื™ ื ื™ื”ื•ืœ ื ื•ื—ื™ื ื™ื•ืชืจ.

ื”ืชืงื ืช ืฉืจืช

ื”ื›ืœ ืคืฉื•ื˜ ื›ืืŸ. ืื ื• ื‘ื•ื—ืจื™ื ืืช ื”ื—ื•ืžืจื” ื”ืžืชืื™ืžื” ืœืฆืจื›ื™ื ืฉืœื ื•. ืœืื—ืจ ืžื›ืŸ ื‘ื—ืจ ืืช ืชืžื•ื ืช FreeBSD. ื•ื‘ื›ืŸ, ืื• ืฉืื ื—ื ื• ืžืชื—ื‘ืจื™ื (ื‘ืžืงืจื” ืฉืœ ืžืืจื— ืื—ืจ ื•ื”ื—ื•ืžืจื” ืฉืœื ื•) ื“ืจืš IPMI ืื• ืขื ืฆื’ ื•ืžื›ื ื™ืกื™ื ืืช ืชืžื•ื ืช ื”-.iso FreeBSD ืœื”ื•ืจื“ื”. ืœื”ื’ื“ืจื” ืชื–ืžื•ืจืชื™ืช ืื ื™ ืžืฉืชืžืฉ ื‘ืœืชื™ ืืคืฉืจื™ ะธ mfsbsd. ื”ื“ื‘ืจ ื”ื™ื—ื™ื“, ื‘ืžืงืจื” ืฉืœื ื• ืขื ืงื™ืžืกื•ืคื™, ื‘ื—ืจื ื• ื”ืชืงื ื” ืžื•ืชืืžืช ืื™ืฉื™ืช ืขืœ ืžื ืช ืฉืœืฉื ื™ ื”ื“ื™ืกืงื™ื ื‘ืžืจืื” ื™ื”ื™ื• ืจืง ืžื—ื™ืฆื•ืช ื”ืืชื—ื•ืœ ื•/ื”ื‘ื™ืช "ืคืชื•ื—ื•ืช", ืฉืืจ ืฉื˜ื— ื”ื“ื™ืกืง ื™ื•ืฆืคืŸ, ืืš ืขืœ ื›ืš ื‘ื”ืžืฉืš.

ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘?

ื”ืชืงื ืช ื”ืžืขืจื›ืช ืžืชื‘ืฆืขืช ื‘ืฆื•ืจื” ืกื˜ื ื“ืจื˜ื™ืช, ืœื ืืชืขื›ื‘ ืขืœ ื›ืš, ืจืง ืืฆื™ื™ืŸ ืฉืœืคื ื™ ืชื—ื™ืœืช ื”ืคืขื•ืœื” ื›ื“ืื™ ืœืฉื™ื ืœื‘. ื”ืชืงืฉื•ืช ืืคืฉืจื•ื™ื•ืช ืฉื”ื•ื ืžืฆื™ืข bsdinstaller ื‘ืกื•ืฃ ื”ื”ืชืงื ื” (ืื ืืชื” ืžืชืงื™ืŸ ืืช ื”ืžืขืจื›ืช ื‘ืขืฆืžืš):

ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘?

ื™ืฉ ื—ื•ืžืจ ื˜ื•ื‘ ื‘ื ื•ืฉื ื–ื”, ืื—ื–ื•ืจ ืขืœื™ื• ื‘ืงืฆืจื” ื›ืืŸ.

ืืคืฉืจ ื’ื ืœื”ืคืขื™ืœ ืืช ื”ืคืจืžื˜ืจื™ื ืฉื”ื•ื–ื›ืจื• ืœืขื™ืœ ื‘ืžืขืจื›ืช ืฉื›ื‘ืจ ืžื•ืชืงื ืช. ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืขืœื™ืš ืœืขืจื•ืš ืืช ืงื•ื‘ืฅ ื˜ื•ืขืŸ ื”ืืชื—ื•ืœ ื•ืœื”ืคืขื™ืœ ืคืจืžื˜ืจื™ื ืฉืœ ื”ืœื™ื‘ื”. *ee ื”ื•ื ืขื•ืจืš ื›ื–ื” ื‘-BSD

# ee /etc/rc.conf

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

# ee /etc/sysctl.conf

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

ืขืœื™ืš ื’ื ืœื•ื•ื“ื ืฉื”ื’ืจืกื” ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ ืฉืœ ื”ืžืขืจื›ืช ืžื•ืชืงื ืช, ื•ื›ืŸ ืœื‘ืฆืข ืืช ื›ืœ ื”ืขื“ื›ื•ื ื™ื ื•ื”ืฉื“ืจื•ื’ื™ื. ื‘ืžืงืจื” ืฉืœื ื•, ืœืžืฉืœ, ื ื“ืจืฉ ืฉื“ืจื•ื’ ืœื’ืจืกื” ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ, ื›ื™... ืชืžื•ื ื•ืช ื˜ืจื•ื ื”ืชืงื ื” ืžืคื’ืจื•ืช ื‘ืฉื™ืฉื” ื—ื•ื“ืฉื™ื ืขื“ ืฉื ื”. ื•ื‘ื›ืŸ, ืฉื ืื ื• ืžืฉื ื™ื ืืช ื™ืฆื™ืืช ื”-SSH ืœืžืฉื”ื• ืฉื•ื ื” ืžื‘ืจื™ืจืช ื”ืžื—ื“ืœ, ืžื•ืกื™ืคื™ื ืื™ืžื•ืช ืžืคืชื— ื•ืžืฉื‘ื™ืชื™ื ืืช ืื™ืžื•ืช ื”ืกื™ืกืžื”.

ืื—ืจ ื›ืš ื”ื’ื“ืจื ื• aide, ื ื™ื˜ื•ืจ ืžืฆื‘ ืงื‘ืฆื™ ืชืฆื•ืจืช ื”ืžืขืจื›ืช. ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ื™ื•ืชืจ ื‘ืคื™ืจื•ื˜ ื›ืืŸ.

pkg install aide

ื•ืขืจื•ืš ืืช ื”ืงืจื•ื ื˜ืื‘ ืฉืœื ื•

crontab -e

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

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

ืชื“ืœื™ืง ื‘ื™ืงื•ืจืช ืžืขืจื›ื•ืช

sysrc auditd_enable=YES

# service auditd start

ื›ื™ืฆื“ ืœื ื”ืœ ืืช ื”ืขื ื™ื™ืŸ ื”ื–ื” ืžืชื•ืืจ ื‘ืฆื•ืจื” ืžื•ืฉืœืžืช ื‘ ืžื“ืจื™ืš.

ื›ืขืช ืื ื• ืžืืชื—ืœื™ื ื•ื ืžืฉื™ืš ืœืชื•ื›ื ื” ื‘ืฉืจืช. ื›ืœ ืฉืจืช ื”ื•ื ื”ื™ืคืจื•ื•ื™ื–ืจ ืขื‘ื•ืจ ืงื•ื ื˜ื™ื™ื ืจื™ื ืื• ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืžืœืื•ืช. ืœื›ืŸ, ื—ืฉื•ื‘ ืฉื”ืžืขื‘ื“ ื™ืชืžื•ืš ื‘-VT-x ื•-EPT ืื ืื ื—ื ื• ืžืชื›ื ื ื™ื ืœื”ืฉืชืžืฉ ื‘ื•ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืžืœืื”.

ืœื ื™ื”ื•ืœ ืงื•ื ื˜ื™ื™ื ืจื™ื ื•ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืื ื™ ืžืฉืชืžืฉ cbsd ืž olevole, ืื ื™ ืžืื—ืœ ืœื• ื™ื•ืชืจ ื‘ืจื™ืื•ืช ื•ื‘ืจื›ื•ืช ืขื‘ื•ืจ ื”ืฉื™ืจื•ืช ื”ื ืคืœื ื”ื–ื”!

ืžื™ื›ืœื™ื? ืฉื•ื‘ ื“ื•ืงืจ ืื• ืžื”?

ื•ืœื. ื›ืœื FreeBSD ื”ื•ื ื›ืœื™ ืžืฆื•ื™ืŸ ืœืžื™ื›ืœ, ืื‘ืœ ื”ืืžื•ืจ cbsd ืœืชื–ืžืจ ืืช ื”ืžื™ื›ืœื™ื ื”ืœืœื•, ื”ื ืงืจืื™ื ืชืื™ื.

ื”ื›ืœื•ื‘ ืžื”ื•ื•ื” ืคืชืจื•ืŸ ื™ืขื™ืœ ื‘ื™ื•ืชืจ ืœื‘ื ื™ื™ืช ืชืฉืชื™ืช ืœืžื’ื•ื•ืŸ ืžื˜ืจื•ืช, ื›ืืฉืจ ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ ื ื“ืจืฉ ื‘ื™ื“ื•ื“ ืžื•ื—ืœื˜ ืฉืœ ืฉื™ืจื•ืชื™ื ืื• ืชื”ืœื™ื›ื™ื ื‘ื•ื“ื“ื™ื. ื‘ืขื™ืงืจื• ืฉืœ ื“ื‘ืจ, ื–ื”ื• ืฉื™ื‘ื•ื˜ ืฉืœ ื”ืžืขืจื›ืช ื”ืžืืจื—ืช, ืืš ื”ื•ื ืื™ื ื• ื“ื•ืจืฉ ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืžืœืื” ืฉืœ ื”ื—ื•ืžืจื”. ื•ื‘ื–ื›ื•ืช ื–ื”, ืžืฉืื‘ื™ื ืœื ืžื•ืฉืงืขื™ื ืขืœ "ืžืขืจื›ืช ื”ื”ืคืขืœื” ืฉืœ ื”ืื•ืจื—ื™ื", ืืœื ืจืง ืขืœ ื”ืขื‘ื•ื“ื” ื”ืžื‘ื•ืฆืขืช. ื›ืืฉืจ ืžืฉืชืžืฉื™ื ื‘ืชืื™ื ืœืฆืจื›ื™ื ืคื ื™ืžื™ื™ื, ื–ื”ื• ืคืชืจื•ืŸ ื ื•ื— ืžืื•ื“ ืœืฉื™ืžื•ืฉ ืื•ืคื˜ื™ืžืœื™ ื‘ืžืฉืื‘ื™ื - ื—ื‘ื•ืจื” ืฉืœ ืชืื™ื ื‘ืฉืจืช ื—ื•ืžืจื” ืื—ื“ ื™ื›ื•ืœื™ื ื›ืœ ืื—ื“ ื‘ื ืคืจื“ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ืžืฉืื‘ ื”ืฉืจืช ื‘ืžื™ื“ืช ื”ืฆื•ืจืš. ื‘ื”ืชื—ืฉื‘ ื‘ื›ืš ืฉื‘ื“ืจืš ื›ืœืœ ื™ืฉ ืฆื•ืจืš ื‘ืฉื™ืจื•ืชื™ ืžืฉื ื” ืฉื•ื ื™ื. ืžืฉืื‘ื™ื ื‘ื–ืžื ื™ื ืฉื•ื ื™ื, ืืชื” ื™ื›ื•ืœ ืœื—ืœืฅ ื‘ื™ืฆื•ืขื™ื ืžืงืกื™ืžืœื™ื™ื ืžืฉืจืช ืื—ื“ ืื ืชืชื›ื ืŸ ื•ืื™ื–ื•ืŸ ื ื›ื•ืŸ ืืช ื”ืชืื™ื ื‘ื™ืŸ ื”ืฉืจืชื™ื. ื‘ืžื™ื“ืช ื”ืฆื•ืจืš, ื ื™ืชืŸ ืœืชืช ืœืชืื™ื ื’ื ื”ื’ื‘ืœื•ืช ืขืœ ื”ืžืฉืื‘ ื”ืžืฉืžืฉ.

ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘?

ืžื” ืœื’ื‘ื™ ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืžืœืื”?

ืขื“ ื›ืžื” ืฉื™ื“ื•ืข ืœื™ cbsd ืชื•ืžืš ื‘ืขื‘ื•ื“ื” bhyve ื•-XEN hypervisors. ืžืขื•ืœื ืœื ื”ืฉืชืžืฉืชื™ ื‘ืฉื ื™, ืื‘ืœ ื”ืจืืฉื•ืŸ ื—ื“ืฉ ื™ื—ืกื™ืช hypervisor ืž- FreeBSD. ื ืกืชื›ืœ ืขืœ ื“ื•ื’ืžื” ืœืฉื™ืžื•ืฉ bhyve ื‘ื“ื•ื’ืžื” ืœืžื˜ื”.

ื”ืชืงื ื” ื•ื”ื’ื“ืจื” ืฉืœ ืกื‘ื™ื‘ืช ื”ืžืืจื—

ืื ื• ืžืฉืชืžืฉื™ื ื‘-FS ZFS. ื–ื”ื• ื›ืœื™ ื—ื–ืง ื‘ืžื™ื•ื—ื“ ืœื ื™ื”ื•ืœ ืฉื˜ื— ืฉืจืช. ื”ื•ื“ื•ืช ืœ-ZFS, ืืชื” ื™ื›ื•ืœ ืœื‘ื ื•ืช ื™ืฉื™ืจื•ืช ืžืขืจื›ื™ื ืฉืœ ืชืฆื•ืจื•ืช ืฉื•ื ื•ืช ืžื“ื™ืกืงื™ื, "ื—ื" ื“ื™ื ืžื™ ืœื”ืจื—ื™ื‘ ืฉื˜ื—, ืœืฉื ื•ืช ื“ื™ืกืงื™ื ืžืชื™ื, ืœื ื”ืœ ืฆื™ืœื•ืžื™ ืžืฆื‘ ื•ืขื•ื“ ื”ืจื‘ื”, ื”ืจื‘ื” ื™ื•ืชืจ, ืฉื ื™ืชืŸ ืœืชืืจ ื‘ืกื“ืจื” ืฉืœืžื” ืฉืœ ืžืืžืจื™ื. ื‘ื•ืื• ื ื—ื–ื•ืจ ืœืฉืจืช ืฉืœื ื• ื•ืœื“ื™ืกืงื™ื ืฉืœื•. ื‘ืชื—ื™ืœืช ื”ื”ืชืงื ื” ื”ืฉืืจื ื• ืžืงื•ื ืคื ื•ื™ ืขืœ ื”ื“ื™ืกืงื™ื ืœืžื—ื™ืฆื•ืช ืžื•ืฆืคื ื•ืช. ืœืžื”? ื–ืืช ืขืœ ืžื ืช ืฉื”ืžืขืจื›ืช ืžืชืขื•ืจืจืช ืื•ื˜ื•ืžื˜ื™ืช ื•ืžืื–ื™ื ื” ื“ืจืš SSH.

gpart add -t freebsd-zfs /dev/ada0

/dev/ada0p4 added!

ื”ื•ืกืฃ ืžื—ื™ืฆืช ื“ื™ืกืง ืœืฉื˜ื— ื”ื ื•ืชืจ

geli init /dev/ada0p4

ื”ื–ืŸ ืืช ืกื™ืกืžืช ื”ื”ืฆืคื ื” ืฉืœื ื•

geli attach /dev/ada0p4

ืื ื—ื ื• ืžื›ื ื™ืกื™ื ืืช ื”ืกื™ืกืžื” ืฉื•ื‘ ื•ื™ืฉ ืœื ื• ืžื›ืฉื™ืจ /dev/ada0p4.eli - ื–ื” ื”ืžืจื—ื‘ ื”ืžื•ืฆืคืŸ ืฉืœื ื•. ืœืื—ืจ ืžื›ืŸ ื ื—ื–ื•ืจ ืขืœ ืื•ืชื• ื”ื“ื‘ืจ ืขื‘ื•ืจ /dev/ada1 ื•ืฉืืจ ื”ื“ื™ืกืงื™ื ื‘ืžืขืจืš. ื•ืื ื—ื ื• ื™ื•ืฆืจื™ื ืื—ื“ ื—ื“ืฉ ื‘ืจื™ื›ืช ZFS.

zpool create vms mirror /dev/ada0p4.eli /dev/ada1p4.eli /dev/ada3p4.eli - ื•ื‘ื›ืŸ, ื™ืฉ ืœื ื• ืืช ืขืจื›ืช ื”ืœื—ื™ืžื” ื”ืžื™ื ื™ืžืœื™ืช ืžื•ื›ื ื”. ืžืขืจืš ืฉื™ืงื•ืฃ ืฉืœ ื“ื™ืกืงื™ื ืœืžืงืจื” ืฉืื—ื“ ืžื”ืฉืœื•ืฉื” ื™ื™ื›ืฉืœ.

ื™ืฆื™ืจืช ืžืขืจืš ื ืชื•ื ื™ื ืขืœ "ื‘ืจื™ื›ื”" ื—ื“ืฉื”

zfs create vms/jails

pkg install cbsd - ื”ืฉืงื ื• ืฆื•ื•ืช ื•ื”ืงืžื ื• ื ื™ื”ื•ืœ ืขื‘ื•ืจ ื”ืชืื™ื ืฉืœื ื•.

ืœืื—ืจ cbsd ืžื•ืชืงืŸ, ื™ืฉ ืœืืชื—ืœ ืื•ืชื•:

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

ื•ื‘ื›ืŸ, ืื ื—ื ื• ืขื•ื ื™ื ืขืœ ื—ื‘ื•ืจื” ืฉืœ ืฉืืœื•ืช, ื‘ืขื™ืงืจ ืขื ืชืฉื•ื‘ื•ืช ื‘ืจื™ืจืช ืžื—ื“ืœ.

*ืื ืืชื” ืžืฉืชืžืฉ ื‘ื”ืฆืคื ื”, ื—ืฉื•ื‘ ืฉื”ื“ืžื•ืŸ cbsdd ืœื ื”ืชื—ื™ืœ ืื•ื˜ื•ืžื˜ื™ืช ืขื“ ืฉืคืขื ื— ืืช ื”ื“ื™ืกืงื™ื ื‘ืื•ืคืŸ ื™ื“ื ื™ ืื• ืื•ื˜ื•ืžื˜ื™ (ื‘ื“ื•ื’ืžื” ืฉืœื ื• ื–ื” ื ืขืฉื” ืขืœ ื™ื“ื™ zabbix)

**ืื ื™ ื’ื ืœื ืžืฉืชืžืฉ ื‘-NAT ืž cbsd, ื•ืื ื™ ืžื’ื“ื™ืจ ืืช ื–ื” ื‘ืขืฆืžื™ ื‘ pf.

# sysrc pf_enable=YES

# ee /etc/pf.conf

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

#WHITE_CL="{ 127.0.0.1 }"

icmp_types="echoreq"

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

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

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

# service pf start

# pfctl -f /etc/pf.conf

ื”ื’ื“ืจืช ืžื“ื™ื ื™ื•ืช ื—ื•ืžืช ืืฉ ื”ื™ื ื’ื ื ื•ืฉื ื ืคืจื“, ืื– ืื ื™ ืœื ืื›ื ืก ืœืขื•ืžืง ื”ื’ื“ืจืช ื”ืžื“ื™ื ื™ื•ืช BLOCK ALL ื•ื”ื’ื“ืจืช ืจืฉื™ืžื•ืช ื”ืœื‘ื ื™ื, ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ื–ืืช ืขืœ ื™ื“ื™ ืงืจื™ืื” ืชื™ืขื•ื“ ืจืฉืžื™ ืื• ื›ืœ ืื—ื“ ืžื”ืžืกืคืจ ื”ืขืฆื•ื ืฉืœ ืžืืžืจื™ื ื”ื–ืžื™ื ื™ื ื‘ื’ื•ื’ืœ.

ื•ื‘ื›ืŸ... ื”ืชืงื ื• ืœื ื• cbsd, ื”ื’ื™ืข ื”ื–ืžืŸ ืœื™ืฆื•ืจ ืืช ืกื•ืก ื”ืขื‘ื•ื“ื” ื”ืจืืฉื•ืŸ ืฉืœื ื• - ืฉื“ ื”ื‘ื™ื˜ืงื•ื™ืŸ ื”ื›ืœื•ื!

cbsd jconstruct-tui

ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘?

ื›ืืŸ ืื ื• ืจื•ืื™ื ืืช ืชื™ื‘ืช ื”ื“ื•-ืฉื™ื— ืœื™ืฆื™ืจืช ืชืื™ื. ืื—ืจื™ ืฉื›ืœ ื”ืขืจื›ื™ื ื ืงื‘ืขื•, ื‘ื•ืื• ื ื™ืฆื•ืจ!

ื‘ืขืช ื™ืฆื™ืจืช ื”ืชื ื”ืจืืฉื•ืŸ ืฉืœืš, ืขืœื™ืš ืœื‘ื—ื•ืจ ื‘ืžื” ืœื”ืฉืชืžืฉ ื›ื‘ืกื™ืก ืœืชืื™ื. ืื ื™ ื‘ื•ื—ืจ ื”ืคืฆื” ืžืžืื’ืจ FreeBSD ืขื ื”ืคืงื•ื“ื” repo. ื‘ื—ื™ืจื” ื–ื• ืžืชื‘ืฆืขืช ืจืง ื‘ืขืช ื™ืฆื™ืจืช ื”ืชื ื”ืจืืฉื•ืŸ ืฉืœ ื’ืจืกื” ืกืคืฆื™ืคื™ืช (ื ื™ืชืŸ ืœืืจื— ืชืื™ื ืžื›ืœ ื’ืจืกื” ืฉื™ืฉื ื” ื™ื•ืชืจ ืžื”ื’ืจืกื” ื”ืžืืจื—).

ืœืื—ืจ ืฉื”ื›ืœ ืžื•ืชืงืŸ, ืื ื• ืžืฉื™ืงื™ื ืืช ื”ื›ืœื•ื‘!

# cbsd jstart bitcoind

ืื‘ืœ ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ืชืงื™ืŸ ืชื•ื›ื ื” ื‘ื›ืœื•ื‘.

# jls

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

jexec bitcoind ื›ื“ื™ ืœื”ื™ื›ื ืก ืœืžืกื•ืฃ ื”ืกืœื•ืœืจื™

ื•ื›ื‘ืจ ื‘ืชื•ืš ื”ืชื ืื ื• ืžืชืงื™ื ื™ื ืืช ื”ืชื•ื›ื ื” ืขื ื”ืชืœื•ืช ืฉืœื” (ื”ืžืขืจื›ืช ื”ืžืืจื—ืช ืฉืœื ื• ื ืฉืืจืช ื ืงื™ื™ื”)

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

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

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

ื™ืฉ ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘, ืื‘ืœ ืื ื—ื ื• ืฆืจื™ื›ื™ื ืื ื•ื ื™ืžื™ื•ืช ื›ื™ ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ืชื—ื‘ืจ ืœื›ืžื” ื›ืœื•ื‘ื™ื ื“ืจืš ืจืฉืช TOP. ื‘ืื•ืคืŸ ื›ืœืœื™, ืื ื• ืžืชื›ื ื ื™ื ืœื”ืคืขื™ืœ ืืช ืจื•ื‘ ื”ืชืื™ื ืขื ืชื•ื›ื ื•ืช ื—ืฉื•ื“ื•ืช ืจืง ื“ืจืš ืคืจื•ืงืกื™. ื”ื•ื“ื•ืช ืœ pf ืืชื” ื™ื›ื•ืœ ืœื”ืฉื‘ื™ืช 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

ื•ื‘ื›ืŸ, ืขื›ืฉื™ื• ืงืฆืช ืขืœ ื‘ื™ื˜ืงื•ื™ืŸ

ืžื” ืฉื™ืฉ ืœื ื• ื–ื” ืฉื™ืฉ ืœื ื• ืืคืœื™ืงืฆื™ื™ืช ืื™ื ื˜ืจื ื˜ ืฉื ื—ืฉืคืช ื—ื™ืฆื•ื ื™ืช ื•ื”ื™ื ืžื“ื‘ืจืช ืžืงื•ืžื™ืช ืขื ืฉืขืจ ื”ืชืฉืœื•ื ืฉืœื ื•. ื›ืขืช ืขืœื™ื ื• ืœื”ื›ื™ืŸ ืกื‘ื™ื‘ืช ืขื‘ื•ื“ื” ืœืื™ื ื˜ืจืืงืฆื™ื” ืขื ืจืฉืช ื”ื‘ื™ื˜ืงื•ื™ืŸ ืขืฆืžื” - ื”ืฆื•ืžืช bitcoind ื–ื” ืจืง ื“ืžื•ืŸ ืฉืžืขื“ื›ืŸ ืืช ื”ืขื•ืชืง ื”ืžืงื•ืžื™ ืฉืœ ื”ื‘ืœื•ืงืฆ'ื™ื™ืŸ. ืœื“ืžื•ืŸ ื”ื–ื” ื™ืฉ ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช RPC ื•ืืจื ืง, ืื‘ืœ ื™ืฉ "ืขื˜ื™ืคื•ืช" ื ื•ื—ื•ืช ื™ื•ืชืจ ืœืคื™ืชื•ื— ื™ื™ืฉื•ืžื™ื. ืžืœื›ืชื—ื™ืœื”, ื”ื—ืœื˜ื ื• ืœืฉื™ื electrum ื”ื•ื ืืจื ืง CLI. ื”ืืจื ืง ื”ื–ื” ื ืฉืชืžืฉ ื‘ื• ื›"ืื—ืกื•ืŸ ืงืจ" ืขื‘ื•ืจ ื”ื‘ื™ื˜ืงื•ื™ื ื™ื ืฉืœื ื• - ื‘ืื•ืคืŸ ื›ืœืœื™, ืื•ืชื ื‘ื™ื˜ืงื•ื™ื ื™ื ืฉื™ืฆื˜ืจื›ื• ืœื”ื™ื•ืช ืžืื•ื—ืกื ื™ื "ืžื—ื•ืฅ" ืœืžืขืจื›ืช ื”ื ื’ื™ืฉื” ืœืžืฉืชืžืฉื™ื ื•ื‘ื“ืจืš ื›ืœืœ ื”ืจื—ืง ืžื›ื•ืœื. ื™ืฉ ืœื• ื’ื GUI, ืื– ืื ื—ื ื• ื”ื•ืœื›ื™ื ืœื”ืฉืชืžืฉ ื‘ืื•ืชื• ืืจื ืง ืขืœ ืฉืœื ื•
ืžื—ืฉื‘ื™ื ื ื™ื™ื“ื™ื. ืœืขืช ืขืชื” ื ืฉืชืžืฉ ื‘ืืœืงื˜ืจื•ื ืขื ืฉืจืชื™ื ืฆื™ื‘ื•ืจื™ื™ื, ื•ื‘ื”ืžืฉืš ื ืขืœื” ืื•ืชื• ื‘ืชื ืื—ืจ ElectrumXื›ื“ื™ ืœื ืœื”ื™ื•ืช ืชืœื•ื™ ื‘ืืฃ ืื—ื“ ื‘ื›ืœืœ.

# 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 ืœื ืชื”ื™ื” ื’ื™ืฉื” ื™ืฉื™ืจื” ืœืื™ื ื˜ืจื ื˜. ืžืขื™ืŸ ืจืฉืช "ืื™ื™ืจ-ื’ืืค" ืชื•ื›ื ื”. ื•ื›ืœืœ NAT ื ืฉืืจ ื›ืฉื”ื™ื”

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

ืขื•ืžืก ื™ืชืจ ืขืœ ื”ื—ื•ืงื™ื

# pfctl -f /etc/pf.conf

ืขื›ืฉื™ื• ื‘ื•ืื• ื ื™ืงื— ืขืœ ื”ืชื ืฉืœื ื•

# cbsd jconfig jname=electrum

ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘?

ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘?

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

ื”ืžืž, ืื‘ืœ ืขื›ืฉื™ื• ื”ืžืขืจื›ืช ืขืฆืžื” ืชืคืกื™ืง ืœืขื‘ื•ื“ ื‘ืฉื‘ื™ืœื ื•. ืขื ื–ืืช, ืื ื• ื™ื›ื•ืœื™ื ืœืฆื™ื™ืŸ ืคืจื•ืงืกื™ ืžืขืจื›ืช. ืื‘ืœ ื™ืฉ ื“ื‘ืจ ืื—ื“, ื‘-TOR ื–ื” ืคืจื•ืงืกื™ SOCKS5, ื•ืœืžืขืŸ ื”ื ื•ื—ื•ืช ื ืจืฆื” ื’ื ืคืจื•ืงืกื™ HTTP.

# cbsd jsconstruct-tui

# cbsd jstart polipo

# jexec polipo

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

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

socksParentProxy = "192.168.0.2:9050"
socksProxyType = socks5

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

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

ื•ื‘ื›ืŸ, ื›ืขืช ื™ืฉื ื ืฉื ื™ ืฉืจืชื™ ืคืจื•ืงืกื™ ื‘ืžืขืจื›ืช ืฉืœื ื•, ื•ืฉื ื™ื”ื ื™ื•ืฆืื™ื ื“ืจืš TOR: socks5://192.168.0.2:9050 ื• http://192.168.0.6:8123

ื›ืขืช ืื ื• ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ืืช ืกื‘ื™ื‘ืช ื”ืืจื ืง ืฉืœื ื•

# jexec electrum

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

wallet@electrum:/ % ee ~/.cshrc

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

ื•ื‘ื›ืŸ, ื›ืขืช ื”ืžืขื˜ืคืช ืชืขื‘ื•ื“ ืžืชื—ืช ืœ-proxy. ืื ืื ื—ื ื• ืจื•ืฆื™ื ืœื”ืชืงื™ืŸ ื—ื‘ื™ืœื•ืช, ืื– ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœื”ื•ืกื™ืฃ /usr/local/etc/pkg.conf ืžืชื—ืช ืœืฉื•ืจืฉ ื”ื›ืœื•ื‘

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

ื•ื‘ื›ืŸ, ืขื›ืฉื™ื• ื”ื’ื™ืข ื”ื–ืžืŸ ืœื”ื•ืกื™ืฃ ืืช ื”ืฉื™ืจื•ืช ื”ื ืกืชืจ TOR ื›ื›ืชื•ื‘ืช ืฉื™ืจื•ืช ื”-SSH ืฉืœื ื• ื‘ืชื ื”ืืจื ืง.

# jexec tor

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

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

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

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

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

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

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

mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion

ื–ื• ื›ืชื•ื‘ืช ื”ื—ื™ื‘ื•ืจ ืฉืœื ื•. ื‘ื•ื ื ื‘ื“ื•ืง ืžื”ืžื›ื•ื ื” ื”ืžืงื•ืžื™ืช. ืื‘ืœ ืชื—ื™ืœื” ืขืœื™ื ื• ืœื”ื•ืกื™ืฃ ืืช ืžืคืชื— ื”-SSH ืฉืœื ื•:

wallet@electrum:/ % mkdir ~/.ssh

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

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

ื•ื‘ื›ืŸ, ืžืžื—ืฉื‘ ืœืงื•ื— ืœื™ื ื•ืงืก

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

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

ื‘ื•ืื• ื ืชื—ื‘ืจ (ื›ื“ื™ ืฉื–ื” ื™ืขื‘ื•ื“, ืืชื” ืฆืจื™ืš ื“ืžื•ืŸ TOR ืžืงื•ืžื™ ืฉืžืื–ื™ืŸ ื‘-9050)

user@local ~$ ssh remotebtc

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

ื”ึทืฆืœึธื—ึธื”!

ื›ื“ื™ ืœืขื‘ื•ื“ ืขื ืชืฉืœื•ืžื™ื ืžื™ื™ื“ื™ื™ื ื•ืžื™ืงืจื•, ืื ื—ื ื• ืฆืจื™ื›ื™ื ื’ื ืฆื•ืžืช ืจืฉืช ื‘ืจืงื™ื, ืœืžืขืฉื”, ื–ื” ื™ื”ื™ื” ื›ืœื™ ื”ืขื‘ื•ื“ื” ื”ืขื™ืงืจื™ ืฉืœื ื• ืขื ื‘ื™ื˜ืงื•ื™ืŸ. U*ื‘ืจืง ื’ืฉื‘ื• ืื ื—ื ื• ื”ื•ืœื›ื™ื ืœื”ืฉืชืžืฉ ื‘ืชื•ืจ ื“ืžื•ืŸ ืชื•ืกืฃ Sparko, ืฉื”ื•ื ืžืžืฉืง HTTP (REST) โ€‹โ€‹ืžืœื ื•ืžืืคืฉืจ ืœืš ืœืขื‘ื•ื“ ื’ื ืขื ืขืกืงืื•ืช ืžื—ื•ืฅ ืœืฉืจืฉืจืช ื•ื’ื ืขื ืขืกืงืื•ืช ื‘ืจืฉืช. c-lightning ื ื“ืจืฉ ืœืชืคืงื•ื“ bitcoind ืื‘ืœ ื›ืŸ.

*ื™ืฉื ื ื™ื™ืฉื•ืžื™ื ืฉื•ื ื™ื ืฉืœ ืคืจื•ื˜ื•ืงื•ืœ Lightning Network ื‘ืฉืคื•ืช ืฉื•ื ื•ืช. ืžื‘ื™ืŸ ืืœื• ืฉื‘ื“ืงื ื•, 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 GB ืฉืœ ืžืงื•ื. ืžื” ืื ื ืฆื˜ืจืš ืขื•ื“ ืฆื•ืžืช ืœื‘ื“ื™ืงื•ืช? ื–ื” ื”ืžืงื•ื ืฉื‘ื• ZFS ื‘ื ืฉื™ืžื•ืฉื™. ืขื ืขื–ืจื” cbsd jclone old=bitcoind new=bitcoind-clone host_hostname=clonedbtc.space.com ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ ืชืžื•ื ืช ืžืฆื‘ ื•ืœืฆืจืฃ ืชื ื—ื“ืฉ ืœืชืžื•ื ื” ื–ื•. ืœืชื ื”ื—ื“ืฉ ื™ื”ื™ื” ืžืจื—ื‘ ืžืฉืœื•, ืืš ืจืง ื”ื”ื‘ื“ืœ ื‘ื™ืŸ ื”ืžืฆื‘ ื”ื ื•ื›ื—ื™ ืœืžืงื•ืจ ื™ื™ืœืงื— ื‘ื—ืฉื‘ื•ืŸ ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื (ื ืฉืžื•ืจ ืœืคื—ื•ืช 190 GB)

ื›ืœ ืชื ื”ื•ื ืžืขืจืš ZFS ื ืคืจื“ ืžืฉืœื•, ื•ื–ื” ืžืื•ื“ ื ื•ื—. ื’ื ZFS ืžืืคืฉืจ ืœืขืฉื•ืช ื“ื‘ืจื™ื ืžื’ื ื™ื‘ื™ื ืื—ืจื™ื, ื›ืžื• ืฉืœื™ื—ืช ืชืžื•ื ื•ืช ื“ืจืš SSH. ืœื ื ืชืืจ ืืช ื–ื”, ื™ืฉ ื›ื‘ืจ ื”ืจื‘ื”.

ืจืื•ื™ ื’ื ืœืฆื™ื™ืŸ ืืช ื”ืฆื•ืจืš ื‘ื ื™ื˜ื•ืจ ืžืจื—ื•ืง ืฉืœ ื”ืžืืจื—, ืœืžื˜ืจื•ืช ืืœื• ื™ืฉ ืœื ื• ื–ืื‘ื™ืงืก.

ื‘' - ื‘ื˜ื™ื—ื•ืช

ืœื’ื‘ื™ ืื‘ื˜ื—ื”, ื ืชื—ื™ืœ ืžืขืงืจื•ื ื•ืช ื”ืžืคืชื— ื‘ื”ืงืฉืจ ืฉืœ ืชืฉืชื™ืช:

ะšะพะฝั„ะธะดะตะฝั†ะธะฐะปัŒะฝะพัั‚ัŒ - ื›ืœื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ืฉืœ ืžืขืจื›ื•ืช ื“ืžื•ื™ื•ืช 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"
...

ืื– ืื ืืชื” ืคืชืื•ื ืฆืจื™ืš ืœื”ืคืขื™ืœ Docker, ืื– ื”ืชืงืŸ ืงืฆืช ื“ื‘ื™ืืŸ ื•ืœืš!

ื‘ื™ื˜ืงื•ื™ืŸ ื‘ื›ืœื•ื‘?

ื–ื” ื”ื›ืœ

ืื ื™ ืžื ื™ื— ืฉื–ื” ื›ืœ ืžื” ืฉืจืฆื™ืชื™ ืœืฉืชืฃ. ืื ืื”ื‘ืชื ืืช ื”ืžืืžืจ, ืื– ืืชื ื™ื›ื•ืœื™ื ืœืฉืœื•ื— ืœื™ ื›ืžื” ื‘ื™ื˜ืงื•ื™ื ื™ื - bc1qu7lhf45xw83ddll5mnzte6ahju8ktkeu6qhttc. ืื ืืชื” ืจื•ืฆื” ืœื ืกื•ืช ืชืื™ื ื‘ืคืขื•ืœื” ื•ื™ืฉ ืœืš ื›ืžื” ื‘ื™ื˜ืงื•ื™ื ื™ื, ืืชื” ื™ื›ื•ืœ ืœืœื›ืช ืืœ ืฉืœื™ ืคืจื•ื™ืงื˜ ื—ื™ื•ืช ืžื—ืžื“.

ืžืงื•ืจ: www.habr.com