Վերջին մեկ տարվա ընթացքում տվյալների բազաներից բազմաթիվ արտահոսքեր են եղել
Անմիջապես վերապահում անենք, որ մեր պրակտիկայում մենք օգտագործում ենք Elasticsearch՝ տեղեկամատյանները պահելու և տեղեկատվական անվտանգության գործիքների, ՕՀ-ի և ծրագրաշարի մատյանները վերլուծելու համար մեր IaaS հարթակում, որը համապատասխանում է 152-FZ, Cloud-152-ի պահանջներին:
Մենք ստուգում ենք, թե արդյոք տվյալների բազան «կպչում է» ինտերնետին
Արտահոսքի շատ հայտնի դեպքերում (
Նախ՝ զբաղվենք համացանցում հրապարակումներով։ Ինչու է դա տեղի ունենում: Փաստն այն է, որ Elasticsearch-ի ավելի ճկուն աշխատանքի համար
Եթե կարող ես ներս մտնել, ապա վազիր փակելու այն։
Տվյալների բազայի հետ կապի պաշտպանություն
Այժմ մենք այնպես կանենք, որ անհնար լինի միանալ տվյալների շտեմարանին առանց նույնականացման:
Elasticsearch-ն ունի նույնականացման մոդուլ, որը սահմանափակում է մուտքը տվյալների բազա, սակայն այն հասանելի է միայն վճարովի X-Pack հավելվածի հավաքածուում (1 ամիս անվճար օգտագործում):
Լավ նորությունն այն է, որ 2019-ի աշնանը Amazon-ը բացեց իր զարգացումները, որոնք համընկնում են X-Pack-ի հետ: Տվյալների շտեմարանին միանալու ժամանակ նույնականացման գործառույթը հասանելի է դարձել Elasticsearch 7.3.2 տարբերակի անվճար լիցենզիայի ներքո, իսկ Elasticsearch 7.4.0-ի նոր թողարկումն արդեն մշակվում է:
Այս plugin-ը հեշտ է տեղադրել: Գնացեք սերվերի վահանակ և միացրեք պահեստը.
RPM-ի վրա հիմնված.
curl https://d3g5vo6xdbdb9a.cloudfront.net/yum/opendistroforelasticsearch-artifacts.repo -o /etc/yum.repos.d/opendistroforelasticsearch-artifacts.repo
yum update
yum install opendistro-security
DEB-ի վրա հիմնված.
wget -qO ‐ https://d3g5vo6xdbdb9a.cloudfront.net/GPG-KEY-opendistroforelasticsearch | sudo apt-key add -
SSL-ի միջոցով սերվերների միջև փոխգործակցության կարգավորում
Փլագինը տեղադրելիս տվյալների բազայի հետ միացող պորտի կոնֆիգուրացիան փոխվում է։ Այն հնարավորություն է տալիս SSL կոդավորումը: Որպեսզի կլաստերային սերվերները շարունակեն աշխատել միմյանց հետ, դուք պետք է կարգավորեք նրանց միջև փոխազդեցությունը SSL-ի միջոցով:
Հյուրերի միջև վստահությունը կարող է հաստատվել սեփական վկայականի լիազորությամբ կամ առանց դրա: Առաջին մեթոդով ամեն ինչ պարզ է, պարզապես անհրաժեշտ է կապ հաստատել CA մասնագետների հետ: Անցնենք ուղիղ երկրորդին։
- Ստեղծեք փոփոխական ամբողջ տիրույթի անունով.
export DOMAIN_CN="example.com"
- Ստեղծեք անձնական բանալի.
openssl genrsa -out root-ca-key.pem 4096
- Ստորագրեք արմատային վկայագիրը: Պահպանեք այն ապահով. եթե այն կորչում է կամ վտանգված է, ապա բոլոր հյուրընկալողների միջև վստահությունը պետք է վերակարգավորվի:
openssl req -new -x509 -sha256 -subj "/C=RU/ST=Moscow/O=Moscow, Inc./CN=${DOMAIN_CN}" -key root-ca-key.pem -out root-ca.pem
- Ստեղծեք ադմինիստրատորի բանալի.
openssl genrsa -out admin-key-temp.pem 4096 openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem
- Ստեղծեք վկայագիրը ստորագրելու հարցում.
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${DOMAIN_CN}/CN=admin " -key admin-key.pem -out admin.csr
- Ստեղծեք ադմինիստրատորի վկայագիր.
openssl x509 -req -extensions usr_cert -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem
- Ստեղծեք վկայագրեր Elasticsearch հանգույցի համար.
export NODENAME="node-01" openssl genrsa -out ${NODENAME}-key-temp.pem 4096 openssl pkcs8 -inform PEM -outform PEM -in ${NODENAME}-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out ${NODENAME}-key.pem
- Ստեղծեք ստորագրության հարցում.
openssl req -new -subj "/C=RU/ST=Moscow/O=Moscow Inc./CN=${NODENAME}.${DOMAIN_CN}" -addext"subjectAltName=DNS:${NODENAME}.${DOMAIN_CN},DNS:www.${NODENAME}.${DOMAIN_CN}" -key ${NODENAME}-key.pem -out ${NODENAME}.csr
- Վկայագրի ստորագրում.
openssl x509 -req -in node.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node.pem
- Տեղադրեք վկայագիրը Elasticsearch հանգույցների միջև հետևյալ թղթապանակում.
/etc/elasticsearch/
մեզ անհրաժեշտ են ֆայլեր.node-01-key.pem node-01.pem admin-key.pem admin.pem root-ca.pem
- Տեղադրելով այն /etc/elasticsearch/elasticsearch.yml – փոխել վկայագրերով ֆայլերի անվանումը մեր կողմից ստեղծվածների՝
opendistro_security.ssl.transport.pemcert_filepath: node-01.pem opendistro_security.ssl.transport.pemkey_filepath: node-01-key.pem opendistro_security.ssl.transport.pemtrustedcas_filepath: root-ca.pem opendistro_security.ssl.transport.enforce_hostname_verification: false opendistro_security.ssl.http.enabled: true opendistro_security.ssl.http.pemcert_filepath: node-01.pem opendistro_security.ssl.http.pemkey_filepath: node-01-key.pem opendistro_security.ssl.http.pemtrustedcas_filepath: root-ca.pem opendistro_security.allow_unsafe_democertificates: false opendistro_security.allow_default_init_securityindex: true opendistro_security.authcz.admin_dn: − CN=admin,CN=example.com,O=Moscow Inc.,ST=Moscow,C=RU opendistro_security.nodes_dn: − CN=node-01.example.com,O=Moscow Inc.,ST=Moscow,C=RU
Ներքին օգտագործողների գաղտնաբառերի փոփոխություն
- Օգտագործելով ստորև նշված հրամանը, մենք մուտքագրում ենք գաղտնաբառի հեշը վահանակ.
sh ${OD_SEC}/tools/hash.sh -p [пароль]
- Փոխեք ֆայլի հեշը ստացվածի.
/usr/share/elasticsearch/plugins/opendistro_security/securityconfig/internal_users.yml
ՕՀ-ում firewall-ի կարգավորում
- Թույլ տալ, որ firewall-ը գործարկվի.
systemctl enable firewalld
- Եկեք գործարկենք այն.
systemctl start firewalld
- Թույլատրել միացումը Elasticsearch-ին.
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- Վերբեռնեք firewall-ի կանոնները.
firewall-cmd --reload
- Ահա աշխատանքային կանոնները.
firewall-cmd --list-all
Մեր բոլոր փոփոխությունները կիրառելով Elasticsearch-ում
- Ստեղծեք փոփոխական՝ դեպի թղթապանակ տանող ամբողջ ճանապարհով plugin-ով.
export OD_SEC="/usr/share/elasticsearch/plugins/opendistro_security/"
- Եկեք գործարկենք սկրիպտ, որը կթարմացնի գաղտնաբառերը և կստուգի կարգավորումները.
${OD_SEC}/tools/securityadmin.sh -cd ${OD_SEC}/securityconfig/ -icl -nhnv -cacert /etc/elasticsearch/root-ca.pem -cert /etc/elasticsearch/admin.pem -key /etc/elasticsearch/admin-key.pem
- Ստուգեք, արդյոք փոփոխությունները կիրառվել են.
curl -XGET https://[IP/Имя Elasticsearch]:9200/_cat/nodes?v -u admin:[пароль] --insecure
Այսքանը, սրանք այն նվազագույն կարգավորումներն են, որոնք պաշտպանում են Elasticsearch-ը չարտոնված միացումներից:
Source: www.habr.com