<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on bienkma's website</title><link>https://bienkma.github.io/posts/</link><description>Recent content in Posts on bienkma's website</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Fri, 29 Aug 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://bienkma.github.io/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>Bamboo Firewall — Policy as Code cho on-premise</title><link>https://bienkma.github.io/posts/2025/bamboo-firewall/</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate><guid>https://bienkma.github.io/posts/2025/bamboo-firewall/</guid><description>&lt;h1 id="đặt-vấn-đề"&gt;Đặt vấn đề&lt;/h1&gt;
&lt;p&gt;Trong suốt thời gian làm việc với vai trò là SystemAdmin hoặc DevOps Engineer cho các hệ thống dưới on-premise tôi gặp rất nhiều vấn đề liên quan tới việc làm sao để thiết lập chính sách bảo mật cho các máy chủ Linux mình quản lý. Hầu hết các cách mọi người đang làm là triển khai iptables hoặc 1 giải pháp firewall mềm nào đó để đảm bảo an toàn thông tin.&lt;/p&gt;</description></item><item><title>How to setup data at rest encryption on Ubuntu</title><link>https://bienkma.github.io/posts/2025/data-at-rest/</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate><guid>https://bienkma.github.io/posts/2025/data-at-rest/</guid><description>&lt;h1 id="giới-thiệu"&gt;Giới thiệu&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Một trong các yêu cầu đảm bảo thông tin là dữ liệu lưu trữ phải được mã hoá, bảo vệ để chống khả năng hacker tái sử dụng được các phần dữ liệu lưu trữ phía dưới để đánh cắp dữ liệu. LUKS - Linux Unified Key Setup được Redhat phát triển là 1 trong các giải pháp sẽ giải quyết vấn đề mã hoá dữ liệu mức block.&lt;/li&gt;
&lt;li&gt;Ưu điểm của giải pháp là trong suốt với lớp dịch vụ, ứng dụng phía trên nghĩa là nó tương thích hoàn toán với các dịch vụ phía trên. Chính vì thế để đảm bảo tính năng Data at rest encryption cho MySQL, Elasticsearch, Mongodb&amp;hellip; hoàn toàn độc lập với solution sẽ sử dụng. Ngoài ra việc vận hành, cài đặt LUKS device là tương đối đơn giản và đặc biệt hiệu năng của LUKS và device ban đầu không bị ảnh hưởng nhiều (tôi đã thử benchmark với percona 5.7 dung lượng db 20TB/40TB SSD - raid0, 256GB RAM, 112 CPU - tốc độ đọc ghi trước và sau khi enable LUKS tăng chỉ 2-5% resource CPU và IOPS).&lt;/li&gt;
&lt;li&gt;Nhược điểm: Mã hoá mức block nên việc 1 hacker truy cập được mức OS hoặc dịch vụ vẫn có thể lấy được data trước mã hoá của dịch vụ, db. Tóm lại, chỉ chống được physical attack không giải quyết được logical attack.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="cấu-hình"&gt;Cấu hình&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Cấu hình lab:
&lt;ul&gt;
&lt;li&gt;Ổ cứng cần mã hoá đặt tại /dev/sdb&lt;/li&gt;
&lt;li&gt;Hệ điều hành: Ubuntu 22.04&lt;/li&gt;
&lt;li&gt;password encryption: plz_change_me_now&lt;/li&gt;
&lt;li&gt;Thực thi các câu lệnh dưới với quyền root&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Các câu lệnh thực hiện mã hoá:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wipefs --all --backup /dev/sdb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;pvcreate /dev/sdb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vgcreate data /dev/sdb
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;lvcreate -l +100%free -n data01 data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cryptsetup --verbose --verify-passphrase luksFormat /dev/data/data01
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cryptsetup luksOpen /dev/data/data01 data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p /data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkfs.xfs -f /dev/mapper/data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Lệnh này chỉ chạy khi ổ cứng sdb của bạn là SSD hoặc NVMe thôi nhé. Mục đích là không cần cơ chế quản lý queue của OS &lt;a href="https://www.cloudbees.com/blog/linux-io-scheduler-tuning"&gt;here&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;echo&lt;/span&gt; none &amp;gt; /sys/block/sdb/queue/scheduler
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Add vào crypttab để nó tự boot khi server khởi động lại&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;echo&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;data /dev/mapper/data-data01 /etc/data-at-rest/data-data01 luks&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/crypttab
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Tạo file chứa thông tin secret để mã hoá và loại bỏ thông tin nhạy cảm trong history của bash&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;export&lt;/span&gt; &lt;span style="color:#953800"&gt;HISTSIZE&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p /etc/data-at-rest/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p /data
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;touch /etc/data-at-rest/data-data01
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;echo&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;plz_change_me_now&amp;#34;&lt;/span&gt; &amp;gt; /etc/data-at-rest/data-data01
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod &lt;span style="color:#0550ae"&gt;400&lt;/span&gt; /etc/data-at-rest/data-data01
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod &lt;span style="color:#0550ae"&gt;0400&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod &lt;span style="color:#0550ae"&gt;0744&lt;/span&gt; /etc/data-at-rest
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;export&lt;/span&gt; &lt;span style="color:#953800"&gt;HISTSIZE&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;20000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Add file key cho phép thông tin mount được sử dụng&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cryptsetup -v luksAddKey /dev/data/data01 /etc/data-at-rest/data-data01
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;Add thông tin mount trong fstab, 2 option noatime và nodiratime để tối ưu performance disk thôi bạn có thể tìm hiểu ý nghĩa 2 options này trên google nhé ;)&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;echo&lt;/span&gt; &lt;span style="color:#0a3069"&gt;&amp;#39;/dev/mapper/data /data xfs defaults,noatime,nodiratime 0 0&amp;#39;&lt;/span&gt; &amp;gt;&amp;gt; /etc/fstab
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mount /data
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;kiểm tra kết quả&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;lsblk
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cryptsetup luksDump /dev/data/data01
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Notes&lt;/em&gt;: Cơ bản ổ cứng /dev/sdb đã được tạo 1 LVM partition ở /dev/data/data01 và được mount ở folder /data. Tiếp theo bạn chỉ cần cài đặt mysql, es, mongodb, redis, blabla&amp;hellip; ở folder /data. Folder được mã hoá ổ cứng. Khi ổ cứng máy chủ bị mất cắp hoặc mount vào 1 máy chủ khác nếu kẻ tấn công không có key giải mã, chúng sẽ không thể giải mã được ổ cứng.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>