<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Panupong Chantaklang</title>
    <description>The latest articles on DEV Community by Panupong Chantaklang (@nancom).</description>
    <link>https://dev.to/nancom</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F306073%2Fe9b28a88-0a7e-40d3-945d-cab45410c715.jpeg</url>
      <title>DEV Community: Panupong Chantaklang</title>
      <link>https://dev.to/nancom</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nancom"/>
    <language>en</language>
    <item>
      <title>มาเปลี่ยน admin password ให้กับ opensearch docker กันเถอะ</title>
      <dc:creator>Panupong Chantaklang</dc:creator>
      <pubDate>Sat, 16 Apr 2022 10:25:45 +0000</pubDate>
      <link>https://dev.to/nancom/maaepliiyn-admin-password-aihkab-opensearch-docker-kanetha-5e2c</link>
      <guid>https://dev.to/nancom/maaepliiyn-admin-password-aihkab-opensearch-docker-kanetha-5e2c</guid>
      <description>&lt;p&gt;    เนื่องด้วยตอนนี้จะทำอะไรแต่ละอย่างก็พยายามใช้ Docker เป็นหลักเพื่อความสะดวก ในทั้งตอน Develop → UAT → Produciton จะได้ไปในท่าเดียวกันได้ทั้งหมด&lt;/p&gt;

&lt;p&gt;    และมีโจทย์ที่จะ implement log server ขึ้นมาอีกตัว เลยนั่งนึกๆดู ปกติเรา Search มา log อะไรมันก็เป็น Text Base Search ดังนั้นตัวที่เหมาะๆในการใช้งานน่าะเป็น Elastics Search Stack นี่แหละที่เหมาะที่สุด แต่ Elastics Search ก็ดันเปลี่ยน license ไปซะแล้ว ไหนๆก็ไหนๆ ใช้ ตัว Open Search เลยดีกว่า&lt;/p&gt;

&lt;p&gt;    ซึ่งไปหาดูใน Website ของ Open Search  ก็แสนจะง่าย &lt;/p&gt;

&lt;p&gt;&lt;a href="https://opensearch.org/docs/latest/opensearch/install/docker/#run-the-image" rel="noopener noreferrer"&gt;https://opensearch.org/docs/latest/opensearch/install/docker/#run-the-image&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$docker&lt;/span&gt; run &lt;span class="nt"&gt;-p&lt;/span&gt; 9200:9200 &lt;span class="nt"&gt;-p&lt;/span&gt; 9600:9600 &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="s2"&gt;"discovery.type=single-node"&lt;/span&gt; opensearchproject/opensearch:1.3.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run command ง่ายๆ แบบนี้เอง หลังจาก container up ขึ้นมาแล้วก็ ทดสอบง่ายๆ ว่าสามารถใช้งานได้่ไหม โดยคำสั่ง&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$curl -XGET https://localhost:9200 -u 'admin:admin' --insecure
$curl -XGET https://localhost:9200/_cat/nodes?v -u 'admin:admin' --insecure
$curl -XGET https://localhost:9200/_cat/plugins?v -u 'admin:admin' --insecure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ได้ response มาก็จะพบว่าใช้งานได้ละ &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;แต่ !!!!!!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;    สังเกตอะไรไหมครับ Username และ Password มันช่างง่ายดายเสียนี่กระไร หากมีใครล่วงรู้ก็สามารถมาทำอะไรๆกับ Open Search ของเราได้ล่ะสิ ​ดังนั้นควรจะเปลี่ยนมันซะเพื่อป้องกันการเข้าถึงที่ง่ายเกินไประดับนึง&lt;/p&gt;

&lt;p&gt;    ดังนั้นจึงต้องไปแสดงหาวิธีการในการแก้ไข password ของ admin อย่างง่ายๆเพื่อไม่ให้เปลืองพลังงานชีวิตจนเกินไป ก็พบทางสว่าง จาก &lt;a href="https://sysopspro.com/how-to-reset-elasticsearch-opendistro-admin-password/" rel="noopener noreferrer"&gt;link&lt;/a&gt; นี้ที่เค้าทำการเปลี่ยน password admin ของ Elastics Search บน Open Distro &lt;br&gt;&lt;/p&gt;

&lt;p&gt;    ดังนั้นมาลองกันเลยครับ&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ตรวจสอบเสียก่อนว่า container ที่เรารันชื่ออะไรจะได้เข้าไปจัดการได้ถูก run คำสั่งนี้ได้เลย
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$docker ps -a
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ก็จะเจอ&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS                      PORTS                                                                NAMES
9ce2cb3a905c   opensearchproject/opensearch:1.3.1    "./opensearch-docker…"   42 minutes ago   Up 42 minutes               0.0.0.0:9200-&amp;gt;9200/tcp, 9300/tcp, 0.0.0.0:9600-&amp;gt;9600/tcp, 9650/tcp   zen_lamarr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;เจอแล้วก็เข้าไปข้างใน container เพื่อจัดการครับ
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$docker exec -it {ชื่อ container ที่ต้องการ} /bin/bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;ก็จะเข้ามาใน terminal ของ docker ได้แล้ว
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[opensearch@9ce2cb3a905c ~]$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;คราวนี้ก็พร้อมให้เราจัดการแล้วครับ&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ขั้นแรกจัดการสร้าง hash ของ password ใหม่เสียก่อน ด้วยคำสั่งนี้
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[opensearch@9ce2cb3a905c ~]$ /usr/share/opensearch/plugins/opensearch-security/tools/hash.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ระบบก็จะขึ้น Prompt [Password:] เพื่อให้เราป้อนค่าที่ต้องการครับแล้วมันจะ Hash ให้เราเลยแบบนี้&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[opensearch@9ce2cb3a905c ~]$ /usr/share/opensearch/plugins/opensearch-security/tools/hash.sh
[Password:]
$2y$12$L3hqnOTHLUTa1M9MCwboZ.74PHhcKsnzix2Tv34308U7qi11f2Uw6
[opensearch@9ce2cb3a905c ~]$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;จากนั้นตามหา file internal_users.yml เพื่อแก้ไข password ของ admin ซึ่งมันจะอยู่ที่
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/usr/share/opensearch/plugins/opensearch-security/securityconfig/internal_users.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ยังดีครับ image นี้มี  vi ให้เราใช้แก้ไข file ได้ บาง image เอาออกเกลี้ยงจะทำอะไรทีต้อง eho ทับมันก็จะรันทดหน่อยๆ &lt;br&gt;&lt;/p&gt;

&lt;p&gt;ก็จัดการมันครับ&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$vi /usr/share/opensearch/plugins/opensearch-security/securityconfig/internal_users.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;จะพบ section hash กันต่อหน้าต่อตาเลยทีเดียว&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Define your internal users here

## Demo users

admin:
  hash: "$2y$12$/yozwRC7sWQMzj.O3s5wvOR12gm9KpDgpMtxEypUTgcmlRnbpZtay"
  reserved: true
  backend_roles:
  - "admin"
  description: "Demo admin user"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;copy hash ที่เราได้มาใหม่ทับเลยครับ แต่ยังไม่จบ เมื่อเปลี่ยนแล้วต้องให้มันรู้จักครับว่าเปลี่ยน&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run Command นี้เข้าไป
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$cd /usr/share/opensearch/plugins/opensearch-security/tools
$./securityadmin.sh -cd ../securityconfig/ -icl -nhnv -cacert /usr/share/opensearch/config/root-ca.pem  -cert /usr/share/opensearch/config/kirk.pem -key /usr/share/opensearch/config/kirk-key.pem
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;เป็นอันเรียบร้อยครับ &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ลองทดสอบดูด้วย user / password เดิมจะพบว่าใช้ไม่ได้แล้ว
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$curl -XGET https://localhost:9200 -u 'admin:admin' --insecure
$Unauthorized
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;br&gt;&lt;br&gt;
แต่เมื่อทดสอบด้วย password ใหทม่&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;curl -XGET https://localhost:9200 -u 'admin:password' --insecure
{
  "name" : "9ce2cb3a905c",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "L4yL5lc1SMOVrmPty8msOA",
  "version" : {
    "distribution" : "opensearch",
    "number" : "1.3.1",
    "build_type" : "tar",
    "build_hash" : "c4c0672877bf0f787ca857c7c37b775967f93d81",
    "build_date" : "2022-03-29T18:35:30.372094Z",
    "build_snapshot" : false,
    "lucene_version" : "8.10.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ก็จะพบว่าใช้ได้แล้วตามปกติ &lt;br&gt;&lt;/p&gt;

&lt;p&gt;เป็นอันว่าจบไปครับกับการเปลี่ยน admin password ของ opensearch อย่างง่าย(ตรงไหน) เผื่อใครจะเอาไปใช้นะครับ  &lt;/p&gt;

</description>
      <category>docker</category>
      <category>opensearch</category>
    </item>
  </channel>
</rss>
