LPIC303：今受けたらどうなるか？

↓の続き

https://qiita.com/fullsat/items/9b7694ee991720892008

## 背景

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/201436/8ca0f4c6-ceee-7c19-b0da-5e60827ec5d1.png)

ということで合格。

LPIC3取得を目指したのは箔をつけたかったため。
「これを作った人です」「AWS認定試験全部持ってます」「研究職に就いています」こういうのが欲しかった。フリーランスサイトの受注ページなどで経歴を記載する場合も、資格を持っている人の方が一見すごそうに見えたりする。

私はたぶん成果主義者なので「これを作った人です」「これをやっている人です」というところにしか興味がなく、なんの資格持っていようが、成果物を見ないと興味が持てない。だから認定があっても何ができる人なの？ということを聞きたくなる。（そういう意味では自分は何もやれない人に分類されて、自分で自分を卑下することにはなるのだが・・・）

しかし、いざ世間体が重要な立場になったら、そういう箔というものがすごく欲しくなった。

SRE業務していて、知識はそこそこあります、という状態をスパッと証明する手立てがない。何かを作ったりするポジションじゃない人が、世間にアピールする方法は圧倒的技術力を持つ人以外ほぼないことに気づいた。ここで、今まで興味のもてなかった認定がすごく欲しくなり、今までの見方を改めた。

「認定持ってます！」と「5年間インフラ分野に携わってます」という人を比べると(私だけかもしれないが)、前者の人の方が頼みたくなる。後者は何をやってきた人なのか分からないけど、前者は何をやれるかはわかる。もちろん認定持っていても、仕事ができる人かというと、そうは言えないと思っているが、少なくとも第一印象としてはそう見える。

そういうわけで、LPIC2と比べてあまり受ける意味を見いだせていなかったが、LPIC3は箔付けとしてすごく欲しかった。

とは言ったけど、何気に知らないことがたくさんあって、最終的には受けてよかったかもしれないと思った。

※ちなみに、k8sやciscoやterraformは受験料が高くて会社が払ってくれる立場にないのであきらめた。安くしてくれ。

## 勉強法

何がつらいかというと、v3.0試験の教本が全く存在しないこと。
受けた後に気づいたこととしては、v2.0との差分はほとんど業界常識に近いものしか出なかった印象。ただし、systemd、usbguard、WireGuardあたりは勉強していて役に立った。

* v2.0試験とv3.0試験の試験範囲の差分を調べる
  * 範囲があいまいな表現になっているところは、コマンドやキーワードを調べたときに出てくるツールを調べることでカバーできた印象。特にツールが生まれた背景などを読む。
* [LPIC Level3 303教科書+問題集［Version 2.0］](https://www.amazon.co.jp/dp/B075L93W2L) を3周
* [ping-t](https://mondai.ping-t.com/g) (470問くらいの選択式のやつ)を1.5周
* openssl/cfsslはよい機会なのでググらなくても認証局をたてられるように繰り返し操作
* 以下の動画で、試験v2.0の出題範囲とv3.0の出題範囲の差分を調べて、実際に触ったり、自分なりに調べたり、まとめたりなどした

https://www.youtube.com/watch?v=mLKqV_ww0_w

https://www.youtube.com/watch?v=W1kwaMHm3rE

余談：systemdの知識がふにゃふにゃだったので[Systemdの思想と機能](https://www.amazon.co.jp/dp/429713893X)も読んだ

期間はおよそ2週間とちょっと。
(5月上旬に受ける予定だったけど、大腸炎的なもので2週間くらい身動き取れずで正確にはちょっとわからない)
箔のためにももう少し点が欲しかったがまあこれが自分の実力。

## 抜けてた知識、知らなかった知識

LPIC3はLPIC2の範囲を狭めて、ほんの少し深堀りした試験という印象。
会社では別のツールでやっていたことが、Linuxの機能やツールに存在していたことを知って少し驚いた。お金かけなくてよかったじゃん！みたいなツールがゴロゴロ。無知は罪。

* OpenSSL
  * x509証明書、いざ深堀してみると意外と恐れるに足らず
  * 試験の話をするなら、サブコマンドとオプションはほとんど完全に覚えたほうがいいと感じた
  * k8sをセルフホストするときに作る認証局これでいいのか、とか全然分からなかった時期があったが完全に理解した状態になっている
  * 良い機会だからサブコマンドと大体の使い方を訓練しておこうと4,5回認証局作ったり、証明書発行したりで訓練してみたが、実用的にもこれはやっておいた方が良い感覚になったのでお勧めしておく
  * そのあとにCloudflareのcfsslを触ると以下の点ですごく感動した
    * 証明書発行パラメータをテキストで保存できる
    * ほとんどオプションを覚えずに済む
  * あと余談でPFSという概念があることを初めて知った
* CRLとOCSP
  * わりと知識があいまいだった証明書の失効リスト
  * 調べていく中でFirefoxとChromeの実装の違いなども分かった
* 暗号化ファイルシステム
  * AWSとかだとボタン一つで暗号化してくれるからあまり意識せずに済んでいるところだった
  * 仮想化ツールに機能があるのかなと思いつつ、単一のOSでも対応できることが分かった
  * 試験的なことを言うなら、cryptsetupとcryptmountとecryptfs-xxxxのコマンドが紛らわしすぎるのでping-tで繰り返しその範囲の問題を繰り返すと良い
* DNSSEC
  * 全然流行ってる感じがないが、流行らない理由もよく分かった
  * DoTとDoHあたりの違いも調べると面白い
* randamize_va_space
  * バッファオーバーフローに対する知見が増えた
* SSHのクライアント証明書に認証局を使う
  * あまり意識していなかったが、確かにサーバ証明書じゃないからx509と違う
  * ssh-keygenでこと足りるので覚えるのも簡単だし覚えてもよいと思う
  * 実際使うかは・・・うーん、状況次第
* USBGuard
  * 使うときが来るのかわからないが仮にPC展示するようなことがあれば入れたいなと思った
* 侵入検知回り
  * 侵入検知の概念とそのためのツールの列挙だったので概念部分に一定の網羅性があると思った
    * 監査
    * ルートキットの検出
    * 脆弱性の検出
    * 意図しないファイル変更の検出
    * ネットワークの不正な挙動検知
  * ツールの使い方を必死に覚える必要はない気がしているが、システムを守るうえでひとまずこれらに対してどう対処するかを検討する議題としてのリストになるのではないかと思った
* mlockの概念
  * どこをどう調べていきついたか忘れたが、swapは悪ではないという話
  * その中でmlockがどういうものかを具体的に知り、ulimitなどで出てくるmax locked memoryが何なのかを知る
  * mlockシステムコール完全に理解した状態
* アクセス制御
  * 全然意識してなかったけど拡張属性を使って制御とかしてたんだな
  * あとSUIDは知っていたけど、大文字のSになっている場合は実行権限を持たずにSUIDがセットされている意味だと初めて知った
  * SELinuxはenforceにした瞬間gnomeあたりに権限がなくなるのか、クラッシュしてしまいあんまり調査できなかったのが残念
  * Permissiveでいろいろいじってたが途中からツールの多さと設定の複雑さからこれはいじりたくねえ・・・となった
  * ただ、使いこなしたら確かに堅牢なシステムになるということははっきりとわかったので、いずれどこかで・・・という気分になった
  * SELinuxって今どういう使われ方してるんだろうか、政府系とかは全部SELinuxだったりするのかな?
* Radius
  * RadiusをたててWifiに設定してみたところで、WPAのパーソナルとエンタープライズの違いが分かった
* IPSec
  * やはりあんまりわからない
  * 実環境構築できなかったからだと思うからこれはいずれ・・・
* WireGuard
  * 終わってからwgコマンドも対象範囲と気づいた
* Kali Linux/Metasploit/nmap
  * 割と衝撃的だった
  * こんな簡単にペネトレーションテストできるんだと
  * あまり興味のない分野だったので知らないことだらけだった

## これから受ける人への注意

* 303試験v3.0は2024年5月時点で対応している教本がありませんでした
  * 勉強の仕方はスキルブレインさんの学習方法動画(ほぼ自分と同じでしたが)を参考にすればよいと思います
* 重量が5のやつはちゃんと重量が5の体感があるのでしっかり勉強した方がよさそうです
* バージョンの試験範囲差分は体感あまり多く出題されませんでしたが、一通りなぞっていたからそう感じただけかもしれないので、一通りなぞっておいた方が無難です
* 環境構築が大変な分野はping-tや教本を使ってとにかく繰り返して知識を覚えるだけでも乗り越えられはします
  * 実用の観点からはやはり環境構築しておいた方が良いです
  * 新たな概念の発見などがあり勉強になります

## まとめ

箔がついたかというとやはり全部持っています、という人には印象で勝てないと思う。
あとはやはり最初に言った通りで「何ができる人か」のほうに興味があるので、あまり「資格持ってる」に注力しても私にとって利がないため、いったんここまでにしようかと思う。他にやりたいことがいくつかあって、それがひと段落したら、305を受けようか検討に検討を重ねてみる。

SELinuxがあまり身につかなかったこと、IPSec周りがあまり身につかなかったこと、この辺りはちょっともったいなかった。もう少しちゃんと勉強したい。クイズとして解けても仕方がないが、少しばかりの知識だけは得られたので、それをもとに深堀したいところ。

ここまで記載してきた通り、なんだかんだ知らない知識やツールを増やせた。
暗記ゲーと言われている試験だけど、資格が欲しいだけだとそうなるんじゃないかなという印象。
いきなり応用できるかというと、学んだ知識だけだと不可能なのは確実。
ただし、何かしらの要件があれば得た知識をベースにして掘り下げることは十分可能だと思う。

総じて良い体験だった、ということで締め。