แสดงบทความที่มีป้ายกำกับ docker แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ docker แสดงบทความทั้งหมด

23/03/2566

วิธีการติดตั้ง Grafana และเชื่อมต่อ Grafana กับ Prometheus

 



        วันนี้เราจะมาสอนติดตั้ง Grafana ซึ่ง Grafana คือ Dashboard tools ที่จะแสดงผลออกมาเป็นกราฟหรือแผนภูมิ และมีฟังก์ชั่นการแจ้งเตือนสำหรับเว็บ ในการที่จะใช้งาน Grafana จะต้องมี Data source เช่น prometheus, postgreSQL ในบทความนี้เราจะใช้ prometheus ซึ่งได้เคยสอนติดตั้งไปแล้วในบทความ ทดลองใช้ Plugin ใน Konga สำหรับใครที่ยังไม่ได้ติดตั้งสามารถเข้าไปดูได้ในลิ้งค์

        ในการติดตั้ง Grafana เริ่มจากการเปิด Ubuntu ขึ้นมาแล้วใช้คำสั่งด้านล่างในการดึง grafana/grafana มาที่ image ใน Docker
 docker pull grafana/grafana-oss

             จากนั้นใช้คำสั่งด้านล่างเพื่อสร้างและเริ่มต้นการทำงานของ container 

    docker run -d --name=grafana -p 3000:3000 grafana/grafana-oss

               เมื่อทำการติดตั้งเสร็จให้เข้าไปที่ localhost:3000 จะได้ผลลัพธ์ตามรูปด้านล่าง username และ password เริ่มต้นคือ admin เมื่อทำการ login เสร็จจะมีให้ตั้งค่า password


              เมื่อตั้งค่า password เสร็จจะเข้ามาที่หน้าหลักให้เลือก Data Source จากนั้นเลือก Time series database เป็น Prometheus ทำการใส่ url ของ prometheus ซึ่งสามารถใส่ตามรูปด้านล่างได้เลย หลังจากที่ใส่ url เสร็จให้กดปุ่ม save & test ที่อยู่ด้านล่างถ้าเชื่อมต่อสำเร็จจะขึ้นว่า Data source is working





              หลังจากที่ทำการเพิ่ม data source เสร็จให้ลองไปที่เมนู Dashboards แล้วเลือกไปที่ new จะมี drop down ลงมาให้เลือก import แล้วใส่โค้ด 7242 ซึ่งเป็น Dashboards official ของ Kong


              เมื่อทำการ import เสร็จจะมีกราฟต่างๆขึ้นมา


      22/03/2566

      วิธีการติดตั้ง KONGA บน Docker

       


              วันนี้เราจะมาสอนการติดตั้ง Konga บน Docker กัน โดยการที่จะใช้ Konga นั้นจำเป็นที่จะต้องมี Kong เพราะ Konga เป็น GUI ให้ Kong สำหรับคนที่ไม่อยากใช้ Command line ซึ่งหากใครที่ยังไม่ได้ติดตั้ง Kong สามารถเข้าไปดูวิธีการติดตั้งตามลิ้งนี้ได้เลย Kong

              ในการติดตั้ง Konga เริ่มจากการเปิด Ubuntu ขึ้นมาและทำการใช้คำสั่งตามด้านล่างเพื่อดึง pantsel/konga มาที่ image
       docker pull pantsel/konga

                จากนั้นใช้คำสั่งตามด้านล่างเพื่อสร้างและเริ่มต้นการทำงานของ container ตรงส่วนของ network ให้เปลี่ยนเป็น kong-net และบรรทัด token_secret สามารถตัดออกได้

        docker run -p 1337:1337 \
          --network {{kong-network}} \ //optional
          --name konga \
          -e "NODE_ENV=production" \ // or "development" | defaults to 'development'
          -e "TOKEN_SECRET={{somerandomstring}}" \
          pantsel/konga
                หลังจากที่ทำการติดตั้ง Konga เสร็จให้เข้าไปที่ localhost:1337 จะได้ผลลัพธ์ตามรูปด้านล่าง


                เมื่อสร้าง account admin เสร็จและทำการ login จะพบกับหน้าหลักให้ทำการเชื่อมต่อกับ Kong โดยสามารถใส่ชื่อกับ url ตามรูปด้านล่างได้เลย


                เมื่อเชื่อมต่อสำเร็จจะแสดงเป็นหน้า dashboard 


                ทดลองสร้าง service/route ทางเมนูด้านซ้ายให้กดไปที่ services และกด add new sevice เพื่อที่จะสร้าง service ใหม่


                หลังจากกด add new service ก็จะพบกับหน้า create service ให้ทำการใส่ชื่อและ url โดยในส่วนของ host ให้ใช้เป็น ip address ของเครื่อง สามารถเข้าไปดูได้โดยการเข้าไปที่ command prompt และใช้คำสั่ง ipconfig 


                 เมื่อสร้าง service เสร็จให้กดเข้าไปที่ชื่อ service ที่สร้าง เมื่อกดเข้าไปจะพบกับรายละเอียดของ service ซึ่งในนี้เราสามารถที่จะแก้ไขได้ ในเมนูด้านซ้ายมือให้กดเข้าไปที่ routes หลังจากนั้นให้กดเข้าไปที่ add new route 




                หลังจากกด add route ก็จะพบหน้ารายละเอียดของ route ที่เราจะสร้างให้ทำการใส่ชื่อและ  path แต่ในส่วนของ paths ต้องกด enter ด้วยหลังจากพิมพ์เสร็จ เมื่อใส่รายละเอียดเสร็จก็ทำการกด submit route


                เมื่อทำการสร้าง route เสร็จก็มาลองเรียกใช้ route ดูโดย port ที่จะใช้คือ 8000 แล้วตามด้วย path ที่ตั้งเอาไว้ใน route ก็จะได้ผลลัพธ์ตามภาพด้านล่าง




        วิธีการติดตั้ง KONG บน Docker

             


                วันนี้เราจะมาสอนการติดตั้ง Kong ในแต่ละขั้นตอน โดยที่ในคอมพิวเตอร์ที่จะทำการติดตั้ง Kong จะต้อง ติดตั้ง Docker และ Ubuntu สำหรับ Window เอาไว้ก่อนแล้ว ในส่วนของการทดสอบ Kong ต้องมี api ที่จะเตรียมไว้ทดสอบด้วย

                ในการเริ่มต้นติดตั้งให้ทำการเปิด Ubuntu ขึ้นมาทำการสร้าง docker network เพื่อที่จะให้ container ใน docker สามารถสื่อสารกันได้โดยใช้คำสั่งตามด้านล่าง

         docker network create kong-net

                ขั้นต่อมาทำการสร้างฐานข้อมูลสำหรับ Kong โดยในบทความนี้จะใช้เป็น postgreSQL สามารถนำคำสั่งที่อยู่ด้านล่างนี้ไปใช้ได้เลย

         docker run -d --name kong-database \  --network=kong-net \
          -p 5432:5432 \
          -e "POSTGRES_USER=kong" \
          -e "POSTGRES_DB=kong" \
          -e "POSTGRES_PASSWORD=kongpass" \
          postgres:13

                ใช้คำสั่งตามด้านล่างเพื่อเตรียมฐานข้อมูลให้ Kong

         docker run --rm --network=kong-net \ -e "KONG_DATABASE=postgres" \
         -e "KONG_PG_HOST=kong-database" \
         -e "KONG_PG_PASSWORD=kongpass" \
         kong kong migrations bootstrap
                  ในขั้นตอนสุดท้ายใช้คำสั่งตามด้านล่างสร้างและเริ่มต้นการทำงาน container ของ Kong
           docker run -d --name kong-gateway \
            --network=kong-net \
            -e "KONG_DATABASE=postgres" \
            -e "KONG_PG_HOST=kong-database" \
            -e "KONG_PG_USER=kong" \
            -e "KONG_PG_PASSWORD=kongpass" \
            -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
            -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
            -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
            -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
            -e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \
            -p 8000:8000 \
            -p 8443:8443 \
            -p 127.0.0.1:8001:8001 \
            -p 127.0.0.1:8444:8444 \
            kong

                  หลังจากติดตั้ง Kong เสร็จก็ลองทดสอบว่า Kong สามารถใช้งานได้มั้ยโดยลองส่ง request ตาม url ที่อยู่ด้านล่าง ในบทความนี้จะใช้ postman ในการส่ง request โดยที่ port 8001 จะเป็น port ของ admin ใช้สำหรับการ config

           http://localhost:8001/services
                    จะได้ผลลัพธ์ตามรูปด้านล่าง

            11/11/2565

            พบผู้ไม่ประสงค์ดีทำการโจมตีแบบ Cryptojacking ไปยัง Docker และ Kubernetes


                ทาง Crowd Strike พบการโจมตีรูปแบบใหม่ ชื่อ Kiss-a-dog โดยผู้ไม่ประสงค์ดี ได้กำหนดเป้าการโจมตีไปยัง Docker และ Kubernetes ที่มีช่องโหว่ เพื่อติดตั้งเครื่องขุดสกุลเงินดิจิตอล
            Cryptojacking คืออะไร? 
                Cryptojacking เป็นการโจมตีประเภทหนึ่งที่ผู้ไม่ประสงค์ดีใช้คอมพิวเตอร์ของผู้ใช้งาน  เพื่อขุดหาสกุลเงินดิจิทัลโดยไม่ได้รับอนุญาต สิ่งนี้สามารถเกิดขึ้นได้เมื่อผู้ใช้งานเข้าเยี่ยมชมเว็บไซต์ ที่เป็นอันตราย มีการฝั่งมัลแวร์ หรือคลิกโฆษณาที่เป็นอันตราย ซึ่งอาจทำให้คอมพิวเตอร์ของผู้ใช้งานทำงานช้าลง  นอกจากนี้ในบางกรณีอาจทำให้คอมพิวเตอร์ของผู้ใช้งานเกิดความเสียหายได้


                ในเดือนกันยายน พ.ศ. 2565 ทาง CrowdStrike ได้ตรวจพบการโจมตีหลายเหตุการณ์ที่เกี่ยวข้องกับการโจมตีต่อช่องโหว่ ซึ่งผู้เชี่ยวชาญเปิดเผยว่า Docker API และคอนเทนเนอร์ของ Docker  ที่ถูกโจมตีนั้นเป็นจุดเริ่มต้นในการทริกเกอร์ Payload ที่เป็นคำสั่ง Python ซึ่งมีหน้าที่ในการดาวน์โหลด Payload t.sh จากโดเมนชื่อ kissa-dogtop และนั่นเป็นเหตุผลที่การโจมตีดังกล่าวมีชื่อว่า Kiss-a-dog นอกจากนี้ยังสามารถติดตั้ง Payload แบบ Cron job เพิ่มได้อีกด้วย 
                การสแกนเครือข่ายทำได้โดยการเข้ารหัสไฟล์โค้ด C/C++ และฝังเป็นสตริง Base64 ลงในสคริปต์ เมื่อเป็น runtime ผู้ไม่ประสงค์ดีจะถอดรหัสสตริง Base64 เป็นเอกสาร .tar ที่มีรหัสสำหรับ rootkits Diamorphine และจะทำการคอมไพล์โดยใช้ GCC เพื่อสร้างไฟล์ “diamorphin.ko” ที่ถูกโหลดเป็นโมดูลเคอร์เนลผ่านคำสั่ง insmod ผู้ไม่ประสงค์ดีใช้ rootkits Diamorphine และ libprocesshide  เพื่อซ่อน Process จากผู้ใช้งานผู้ไม่ประสงค์ดีจะซ่อนที่อยู่ของกระเป๋าเงินดิจิตอลโดยใช้โดเมน “lovea-dogtop” และ “toucha-dogtop” เป็นเซิร์ฟเวอร์และจะทำการปลอมไฟล์ XMRig เป็นไฟล์ต่าง ๆ อีกทั้งผู้ไม่ประสงค์ดีจะติดตั้ง service เพื่อเรียกใช้ไบนารีเป็น “cmake.service”
                วัตถุประสงค์ของการโจมตีครั้งนี้ คือ การขุดหาสกุลเงินดิจิตอล cryptocurrency และใช้ rootkit ของเคอร์เนล เพื่อหลีกเลี่ยงการตรวจจับจากระบบรักษาความปลอดภัย ด้วยเหตุนี้ ผู้ไม่ประสงค์ดีจึงอาศัย ซอฟต์แวร์ XMRig ในการขุด อีกวัตถุประสงค์หนึ่งที่อยู่เบื้องหลังการโจมตีครั้งนี้คือการกำหนดเป้าการโจมตี ไปยัง Docker และ Redis ที่มีช่องโหว่ให้ได้มากที่สุด ผู้ไม่ประสงค์จะดาวน์โหลดหรือคอมไพล์เครื่องสแกนเครือข่าย เช่น Masscan, pnscan และ zgrab บนคอนเทนเนอร์ที่ถูกโจมตี ซึ่งเครื่องมือเหล่านี้จะสุ่มสแกน IP บนอินเทอร์เน็ต เพื่อตรวจหาอินสแตนซ์ของเซิร์ฟเวอร์ Docker และ Redis ที่มีช่องโหว่

            คำแนะนำ
            หลีกเลี่ยงการโหลดไฟล์หรือคลิกโฆษณาจากเว็บไซต์ที่เป็นอันตรายหรือเว็บที่มีการ Redirect ไปยังเว็บอื่น
            ทำการปิดการใช้งาน Port ที่ไม่จำเป็นเพื่อลดช่องทาง และความเสี่ยงที่อาจถูกการโจมตี
            ทำการ Block IP Address แปลก ๆ หรือที่ตรวจสอบแล้วว่ามีความอันตราย ทั้งขาใน และ ขานอก ที่ Firewall เพื่อป้องกันการเชื่อมต่อเข้ามายังเครือข่ายภายในองค์กร
            ติดตั้ง Endpoint และ Update Signature ก่อนทำการ Full-Scan อย่างน้อย 1 ครั้งต่อสัปดาห์
            ลบโปรแกรมที่ไม่ได้รับอนุญาตให้ใช้งาน หรือ Plug-in อื่น ๆ ภายในเครื่องออก
            ลบโปรแกรมของ Process หรือ Service ที่มีการใช้งานทรัพยากรคอมพิวเตอร์สูงผิดปกติ
            อัปเดตซอฟต์แวร์ให้เป็นเวอร์ชันล่าสุด

            Ref: BleepingComputer