Өнгөрсөн нэг жилийн хугацаанд мэдээллийн сан алдагдсан олон тохиолдол гарсан. (, и ). Ихэнх тохиолдолд мэдээллийн сан нь хувийн мэдээллийг агуулж байсан. Хэрэв администраторууд мэдээллийн баазыг байршуулсны дараа цөөн хэдэн энгийн тохиргоог шалгах цаг гаргасан бол эдгээр алдагдлаас зайлсхийх боломжтой байсан. Бид өнөөдөр тэдгээрийг хэлэлцэх болно.
Бид практик дээрээ Elasticsearch-ийг Холбооны хуулийн 152 дугаарт заасан шаардлагад нийцсэн IaaS платформ болох Cloud-152 платформ дээр мэдээллийн аюулгүй байдлын хэрэгсэл, үйлдлийн систем, программ хангамжийн бүртгэлийг хадгалах, дүн шинжилгээ хийхэд ашигладаг гэдгийг нэн даруй тодруулъя.

Бид мэдээллийн сан интернетэд "наалдсан" эсэхийг шалгадаг
Ихэнх мэдэгдэж байгаа гоожсон тохиолдлуудад (, ) Халдагчид өгөгдөлд хялбар бөгөөд хялбархан нэвтэрч чадсан: мэдээллийн сан нь интернетэд нийтлэгдсэн бөгөөд түүнийг баталгаажуулахгүйгээр хандах боломжтой.
Эхлээд вэб дээр нийтлэхийг харцгаая. Яагаад ийм зүйл болдог вэ? Elasticsearch нь илүү уян хатан ажиллах зориулалттай. Гурван серверийн кластер үүсгэ. Өгөгдлийн сангууд хоорондоо холбогдохын тулд портуудыг нээх шаардлагатай. Үүний үр дүнд администраторууд мэдээллийн санд хандах хандалтыг ямар ч байдлаар хязгаарладаггүй бөгөөд та хаанаас ч холбогдох боломжтой. Өгөгдлийн санд гадны хандалтыг шалгах нь хялбар байдаг. Зүгээр л хөтөч дээрээ [тодорхойгүй] гэж оруулна уу. http://[IP/Имя Elasticsearch]:9200/_cat/nodes?v
Ороод амжвал гүйгээд хаах хэрэгтэй.
Өгөгдлийн сангийн холболтыг хамгаалах
Одоо үүнийг баталгаажуулалтгүйгээр мэдээллийн санд холбогдох боломжгүй болгоё.
Elasticsearch нь мэдээллийн санд хандах хандалтыг хязгаарласан баталгаажуулалтын модультай боловч энэ нь зөвхөн төлбөртэй X-Pack залгаасын багцад байдаг (1 сар үнэгүй).
Сайн мэдээ гэвэл 2019 оны намар Амазон өөрийн ажлыг нээлттэй эх сурвалжаар хийсэн нь X-Pack-тай давхцаж байна. Өгөгдлийн сангийн баталгаажуулалтын функцийг Elasticsearch 7.3.2-д зориулсан нээлттэй лицензийн дагуу ашиглах боломжтой болсон бөгөөд Elasticsearch 7.4.0-д зориулсан шинэ хувилбар аль хэдийн ажиллаж байна.
Энэ залгаасыг суулгах нь маш энгийн. Зүгээр л серверийн консол руу очоод репозитортой холбогдоно уу:
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
Үйлдлийн систем дэх галт ханыг тохируулах
- Галт ханыг ажиллуулахыг зөвшөөрнө үү:
systemctl enable firewalld - Үүнийг эхлүүлцгээе:
systemctl start firewalld - Elasticsearch-д холбогдохыг зөвшөөрөх:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent - Галт ханын дүрмийг дахин ачаалах:
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-тай зөвшөөрөлгүй холболт хийхээс сэргийлдэг хамгийн бага тохиргоо юм.
Эх сурвалж: www.habr.com
