- 投稿日:2020-03-05T21:11:55+09:00
pinguy builderで自作Linuxを作ろう(2020年更新)
概要
xubuntuベースでLinuxディストリビューションを自作する方法を大まかにまとめました。大まかな流れとしては
1、仮想マシンにxubuntuをインストール
↓
2、カスタマイズ
↓
3、起動ロゴ、インストールスライド等の変更
↓
4、ビルドといった感じです。1と2に関してはここでは説明しません。適当にググって下さい..
参考サイト
http://serenelinux.html.xdomain.jp/page/customize.html
https://toshio-web.com/linux-mint-custom-iso
ありがとうございます起動ロゴの変更
普通にplymouthテーマを変更しても良いですが
/usr/share/plymouth/themes/xubuntu-logo
ディレクトリの内容を変えても変更できますOS名の変更
/usr/lib/os-release
上記のパスにあるファイルのPRETTY_NAME
の項目を自分のOSの名前に変更します。それ以外の場所を変えると正常に作動しなくなる可能性があるので注意して下さい。インストールスライドの変更
/usr/share/ubiquiy-slideshow/slides/
/usr/share/ubiquity-slideshow/l10n/ja/
これらのディレクトリにあるhtmlを書き変えてください。ただしhtmlファイル名は変更しないことを推奨します。変更が終わったら必ず
sudo chown -R root:root /usr/share/ubiquity-slideshow/
sudo chmod -R 755 /usr/share/ubiquity-slideshow/
を実行してファイルのアクセス権限を変更して下さい。ビルド
ビルドの準備
https://sourceforge.net/projects/pinguy-os/files/ISO_Builder/
から pinguybuilder_x.x-x_all.deb を見つけてダウンロード、インストールします。また、xresprobeも必要です。からダウンロードしインストールします。
設定ファイルのコピー
/home/ユーザー名/.config
ディレクトリを/etc/skel
にコピーします。その後コピーした/etc/skel/.config
内のchromiumなどの個人情報を含むディレクトリを削除します。cpコマンドでコピーする場合は -r オプションとsudoを忘れずに。また、念の為/etc/skel
内にDesktop等のディレクトリも作成します。これをやらないとデスクトップが正常に表示されない可能性があります。いよいよビルド
さて、いよいよディストリビューションをビルドしていきます。pinguy builderをランチャーから起動させアカウントの現在のパスワードが要求されます。
メインの画面が表示されたら Settings タブに移動し設定を行います。<Username>
現在ログインしているユーザー名を指定します。
<CD Label>
ライブCD名を指定します。ライブ起動した際のタイトルに使用されます。
<Filename>
ISOファイルのファイル名を指定します。ここでスペースなどを入れると正常にビルドできません。英数字(小文字)で設定しましょう。
<Working directory>
ISOファイルを作成するフォルダを指定します
<Files to exclude>
バックアップの対象外としたいフォルダがある場合、そのパスを指定します。
<URL for USB Creator>
よく分かりません..
デフォルトのままで問題ないです上級者向けの詳細なオプションを指定する項目です。これもデフォルトのままです
バックアップモードの時に、デスクトップにinstallアイコンを作成する場合、チェックを入れます。
次に「Actions」タブに移動し、"Dist" をクリックします。これでビルドが開始されます。ビルドにはかなり時間がかかります。ゲームでもしながら気長に待ちましょう。
ビルドが成功すると作業ディレクトリのpinguy builderディレクトリ内にisoファイルがあります。これで完成です。お疲れ様でした!
- 投稿日:2020-03-05T16:29:45+09:00
Linuxでユーザー空間で動作するプログラムとハードウェアがメモリを共有するためのデバイスドライバ(V4L2_MEMORY_USERPTR編)
はじめに
筆者はudmabuf をオープンソースで公開しています。
この記事では、udmabuf で確保したバッファを V4L2 バッファとして使う際の方法について説明します。
経緯
次の記事でXilinx VDMA 等を使った V4L2 ドライバで V4L2 バッファを mmap するとキャッシュが有効にならない問題を示しました。
その対策として、V4L2_MEMORY_MMAP ではなく、ユーザーアプリケーション側でバッファを確保してV4L2ドライバに V4L2_MEMORY_USERPTR で渡す方法が考えられます。しかしこの方法では上手くいかないことが Xilinx のフォーラムで示されています。
これは考えてみれば当たり前な話で、Xilinx VDMA は Scatter Gather をサポートしていないので、V4L2バッファは物理メモリ上に連続していなければなりません。ユーザー空間にバッファを確保した場合は物理メモリ上に連続されている保証はありません。このチェックに引っかかってしまったのです。
そこである方が、udmabuf を使って物理メモリ上に連続したバッファを確保して、そのバッファを mmap でユーザー空間にマッピングしてV4L2 ドライバにV4L2_MEMORY_USERPTR で渡す方法を試みました。残念ながら、当初は上手くいかなくて udmabuf に issue をくださいました。
最終的にはこの試みは成功したようです。1920x1080p NV12 の画像データを転送するのに、V4L2_MEMORY_MMAP だと 24msec かかっていたのが、udmabuf + V4L2_MEMORY_USERPTR だと 1.6msec になったそうです。
使用例
ここでは例に基づいてudmabuf で確保したバッファを V4L2 バッファとして使う際の方法を説明します。
udmabuf の準備
udmabuf は Linux のカーネルモジュールです。udmabuf のビルドおよびインストールは udmabuf の Readm.md などの資料を参考にしてください。
udmabuf の open
udmabuf をオープンします。
udmabuf.hppname = device_name; sprintf(file_name, "/dev/%s", name.c_str()); if ((_device_file = open(file_name, O_RDWR)) < 0) { printf("Can not open %s\\n", file_name); _status = false; goto done; }udmabuf の mmap
udmabuf を mmap でユーザー空間にマッピングします。
udmabuf.hppbuf = mmap(NULL, buf_size, PROT_READ|PROT_WRITE, MAP_SHARED, _device_file, 0); if (buf == MAP_FAILED) { printf("Can not mmap %s\\n", file_name); _status = false; goto done; }udmabuf のクリア
実はこの処理がとても重要で欠かせません。というのも、udmabuf はオンデマンドページングによって仮想アドレスに物理メモリをマッピングします。もう少し詳しく説明すると、udmabuf は mmap() ですぐに仮想アドレスに物理メモリをマッピングするわけではありません。仮想アドレスに対してなんらかのアクセスを行った際に、物理メモリがマッピングされていなければページフォールトが発生します。udmabuf はページフォールトが発生したときに初めて物理メモリをマッピングします。
udmabuf の場合は mmap() によって返された仮想アドレスにはまだ物理アドレスがマッピングされていないので、この仮想アドレスを V4L2 デバイスに渡すと『Buffer from UDMABUF and V4L2_MEMORY_USERPTR #38』で示されたようなエラーが発生します。
これを防ぐためには、mmap() 直後にバッファをクリアするのが良いでしょう。バッファに書き込みすることによって、ページフォールトを発生させて、仮想アドレスに物理メモリをマッピングします。
udmabuf.hpp// Write once to allocate physical memory to u-dma-buf virtual space. // Note: Do not use memset() for this. // Because it does not work as expected. { uint64_t* word_ptr = reinterpret_cast<uint64_t*>(buf); size_t words = buf_size/sizeof(uint64_t); for(int i = 0 ; i < words; i++) { word_ptr[i] = 0; } }バッファクリアの際に、memset() を使ってはなりません。memset() はとても複雑なことをしていて思い通りの結果を得ることが出来ません。
将来は udmabuf 内部でこのような処理をすることを検討しています。それまでは、この使用例のように明示的にバッファをクリアしてください。
V4L2 ドライバにV4L2バッファを要求
V4L2 ドライバに対して V4L2 バッファを要求します。その際、 V4L2 バッファは V4L2 ドライバが確保するのではなくユーザープログラムが確保したものを使うことを示すために、req.memory には V4L2_MEMORY_USERPTR を指定します。
example.cppv4l2_requestbuffers req ; memset(&req, 0, sizeof(req)); req.count = num_buf; req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; req.memory = V4L2_MEMORY_USERPTR; ret = xioctl(fd, VIDIOC_REQBUFS, &req); if (ret < 0) { perror("ioctl(VIDIOC_REQBUFS)"); return -1; }V4L2 ドライバにV4L2バッファをエンキュー(enqueue)
ストリーミングを開始するに先立って、V4L2 ドライバのキューに V4L2 バッファをエンキューします。buf.m.userptr に udmabuf で確保したバッファの物理メモリをマッピングした仮想アドレスを設定しています。
example.cppfor (i = 0; i < num_buf; i++) { v4l2_buffer buf; memset(&buf, 0, sizeof(buf)); buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; buf.memory = V4L2_MEMORY_USERPTR; buf.index = i; buf.length = buf_size; buf.m.userptr = reinterpret_cast<unsigned long>(udmabuf.buf + i*buf_size); ret = xioctl(fd, VIDIOC_QBUF, &buf); if (ret < 0) { perror("ioctl(VIDIOC_QBUF)"); return -1; } }参考
- 投稿日:2020-03-05T14:11:28+09:00
VirtualBox(vagrant)上のCentOS7にVirtualBoxをインストールする
VirtualBox(vagrant)上のCentOS7で、kubernetes(minikube)を動かそうとしたときに、CentOS7にVirtualBoxをインストールする必要がありました。
その時の手順を記載しておこうと思います。
yumリポジトリをCentOSに追加
以下の公式サイトのページを参考に、VirtualBoxのyumリポジトリをCentOSに追加します。
※公式サイトのページ:https://www.virtualbox.org/wiki/Linux_Downloads
「RPM-based Linux distributions」セクションの最下部をご覧ください。$ sudo wget https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -O /etc/yum.repos.d/virtualbox.repo改竄有無チェック用の公開鍵をCentOSにインポート
先ほどの公式サイトのページには
Note that importing the key is not necessary for yum users (Oracle Linux/Fedora/RHEL/CentOS) when using one of the virtualbox.repo files from below as yum downloads and imports the public key automatically!
(Google翻訳)yumは公開キーを自動的にダウンロードしてインポートするため、下からvirtualbox.repoファイルのいずれかを使用する場合、yumユーザー(Oracle Linux / Fedora / RHEL / CentOS)にはキーをインポートする必要はありません。
と書かれていますが、実際にはそんなことはありません。
なぜなら、後ほどインストール可能なバージョンを確認するために
yum list |grep Virtual
をする必要があり、事前に改竄有無チェックのための公開鍵がCentOSにインポートされている必要があるからです。なので、この公開鍵のインポートは結局必要となります。
(もちろん、インストール可能なバージョンが事前に分かっている場合はこの限りではありません。)公式サイトに記載されている通り、公開鍵をインポートします。
wget https://www.virtualbox.org/download/oracle_vbox.asc sudo rpm --import oracle_vbox.ascVirtualBoxをインストール
インストール可能なVirtualBoxのバージョンを確認します。
$ yum list |grep Virtual VirtualBox-4.3.x86_64 4.3.40_110317_el7-1 virtualbox VirtualBox-5.0.x86_64 5.0.40_115130_el7-1 virtualbox VirtualBox-5.1.x86_64 5.1.38_122592_el7-1 virtualbox VirtualBox-5.2.x86_64 5.2.38_136252_el7-1 virtualbox VirtualBox-6.0.x86_64 6.0.18_136238_el7-1 virtualbox VirtualBox-6.1.x86_64 6.1.4_136177_el7-1 virtualbox最新版をインストールします。
sudo yum install VirtualBox-6.1.x86_64
カーネルモジュールをインストール
virtualboxが動くか確認してみましょう。
$ virtualbox WARNING: The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (3.10.0-957.12.2.el7.x86_64) or it failed to load. Please recompile the kernel module and install it by sudo /sbin/vboxconfig You will not be able to start VMs until this problem is fixed. Qt FATAL: QXcbConnection: Could not connect to display Abortedエラーとなってしまいました。エラメッセージに
sudo /sbin/vboxconfig
を実行せよ、と書いてありますので、素直に実行してみます。$ sudo /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. This system is currently not set up to build kernel modules. Please install the gcc make perl packages from your distribution. Please install the Linux kernel "header" files matching the current kernel for adding new hardware support to the system. The distribution packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-957.12.2.el7.x86_64エラーとなりました。エラーメッセージを見てみると、
Please install the gcc make perl packages from your distribution.とのことなので素直にインストールします。
$ sudo yum install gcc make perlさらに、エラーメッセージには以下の記載もありました。
Please install the Linux kernel "header" files matching the current kernel for adding new hardware support to the system. The distribution packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-957.12.2.el7.x86_64kernel-develが無いということなので、こちらも素直にインストールします。
$ sudo yum install kernel-devel設定を有効にするためにCentOSを再起動して、リトライです。(再起動は不要なのかもしれません)
$ sudo /sbin/vboxconfig Please install the Linux kernel "header" files matching the current kernel for adding new hardware support to the system. The distribution packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-957.12.2.el7.x86_64あれ?「kernel-devel」が無い、ということで、同じエラーです。
SELinuxが関係してるのかなと思い、SELinuxをDisabledにしてみたのですが、状況は変わりませんでした。
色々と調べてみると、CentOSのkernelのバージョンに対応するkernel-develがインストールされていないことが原因のようでした。
$ sudo yum install kernel-develとしてしまうと、最新版のkenel-develがインストールされてしまいます。最新版のkenel-develは、CentOSのkernelのバージョンと整合性が無いので、エラーが起きてしまったのです。
詳しくは以下の解説をご覧ください。大変参考になります。こちらに記載の手順を実施して、CentOSのkernelのバージョンと整合性があるkernel-develをインストールしましょう。
https://qiita.com/metheglin/items/60261f474ccdfb467574その後、リトライしてみます。
$ sudo /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules.やっとうまくいきました!
おまけ
今回は、macのVirtualBox上でCentOS7を動かし、そのCentOS上でVirtualBoxを動かそうとしていました。それによって、CentOS上でkubernetes(minikube)を動かそうとしました。
こういったVMの中でさらにVMを動かす、ということを「ネステッドVM」と呼びます。
しかし、このネステッドVMは、macのVirutualBoxでは使えませんでした。AMDのCPUしか対応してないらしく、macのIntel CPUでは使えないとのこと。せっかく本記事のように頑張ったのに、残念でした・・・。
VirtualBox上のCentOS7でkubernetesを動かすのは諦めて、mac上で動かしてみることにしました(おわり)。
- 投稿日:2020-03-05T14:11:28+09:00
VirtualBox(mac+vagrant)上のCentOS7にVirtualBoxをインストールする
VirtualBox(mac+vagrant)上のCentOS7で、kubernetes(minikube)を動かそうとしたときに、CentOS7にVirtualBoxをインストールする必要がありました。
その時の手順を記載しておこうと思います。
yumリポジトリをCentOSに追加
以下の公式サイトのページを参考に、VirtualBoxのyumリポジトリをCentOSに追加します。
※公式サイトのページ:https://www.virtualbox.org/wiki/Linux_Downloads
「RPM-based Linux distributions」セクションの最下部をご覧ください。$ sudo wget https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -O /etc/yum.repos.d/virtualbox.repo改竄有無チェック用の公開鍵をCentOSにインポート
先ほどの公式サイトのページには
Note that importing the key is not necessary for yum users (Oracle Linux/Fedora/RHEL/CentOS) when using one of the virtualbox.repo files from below as yum downloads and imports the public key automatically!
(Google翻訳)yumは公開キーを自動的にダウンロードしてインポートするため、下からvirtualbox.repoファイルのいずれかを使用する場合、yumユーザー(Oracle Linux / Fedora / RHEL / CentOS)にはキーをインポートする必要はありません。
と書かれていますが、実際にはそんなことはありません。
なぜなら、後ほどインストール可能なバージョンを確認するために
yum list |grep Virtual
をする必要があり、事前に改竄有無チェックのための公開鍵がCentOSにインポートされている必要があるからです。なので、この公開鍵のインポートは結局必要となります。
(もちろん、インストール可能なバージョンが事前に分かっている場合はこの限りではありません。)公式サイトに記載されている通り、公開鍵をインポートします。
wget https://www.virtualbox.org/download/oracle_vbox.asc sudo rpm --import oracle_vbox.ascVirtualBoxをインストール
インストール可能なVirtualBoxのバージョンを確認します。
$ yum list |grep Virtual VirtualBox-4.3.x86_64 4.3.40_110317_el7-1 virtualbox VirtualBox-5.0.x86_64 5.0.40_115130_el7-1 virtualbox VirtualBox-5.1.x86_64 5.1.38_122592_el7-1 virtualbox VirtualBox-5.2.x86_64 5.2.38_136252_el7-1 virtualbox VirtualBox-6.0.x86_64 6.0.18_136238_el7-1 virtualbox VirtualBox-6.1.x86_64 6.1.4_136177_el7-1 virtualbox最新版をインストールします。
sudo yum install VirtualBox-6.1.x86_64
カーネルモジュールをインストール
virtualboxが動くか確認してみましょう。
$ virtualbox WARNING: The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (3.10.0-957.12.2.el7.x86_64) or it failed to load. Please recompile the kernel module and install it by sudo /sbin/vboxconfig You will not be able to start VMs until this problem is fixed. Qt FATAL: QXcbConnection: Could not connect to display Abortedエラーとなってしまいました。エラメッセージに
sudo /sbin/vboxconfig
を実行せよ、と書いてありますので、素直に実行してみます。$ sudo /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. This system is currently not set up to build kernel modules. Please install the gcc make perl packages from your distribution. Please install the Linux kernel "header" files matching the current kernel for adding new hardware support to the system. The distribution packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-957.12.2.el7.x86_64エラーとなりました。エラーメッセージを見てみると、
Please install the gcc make perl packages from your distribution.とのことなので素直にインストールします。
$ sudo yum install gcc make perlさらに、エラーメッセージには以下の記載もありました。
Please install the Linux kernel "header" files matching the current kernel for adding new hardware support to the system. The distribution packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-957.12.2.el7.x86_64kernel-develが無いということなので、こちらも素直にインストールします。
$ sudo yum install kernel-devel設定を有効にするためにCentOSを再起動して、リトライです。(再起動は不要なのかもしれません)
$ sudo /sbin/vboxconfig Please install the Linux kernel "header" files matching the current kernel for adding new hardware support to the system. The distribution packages containing the headers are probably: kernel-devel kernel-devel-3.10.0-957.12.2.el7.x86_64あれ?「kernel-devel」が無い、ということで、同じエラーです。
SELinuxが関係してるのかなと思い、SELinuxをDisabledにしてみたのですが、状況は変わりませんでした。
色々と調べてみると、CentOSのkernelのバージョンに対応するkernel-develがインストールされていないことが原因のようでした。
$ sudo yum install kernel-develとしてしまうと、最新版のkenel-develがインストールされてしまいます。最新版のkenel-develは、CentOSのkernelのバージョンと整合性が無いので、エラーが起きてしまったのです。
詳しくは以下の解説をご覧ください。大変参考になります。こちらに記載の手順を実施して、CentOSのkernelのバージョンと整合性があるkernel-develをインストールしましょう。
https://qiita.com/metheglin/items/60261f474ccdfb467574その後、リトライしてみます。
$ sudo /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules.やっとうまくいきました!
おまけ
今回は、macのVirtualBox上でCentOS7を動かし、そのCentOS上でVirtualBoxを動かそうとしていました。それによって、CentOS上でkubernetes(minikube)を動かそうとしました。
こういったVMの中でさらにVMを動かす、ということを「ネステッドVM」と呼びます。
しかし、このネステッドVMは、macのVirutualBoxでは使えませんでした。AMDのCPUしか対応してないらしく、macのIntel CPUでは使えないとのこと。せっかく本記事のように頑張ったのに、残念でした・・・。
VirtualBox上のCentOS7でkubernetesを動かすのは諦めて、mac上で動かしてみることにしました(おわり)。
- 投稿日:2020-03-05T13:31:11+09:00
[squidでhttpsプロキシ] 中間CA証明書をチェインしていないwebサーバへアクセスしたときのエラーを解消する。
はじめに
sslインターセプトするhttpsプロキシを運用していて、不具合があった点が解消できましたので、記録します。
利用する環境は、前回構築した以下のものです。
squidでActiveDirectory連携とSSLインターセプトするProxyをdockerで手軽につくるなにが起こったのか
以下のサイトに接続しようとすると、エラーが発生。
https://learningnetwork.cisco.com/s/証明書の発行元が不明なためエラーとなっている様子。
うまくチェインがたどれないのであろう。
原因調査
ログ調査
ログを見ると、squidがサーバ証明書を受け取る際に、不足した中間CA証明書を取得しようとして、DENIEDされている。
そのせいで証明書ベリファイできてない(=チェーンがたどれない)みたいだ。squid_access.logTCP_DENIED/407 4118 CONNECT learningnetwork.cisco.com:443 - HIER_NONE/- text/html TCP_DENIED/407 4488 CONNECT learningnetwork.cisco.com:443 - HIER_NONE/- text/html NONE/200 0 CONNECT learningnetwork.cisco.com:443 PROSPER2\\USERNAME HIER_NONE/- - TCP_DENIED/407 3616 GET http://trust.quovadisglobal.com/hydsslg2.crt - HIER_NONE/- text/html;charset=utf-8 TCP_MISS/503 7165 GET https://learningnetwork.cisco.com/s/jp-cln PROSPER2\\USERNAME HIER_DIRECT/161.71.178.161 text/htmlsquid_cache.logkid1| ALE missing IDENT kid1| ERROR: negotiating TLS on FD 23: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed (1/-1/0)squidの4以降では、中間証明書を自動的に取得してくれる機能がついているようなのですが。。。
Squid-4 is capable of downloading missing intermediate CA certificates, like popular browsers do.
ログから確認できた通り、証明書を取得するためのURLへの通信が許可されていないため、うまく動作していないようだ。
実際に証明書を取得してみる
learningnetwork.cisco.comの場合
証明書を取得してみたところ、チェーンがたどれるようにCAの証明書を付けてくれてないみたい。
# openssl s_client -connect learningnetwork.cisco.com:443 -showcerts | grep [si]: depth=0 C = US, ST = California, L = San Jose, O = "Cisco Systems, Inc.", CN = learningnetwork.cisco.com verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 C = US, ST = California, L = San Jose, O = "Cisco Systems, Inc.", CN = learningnetwork.cisco.com verify error:num=21:unable to verify the first certificate verify return:1 0 s:C = US, ST = California, L = San Jose, O = "Cisco Systems, Inc.", CN = learningnetwork.cisco.com i:C = US, O = HydrantID (Avalanche Cloud Corporation), CN = HydrantID SSL ICA G2cisco.comの場合
こちら側は、ちゃんとチェーンがたどれるようにしてくれてるのに。。。
# openssl s_client -connect www.cisco.com:443 -showcerts | grep [si]: depth=2 C = BM, O = QuoVadis Limited, CN = QuoVadis Root CA 2 verify return:1 depth=1 C = US, O = HydrantID (Avalanche Cloud Corporation), CN = HydrantID SSL ICA G2 verify return:1 depth=0 C = US, ST = California, L = San Jose, O = "Cisco Systems, Inc.", CN = www.cisco.com verify return:1 0 s:C = US, ST = California, L = San Jose, O = "Cisco Systems, Inc.", CN = www.cisco.com i:C = US, O = HydrantID (Avalanche Cloud Corporation), CN = HydrantID SSL ICA G2 1 s:C = US, O = HydrantID (Avalanche Cloud Corporation), CN = HydrantID SSL ICA G2 i:C = BM, O = QuoVadis Limited, CN = QuoVadis Root CA 2解決方法
つまり、取得できなかった中間CA証明書が取得できるようになればよい、ということのはず。
解決方法その1
ホワイトリストに中間証明書を取得するURLを追加する。
whitelist^(https*://)*([^/][^/]*\.)*quovadisglobal\.com(:443|:80)*(/.*)*$解決方法その2
squidのサーバに欠落対象となる中間CA証明書を保管しておいて、外部の中間CAとしてその証明書を指定する。
squidはDERの証明書が利用できないぽい(?)ので、PEMにして保管します。# curl -L http://trust.quovadisglobal.com/hydsslg2.crt --output - | openssl x509 -inform DER > /etc/squid/certs/ca3rd/hydsslg2.crt
squid.conf
で取得した証明書を指定します。squid.confsslproxy_foreign_intermediate_certs /etc/squid/certs/ca3rd/hydsslg2.crtこれでうまく見れるようになった。
出典
以下の参考にさせていただきました。
opensslコマンドの使い方
https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit
- 投稿日:2020-03-05T12:43:53+09:00
[linux] sudo su しようとしたら /usr/local/bin/zsh を実行できなとき
はじめに
sudoでコマンドが見つかりませんになったので
suしてrootユーザのパスを設定しようと思ったら拒否られたので調べました原因
bashからzshに移行したさいに
手違いでrootのデフォルトシェルが/usr/local/bin/zshになってしまったか、そもそもrootシェルの設定をしてないが原因とみられるrootパスを設定していないので、chshでrootシェルを設定できるはずがない!
実際のパス❯ echo $SHELL /usr/bin/zshまずシェルを変更する
sudo chsh root -s /usr/bin/zsh認証失敗のとき
sudo chsh root -s /usr/bin/zsh chsh: PAM: 認証失敗
/etc/pam.d/chsh
を編集してシェルを変更できるようにする。# # The PAM configuration file for the Shadow `chsh' service # # This will not allow a user to change their shell unless # their current one is listed in /etc/shells. This keeps # accounts with special shells from changing them. # ここをコメントアウトする # auth required pam_shells.soこの状態でもう一度
sudo chsh root -s /usr/bin/zsh
すれば変更できる。
変更できたら、コメントコメントアウトした行を元にもどす。rootパスを変更する
$ sudo su -$ passwd root 新しい UNIX パスワードを入力してください: xxx 新しい UNIX パスワードを再入力してください: xxx passwd: パスワードは正しく更新されました $ exit
- 投稿日:2020-03-05T11:03:11+09:00
T1310M3でオンボードRAIDを構築してCent OS7.7を入れる
知っている人には常識なんでしょうが、ドライバを入れないと認識しないところでハマりました。
1.Bios画面でRAIDをONにしてSave&Exit
2.https://docs.oracle.com/cd/E59941_01/html/E59783/z40000081016142.html
を見ながら、オンボードRAID構成を実施3.重要:2で作った論理ドライブはCentOS7.7のインストーラで認識できないので、ドライバを入れる必要がある。
4.https://support.ts.fujitsu.com/IndexDownload.asp?lng=COM で、RHEL7.7のSATA RAID RHDUP driver package megasr2 18.02.2019.0603.4fts-2.el7.7 for RHEL7.7をダウンロード
5.上記ドライバをDDWinなどを用いて、USBメモリに焼く6.CentOS7.7のインストーラUSBと、ドライバを入れたUSBを両方入れる。
8.作成した論理ドライブを指定してインストール実施
- 投稿日:2020-03-05T10:39:31+09:00