Lagi, lupa backup data
Awal Cerita
Awal mula kadang sering ngulik-ngulik soal NIST or CIS Benchmark perihal standar security by default atau biasanya dipakai ketika di hadapin sama momen compliance things. Beberapa hari kemarin ngulik ternyata docker emang ada official CIS Benchmark standard nya.
Singkat cerita (karena lupa tulisan blog yang mana yang di pake). Di blog tersebut nulis kalau cara gampang buat check adalah pake docker-bench-security dan juga ngasih contoh how to buat fixnya, spontan langsung keinget di VPS sempet clone reponya dan update pake git pull buat jalanin scriptnya pake:
sudo sh docker-bench-security.sh
Triggering Moment
Abis run scriptnya kok ngeluarin banyak tulisan merah dengan tanda [WARN]
dan final score yang didapat adalah Section C - Score :)
.
Then, lanjutin baca lagi blog tersebut dan ada example config buat solve beberapa case nya dan inget baris config yang di copy ini
{
"icc": false,
"live-restore": true,
"no-new-privileges": true,
"userland-proxy": false,
"userns-remap": "default",
...
}
Oke abis nambah 5 baris config di atas, apa yang di lakuin? yes restart docker.service
karena docker daemon/engine ga punya forking process or reload mechanism kaya nginx (cmiiw).
(at least beberapa [WARN]
cases uda solved nih). Oke lanjut check beberapa warn yang sisa eg: PID limit
dan yang kebayang ah tinggal kasih parameter cocokin ama sesuain PID yang ada di dalam container. « Mode songong
Checking…
While surfing beberapa warn sisanya dan balik check terminal, terus ngetik docker ps
LOH kok ilang wah paling ke restart, lanjut check pake docker images
loh kok ilang KWKWKWKW.
It’s recovery time…
Re pull container images dan deploy ulang. Masuk ke tiap directory dan trigger docker compose up -d
dan trigger beberapa pipeline dari gitlab-ci.yml
(buat yang uda punya pipeline).
Check semua endpoint udah up semua kecuali personal rss reader yang pakai miniflux
, well i guess karena sempet ngulik” feature docker compose perihal field mounting secret. Uda d coba benerin msh looping restart dan ya karena baru inget karena config d atas nambahin "no-new-privileges": true
dimana ketika jalanin or mounting directory yang punya root
jadi ke force no-permissions blabla
di stderr dan stdout container-nya (case ini terjadi ketika run postgresql dalam bentuk container).
Action terakhir
Secara personal orang yang males dengan urusan “stateful things” dan kurang pengalaman jadinya males :)), next step ada issue seperti ini apa? Spawn container lagi dengan mounting yang berbeda WKWKWK simple things.
Udah cobain pake change permission direktori, baca-baca lagi Dockerfile
dari postgresql yang official dan blablabla but yeah back to first paragraph above HAHAHAH.
Penutup
Poor me! ya walaupun buat list rss sebagian besar disimpan di blogroll di blog but starred post yang ilang wkwkwk dan bisa aja matiin dulu feature gate "no-new-privileges": true
buat ya uda mager (sekali uda apply, apply teros gan hahaha)
Beberapa pelajaran soal cases ini
- Again jangan langsung copas dari internet :))
- Baca pelan-pelan
- Sabar or biarin dulu (toh bukan real production yang impact ke user banyak oops)