SSブログ

lessコマンドとか一向に日本語表示できないよね… [Linux]

LinuxでUTF-8が一般的になっても、日本語表示ができないとか普通にあるという話。

続きを読む


コメント(0) 
共通テーマ:パソコン・インターネット

NFSでマウントしてみた。 [Linux]

誤解を恐れずに簡単に言うと、NFSというのはWindowsのファイル共有と似たようなもので、SambaとかCIFSと言われているものと似たようなものである。サーバ同士のファイルシステムをつなげるもので、ファイルのやり取りが継続的に使える。


クライアント側でマウントポイントにファイルがある場合、NFSをマウントした時にファイルをNFSサーバ側へ送ってくれるのかどうか、という話。

結果から言うと、マウントするとNFSサーバ側のディレクトリで置き換えられて、一時的にクライアントのマウントポイントにあったファイルが消える。NFSのマウントを切ると、見えなくなっていたクライアントのファイルが復活する、といった具合。

続きを読む


コメント(0) 
共通テーマ:パソコン・インターネット

会社の全サーバにTMUX入れたい [Linux]

tmuxが恋しい。Ubuntuを入れていた時には必ずと言っていいほど入っていたのだけれど、TMUXというターミナルソフトが良かった。読み方からEMACSを想像すると全然違うんだけど、便利だという点では同じだろう。

知ったのはシス管系女子というマンガだけど中身はゴリゴリの技術書があったんだけど、screenというターミナルが縦割りが普通にできなくて、何かないかなぁと思ったときにマンガで出会った。自分で見つけたのと、いろいろな機能があるというのをマンガで知ったのが同時くらいだと思ったから、どちらが早いというわけではないのだけれど、明らかにTMUXは自分のやりたいことに合っていた。

続きを読む


コメント(0) 
共通テーマ:パソコン・インターネット

CentOS7でteamingした後、チーミングされて元のMACアドレスが見えない [Linux]

物理サーバで冗長性のあるネットワーク構成にするため、teamingをすることがあります。ちょっと前はbondingとか言っていたと思うけど、大体同じ感じだと思います。

二つの回線を束ねて使うか、どっちかが使えなくなった時に動き出すようになっているか、どちらかなんだろうけど、リンクアグリゲーションとかはどちらかと言うと最近の技術なんだろうなぁ。

再起動時に登録されているMACアドレスが入れ替わることがあるみたいで、ネットワーク側でMACアドレスを登録するような環境だと困る。変わった後はわかるんだけど、元のMACアドレスが知りたい時がある。ない?俺はあった。勝手に変わることもあるから、どっちのMACアドレスも登録しないといけなかった。

RedHat系で言うと、RHEL8だとpermaddrとしてip aのコマンドで元アドレスが出てくるんだけど、CentOS7とかだとip aでもifconfigでも出ない。nmcliのコマンドで出るかなぁと思っていたんだけど、自分でやった範囲では出なかった。

ググったら変なところのファイルに書いてあるとあったのだけれど、そのファイルパスにファイルが存在していなかった。嘘じゃなかったんだろうけど、今となっては使えない情報だったりする。

https://blog.ishmz.com/post/bonding%E3%81%97%E3%81%9F%E3%81%A8%E3%81%8D%E3%81%AB%E5%90%84nic%E3%81%AE%E5%AE%9F%E9%9A%9B%E3%81%AEmac%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B%E6%96%B9%E6%B3%95/

他にもいろいろ/proc/net/あたりをcatとかで中身を見てみたんだけど、それらしいものが見つからず。そもそも見つかったからと言って、それが元々のMACアドレスを示したものかどうかなんてわからないですし。いや、サーバだからMACアドレスが順番に振られているのはわかっているのだけれども、実際にコンピューターとしてはこう認識していますよって言う言質を取りたいんですよ。

なのでチーミングする前にはMACアドレスは控えておきましょう。まぁRHEL8以上だと大丈夫だと思うけど。


結論:CentOS7は捨てよう。来年度にはEOLだし。



《後記》
上司が解決策を示してくださった。というか現場の技術者なのに解決できてないとか、ググるしか能がねーのよw

・例

$ lspci | grep Ethernet
02:00.0 Ethernet controller: なんとか
02:00.1 Ethernet controller: なんとか
03:00.0 Ethernet controller: なんとか
02:00.1 Ethernet controller: なんとか

$ lspci -v -s 02:00.0 | grep Serial
$ lspci -v -s 02:00.1 | grep Serial
$ lspci -v -s 03:00.0 | grep Serial
$ lspci -v -s 03:00.1 | grep Serial

で出てくるっぽい。lspciなんてコマンド使ったことないわ! ずっと前に聞いた覚えだけはあるけど、実際に実用的に使ったことはない。
コメント(0) 
共通テーマ:パソコン・インターネット

SSHで公開鍵接続しようとしてつなげなかった。 [Linux]

SSH公開鍵接続をしようとして、以下のエラーが出た。
今までこんなエラー出たことなかったのにね。

Permission denied (publickey,gssapi-keyex,gssapi-with-mic)


ググると、~/.ssh を700のパーミッションにしろだとか
~/.ssh/authorized_keys を600のパーミッションにしろだとか
真っ先に出てくると思う。馬鹿みたいにそれ一辺倒なのね。同じような検索結果が出てきても嬉しくないよ。Googleは最近特に役に立たない。

そんなの真っ先に確認したし、パーミッションもオーナーも間違っちゃいないんだよ!
という方もいらっしゃるかと思います。

そんな時に確かめてほしいのがSELinuxの設定です。
SELinuxが公開鍵を読むのを邪魔をしているのです。
その証拠は/var/log/audit にあります(RHELの場合)。
su -
setenforce 0
cp -piv /etc/selinux/config /etc/selinux/config.`date "+%Y%m%d"`
sed -i -e "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

でSELinuxを葬り去ってしまうのが面倒がないのですが、せっかくのSELinuxを台無しにしているとも言えます。他の問題も消え去るので厄介ごとが減るのはそうなんですが、SELinuxを使う前提で設定するとしたらどうなるんでしょうか? ググってみました。

そもそもSELinuxがどんなものなのかわかっていなかった。セキュリティ関係だということはわかっていたが、具体的に何をしているのだか知らなかった。そもそも面倒くさいらしくてオフにしていたのだもの。

むーん、わからんw
https://www.redhat.com/ja/topics/linux/what-is-selinux
ムービーとかセキュリティ関係でふわっとしすぎていてSELinuxのこと何もわからん。
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html-single/using_selinux/index?extIdCarryOver=true&sc_cid=701f2000001OH7EAAW
なんか読むのしんどいな。

今の時代に「とほほ」が広告とか以外の一番上に出てくるw
https://www.tohoho-web.com/ex/selinux.html
まだこっちのほうがわかりいいな。
とにかく、root権限で動いているプロセスを乗っ取られても、そのソフトが影響を及ぼせるファイルの範囲が決まっているから、被害を最小限に留めることができるって話かな?
そんでもって、OpenSSHに関しては、いちいち公開鍵の位置を事前に指定しておくことができないために、SELinuxで引っかかるという具合らしい。

そんでSELinuxとOpenSSHでググってみるとまともな例が出てこない。「SELinuxが悪さをしているらしい→できた」みたいな説明をすっ飛ばしたものしか無い。ひどすぎないか?w
というか、まともに設定すると面倒くさかったり、自分の情報を公開することになるからやらないのかな? どちらにしても具体的な例がほとんどない。多分みんなSELinuxオフにしているんだと思うw


実際に検証していないのだけれど、どうやらrestoreconを使えばいいらしい。
https://togetter.com/li/1044419?page=2
https://blog.afnf.net/blog/74

やってることは同じなのだけれど
sudo restorecon -RFv home/[ユーザー名]/.ssh


# restorecon -FRvv ~/.ssh

をすればいいらしい。下の方が面倒がなさそうだけど、~/は効くのかな? それとパラメータのvvは重なっていていいものだろうか?

というか、パミッションのことばっか出てくるので、RHELみたいにSELinuxがデフォルトで恩になっているディストリビューションって少ないのかな? まぁRHELは商用に近いので、セキュリティを高める方向に持っていくのはわかるんだけどさ。めんどいから全部無効にしちゃえというのはわからんでもない。

コメント(0) 
共通テーマ:パソコン・インターネット

Ubuntuを古いMacに入れて気づいたこと [Linux]

Macが古くなって、流石に古くなったMacOSをそのまま使い続けるのもなんなので、軽量Linuxを点々としたあと結局Ubuntuを入れることになりました。数ヶ月Ubuntuを使い続けて分かったこと書きます。

続きを読む


コメント(0) 
共通テーマ:パソコン・インターネット

vSphereのクローンでハマった。 [Linux]

会社でVMware vSphereを仮想環境に使っているのだが、既存の仮想マシンをクローンした時にハマったところを書いておく。

まずCentOS7をクローンしたのだけれど、そのままブートしない。ブートの途中でDracutのプロンプトが出てきてしまい、そこからどうにも進まない感じだ。エラー表示を見てみると、rootディレクトリやswap領域が読み込めていない。dracutのプロンプトもなにか要領を得ない。dracutのコマンドの使い方はあるのだが、いまいちプロンプトの用法がよくわからない。

更にネットワークもnmtuiで用意されたIPアドレスやデフォルトゲートウェイを指定してもSSHが繋がらない。これは今まで散々外部のファイアウォールに苦しめられてきたので、それが元で通らないのだと思っていた。IPはあっている、その他の設定も間違っていない。PINGは通らない。nslookupはきちんとホスト名とIPがあっている。vSphereのWebコンソールから外側を見ようとしても、プロキシを設定しても繋がらない。当然yum関係でソフトウェアの取り寄せもできない。結論を言ってしまうと、クローンしてくれた人がIPがバッティングしないようにNICの接続を止めていてくれていただけだった。なのでvSphereの管理者権限でつながるようになりそう。


ネットワークはまだ良いとして、まともにブートしないのが気持ち悪い。CentOS7はRHEL7にコンバートしてRHEL8にアップグレードするため、事前にSCSIの設定を準仮想化にしてもらっていた。たぶん、ブートしないのはそこなんじゃないかなと思ってはいた。とはいえ、vSphereの管理者は夏休みで動かしてもらえないので、そこはある程度のところまで自分で解決しないといけなかった。

SCSIの設定を元に戻せない状態で、なんとかしようともがいた。
状況的にこれに酷似していたのだが、やはり全く同じではない。しかしvSphereでブートしないというところと、エラーメッセージがほとんど同じだということだ。
https://blog.kamata-net.com/archives/12392.html

そこではインストールディスクのレスキューモードを使っていたが、面倒なのでgrubで選択できるrescue modeにて同じようなことができないか試してみた。そもそもDVDのISOとかでブートするとchrootとか使わないといけないようだから、ディレクトリ操作がややこしくて手に余る。

レスキューモードにするとすんなり立ち上がった。まぁそうだよな。操作性が悪いのでSSHをつなげようとしたけれど、先の制限によってできなかった。SSHがつなげられないと、Webのコマンドのコピペで済むところが、vSphereのコンソールで全部手打ちしないといけない。正直やってられない。

grub2-installなどで再構築してカーネルイメージを指定したり、
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/system_administrators_guide/sec-reinstalling_grub_2

dracutでカーネルイメージを再構築したりしてみたのだが
https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html/kernel_administration_guide/sec-verifying_the_initial_ram_file_system_image

どうにもうまく行かない。状況は変わらない。そこでSCSIの準仮想化を思い出して、「VMware 準仮想化」とかでググってみました。
https://anything-it.info/vmware-pvscsi-adapter-install/

これはWindowsのものだけれども、準仮想化をするとドライバが必要だよということを言っていて、それに関してはLinuxも変わらないことだと思いました。そもそもドライバがないから読み込めない、と。しかし、そこまで行くまでにHDD読んでんじゃないかよとツッコミを入れたくもなるのだが、それはレスキューモードと同じ理屈で読み込めているのだろうと無理に納得してみる。

そういやVMware ToolsのインストールってWindowsでしかやったことないなと思って改めて調べてみました。vSphereの管理画面でインストールってリンクがあるけど、そこだけじゃISOぶち込むところまでしかやってくれないのね。Windowsではそれでブートしてくれたりするんだったような気がするけど、Linuxではそこそこ作業をしないといけないっぽい。
https://docs.vmware.com/jp/VMware-Tools/12.2.0/com.vmware.vsphere.vmwaretools.doc/GUID-08BB9465-D40A-4E16-9E15-8C016CC8166F.html

あぁCDをマウントするとか面倒くさいな。そこいらの作業はLinuxデスクトップでもしなくなったので、改めてやらされるとワンステップあってしんどさ倍増である。
やったのはこれだけであった(効果のあったものは多分これだけ)。
grub2-mkconfig -o /boot/grub2/grub.cfg
dracut -f /boot/initramfs-使うカーネルの番号.el7.x86_64.img 使うカーネルの番号


ググってみると
mount --bind /proc /mnt/sysimage/proc
mount --bind /dev /mnt/sysimage/dev
mount --bind /sys /mnt/sysimage/sys
chroot /mnt/sysimage/

みたいな表示が結構あるけれど、これはDVDのISOとかでブートした時に必要なのかな? 普通にローカルでブートできているなら必要のない作業だと思うんだけど、わりとこの作業を書いているところがある。grubの選択肢にrescue modeってあるやん? みんな使わんの?

ともあれ、VMware Toolsのドライバが入れられたカーネルが立ち上がり無事に危機を脱したのでした。ネットワークがつながっていて、yumが使えればopen-vm-toolを入れてそれで終わりだったのかもしれないけど、今回はネットもつながらないサーバでなんとかしました。というか、今どきネットワークがまともにないと、コマンドを入れ込むのにもコピペできないし、リポジトリからソフトも取れないし、PCで情報をかき集めるしかないんだよね。ちょっとしんどかった。

コメント(0) 
共通テーマ:パソコン・インターネット

UbuntuでBrotherの古いレーザープリンタを使おうとしたが、ドライバが腐ってた [Linux]

教訓:Liunxの古いドライバは新しいLinuxに入れるな。

続きを読む


コメント(0) 
共通テーマ:パソコン・インターネット

Macに軽量Linuxを入れようとしてハマったこと [Linux]

結局、軽量LinuxをMacに入れようとして入れられなくてノーマルのUbuntuにしました。ハマりどころをまとめておきます。普段遣いをするにはネットと日本語入力が使えるのがマストですね。というか、そこさえ押さえておけば、後はどうにかなりそうな感じ。逆にそこが使えないと、何に使うにしても引っかかると思う。そんなんだったら最初から日本語を使えないような状態にすればいいんだけど、いくら何でもネイティブな日本人にとって英語だけとかきつすぎるので、やはり日本語の入力環境ぐらいはないとつらい。たぶん軽量Linuxで一番大事なところで、他は大体は大丈夫だと思う。Windowsの実行ファイルを動かせないとか当たり前なことは別にして…(Wineとかはあるんだろうけど、まともに使っている人を見たことがない)

続きを読む


コメント(0) 
共通テーマ:パソコン・インターネット

サーバ証明書を作るときのパスフレーズの長さと文字種 [Linux]

WebサーバをTLSにすべく、サーバ証明書を入れる時にキーファイルにパスフレーズを付けると思います。パスフレーズを付けないものにするとしても、後で取り去るような感じになっているのかな?

具体的にはopenssl genrsaする時とかですが、何文字でどんな文字を使えるか気になった人いません? 自分は適当に他のサーバと似たようなパスフレーズを使っておけばいいだろうと思って適当にしていたんですが、何か気になってしまい改めて調べようとしました。

しかし、ネットでの情報がない…。特に日本語のものがない。英語の情報にも手を出したけど、そのものずばり出てこない。一般的なパスフレーズの話とかになってしまったりして、こっちはopensslで使えるpassphraseをさがしているんだよって思っていました。

実際にopensslでkeyファイルを作るときに、一文字だけ入れてみたらパスフレーズが短すぎると怒られました。そんでもってエラーでパスフレーズの長さがきちんと出てきました。

UI routines:UI_set_result_ex:result too small:crypto/ui/ui_lib.c:905:You must type in 4 to 1023 characters

4文字から1023文字まで、という事らしいです。使える文字種についてはコマンドラインでは分からないっぽい。なのでopensslの本家のサイトを集中的に見てみました。

https://www.openssl.org/docs/manmaster/man7/passphrase-encoding.html

特段、文字種のルールを設けてはいないんだけど、 ISO-8859-1の範囲内でないといけないみたい。まぁ日本語とかはダメだよね。

https://ja.wikipedia.org/wiki/ISO/IEC_8859-1#%E7%AC%A6%E5%8F%B7%E8%A1%A8

大体の記号は使えそうだけども、コマンドラインとかで特別な意味があるものとかは使いたくない感じ。エスケープとか考えると面倒くさくなる。openssl rand -base64 とかで作る方法があるけど、それだと記号がかなり限られてくるので、捨てパスワードとして手軽に作る程度がいいのではないかと思ったりもする。どうせコピペで一回だけ設定とかになるから、面倒でも長くて複雑なものにしましょう(と自分に言い聞かせる…)。

コメント(0) 
共通テーマ:パソコン・インターネット