గత సంవత్సరంలో, డేటాబేస్ నుండి చాలా లీక్లు జరిగాయి
మా ఆచరణలో 152-FZ, Cloud-152 అవసరాలకు అనుగుణంగా ఉండే మా IaaS ప్లాట్ఫారమ్లో లాగ్లను నిల్వ చేయడానికి మరియు సమాచార భద్రతా సాధనాలు, OS మరియు సాఫ్ట్వేర్ లాగ్లను విశ్లేషించడానికి మేము ఎలాస్టిక్సెర్చ్ని ఉపయోగిస్తాము అని వెంటనే రిజర్వేషన్ చేద్దాం.
డేటాబేస్ ఇంటర్నెట్కు "అవుట్" అని మేము తనిఖీ చేస్తాము
చాలా తెలిసిన సందర్భాల్లో లీక్లు (
మొదట, ఇంటర్నెట్లో ప్రచురించడాన్ని పరిశీలిద్దాం. ఇది ఎందుకు జరుగుతుంది? వాస్తవం ఏమిటంటే సాగే శోధన యొక్క మరింత సౌకర్యవంతమైన ఆపరేషన్ కోసం
మీరు ప్రవేశించగలిగితే, దాన్ని మూసివేయడానికి పరుగెత్తండి.
డేటాబేస్కు కనెక్షన్ను రక్షించడం
ధృవీకరణ లేకుండా డేటాబేస్కు కనెక్ట్ చేయడం అసాధ్యం కాబట్టి ఇప్పుడు మేము దీన్ని చేస్తాము.
ఎలాస్టిక్సెర్చ్ డేటాబేస్కు ప్రాప్యతను పరిమితం చేసే ప్రామాణీకరణ మాడ్యూల్ను కలిగి ఉంది, అయితే ఇది చెల్లింపు X-ప్యాక్ ప్లగ్ఇన్ సెట్లో మాత్రమే అందుబాటులో ఉంటుంది (1 నెల ఉచిత ఉపయోగం).
శుభవార్త ఏమిటంటే, 2019 చివరలో, అమెజాన్ దాని అభివృద్ధిని ప్రారంభించింది, ఇది X-ప్యాక్తో అతివ్యాప్తి చెందుతుంది. డేటాబేస్కు కనెక్ట్ చేస్తున్నప్పుడు ప్రామాణీకరణ ఫంక్షన్ వెర్షన్ 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
- సాగే శోధన నోడ్ కోసం ప్రమాణపత్రాలను సృష్టించండి:
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
- కింది ఫోల్డర్లో సాగే శోధన నోడ్ల మధ్య ప్రమాణపత్రాన్ని ఉంచండి:
/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
OSలో ఫైర్వాల్ని సెటప్ చేస్తోంది
- ఫైర్వాల్ను ప్రారంభించడానికి అనుమతించండి:
systemctl enable firewalld
- దీన్ని ప్రారంభిద్దాం:
systemctl start firewalld
- సాగే శోధనకు కనెక్షన్ని అనుమతించండి:
firewall-cmd --set-default-zone work firewall-cmd --zone=work --add-port=9200/TCP --permanent
- ఫైర్వాల్ నియమాలను మళ్లీ లోడ్ చేయండి:
firewall-cmd --reload
- ఇక్కడ పని నియమాలు ఉన్నాయి:
firewall-cmd --list-all
మా మార్పులన్నీ సాగే శోధనకు వర్తింపజేయడం
- ప్లగ్ఇన్తో ఫోల్డర్కు పూర్తి మార్గంతో వేరియబుల్ను సృష్టించండి:
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
అంతే, అనధికార కనెక్షన్ల నుండి సాగే శోధనను రక్షించే కనీస సెట్టింగ్లు ఇవి.
మూలం: www.habr.com