20220109のLinuxに関する記事は4件です。

Webエンジニアの LPIC レベル2 合格体験記

TL;DR 本日、LPICレベルが2になりました。 今回は、LPICレベル2を受験するにあたって、どのように対策をしたか。どのくらいの勉強時間を要したか。 について書いていきたいと思います。 これからLPIC受験してみようという人にとって、少しでも参考になれば幸いです。 私の前提 4年制国立大学の文系卒 社会人4年目 Webエンジニア これまでに基本情報技術者、応用情報技術者、Java SE8 Silver, Oracle Master Bronzeには合格済み 社会人になるまでLinuxに触れたことは皆無 業務ではLinuxをそこそこ使っていて、2年ほど実際にコマンドたたいたり、キャパシティやプロセスを確認したり、DNS, テスト用のメールサーバーを立てたり、Webサーバーを本番用に設定したりという経験はあり サービスの起動については知っていた カーネル、モジュール、ブートローダー、初期RAMディスクとかの詳しいことについては、「なにそれおいしいの?」状態。せいぜいGRUBっていうものがあるんだな~modprobeとかでモジュール入れたりするんだな~ということを知っている程度 RAIDやLVMという存在を知ってはいるものの、実際にLinuxで構築したことはない ソースの状態でパッケージをとってきて、tar, configure, make, make installとかをしたことはあるが、patchはあてたことはない ifconfigでIPの設定を見たりしたことはあるものの、arp, ip, route, iwconfigとかを使って実際に設定をしたことはない というところから勉強をスタートしました。 勉強時間 201: 49時間 202: 73時間 毎日の勉強時間は記録しているので、この勉強時間はかなり正確な時間です。 試験を受けた順番 私は、202→201の順番で受験しました。 理由は上述の前提を見ていただけるとわかるかと思うのですが、普段から業務でサーバーにインストールしたソフトの設定を行うということは頻繁に行っていたので、202試験の内容のほうがピンとくる内容が多かったからです。 また、201試験のほうはどちらかというと本当にインフラ寄りの内容で、普段クラウドでインフラを作っている身としては、 ファイルシステムとかRAIDとか使う機会も全くと言っていいほどなく、初めて参考書を読んでいったときには、内容の半分くらいしか、参考書を読んでいてピンときません。 あと問題の内容自体も201試験のほうは、コマンドやオプションを聞かれたりといった、暗記していれば回答できる問題がほとんどなので、あとまわしにすることにしました。 勉強方法と参考書 勉強は201→202を一気に進めるのではなく、201か202のどちらかをまず受験し、合格したらもう片方という形で進めます。 まずは概要を把握する Linux教科書 LPICレベル2 Version4.5対応 いわゆる小豆本。 まずはこの本を読んでいきます。 このとき、各章の最後についている問題については解かずに、とにかくインプットすることに集中します。 この小豆本の問題については、最後に仕上げとして使います。 1,2回参考書を読んで、試験に出るところを確認できたら、さっさと問題へ行きます。 概要が把握できたら問題集の各章ごとの問題を解きまくる Linux教科書 LPICレベル2 スピードマスター問題集 Version4.5対応 他の方の試験対策を見ていると、ping-tを使ったという方が多いのですが、個人的に問題はこの本1冊で十分だと思います。 「より理解を深めたい」「安心感を得たい」という方にはping-tでの対策もおすすめだと思います。 小豆本を1,2回読んでだいたいの内容が頭に入れば、この問題集へ取り掛かります。 出題分野ごとに章立てされた問題たちと、最後に模擬試験があります。 まずは章ごとの問題をどんどん解いていきます。 最初はほとんど間違えると思いますが、それでもいいので、とにかく201もしくは202の試験のどちらかの問題をすべて終わらせます。 1章から順に問題を進めていき、間違えたところの解説をよく読みます。 間違えた問題は丁寧に復習する この問題集は解説がすごく丁寧で、解説だけでもインプットとしては十分だと思います。 そして、問題で間違えたところの内容というのが、自分の理解が浅い・もしくは暗記が足りていない部分になってくるので、 小豆本にもどって、再度熟読します。 私の場合はkeepとworkflowyというアプリを使っていました。 まず、間違えた問題の番号や、暗記が不十分、もしくは苦手だと感じたことなどを都度keepに記載していきます。 ↓実際のkeepのメモ 次に、小豆本や問題の解説を読みながら、暗記が必要だと感じたものについては、workflowyに整理しながら書いていきます。 ↓実際のworkflowyのメモ workflowyに書いていく理由はいくつかあって、 個人的に書いたことは読んだだけのことよりも頭に残る 体系的に書いていくと頭の中身の整理ができる 本(私は電子書籍を使っていますが)にある情報をすぐに引っ張ってくるのには時間がかかるので、電子データとしてメモしておく。そうすることで、検索もできるし、苦手だけを集めたメモを用意することができる 時間や場所を問わずに、手の空いた時にいつでもどこでも復習をすることができる という感じです。 間違える問題がなくなるまで、問題集をやりこむ workflowyに書いたことや小豆本を参考にしながら、間違えた問題を確認できたら、また次の問題へ挑んでいき、同じことを繰り返します。 これをまずは、201もしくは202試験の最後の章まで繰り返します。 最後まで終わったら同じことをまた繰り返します。 ただし2回目以降は、各章の問題に取り組む前に、keepに記載したことを復習してから、問題へ挑みます。 そして、間違えたところは一度目と同様に確認していきます。 ただし、同じ問題を間違えた場合には、workflowyのメモを見ながら復習します。 そうして、間違える問題がなくなれば、各章ごとの問題は終了です。 各章ごとの問題で間違えることがなくなれば、模擬試験へ 問題集の最後には模擬試験がついているので、模擬試験に挑みます。 この模擬試験についても各章ごとの問題と同様に、間違えたところを小豆本で確認したり、解説を確認しながらworkflowyにまとめていきます。 模擬試験の問題も間違えなくなったら、次のステップへ進みます。 問題集が完璧になったら、ダメ押しで小豆本の問題を解いていく 小豆本の各章末の問題を解いていきます。 こちらも問題集の問題と同じように取り組んでいきます。 小豆本の問題も完璧になったら、小豆本の模擬試験を解いていく 小豆本の模擬試験を、本当の模試として使っていきます。 小豆本の模擬試験に取り組んだ結果、正答率が65%を超えた場合は、受験に進みましょう。 超えなかった場合は、再び問題集へ戻り、同じことを繰り返します。 再度この工程に戻ってきたときに、正答率が65%を超えた場合は、受験に進みましょう。 まとめ 超難易度が高い試験ということはありません。 小豆本の内容や問題集の解説の内容をしっかり押さえることができれば、 だれでも合格できる内容だと思います。 ただ、この2冊の本をしっかり読みこんで、自分の中に取り込むことができないと確実に落ちると思います。 舐めプせず、しっかり対策を! この調子でLPIC303も春には合格したいです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【実践】fileコマンドの使い方

fileコマンドとは ファイルタイプを識別するものです! 拡張子の有無にかかわらず調べてくれます CTFではよく使うコマンドではないでしょうか? 使い方 使い方はシンプルで以下のようにコマンドを入力するだけです $ file [解析したいファイル] 実際に使ってみる 今回使っているファイルはすべてGitHubに載せています。手元でも動かしてみてください! 実行環境 Windows10 Pro WLS2 Ubuntu(20.04) file1の解析:テキストファイル $ file file1 実行結果 file1: ASCII text ※環境によってはwith CRLF line terminatorsが追加で表示されるかもしれません 出力よりこのファイルはアスキーコードで書かれたテキストファイルであることが分かりました! catで内容を見てみます $ cat file1 Hello World file2の解析:実行ファイル(Windows) $ file file2 実行結果 file2: PE32+ executable (console) x86-64, for MS Windows PE32+ executableの部分は実行ファイルの形式を示しています。PEとはwindows上で使用される実行ファイルです executableは「実行可能」という意味の英単語ですね! (console)とあることからコンソールを利用することが分かります file3の解析:実行ファイル(Linux) $ file file3 実行結果 file3: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6bfad10dfc5d45f9218806fe0c7cc6e6d9049ddc, for GNU/Linux 3.2.0, not stripped さっきよりも少し長いですね。。。 ELFとはLinuxなどで用いられる実行ファイル形式です。よって、このファイルはLinux上で実行されるものであることが分かります! LSBとはエンディアンがリトルエンディアンであることを示しています。エンディアンとはバイトオーダーのことです 末尾のnot strippedは実行ファイル内のシンボル情報が削除されずに残っていることを意味します シンボル情報が残っていると内部の関数名や変数名の情報が得られることがあります! 実際に実行することもできます $ ./file3 Hello World file4の解析:画像(PNG) $ file file4 実行結果 file4: PNG image data, 200 x 200, 8-bit/color RGB, non-interlaced fileコマンドでは画像ファイルであることも特定できます! 今回の場合はPNG形式の200 x 200の画像ファイルであることが分かりました! 中身の画像は以下のものです 終わりに fileコマンドでは様々なファイルの種類を特定することができることが分かったと思います! 実際に手元で色々なファイルでどのような出力が出るか試してみてください! より詳しいことはここ↓に乗っています 参考文献 碓井利宣・竹迫良範・廣田一貴・保要隆明・前田優人・美濃圭佑・三村聡志・八木橋優(2015)『セキュリティコンテストチャレンジブック:CTFで学ぼう!情報を守るための戦い方』マイナビ出版
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacからのSSH接続でWARNING: UNPROTECTED PRIVATE KEY FILE!と表記されてEC2にログインできない!

エラー内容 AWSで新しくEC2、キーペアを作成。 仮想サーバにSSHでアクセス、ログインしようとするが、 ssh -i ~.pem ec2-user@~(EC2のIPアドレス) 以下のエラーが表示された。 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0644 for '~.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "~.pem": bad permissions ec2-user@~(EC2のIPアドレス): Permission denied (publickey,gssapi-keyex,gssapi-with-mic). 作成したキーファイルは使用できない? Macからだと権限の問題でエラーになると聞いたような... 原因 Macでダウンロードしたキーファイルを使い、SSHしようとするとはじかれます。 ファイルの権限が緩すぎるのが原因。 秘密鍵は、他のユーザからアクセスできる権限では使用できないらしい。 つまり、秘密鍵が安全でない場合に発生するエラー。 所有者のみ読み書きできる権限にする必要がある。 対処方法 ①lsコマンドでキーファイルの権限(パーミッション)を確認してみる。 ls -l -rw-r--r--@ 1 ~ ~ 1700 1 9 14:08 ~.pem キーファイルの権限が644になっていることが確認できた。 所有者以外も読み込み可になっている... そうなると、設定すべき権限は所有者のみ読み書き可能。 ②権限変更なのでchmodコマンドを使用。 chmod 600 ~.pem ③権限を変更することで、キーファイルを使用し、SSH接続が可能になります。 ssh -i ~.pem ec2-user@~(EC2のIPアドレス) ④これにて接続可能になりました! __| __|_ ) _| ( / Amazon Linux 2 AMI ___|\___|___| 参考
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

踏み台サーバの公開鍵を使用せずに踏み台サーバ経由の SSH 接続をする(VS Code でも使用可能)

はじめに 今回は、踏み台サーバ経由で別の LAN に接続されたマシンに SSH 接続をする設定方法をご紹介します。 前回の Ubuntu 20.04 LTS で NIC(ネットワークインターフェース)を2つ同時に使用する方法 の記事の構成の話の延長です。 今までは 10.11.2.0/24 上のみに存在するマシンだと 10.11.2.0/24 のネットワークに VPN などで接続する必要がありましたが、前回のマシンを踏み台にすることによって直接外部から触ろうという試みです。 構成 前回 LAN ケーブルを2本差ししたマシンの名称は Bastion(要塞)、10.11.2.0/24 上にある接続したいマシンを Client とします。 あまり関係ないですが、Bastion の OS は Ubuntu 20.04.3 LTS、Client の OS は Rocky Linux 8.4 です。 準備 接続したいマシンの公開鍵を事前に Bastion と Client に登録しておきます。踏み台サーバを使いたいなと思う方なら SSH キーの発行や登録方法はわかると思いますので省略します。 方法 /Users/[user]/.ssh/config(Windows なら C:\Users\[user]\.ssh\config) のファイルを以下のように編集します([user] はご自身のユーザ名です)。 /Users/[user]/.ssh/config Host bastion HostName 192.168.0.3 User root Port 22 IdentityFile /Users/[user]/.ssh/id_rsa ForwardAgent yes Host Client # Windows の場合。Mac / Linux の場合は下記 Hostname 10.11.2.8 Port 22 User root ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -q -W %h:%p bastion # bastion は上で設定した Host の名称を使用 IdentityFile /Users/[user]/.ssh/id_rsa Host Client # Mac / Linux の場合 Hostname 10.11.2.8 Port 22 User root ProxyCommand ssh -q -W %h:%p bastion IdentityFile /Users/[user]/.ssh/id_rsa VS Code のエクスプローラーも使用可能 Remote-SSH のプラグインが入っていれば、例の左下の緑の SSH のボタンで Client に接続するとエクスプローラーも使用可能です。 終わりに 私がハマったのは、Windows の場合は ProxyCommand のところで ssh.exe のフルパスを書かないといけないことでした。 特に Windows 使いの方で、ハマっている人が居て救われれば幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む