ನಾನು ವೃತ್ತಿಯಲ್ಲಿ ಕಂಪ್ಯೂಟರ್ ಸಿಸ್ಟಮ್ಗಳು ಮತ್ತು ನೆಟ್ವರ್ಕ್ಗಳ ನಿರ್ವಾಹಕನಾಗಿದ್ದೇನೆ (ಸಂಕ್ಷಿಪ್ತವಾಗಿ: ಸಿಸ್ಟಮ್ ಅಡ್ಮಿನಿಸ್ಟ್ರೇಟರ್), ಮತ್ತು ಪ್ರೊಫೆಸರ್ಗೆ ಹೇಳಲು ನನಗೆ ಅವಕಾಶವಿತ್ತು. [ಹೆಚ್ಚುವರಿ]ಹೆಚ್ಚಿನ ಭದ್ರತಾ ಕ್ರಮಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ವಿವಿಧ ರೀತಿಯ ವ್ಯವಸ್ಥೆಗಳ ಚಟುವಟಿಕೆಗಳು. ಸ್ವಲ್ಪ ಸಮಯದ ಹಿಂದೆ ನಾನು ಅದನ್ನು ಆಸಕ್ತಿದಾಯಕವಾಗಿ ಕಂಡುಕೊಂಡೆ , ಮತ್ತು ಅದನ್ನು ಬಳಸಿದ್ದು ಮಾತ್ರವಲ್ಲದೆ, ಡೆವಲಪರ್ನ ದೃಷ್ಟಿಕೋನದಿಂದ (ಸಹಜವಾಗಿ, I) ಬಿಟ್ಕಾಯಿನ್ ನೆಟ್ವರ್ಕ್ನೊಂದಿಗೆ (ಅಕಾ p2p) ಸ್ವತಂತ್ರವಾಗಿ ಹೇಗೆ ಕೆಲಸ ಮಾಡಬೇಕೆಂದು ತಿಳಿಯಲು ಹಲವಾರು ಮೈಕ್ರೋ-ಸೇವೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸಿತು. dev, ಆದ್ದರಿಂದ, ಹಾದುಹೋಗಿದೆ). ಆದರೆ ನಾನು ಅಭಿವೃದ್ಧಿಯ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿಲ್ಲ, ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಸುರಕ್ಷಿತ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ಪರಿಸರದ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಿದ್ದೇನೆ.
ಹಣಕಾಸು ತಂತ್ರಜ್ಞಾನ (fintechಮಾಹಿತಿ ಭದ್ರತೆಯ ಮುಂದೆ ಹೋಗಿ (ಇನ್ಫೋಸೆಕ್) ಮತ್ತು ಎರಡನೆಯದು ಇಲ್ಲದೆ ಮೊದಲನೆಯದು ಕೆಲಸ ಮಾಡಬಹುದು, ಆದರೆ ದೀರ್ಘಕಾಲ ಅಲ್ಲ. ಅದಕ್ಕಾಗಿಯೇ ನಾನು ನನ್ನ ಅನುಭವ ಮತ್ತು ನಾನು ಬಳಸುವ ಪರಿಕರಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುತ್ತೇನೆ fintech, ಮತ್ತು ಇನ್ಫೋಸೆಕ್, ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ, ಮತ್ತು ವಿಶಾಲವಾದ ಅಥವಾ ಸಂಪೂರ್ಣವಾಗಿ ವಿಭಿನ್ನ ಉದ್ದೇಶಕ್ಕಾಗಿ ಬಳಸಬಹುದು. ಈ ಲೇಖನದಲ್ಲಿ, ನಾನು ಬಿಟ್ಕಾಯಿನ್ ಬಗ್ಗೆ ಹೆಚ್ಚು ಮಾತನಾಡುವುದಿಲ್ಲ, ಆದರೆ ಹಣಕಾಸು (ಮತ್ತು ಮಾತ್ರವಲ್ಲ) ಸೇವೆಗಳ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಕಾರ್ಯಾಚರಣೆಗೆ ಮೂಲಸೌಕರ್ಯ ಮಾದರಿಯ ಬಗ್ಗೆ - ಒಂದು ಪದದಲ್ಲಿ, “ಬಿ” ಮುಖ್ಯವಾದ ಸೇವೆಗಳು. ಇದು ಬಿಟ್ಕಾಯಿನ್ ವಿನಿಮಯಕ್ಕೆ ಮತ್ತು ಬಿಟ್ಕಾಯಿನ್ಗೆ ಯಾವುದೇ ಸಂಪರ್ಕವಿಲ್ಲದ ಸಣ್ಣ ಕಂಪನಿಯ ಅತ್ಯಂತ ವಿಶಿಷ್ಟವಾದ ಕಾರ್ಪೊರೇಟ್ ಮೃಗಾಲಯದ ಸೇವೆಗಳಿಗೆ ಅನ್ವಯಿಸುತ್ತದೆ.
ನಾನು ತತ್ವಗಳ ಬೆಂಬಲಿಗ ಎಂದು ನಾನು ಗಮನಿಸಲು ಬಯಸುತ್ತೇನೆ "ಇದು ಮೂರ್ಖತನವನ್ನು ಸರಳವಾಗಿ ಇರಿಸಿ" и "ಕಡಿಮೆಯೆ ಜಾಸ್ತಿ", ಆದ್ದರಿಂದ, ಲೇಖನ ಮತ್ತು ಅದರಲ್ಲಿ ವಿವರಿಸಿರುವ ಎರಡೂ ಈ ತತ್ವಗಳ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಹೊಂದಿರುತ್ತದೆ.
ಕಾಲ್ಪನಿಕ ಸನ್ನಿವೇಶ: ಬಿಟ್ಕಾಯಿನ್ ವಿನಿಮಯಕಾರಕದ ಉದಾಹರಣೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಎಲ್ಲವನ್ನೂ ನೋಡೋಣ. ನಾವು ಬಿಟ್ಕಾಯಿನ್ಗಳಿಗಾಗಿ ರೂಬಲ್ಸ್, ಡಾಲರ್ಗಳು, ಯೂರೋಗಳ ವಿನಿಮಯವನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಿರ್ಧರಿಸಿದ್ದೇವೆ ಮತ್ತು ಪ್ರತಿಯಾಗಿ, ಮತ್ತು ನಾವು ಈಗಾಗಲೇ ಕೆಲಸ ಮಾಡುವ ಪರಿಹಾರವನ್ನು ಹೊಂದಿದ್ದೇವೆ, ಆದರೆ ಕ್ವಿವಿ ಮತ್ತು ವೆಬ್ಮನಿಯಂತಹ ಇತರ ಡಿಜಿಟಲ್ ಹಣಕ್ಕಾಗಿ, ಅಂದರೆ. ನಾವು ಎಲ್ಲಾ ಕಾನೂನು ಸಮಸ್ಯೆಗಳನ್ನು ಮುಚ್ಚಿದ್ದೇವೆ, ರೂಬಲ್ಗಳು, ಡಾಲರ್ಗಳು ಮತ್ತು ಯೂರೋಗಳು ಮತ್ತು ಇತರ ಪಾವತಿ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಪಾವತಿ ಗೇಟ್ವೇ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ರೆಡಿಮೇಡ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಾವು ಹೊಂದಿದ್ದೇವೆ. ಇದು ನಮ್ಮ ಬ್ಯಾಂಕ್ ಖಾತೆಗಳೊಂದಿಗೆ ಸಂಬಂಧ ಹೊಂದಿದೆ ಮತ್ತು ನಮ್ಮ ಅಂತಿಮ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ ಕೆಲವು ರೀತಿಯ API ಅನ್ನು ಹೊಂದಿದೆ. ನಾವು ಬಳಕೆದಾರರಿಗೆ ವಿನಿಮಯಕಾರಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸಹ ಹೊಂದಿದ್ದೇವೆ, ಅಲ್ಲದೆ, ವಿಶಿಷ್ಟವಾದ ಕ್ವಿವಿ ಅಥವಾ ವೆಬ್ಮನಿ ಕ್ಯಾಬಿನೆಟ್ನಂತೆ - ಖಾತೆಯನ್ನು ರಚಿಸಿ, ಕಾರ್ಡ್ ಸೇರಿಸಿ, ಇತ್ಯಾದಿ. ಇದು ಸ್ಥಳೀಯ ಪ್ರದೇಶದಲ್ಲಿ REST API ಮೂಲಕ ನಮ್ಮ ಗೇಟ್ವೇ ಅಪ್ಲಿಕೇಶನ್ನೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತದೆ. ಮತ್ತು ಆದ್ದರಿಂದ ನಾವು ಬಿಟ್ಕಾಯಿನ್ಗಳನ್ನು ಸಂಪರ್ಕಿಸಲು ನಿರ್ಧರಿಸಿದ್ದೇವೆ ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ ಮೂಲಸೌಕರ್ಯವನ್ನು ಅಪ್ಗ್ರೇಡ್ ಮಾಡುತ್ತೇವೆ, ಏಕೆಂದರೆ. ಆರಂಭದಲ್ಲಿ, ಎಲ್ಲವೂ ಮೇಜಿನ ಕೆಳಗಿರುವ ಕಛೇರಿಯಲ್ಲಿ ವರ್ಚುವಲ್ಬಾಕ್ಸ್ಗಳಲ್ಲಿ ಬೆಳೆದ ಹಸಿವಿನಲ್ಲಿ ... ಸೈಟ್ ಅನ್ನು ಬಳಸಲು ಪ್ರಾರಂಭಿಸಿತು, ಮತ್ತು ನಾವು ಅಪ್ಟೈಮ್ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯ ಬಗ್ಗೆ ಚಿಂತೆ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿದ್ದೇವೆ.
ಆದ್ದರಿಂದ, ಮುಖ್ಯವಾದವುಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸೋಣ - ಸರ್ವರ್ ಅನ್ನು ಆರಿಸುವುದು. ಏಕೆಂದರೆ ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ ವ್ಯಾಪಾರವು ಚಿಕ್ಕದಾಗಿದೆ ಮತ್ತು ನಾವು ಆಯ್ಕೆ ಮಾಡುವ ಹೋಸ್ಟಿಂಗ್ ಪೂರೈಕೆದಾರರನ್ನು (OVH) ನಂಬುತ್ತೇವೆ ಇದರಲ್ಲಿ ನೀವು ಮೂಲ .iso ಇಮೇಜ್ನಿಂದ ಸಿಸ್ಟಮ್ ಅನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ, ಆದರೆ ಇದು ಅಪ್ರಸ್ತುತವಾಗುತ್ತದೆ, IT ಭದ್ರತಾ ವಿಭಾಗವು ಸ್ಥಾಪಿಸಲಾದ ಚಿತ್ರವನ್ನು ಖಂಡಿತವಾಗಿ ವಿಶ್ಲೇಷಿಸುತ್ತದೆ. ಮತ್ತು ನಾವು ಬೆಳೆದಾಗ, ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ಸೀಮಿತ ಭೌತಿಕ ಪ್ರವೇಶದೊಂದಿಗೆ ಲಾಕ್ ಮತ್ತು ಕೀ ಅಡಿಯಲ್ಲಿ ನಮ್ಮ ಕ್ಲೋಸೆಟ್ ಅನ್ನು ಬಾಡಿಗೆಗೆ ನೀಡುತ್ತೇವೆ ಮತ್ತು ಬಹುಶಃ ನಾವು ನಮ್ಮ ಸ್ವಂತ DC ಅನ್ನು ನಿರ್ಮಿಸುತ್ತೇವೆ. ಯಾವುದೇ ಸಂದರ್ಭದಲ್ಲಿ, ಹಾರ್ಡ್ವೇರ್ ಅನ್ನು ಬಾಡಿಗೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವಾಗ ಮತ್ತು ರೆಡಿಮೇಡ್ ಚಿತ್ರಗಳನ್ನು ಸ್ಥಾಪಿಸುವಾಗ, ನಿಮ್ಮ ಸಿಸ್ಟಮ್ನಲ್ಲಿ "ಟ್ರೋಜನ್ ಫ್ರಮ್ ದಿ ಹೋಸ್ಟರ್" ಅನ್ನು ನೇತುಹಾಕುವ ಅವಕಾಶವಿದೆ ಎಂದು ನೆನಪಿನಲ್ಲಿಟ್ಟುಕೊಳ್ಳುವುದು ಯೋಗ್ಯವಾಗಿದೆ, ಇದು ಹೆಚ್ಚಿನ ಸಂದರ್ಭಗಳಲ್ಲಿ ನಿಮ್ಮ ಮೇಲೆ ಕಣ್ಣಿಡಲು ಉದ್ದೇಶಿಸಿಲ್ಲ. , ಆದರೆ ಹೆಚ್ಚು ಅನುಕೂಲಕರ ನಿರ್ವಹಣಾ ಪರಿಕರಗಳ ಸರ್ವರ್ ಅನ್ನು ನೀಡಲು.
ಸರ್ವರ್ ಸ್ಥಾಪನೆ
ಇಲ್ಲಿ ಎಲ್ಲವೂ ಸರಳವಾಗಿದೆ. ನಮ್ಮ ಅಗತ್ಯಗಳಿಗೆ ಸರಿಹೊಂದುವ ಕಬ್ಬಿಣವನ್ನು ನಾವು ಆರಿಸಿಕೊಳ್ಳುತ್ತೇವೆ. ನಂತರ FreeBSD ಚಿತ್ರವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ. ಸರಿ, ಅಥವಾ ನಾವು 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ನೀವು ಸಿಸ್ಟಮ್ನ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯನ್ನು ಸ್ಥಾಪಿಸಿರುವಿರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು ಯೋಗ್ಯವಾಗಿದೆ, ಮತ್ತು . ನಮ್ಮ ಸಂದರ್ಭದಲ್ಲಿ, ಉದಾಹರಣೆಗೆ, ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ಅಪ್ಗ್ರೇಡ್ ಅಗತ್ಯವಿದೆ, ಏಕೆಂದರೆ. ಪೂರ್ವ-ಸ್ಥಾಪನೆಯ ಚಿತ್ರಗಳು ಆರು ತಿಂಗಳು ಅಥವಾ ಒಂದು ವರ್ಷದ ಹಿಂದೆ ಇವೆ. ಸರಿ, ಅಲ್ಲಿ ನಾವು SSH ಪೋರ್ಟ್ ಅನ್ನು ಡಿಫಾಲ್ಟ್ನಿಂದ ಬೇರೆಯೊಂದಕ್ಕೆ ಬದಲಾಯಿಸುತ್ತೇವೆ, ಕೀಗಳ ಮೂಲಕ ದೃಢೀಕರಣವನ್ನು ಸೇರಿಸಿ ಮತ್ತು ಪಾಸ್ವರ್ಡ್ ಮೂಲಕ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತೇವೆ.
ನಂತರ ನಾವು ಹೊಂದಿಸಿದ್ದೇವೆ 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 ಈ ಪಾತ್ರೆಗಳನ್ನು ಸಂಯೋಜಿಸಲು, ಅದರ ಹೆಸರು ಕೋಶಗಳು.
ವಿವಿಧ ಉದ್ದೇಶಗಳಿಗಾಗಿ ಮೂಲಸೌಕರ್ಯವನ್ನು ನಿರ್ಮಿಸಲು ಪಂಜರವು ಅತ್ಯಂತ ಪರಿಣಾಮಕಾರಿ ಪರಿಹಾರವಾಗಿದೆ, ಇದರ ಪರಿಣಾಮವಾಗಿ, ವೈಯಕ್ತಿಕ ಸೇವೆಗಳು ಅಥವಾ ಪ್ರಕ್ರಿಯೆಗಳ ಸಂಪೂರ್ಣ ಪ್ರತ್ಯೇಕತೆಯ ಅಗತ್ಯವಿರುತ್ತದೆ. ಇದು ಮೂಲಭೂತವಾಗಿ ಹೋಸ್ಟ್ ಸಿಸ್ಟಮ್ನ ಕ್ಲೋನ್ ಆಗಿದೆ, ಆದರೆ ಪೂರ್ಣ ಹಾರ್ಡ್ವೇರ್ ವರ್ಚುವಲೈಸೇಶನ್ ಅಗತ್ಯವಿಲ್ಲ. ಮತ್ತು ಇದಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ಸಂಪನ್ಮೂಲಗಳನ್ನು "ಅತಿಥಿ ಓಎಸ್" ನಲ್ಲಿ ಖರ್ಚು ಮಾಡಲಾಗುವುದಿಲ್ಲ, ಆದರೆ ನಿರ್ವಹಿಸಿದ ಕೆಲಸದಲ್ಲಿ ಮಾತ್ರ. ಆಂತರಿಕ ಅಗತ್ಯಗಳಿಗಾಗಿ ಕೋಶಗಳನ್ನು ಬಳಸಿದಾಗ, ಸಂಪನ್ಮೂಲದ ಅತ್ಯುತ್ತಮ ಬಳಕೆಗೆ ಇದು ತುಂಬಾ ಅನುಕೂಲಕರ ಪರಿಹಾರವಾಗಿದೆ - ಅಗತ್ಯವಿದ್ದರೆ ಒಂದು ಕಬ್ಬಿಣದ ಸರ್ವರ್ನಲ್ಲಿನ ಕೋಶಗಳ ಗುಂಪನ್ನು ಪ್ರತಿಯೊಬ್ಬರೂ ಪ್ರತ್ಯೇಕವಾಗಿ ಸಂಪೂರ್ಣ ಸರ್ವರ್ ಸಂಪನ್ಮೂಲವನ್ನು ಬಳಸಬಹುದು. ಸಾಮಾನ್ಯವಾಗಿ ವಿಭಿನ್ನ ಉಪಸೇವೆಗಳಿಗೆ ಹೆಚ್ಚುವರಿ ಅಗತ್ಯವಿದೆ ಎಂದು ಪರಿಗಣಿಸಿ. ವಿವಿಧ ಸಮಯಗಳಲ್ಲಿ ಸಂಪನ್ಮೂಲಗಳು, ನೀವು ಸರ್ವರ್ಗಳ ನಡುವೆ ಕೋಶಗಳನ್ನು ಸರಿಯಾಗಿ ಯೋಜಿಸಿದರೆ ಮತ್ತು ಅಸಮತೋಲನ ಮಾಡಿದರೆ ನೀವು ಒಂದು ಸರ್ವರ್ನಿಂದ ಗರಿಷ್ಠ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೊರತೆಗೆಯಬಹುದು. ಅಗತ್ಯವಿದ್ದರೆ, ಕೋಶಗಳು ಬಳಸಿದ ಸಂಪನ್ಮೂಲದ ಮೇಲೆ ಮಿತಿಗಳನ್ನು ಹೊಂದಿಸಬಹುದು.

ಪೂರ್ಣ ವರ್ಚುವಲೈಸೇಶನ್ ಬಗ್ಗೆ ಏನು?
ನನಗೆ ತಿಳಿದ ಮಟ್ಟಿಗೆ cbsd ಕೆಲಸವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ bhyve ಮತ್ತು XEN ಹೈಪರ್ವೈಸರ್ಗಳು. ನಾನು ಎರಡನೆಯದನ್ನು ಎಂದಿಗೂ ಬಳಸಿಲ್ಲ, ಆದರೆ ಮೊದಲನೆಯದು ತುಲನಾತ್ಮಕವಾಗಿ ಚಿಕ್ಕದಾಗಿದೆ . ನಾವು ಬಳಸುವ ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ bhyve ಕೆಳಗಿನ ಉದಾಹರಣೆಯಲ್ಲಿ.
ಹೋಸ್ಟ್ ಪರಿಸರವನ್ನು ಸ್ಥಾಪಿಸುವುದು ಮತ್ತು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು
ನಾವು ಎಫ್ಎಸ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ . ಸರ್ವರ್ ಜಾಗವನ್ನು ನಿರ್ವಹಿಸಲು ಇದು ಅತ್ಯಂತ ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದೆ. 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 ಮತ್ತು ರಚನೆಯಲ್ಲಿನ ಉಳಿದ ಡಿಸ್ಕ್ಗಳಿಗೆ ಅದೇ ರೀತಿ ಪುನರಾವರ್ತಿಸುತ್ತೇವೆ. ಮತ್ತು ನಾವು ಹೊಸದನ್ನು ರಚಿಸುತ್ತೇವೆ .
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
ಫೈರ್ವಾಲ್ ನೀತಿಗಳನ್ನು ಹೊಂದಿಸುವುದು ಸಹ ಒಂದು ಪ್ರತ್ಯೇಕ ವಿಷಯವಾಗಿದೆ, ಆದ್ದರಿಂದ ನಾನು ಎಲ್ಲಾ ನೀತಿಯನ್ನು ನಿರ್ಬಂಧಿಸಿ ಮತ್ತು ಶ್ವೇತಪಟ್ಟಿಗಳನ್ನು ಹೊಂದಿಸಲು ಪರಿಶೀಲಿಸುವುದಿಲ್ಲ, ಇದನ್ನು ಓದುವ ಮೂಲಕ ಮಾಡಬಹುದು ಅಥವಾ Google ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಯಾವುದೇ ದೊಡ್ಡ ಸಂಖ್ಯೆಯ ಲೇಖನಗಳು.
ಸರಿ... ನಾವು cbsd ಅನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೇವೆ, ನಮ್ಮ ಮೊದಲ ವರ್ಕ್ಹಾರ್ಸ್ ಅನ್ನು ನಿರ್ಮಿಸುವ ಸಮಯ, ಪಂಜರದ ಬಿಟ್ಕಾಯಿನ್ ಡೀಮನ್!
cbsd jconstruct-tui

ಇಲ್ಲಿ ನಾವು ಸೆಲ್ ಸೃಷ್ಟಿ ಸಂವಾದವನ್ನು ನೋಡುತ್ತೇವೆ. ಎಲ್ಲಾ ಮೌಲ್ಯಗಳನ್ನು ಹೊಂದಿಸಿದ ನಂತರ, ನಾವು ರಚಿಸುತ್ತೇವೆ!
ಮೊದಲ ಕೋಶವನ್ನು ರಚಿಸುವಾಗ, ಕೋಶಗಳಿಗೆ ಆಧಾರವಾಗಿ ಯಾವುದನ್ನು ಬಳಸಬೇಕೆಂದು ನೀವು ಆರಿಸಬೇಕು. ನಾನು ಆಜ್ಞೆಯೊಂದಿಗೆ FreeBSD ರೆಪೊಸಿಟರಿಯಿಂದ ವಿತರಣೆಯನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತೇನೆ repo. ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಯ ಮೊದಲ ಪಂಜರವನ್ನು ರಚಿಸುವಾಗ ಮಾತ್ರ ಈ ಆಯ್ಕೆಯನ್ನು ಮಾಡಲಾಗುತ್ತದೆ (ಹೋಸ್ಟ್ ಆವೃತ್ತಿಗಿಂತ ಹಳೆಯದಾದ ಯಾವುದೇ ಆವೃತ್ತಿಯ ಪಂಜರಗಳನ್ನು ನೀವು ಹೋಸ್ಟ್ ಮಾಡಬಹುದು).
ಎಲ್ಲವನ್ನೂ ಸ್ಥಾಪಿಸಿದ ನಂತರ, ನಾವು ಪಂಜರವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ!
# cbsd jstart bitcoind
ಆದರೆ ನಾವು ಪಂಜರದಲ್ಲಿ ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗಿದೆ.
# jls
JID IP Address Hostname Path
1 192.168.0.1 bitcoind.space.com /zroot/jails/jails/bitcoindjexec bitcoind ಸೆಲ್ ಕನ್ಸೋಲ್ಗೆ ಪ್ರವೇಶಿಸಲು
ಮತ್ತು ಈಗಾಗಲೇ ಕೇಜ್ ಒಳಗೆ ನಾವು ಸಾಫ್ಟ್ವೇರ್ ಅನ್ನು ಅದರ ಅವಲಂಬನೆಗಳೊಂದಿಗೆ ಸ್ಥಾಪಿಸುತ್ತೇವೆ (ನಮ್ಮ ಹೋಸ್ಟ್ ಸಿಸ್ಟಮ್ ಸ್ವಚ್ಛವಾಗಿ ಉಳಿದಿದೆ)
bitcoind:/@[15:25] # pkg install bitcoin-daemon bitcoin-utils
bitcoind:/@[15:30] # sysrc bitcoind_enable=YES
bitcoind:/@[15:30] # service bitcoind start
ಪಂಜರದಲ್ಲಿ ಬಿಟ್ಕಾಯಿನ್ ಇದೆ, ಆದರೆ ನಮಗೆ ಅನಾಮಧೇಯತೆಯ ಅಗತ್ಯವಿದೆ, ಏಕೆಂದರೆ ನಾವು TOR ನೆಟ್ವರ್ಕ್ ಮೂಲಕ ಕೆಲವು ಪಂಜರಗಳಿಗೆ ಸಂಪರ್ಕಿಸಲು ಬಯಸುತ್ತೇವೆ. ಸಾಮಾನ್ಯವಾಗಿ, ನಾವು ಅನುಮಾನಾಸ್ಪದ ಸಾಫ್ಟ್ವೇರ್ನೊಂದಿಗೆ ಹೆಚ್ಚಿನ ಸೆಲ್ಗಳನ್ನು ಪ್ರಾಕ್ಸಿ ಮೂಲಕ ಮಾತ್ರ ತಿರುಗಿಸಲು ಯೋಜಿಸುತ್ತೇವೆ. ಇವರಿಗೆ ಧನ್ಯವಾದಗಳು pf ಸ್ಥಳೀಯ ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ನಿರ್ದಿಷ್ಟ ಶ್ರೇಣಿಯ IP ವಿಳಾಸಗಳಿಗಾಗಿ ನೀವು NAT ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು ಮತ್ತು ನಮ್ಮ TOR ನೋಡ್ಗೆ ಮಾತ್ರ NAT ಅನ್ನು ಅನುಮತಿಸಬಹುದು. ಹೀಗಾಗಿ, ಮಾಲ್ವೇರ್ ಸೆಲ್ಗೆ ಪ್ರವೇಶಿಸಿದರೂ, ಅದು ಹೊರಗಿನ ಪ್ರಪಂಚವನ್ನು ಸಂಪರ್ಕಿಸುವುದಿಲ್ಲ ಮತ್ತು ಅದು ಮಾಡಿದರೆ, ಅದು ನಮ್ಮ ಸರ್ವರ್ನ 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 ಅನ್ನು ಪ್ರಾರಂಭಿಸೋಣ, ಇದು ರಿವರ್ಸ್-ಪ್ರಾಕ್ಸಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡೋಣ.
# cbsd jsconstruct-tui
# cbsd jstart nginx-rev
# jexec nginx-rev
nginx-rev:/@[15:47] # pkg install nginx py36-certbot
ಮತ್ತು ಇಲ್ಲಿ ನಾವು 150 MB ಅವಲಂಬನೆಗಳನ್ನು ಪಂಜರದಲ್ಲಿ ಇರಿಸಿದ್ದೇವೆ. ಮತ್ತು ಹೋಸ್ಟ್ ಇನ್ನೂ ಸ್ವಚ್ಛವಾಗಿದೆ.
ನಂತರ nginx ಅನ್ನು ಹೊಂದಿಸಲು ಹಿಂತಿರುಗಿ ನೋಡೋಣ, nodejs ಮತ್ತು ತುಕ್ಕು ಮತ್ತು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ನಮ್ಮ ಪಾವತಿ ಗೇಟ್ವೇಗಾಗಿ ನಾವು ಇನ್ನೂ ಎರಡು ಸೆಲ್ಗಳನ್ನು ಸಂಗ್ರಹಿಸಬೇಕಾಗಿದೆ, ಇದು ಕೆಲವು ಕಾರಣಗಳಿಗಾಗಿ Apache ಮತ್ತು PHP ಯಲ್ಲಿದೆ, ಮತ್ತು ಎರಡನೆಯದಕ್ಕೆ MySQL ಡೇಟಾಬೇಸ್ನ ಅಗತ್ಯವಿದೆ.
# cbsd jsconstruct-tui
# cbsd jstart paygw
# jexec paygw
paygw:/@[15:55] # pkg install git node npm
paygw:/@[15:55] # curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
... ಮತ್ತು ಇನ್ನೊಂದು 380 MB ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆ
ನಂತರ ನಾವು ನಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು git ನೊಂದಿಗೆ ಡೌನ್ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಅದನ್ನು ರನ್ ಮಾಡುತ್ತೇವೆ.
# cbsd jsconstruct-tui
# cbsd jstart webapp
# jexec webapp
webapp:/@[16:02] # pkg install mariadb104-server apache24 php74 mod_php74 php74-pdo_mysql
450 MB ಪ್ಯಾಕೇಜುಗಳು. ಒಂದು ಪಂಜರದಲ್ಲಿ.
ಇಲ್ಲಿ ನಾವು ಡೆವಲಪರ್ಗೆ SSH ಮೂಲಕ ನೇರವಾಗಿ ಕೇಜ್ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡುತ್ತೇವೆ, ಅವರು ಅಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ಮಾಡುತ್ತಾರೆ:
webapp:/@[16:02] # ee /etc/ssh/sshd_config
Port 2267 - ಸೆಲ್ನ SSH ಪೋರ್ಟ್ ಅನ್ನು ಯಾವುದೇ ಅನಿಯಂತ್ರಿತವಾಗಿ ಬದಲಾಯಿಸಿ
webapp:/@[16:02] # sysrc sshd_enable=YES
webapp:/@[16:02] # service sshd start
ಸರಿ, ಸೇವೆಯು ಚಾಲನೆಯಲ್ಲಿದೆ, ಇದು ನಿಯಮವನ್ನು ಸೇರಿಸಲು ಉಳಿದಿದೆ pf ಫೈರ್ವಾಲ್
ನಾವು ಜೀವಕೋಶಗಳಿಗೆ ಯಾವ ಐಪಿಗಳನ್ನು ಹೊಂದಿದ್ದೇವೆ ಮತ್ತು ನಮ್ಮ "ಲೋಕಲ್" ಸಾಮಾನ್ಯವಾಗಿ ಹೇಗೆ ಕಾಣುತ್ತದೆ ಎಂಬುದನ್ನು ನೋಡೋಣ
# 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 ಅನ್ನು ಸಹ ಹೊಂದಿದೆ, ಆದ್ದರಿಂದ ನಾವು ನಮ್ಮ ವೆಬ್ಸೈಟ್ನಲ್ಲಿ ಅದೇ ವ್ಯಾಲೆಟ್ ಅನ್ನು ಬಳಸಲಿದ್ದೇವೆ.
ಲ್ಯಾಪ್ಟಾಪ್ಗಳು. ಸದ್ಯಕ್ಕೆ, ನಾವು ಸಾರ್ವಜನಿಕ ಸರ್ವರ್ಗಳೊಂದಿಗೆ ಎಲೆಕ್ಟ್ರಮ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ ಮತ್ತು ನಂತರ ನಾವು ಇನ್ನೊಂದು ಸೆಲ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸುತ್ತೇವೆ ಇದರಿಂದ ಯಾರ ಮೇಲೂ ಅವಲಂಬಿತವಾಗಿಲ್ಲ.
# cbsd jsconstruct-tui
# cbsd jstart electrum
# jexec electrum
electrum:/@[8:45] # pkg install py36-electrum
ನಮ್ಮ ಪಂಜರದಲ್ಲಿ ಮತ್ತೊಂದು 700 MB ಸಾಫ್ಟ್ವೇರ್
electrum:/@[8:53] # adduser
Username: wallet
Full name:
Uid (Leave empty for default):
Login group [wallet]:
Login group is wallet. Invite wallet into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]: tcsh
Home directory [/home/wallet]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]:
Username : wallet
Password : <disabled>
Full Name :
Uid : 1001
Class :
Groups : wallet
Home : /home/wallet
Home Mode :
Shell : /bin/tcsh
Locked : no
OK? (yes/no): yes
adduser: INFO: Successfully added (wallet) to the user database.
Add another user? (yes/no): no
Goodbye!
electrum:/@[8:53] # su walletelectrum:/@[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 ಸಂಪರ್ಕಗಳು TOR ಮೂಲಕ ಸಂಭವಿಸುತ್ತವೆ (VPN ನ ವಿಕೇಂದ್ರೀಕೃತ ಆವೃತ್ತಿ). ನಾವು ಪಂಜರದಲ್ಲಿ SSH ಅನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ, ಆದರೆ ಹೋಸ್ಟ್ನಲ್ಲಿ ನಮ್ಮ pf.conf ಅನ್ನು ಸ್ಪರ್ಶಿಸಬೇಡಿ.
electrum:/@[9:00] # sysrc sshd_enable=YES
electrum:/@[9:00] # service sshd start
ಈಗ ವಾಲೆಟ್ನೊಂದಿಗೆ ಪಂಜರದಲ್ಲಿ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಆಫ್ ಮಾಡೋಣ. NATized ಅಲ್ಲದ ಇನ್ನೊಂದು ಸಬ್ನೆಟ್ ಸ್ಪೇಸ್ನಿಂದ IP ವಿಳಾಸವನ್ನು ನೀಡೋಣ. ಮೊದಲು ಬದಲಾಗಲಿ /etc/pf.conf ಹೋಸ್ಟ್ ಮೇಲೆ
# ee /etc/pf.conf
JAIL_IP_POOL="192.168.0.0/24" ಗೆ ಬದಲಿಸಿ JAIL_IP_POOL="192.168.0.0/25", ಹೀಗಾಗಿ ಎಲ್ಲಾ ವಿಳಾಸಗಳು 192.168.0.126-255 ಇಂಟರ್ನೆಟ್ಗೆ ನೇರ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಒಂದು ರೀತಿಯ ಸಾಫ್ಟ್ವೇರ್ "ಏರ್-ಗ್ಯಾಪ್" ನೆಟ್ವರ್ಕ್. ಮತ್ತು NAT ನಿಯಮವು ಹಾಗೆಯೇ ಉಳಿದಿದೆ
nat pass on $IF_PUBLIC from $JAIL_IP_POOL to any -> $IP_PUBLIC
ನಿಯಮಗಳನ್ನು ಓವರ್ಲೋಡ್ ಮಾಡುವುದು
# pfctl -f /etc/pf.conf
ಈಗ ನಾವು ನಮ್ಮ ಪಂಜರವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತೇವೆ
# cbsd jconfig jname=electrum


jset mode=quiet jname=electrum ip4_addr="192.168.0.200"
Remove old IP: /sbin/ifconfig em0 inet 192.168.0.6 -alias
Setup new IP: /sbin/ifconfig em0 inet 192.168.0.200 alias
ip4_addr: 192.168.0.200ಹಾಂ, ಆದರೆ ಈಗ ವ್ಯವಸ್ಥೆಯೇ ನಮಗೆ ಕೆಲಸ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ. ಆದಾಗ್ಯೂ, ನಾವು ಸಿಸ್ಟಮ್ ಪ್ರಾಕ್ಸಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು. ಆದರೆ ಒಂದು ವಿಷಯವಿದೆ, TOR ನಲ್ಲಿ ಇದು SOCKS5 ಪ್ರಾಕ್ಸಿಯಾಗಿದೆ, ಮತ್ತು ಅನುಕೂಲಕ್ಕಾಗಿ, ನಾವು HTTP ಪ್ರಾಕ್ಸಿಯನ್ನು ಸಹ ಹೊಂದಿದ್ದೇವೆ.
# cbsd jsconstruct-tui
# cbsd jstart polipo
# jexec polipo
polipo:/@[9:28] # pkg install polipo
polipo:/@[9:28] # ee /usr/local/etc/polipo/config
socksParentProxy = "192.168.0.2:9050"
socksProxyType = socks5polipo:/@[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:22tor:/@[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
ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ (ಇದು ಕೆಲಸ ಮಾಡಲು, ನಿಮಗೆ 9050 ನಲ್ಲಿ ಕೇಳುವ ಸ್ಥಳೀಯ TOR ಡೀಮನ್ ಅಗತ್ಯವಿದೆ)
user@local ~$ ssh remotebtc
The authenticity of host 'mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion (<no hostip for proxy command>)' can't be established.
ECDSA key fingerprint is SHA256:iW8FKjhVF4yyOZB1z4sBkzyvCM+evQ9cCL/EuWm0Du4.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'mdjus4gmduhofwcso57b3zl3ufoitguh2knitjco5cmgrokpreuxumad.onion' (ECDSA) to the list of known hosts.
FreeBSD 12.1-RELEASE-p1 GENERIC
To save disk space in your home directory, compress files you rarely
use with "gzip filename".
-- Dru <genesis@istar.ca>
wallet@electrum:~ % logout
ಯಶಸ್ಸು!
ತ್ವರಿತ ಮತ್ತು ಮೈಕ್ರೋ-ಪಾವತಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು, ನಮಗೆ ನೋಡ್ ಕೂಡ ಅಗತ್ಯವಿದೆ , ವಾಸ್ತವವಾಗಿ, ಇದು ಬಿಟ್ಕಾಯಿನ್ನೊಂದಿಗೆ ನಮ್ಮ ಮುಖ್ಯ ಕಾರ್ಯ ಸಾಧನವಾಗಿದೆ. *, ನಾವು ಡೀಮನ್ ಆಗಿ ಬಳಸಲು ಹೊರಟಿದ್ದೇವೆ , ಇದು ಪೂರ್ಣ ಪ್ರಮಾಣದ HTTP (REST) ಇಂಟರ್ಫೇಸ್ ಆಗಿದೆ ಮತ್ತು ಆಫ್-ಚೈನ್ ವಹಿವಾಟುಗಳು ಮತ್ತು ಆನ್-ಚೈನ್ ವಹಿವಾಟುಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. c-lightning ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಅಗತ್ಯವಿದೆ bitcoind ಆದರೆ ಹೌದು.
*ಲೈಟ್ನಿಂಗ್ ನೆಟ್ವರ್ಕ್ ಪ್ರೋಟೋಕಾಲ್ನ ವಿವಿಧ PL ಗಳಲ್ಲಿ ವಿಭಿನ್ನ ಅಳವಡಿಕೆಗಳಿವೆ. ನಾವು ಪರೀಕ್ಷಿಸಿದವುಗಳಲ್ಲಿ, ಸಿ-ಮಿಂಚು (ಸಿಯಲ್ಲಿ ಬರೆಯಲಾಗಿದೆ) ಅತ್ಯಂತ ಸ್ಥಿರ ಮತ್ತು ಸಂಪನ್ಮೂಲ ದಕ್ಷತೆಯನ್ನು ತೋರುತ್ತಿದೆ.
# 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/32bitcoind:/@[10:39] # service bitcoind restart
ನಾನು ಉಪಯುಕ್ತತೆಯನ್ನು ಪರಿಶೀಲಿಸಿದರೆ ಕೋಶಗಳ ನಡುವೆ ನನ್ನ ಅಸ್ತವ್ಯಸ್ತವಾಗಿರುವ ಸ್ವಿಚಿಂಗ್ ಅಷ್ಟೊಂದು ಅಸ್ತವ್ಯಸ್ತವಾಗಿಲ್ಲ ಎಂದು ತಿರುಗುತ್ತದೆ tmux, ಇದು ಒಂದು ಅಧಿವೇಶನದಲ್ಲಿ ಟರ್ಮಿನಲ್ಗಳ ಅನೇಕ ಉಪ-ಸೆಷನ್ಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅನಲಾಗ್: screen

ಸರಿ, ನಮ್ಮ ನೋಡ್ನ ನೈಜ IP ಅನ್ನು ಬಹಿರಂಗಪಡಿಸಲು ನಾವು ಬಯಸುವುದಿಲ್ಲ ಮತ್ತು TOR ಮೂಲಕ ಎಲ್ಲಾ ಹಣಕಾಸಿನ ವಹಿವಾಟುಗಳನ್ನು ನಡೆಸಲು ನಾವು ಬಯಸುತ್ತೇವೆ. ಆದ್ದರಿಂದ, ಇನ್ನೂ ಒಂದು .ಈರುಳ್ಳಿ ಅಗತ್ಯವಿದೆ.
# jexec tor
tor:/@[9:59] # ee /usr/local/etc/tor/torrc
HiddenServiceDir /var/db/tor/cln/
HiddenServicePort 9735 192.168.0.7:9735tor:/@[10:01] # mkdir /var/db/tor/cln
tor:/@[10:01] # chown -R _tor:_tor /var/db/tor/cln
tor:/@[10:01] # chmod 700 /var/db/tor/cln
tor:/@[10:03] # service tor restart
tor:/@[10:04] # cat /var/db/tor/cln/hostname
en5wbkavnytti334jc5uzaudkansypfs6aguv6kech4hbzpcz2ove3yd.onionಈಗ ಸಿ-ಮಿಂಚಿನ ಸಂರಚನೆಯನ್ನು ರಚಿಸೋಣ
lightning:/home/lightning/lightning@[10:31] # su lightning
lightning@lightning:~ % mkdir .lightning
lightning@lightning:~ % ee .lightning/config
alias=My-LN-Node
bind-addr=192.168.0.7:9735
rgb=ff0000
announce-addr=en5wbkavnytti334jc5uzaudkansypfs6aguv6kech4hbzpcz2ove3yd.onion:9735
network=bitcoin
log-level=info
fee-base=0
fee-per-satoshi=1
proxy=192.168.0.2:9050
log-file=/home/lightning/.lightning/c-lightning.log
min-capacity-sat=200000
# sparko plugin
# https://github.com/fiatjaf/lightningd-gjson-rpc/tree/master/cmd/sparko
sparko-host=192.168.0.7
sparko-port=9737
sparko-tls-path=sparko-tls
#sparko-login=mywalletusername:mywalletpassword
#sparko-keys=masterkey;secretread:+listchannels,+listnodes;secretwrite:+invoice,+listinvoices,+delinvoice,+decodepay,+waitpay,+waitinvoice
sparko-keys=masterkey;secretread:+listchannels,+listnodes;ultrawrite:+invoice,+listinvoices,+delinvoice,+decodepay,+waitpay,+waitinvoice
# for the example above the initialization logs (mixed with lightningd logs) should print something likelightning@lightning:~ % mkdir .lightning/plugins
lightning@lightning:~ % cd .lightning/plugins/
lightning@lightning:~/.lightning/plugins:% fetch https://github.com/fiatjaf/sparko/releases/download/v0.2.1/sparko_full_freebsd_amd64
lightning@lightning:~/.lightning/plugins % mkdir ~/.lightning/sparko-tls
lightning@lightning:~/.lightning/sparko-tls % cd ~/.lightning/sparko-tls
lightning@lightning:~/.lightning/sparko-tls % openssl genrsa -out key.pem 2048
lightning@lightning:~/.lightning/sparko-tls % openssl req -new -x509 -sha256 -key key.pem -out cert.pem -days 3650
lightning@lightning:~/.lightning/plugins % chmod +x sparko_full_freebsd_amd64
lightning@lightning:~/.lightning/plugins % mv sparko_full_freebsd_amd64 sparko
lightning@lightning:~/.lightning/plugins % cd ~
ನೀವು ಬಿಟ್ಕಾಯಿನ್-ಕ್ಲೈಗಾಗಿ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ಸಹ ರಚಿಸಬೇಕಾಗಿದೆ, ಇದು ಸಂವಹನ ಮಾಡುವ ಉಪಯುಕ್ತತೆಯಾಗಿದೆ bitcoind
lightning@lightning:~ % mkdir .bitcoin
lightning@lightning:~ % ee .bitcoin/bitcoin.conf
rpcconnect=192.168.0.1
rpcuser=test
rpcpassword=testಪರಿಶೀಲಿಸಿ
lightning@lightning:~ % bitcoin-cli echo "test"
[
"test"
]ಉಡಾವಣೆ lightningd
lightning@lightning:~ % lightningd --daemon
ಸ್ವತಃ lightningd ಉಪಯುಕ್ತತೆಯನ್ನು ನಿಯಂತ್ರಿಸಬಹುದು lightning-cli, ಉದಾಹರಣೆಗೆ:
lightning-cli newaddr ಹೊಸ ಒಳಬರುವ ಪಾವತಿಗಾಗಿ ವಿಳಾಸವನ್ನು ಪಡೆಯಿರಿ
{
"address": "bc1q2n2ffq3lplhme8jufcxahfrnfhruwjgx3c78pv",
"bech32": "bc1q2n2ffq3lplhme8jufcxahfrnfhruwjgx3c78pv"
}lightning-cli withdraw bc1jufcxahfrnfhruwjgx3cq2n2ffq3lplhme878pv all ವಾಲೆಟ್ನ ಎಲ್ಲಾ ಹಣವನ್ನು ವಿಳಾಸಕ್ಕೆ ಕಳುಹಿಸಿ (ಎಲ್ಲಾ ಆನ್-ಚೈನ್ ವಿಳಾಸಗಳ)
ಆಫ್-ಚೈನ್ ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ ಸಹ ಆಜ್ಞೆಗಳು lightning-cli invoice, lightning-cli listinvoices, lightning-cli pay ಇತ್ಯಾದಿ.
ಸರಿ, ಅಪ್ಲಿಕೇಶನ್ನೊಂದಿಗೆ ಸಂವಹನಕ್ಕಾಗಿ, ನಾವು REST Api ಅನ್ನು ಹೊಂದಿದ್ದೇವೆ
curl -k https://192.168.0.7:9737/rpc -d '{"method": "pay", "params": ["lnbc..."]}' -H 'X-Access masterkey'
ಫಲಿತಾಂಶಗಳನ್ನು ಒಟ್ಟಾರೆಯಾಗಿ ನೋಡೋಣ
# jls
JID IP Address Hostname Path
1 192.168.0.1 bitcoind.space.com /zroot/jails/jails/bitcoind
2 192.168.0.2 tor.space.com /zroot/jails/jails/tor
3 192.168.0.3 nginx-rev.space.com /zroot/jails/jails/nginx-rev
4 192.168.0.4 paygw.space.com /zroot/jails/jails/paygw
5 192.168.0.5 webapp.my.domain /zroot/jails/jails/webapp
7 192.168.0.200 electrum.space.com /zroot/jails/jails/electrum
8 192.168.0.6 polipo.space.com /zroot/jails/jails/polipo
9 192.168.0.7 lightning.space.com /zroot/jails/jails/cln
ನಾವು ಕಂಟೇನರ್ಗಳ ಗುಂಪನ್ನು ಹೊಂದಿದ್ದೇವೆ, ಪ್ರತಿಯೊಂದೂ ಸ್ಥಳೀಯ ನೆಟ್ವರ್ಕ್ನಿಂದ ಮತ್ತು ಅದರ ಸ್ವಂತ ಮಟ್ಟದ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದೆ.
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zroot 279G 1.48T 88K /zroot
zroot/ROOT 1.89G 1.48T 88K none
zroot/ROOT/default 1.89G 17.6G 1.89G /
zroot/home 88K 1.48T 88K /home
zroot/jails 277G 1.48T 404M /zroot/jails
zroot/jails/bitcoind 190G 1.48T 190G /zroot/jails/jails-data/bitcoind-data
zroot/jails/cln 653M 1.48T 653M /zroot/jails/jails-data/cln-data
zroot/jails/electrum 703M 1.48T 703M /zroot/jails/jails-data/electrum-data
zroot/jails/nginx-rev 190M 1.48T 190M /zroot/jails/jails-data/nginx-rev-data
zroot/jails/paygw 82.4G 1.48T 82.4G /zroot/jails/jails-data/paygw-data
zroot/jails/polipo 57.6M 1.48T 57.6M /zroot/jails/jails-data/polipo-data
zroot/jails/tor 81.5M 1.48T 81.5M /zroot/jails/jails-data/tor-data
zroot/jails/webapp 360M 1.48T 360M /zroot/jails/jails-data/webapp-dataನೀವು ನೋಡುವಂತೆ, bitcoind ಎಲ್ಲಾ 190 GB ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಆದರೆ ಪರೀಕ್ಷೆಗಳಿಗೆ ನಮಗೆ ಇನ್ನೊಂದು ನೋಡ್ ಅಗತ್ಯವಿದ್ದರೆ ಏನು? ಇಲ್ಲಿ ZFS ಸೂಕ್ತವಾಗಿ ಬರುತ್ತದೆ. ಸಹಾಯದಿಂದ cbsd jclone old=bitcoind new=bitcoind-clone host_hostname=clonedbtc.space.com ನೀವು ಸ್ನ್ಯಾಪ್ಶಾಟ್ ಅನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಈ ಸ್ನ್ಯಾಪ್ಶಾಟ್ಗೆ ಹೊಸ ಸೆಲ್ ಅನ್ನು ಟೈ ಮಾಡಬಹುದು. ಹೊಸ ಕೋಶವು ಸಂಪೂರ್ಣವಾಗಿ ತನ್ನದೇ ಆದ ಸ್ಥಳವನ್ನು ಹೊಂದಿರುತ್ತದೆ, ಆದರೆ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿ ಮತ್ತು ಮೂಲ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಮಾತ್ರ FS ನಲ್ಲಿ ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ (ಕನಿಷ್ಠ 190 GB ಉಳಿಸಿ)
ಪ್ರತಿಯೊಂದು ಕೋಶವು ತನ್ನದೇ ಆದ ಪ್ರತ್ಯೇಕ ZFS ಡೇಟಾಸೆಟ್ ಆಗಿದೆ, ಮತ್ತು ಇದು ಅತ್ಯಂತ ಅನುಕೂಲಕರವಾಗಿದೆ. SSH ಮೂಲಕ ಸ್ನ್ಯಾಪ್ಶಾಟ್ಗಳನ್ನು ಕಳುಹಿಸುವಂತಹ ಎಲ್ಲಾ ರೀತಿಯ ಇತರ ಕೂಲ್ ಸ್ಟಫ್ಗಳನ್ನು ಮಾಡಿ. ನಾವು ಅದನ್ನು ವಿವರಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಈಗಾಗಲೇ ಬಹಳಷ್ಟು ಇದೆ.
ಹೋಸ್ಟ್ನ ದೂರಸ್ಥ ಮೇಲ್ವಿಚಾರಣೆಯ ಅಗತ್ಯವನ್ನು ಗಮನಿಸುವುದು ಸಹ ಯೋಗ್ಯವಾಗಿದೆ, ಈ ಉದ್ದೇಶಗಳಿಗಾಗಿ ನಾವು ಹೊಂದಿದ್ದೇವೆ .
ಬಿ - ಭದ್ರತೆ
ಭದ್ರತೆಗೆ ಸಂಬಂಧಿಸಿದಂತೆ, ಮೂಲಸೌಕರ್ಯದ ಸಂದರ್ಭದಲ್ಲಿ ಪ್ರಮುಖ ತತ್ವಗಳಿಂದ ಪ್ರಾರಂಭಿಸೋಣ:
ಗೌಪ್ಯತೆ - UNIX ತರಹದ ವ್ಯವಸ್ಥೆಗಳ ಪ್ರಮಾಣಿತ ಉಪಕರಣಗಳು ಈ ತತ್ವವನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತವೆ. ಸಿಸ್ಟಂನ ಪ್ರತಿಯೊಂದು ತಾರ್ಕಿಕವಾಗಿ ಪ್ರತ್ಯೇಕ ಅಂಶಕ್ಕೆ ನಾವು ತಾರ್ಕಿಕವಾಗಿ ಪ್ರವೇಶವನ್ನು ಪ್ರತ್ಯೇಕಿಸುತ್ತೇವೆ - ಸೆಲ್. ಬಳಕೆದಾರರ ಖಾಸಗಿ ಕೀಲಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಪ್ರಮಾಣಿತ ಬಳಕೆದಾರ ದೃಢೀಕರಣದ ಮೂಲಕ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸಲಾಗುತ್ತದೆ. ಕೋಶಗಳ ನಡುವಿನ ಮತ್ತು ಅಂತ್ಯದವರೆಗಿನ ಎಲ್ಲಾ ಸಂವಹನಗಳನ್ನು ಎನ್ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಡಿಸ್ಕ್ ಎನ್ಕ್ರಿಪ್ಶನ್ಗೆ ಧನ್ಯವಾದಗಳು, ಡಿಸ್ಕ್ ರಿಪ್ಲೇಸ್ಮೆಂಟ್ ಅಥವಾ ಇನ್ನೊಂದು ಸರ್ವರ್ಗೆ ವಲಸೆಯ ಸಮಯದಲ್ಲಿ ಡೇಟಾದ ಸುರಕ್ಷತೆಯ ಬಗ್ಗೆ ನಾವು ಚಿಂತಿಸಲಾಗುವುದಿಲ್ಲ. ಆತಿಥೇಯ ವ್ಯವಸ್ಥೆಗೆ ಪ್ರವೇಶ ಮಾತ್ರ ನಿರ್ಣಾಯಕ ಪ್ರವೇಶವಾಗಿದೆ, ಏಕೆಂದರೆ ಅಂತಹ ಪ್ರವೇಶವು ಸಾಮಾನ್ಯವಾಗಿ ಕಂಟೇನರ್ಗಳಲ್ಲಿನ ಡೇಟಾಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಸಮಗ್ರತೆ - ಈ ತತ್ವದ ಅನುಷ್ಠಾನವು ಹಲವಾರು ವಿಭಿನ್ನ ಹಂತಗಳಲ್ಲಿ ಸಂಭವಿಸುತ್ತದೆ. ಮೊದಲನೆಯದಾಗಿ, ಸರ್ವರ್ ಹಾರ್ಡ್ವೇರ್, ಇಸಿಸಿ ಮೆಮೊರಿಯ ಸಂದರ್ಭದಲ್ಲಿ, ಬಾಕ್ಸ್ನ ಹೊರಗೆ ಮಾಹಿತಿ ಬಿಟ್ಗಳ ಮಟ್ಟದಲ್ಲಿ ZFS ಡೇಟಾ ಸಮಗ್ರತೆಯನ್ನು ನೋಡಿಕೊಳ್ಳುತ್ತದೆ ಎಂಬುದನ್ನು ಗಮನಿಸುವುದು ಮುಖ್ಯ. ತತ್ಕ್ಷಣದ ಸ್ನ್ಯಾಪ್ಶಾಟ್ಗಳು ಹಾರಾಡುತ್ತಿರುವಾಗ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಬ್ಯಾಕಪ್ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಅನುಕೂಲಕರ ಸೆಲ್ ರಫ್ತು/ಆಮದು ಉಪಕರಣಗಳು ಸೆಲ್ ಪುನರಾವರ್ತನೆಯನ್ನು ಸುಲಭಗೊಳಿಸುತ್ತದೆ.
ಲಭ್ಯತೆ - ಇದು ಐಚ್ಛಿಕವಾಗಿದೆ. ನಿಮ್ಮ ಖ್ಯಾತಿಯ ಮಟ್ಟ ಮತ್ತು ನೀವು ದ್ವೇಷಿಗಳನ್ನು ಹೊಂದಿದ್ದೀರಿ ಎಂಬ ಅಂಶವನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ, ವ್ಯಾಲೆಟ್ ಅನ್ನು TOR ನೆಟ್ವರ್ಕ್ನಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಪ್ರವೇಶಿಸಬಹುದು ಎಂದು ನಾವು ಖಚಿತಪಡಿಸಿದ್ದೇವೆ. ಅಗತ್ಯವಿದ್ದರೆ, ನೀವು ಫೈರ್ವಾಲ್ನಲ್ಲಿ ಎಲ್ಲವನ್ನೂ ನಿರ್ಬಂಧಿಸಬಹುದು ಮತ್ತು ಸುರಂಗಗಳ ಮೂಲಕ ಪ್ರತ್ಯೇಕವಾಗಿ ಸರ್ವರ್ಗೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಬಹುದು (TOR ಅಥವಾ VPN ಮತ್ತೊಂದು ವಿಷಯ). ಹೀಗಾಗಿ, ಸರ್ವರ್ ಅನ್ನು ಹೊರಗಿನ ಪ್ರಪಂಚದಿಂದ ಸಾಧ್ಯವಾದಷ್ಟು ಕಡಿತಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ನಾವು ಮಾತ್ರ ಅದರ ಲಭ್ಯತೆಯ ಮೇಲೆ ಪ್ರಭಾವ ಬೀರಬಹುದು.
ನಿರಾಕರಣೆ ಅಸಾಧ್ಯ - ಮತ್ತು ಇದು ಮುಂದಿನ ಕಾರ್ಯಾಚರಣೆ ಮತ್ತು ಬಳಕೆದಾರರ ಹಕ್ಕುಗಳು, ಪ್ರವೇಶ ಇತ್ಯಾದಿಗಳಿಗೆ ಸರಿಯಾದ ನೀತಿಗಳ ಅನುಸರಣೆಯನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಆದರೆ ಸರಿಯಾದ ವಿಧಾನದೊಂದಿಗೆ, ಎಲ್ಲಾ ಬಳಕೆದಾರ ಕ್ರಿಯೆಗಳನ್ನು ಆಡಿಟ್ ಮಾಡಲಾಗುತ್ತದೆ, ಮತ್ತು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕ್ ಪರಿಹಾರಗಳಿಗೆ ಧನ್ಯವಾದಗಳು, ನಿರ್ದಿಷ್ಟ ಕ್ರಿಯೆಗಳನ್ನು ಯಾರು ಮತ್ತು ಯಾವಾಗ ನಿರ್ವಹಿಸುತ್ತಾರೆ ಎಂಬುದನ್ನು ಅನನ್ಯವಾಗಿ ಗುರುತಿಸಲು ಸಾಧ್ಯವಿದೆ.
ಸಹಜವಾಗಿ, ವಿವರಿಸಿದ ಸಂರಚನೆಯು ಯಾವಾಗಲೂ ಹೇಗೆ ಇರಬೇಕು ಎಂಬುದಕ್ಕೆ ಸಂಪೂರ್ಣ ಉದಾಹರಣೆಯಲ್ಲ, ಆದರೆ ಅದು ಹೇಗೆ ಆಗಿರಬಹುದು ಎಂಬುದಕ್ಕೆ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ, ಆದರೆ ತುಂಬಾ ಹೊಂದಿಕೊಳ್ಳುವ ಸ್ಕೇಲಿಂಗ್ ಮತ್ತು ಗ್ರಾಹಕೀಕರಣ ಆಯ್ಕೆಗಳನ್ನು ಉಳಿಸಿಕೊಂಡಿದೆ.
ಆದರೆ ಪೂರ್ಣ ವರ್ಚುವಲೈಸೇಶನ್ ಬಗ್ಗೆ ಏನು?
cbsd ಬಳಸಿಕೊಂಡು ಪೂರ್ಣ ವರ್ಚುವಲೈಸೇಶನ್ ಬಗ್ಗೆ, ನೀವು ಮಾಡಬಹುದು . ನಾನು ಅದನ್ನು ಕೆಲಸಕ್ಕೆ ಸೇರಿಸುತ್ತೇನೆ bhyve ಕೆಲವು ಕರ್ನಲ್ ಆಯ್ಕೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಬೇಕಾಗಿದೆ.
# cat /etc/rc.conf
...
kld_list="vmm if_tap if_bridge nmdm"
...# cat /boot/loader.conf
...
vmm_load="YES"
...ಹಾಗಾಗಿ ಇದ್ದಕ್ಕಿದ್ದಂತೆ ಡಾಕರ್ ಪ್ರಾರಂಭಿಸುವ ಅವಶ್ಯಕತೆಯಿದ್ದರೆ, ನಾವು ಸ್ವಲ್ಪ ಹೆಚ್ಚಿಸುತ್ತೇವೆ debian ಮತ್ತು ಮುಂದಕ್ಕೆ!

ಅಷ್ಟೇ
ಬಹುಶಃ ನಾನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸಿದ್ದು ಇದನ್ನೇ. ನೀವು ಲೇಖನವನ್ನು ಇಷ್ಟಪಟ್ಟರೆ, ನೀವು ನನಗೆ ಬಿಟ್ಕಾಯಿನ್ಗಳನ್ನು ಎಸೆಯಬಹುದು - . ನೀವು ಕ್ರಿಯೆಯಲ್ಲಿ ಕೋಶಗಳನ್ನು ಪ್ರಯತ್ನಿಸಲು ಮತ್ತು ಕೆಲವು ಬಿಟ್ಕಾಯಿನ್ಗಳನ್ನು ಹೊಂದಲು ಬಯಸಿದರೆ, ನೀವು ನನ್ನ ಗೆ ಹೋಗಬಹುದು .
ಮೂಲ: www.habr.com
