徒然ネル

Linuxカーネルとか柔道とか

やりたいことまとめ

やりたいことをブログにまとめとく

できたら都度更新しよう

SecHack365 2023 成果発表会 聴講

3月2日(土)にSeckHack365の成果発表会を聴講してきました。

SecHack365 2023年度 成果発表会 | SecHack365 (nict.go.jp)

 

みなさん学生さん?っぽいけど、各々専門性高いことやっててすごいですね

個人的に、特に面白かった発表は、

 

こういう発表を聴講できる機会があるのは、東京ならではですね

東京に住んでないと聴講しにいこうってならんかった

 

こういうイベントに気が向いたら今後も参加していきたい

Virtual BoxでホストOS (Windows)からゲストOS (Ubuntu Server)にssh通信

Virtual Boxでk8s環境を作ってみようと思い、ひとまずホストOSのVS Codeからssh接続できるVM (Ubuntu Server)を用意したので、備忘録

 

Virtual Boxの設定はこちらを参考に

VirtualBoxでNATとホストオンリーアダプターによる安全なネットワーク環境構築方法 | プログラミング入門ナビ by Proglus(プログラス)

 

Ubuntu側の設定はこちらを参考に

VirtualBoxでホストオンリーアダプターを設定する方法 (tsolsikke.jp)

 

環境

ホストOS:Windows10

Virtual Box: VirtualBox-7.0.14-161095-Win

ゲストOS:ubuntu-22.04.4-live-server-amd64

 

ゲストOSはインストール済み

ゲストOSのインストール時に、sshサーバもインストール済み

 

Virtual Boxの設定

ツール→ネットワークからホストオンリーネットワークを作成

作成したネットワークのIPアドレスをゲストOSはのアドレス設定時に参照する

 

設定から

 

ネットワーク→アダプター2→ネットワークアダプタを有効→割り当てを「ホストオンリーアダプター→名前を先程作成したホストオンリーネットワークに

 

Ubuntuの設定

netplanでネットワーク設定します

$ sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/01-installer-config.yaml # 新しく設定用ファイルを作る

$ sudo nano /etc/netplan/01-installer-config.yaml

01-installer-config.yamlの中身は以下

ホストオンリーネットワークの192.168.188.1がホスト側のアドレスらしいので、1ずらした192.168.188.2をゲストOS側に割り当てる

network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      addresses:
      - 192.168.188.2/24

01-installer-config.yamlを適用する

$ sudo netplan apply

 

これでVS Codeからsshで接続できた

カーネルモジュール自作(したいけど、うまくいかない)

はじめに

こちらの記事を参考にカーネルモジュール自作やってみます

カーネルモジュール作成によるlinuxカーネル開発入門 - 第一回 hello world - 覚書 (hatenablog.com)

 

実行環境

こんな感じ

$ uname -a
Linux Ubuntu22 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

 

CPUの仮想化機能、BIOSの仮想化機能が有効になっているかの確認。

1つ目のコマンドは1以上になっていたら良いそうで、2つ目のコマンドは実行できればOKとのこと。

$ egrep -c '^flags.*(vmx|svm)' /proc/cpuinfo
4

$ sudo modprobe kvm-intel

$

2つ目のコマンドがなにやってるのか調べてみたら、カーネルモジュールを入れるコマンドなんですねー

【 modprobe 】コマンド――カーネルモジュールのロード、アンロードを行う:Linux基本コマンドTips(269) - @IT (itmedia.co.jp)

 

準備

必要なパッケージをインストール

$ sudo apt-get install git vagrant libvirt-bin libvirt-dev kernel-package qemu-kvm libssl-dev libncurses5-dev

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'qemu-system-x86' instead of 'qemu-kvm'
Package kernel-package is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package libvirt-bin is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libvirt-bin' has no installation candidate
E: Package 'kernel-package' has no installation candidate

なんか色々エラーでてきた

Ubuntuのバージョンが新しいからパッケージが変わったのかな

代わりっぽいパッケージ探してインストール

$ sudo apt install qemu-system-x86 libvirt-daemon-system libvirt-clients bridge-utils git vagrant libssl-dev libncurses5-dev

kernel-packageだけ代わりが見つからなかったので、一旦放置

 

$ sudo addgroup libvirtd

$ sudo usermod -aG libvirtd <your user name>

よくわからんけど、ここで一旦ログアウト、ログイン

 

$ vagrant plugin install vagrant-libvirt

 

環境構築

$ cd elkdat/

$ git checkout v0.3

 

./init
+ BOXNAME=elastic/ubuntu-16.04-x86_64
+ vagrant box list
+ grep -q 'elastic/ubuntu-16.04-x86_64 (libvirt, '
+ pushd elkdat
~/elkdat/elkdat ~/elkdat
+ vagrant up --provider libvirt
Bringing machine 'ktest' up with 'libvirt' provider...
==> ktest: Box 'elastic/ubuntu-16.04-x86_64' could not be found. Attempting to find and install...
    ktest: Box Provider: libvirt
    ktest: Box Version: >= 0
The box 'elastic/ubuntu-16.04-x86_64' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Vagrant Cloud, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:

URL: ["https://vagrantcloud.com/elastic/ubuntu-16.04-x86_64"]
Error: The requested URL returned error: 404

うーん、Ubuntuのバージョン違うとだめなのか

カーネルモジュール自作(の前にお気持ち表明)

仕事でeBPFについて調査したり触ってみたりしているのですが、Linuxカーネル初心者の私にはeBPF嬉しさが今ひとつ理解できていないんですよね…

 

最近、Linux doundationからeBPFに関するレポートが出ていました

The_State_of_eBPF_010824.pdf (linuxfoundation.org)

このレポートの中にも、eBPFがなかったらカーネルの機能を拡張するには、カーネルモジュールを使うか、カーネル開発コミュニティに拡張してもらうしかなくて、

カーネルモジュールはマシンをクラッシュさせる恐れがあるし、開発コミュニティに拡張してもらうには何年もかかっちゃうよねって書いてありました。

この話って、Liz RiceさんのLearning eBPFってeBPFの入門本にも書いてあったんですよね

(Liz RiceさんのLearning eBPFは以下から無料でダウンロードできます)

The_State_of_eBPF_010824.pdf (linuxfoundation.org)

 

だけど、私はカーネルモジュールを作ったことも無ければ、開発コミュニティについてもよく知らない

それにカーネルを拡張したいと思ったこともないんですよ

 

ということで、カーネル拡張の煩わしさ、eBPFのありがたみを感じたいと思い、カーネルモジュールの自作に挑戦してみたいと思います。

カーネルモジュールの自作といっても、竹内覚さんの以下の記事を参考にやってみるだけですが

カーネルモジュール作成によるlinuxカーネル開発入門 - 第一回 hello world - 覚書 (hatenablog.com)

 

作業前のお気持ち表明で、だいぶ文章を書いちゃったので、作業ログは別記事に分けたいと思います。

社会人になって6年ぶりに柔道を再開した話

通っている道場で、一年の振り返りや今年の目標について作文を書きましょうというイベントがありまして、私も子供に混じって作文したのでブログネタにしちゃおうと思います。

最初は子供たち向けのイベントだしスルーしようと思っていたのですが、先生に書いてねって言われちゃったので、まあいい機会だしちょっと書くかと思い書きました。

 

作文の内容は、なんで社会人の私が道場に通い始めたのかって内容です。

 

私が松前柔道塾に入塾したきっかけは、カナダ人大学生のヘンリーでした。

 

入塾のきっかけの前に、簡単な自己紹介から始めたいと思います。私は今年25歳になる社会人1年目の塾生です。中学校の部活から柔道を始め、高校まで柔道を続けました。大学には柔道部がなかったため、松前柔道塾に入塾するまで6年間ほど柔道をやっていない期間がありました。

 

そんな私がなぜ、松前柔道塾に入塾し6年ぶりに柔道を再開したのかについてですが、きっかけは私の職場にインターンシップに来ていたカナダ人大学生のヘンリーでした。彼はカナダでブラジリアン柔術を習っていたそうで、日本の柔道に興味を持っていました。雑談の中で私が中高で柔道をやっていた話をすると、彼も柔道をやってみたいという話になり、せっかく日本に来てくれているからと思い、職場から通える柔道教室を探したところ、松前柔道塾を見つけました。外国人でも参加できる柔道教室を探すのに苦労しましたが、松前柔道塾はHPに国際交流の様子が掲載されており、問い合わせた際にも快く受け入れてくださったため松前柔道塾への入塾を決めました。ヘンリーが柔道を始めるということで、私も一緒に柔道をやるかどうか、正直迷いました。6年間のブランクもあり平日は仕事もあるので柔道を続けられるか不安でしたが、日本語がわからないヘンリーを一人で入塾させるのが不安だったことと、柔道を再開するせっかくの機会だと思い、一緒に入塾することにしました。今となっては、運動不足になりがちな社会人生活の中で、貴重な運動の機会、リフレッシュの機会となっているので入塾してよかったと感じています。

 

ヘンリーは4ヶ月間のインターンシップで来日していたため、松前柔道塾に通えた期間は短かったですが、それでも一生懸命柔道に取り組み、帰国の際には、日本での一番の思い出は松前柔道塾での柔道だったと話してくれました。私達を暖かく迎え入れ、熱心に指導いただいた先生方には大変感謝しています。

 

 

私が通っている道場は松前柔道塾ってところで、柔道だけじゃなくて今回のような作文を各イベントやら国際交流やらあって珍しい道場なんですよね。

松前柔道塾|東海大学 望星学塾|武蔵野市/三鷹の生涯学習講座、大人・子供向け柔道教室 (tokai.ac.jp)

 

私もいつまで柔道続けられるかわかりませんが、運動にもなりますしなるべく続けたいですね。

怪我のないように頑張ります

久ぶりにブログを書く

久しぶりにブログを書こうと思いまして、久しぶりにはてなブログを開きました。

 

何を書こうかというと、いろいろあります。

 

日記的なものも書きたいのもあるんですが、技術記事的なものも書きたいですね。

日記的なものを書きたいと思ったのは、大学の先輩がnoteに毎月の振り返りを書いてていいなーと思ったのがきっかけですね。

日記をつけてみるよ|金 (note.com)

技術記事を書きたいのは、お勉強のモチベ維持と備忘録、作業ログを残すためですね

慣れてきたら、QiitaとかZennとかにも記事を書きたい

 

今年の目標みたいなものも、ブログに書こうかと思います。

Twitter (X)に書いたのですが、投稿を編集できないのが不便ですね。

新年に立てた目標が早速修正せざるを得なくなり、投稿し直すのも面倒で削除しちゃいました。

 

ということで、今日からまたブログをちょいちょい書いていきたいと思います

よろしゅう~

 

 

あと、ブログのアイコンを設定しました。

奥さんが書いてくれたLINEのスタンプをスクショして持ってきた