スキップしてメイン コンテンツに移動

投稿

5月, 2020の投稿を表示しています

テキストエディタの自動インデントとコメントアウトの方法

インデント コピーしてきて継ぎ接ぎのファイルを自動インデントする。 vi コマンド入力 gg=G ggが先頭、Gが文末にカーソルが移動するコマンド。 = が文章を適当にインデント Emacs 次を入力し文章全体を選択。 C-x h その後、インデントを行う。 C-M-\ コメントアウト vi C-vで範囲を選択し、Shift-i で挿入モードに切り替え入力。 挿入モードを終わると一括入力される。 Emacs M-; リージョンを選択すれば選択範囲のコメントアウト。 してないなら行末尾にコメント追加。

LS-WTGLをハックし、sshログインする

初期状態のリンクステーションは外部からの接続が制限されている。 この為、sshでログインできるようにハックする。 ここではDebian上で操作する。 javaの実行環境 java の実行環境構築する。 Java Runtime Environment (JRE) をインストールしておけばいいはず。 # apt install openjdk-11-jre ツールの導入と実行 リンクステーション向けにツールが公開されている。 acp_commander.jar https://github.com/Stonie/acp-commander このファイルを置いたディレクトリにて次のコマンドを入力するとヘルプが見られる。 $ java -jar acp_commander.jar リンクステーションのIPアドレスが 192.168.0.2 の時、 rootパスワードを削除し、telnetサービスを立ち上げるのは次のコマンドで行う。 $ java -jar acp_commander.jar -t 192.168.0.2 -o これでリンクステーションにtelnetで接続可能になった。 rootパスワードの設定 rootのパスワードを設定しておく。 # passwd Changing password for root Enter the new password (minimum of 5, maximum of 20 characters) Please use a combination of upper and lower case letters and numbers. Enter new password: Re-enter new password: Password changed. sshサービスの起動 telnetで接続後、/usr/local/sbin/sshd を実行するとsshサービスが起動できる。 起動前に /etc/sshd_config を変更し設定を変える必要がある。 # sed -i 's/\#PermitRootLogin no/PermitRootLogin yes/' /etc/sshd_config # grep PermitRo

LS-WTGL の 復旧 with CentOS8

リンクステーションのファームを初期のものに置き換える作業を行った。 リンクステーションはLS-WTGL ver.1 である。USBが一つしかないタイプ。 CentOS8を使い復旧を行った。 初期状態 Debianを入れようとして試行錯誤していたが放ったらかしになっていた。 電源を入れると赤いランプが点滅する状態。 この状態はbootファイルが読み込めないと起きる。 初期化したい場合は /boot ディレクトリ内にある次のファイルの名前を変えると発生する。 uImage.buffalo initrd.buffalo この状態でリセットスイッチを長押しするとEMモードに入る。 EMモードはTFTPサーバ(192.168.11.1)からファームウェアをダウンロードして実行するモード。 これを利用し、初期ファームウェアを導入する。 ファームウェア配信用サーバの準備 TFTPサーバーを導入 on CentOS 8 https://atsreport.blogspot.com/2020/05/tftp-on-centos-8.html TFTPサーバを立てる。 上の記事通りなら、/var/lib/tftpboot がtftpサービスで公開される。 配信用の2つのファイルをこのディレクトリに配置する。 uImage.buffalo 、 initrd.buffalo IPアドレスを192.168.11.1に変更しておく。 次のコマンドを使うと比較的簡単に変更できる。 # nmtui この段階でリンクステーションのリセットスイッチを押すとファイルを拾いに来る。 その様子は次のコマンドで確認できる。 なお、標準でtftpサーバは69番ポートを利用する。 $ ss -u LAN内なら数秒でサーバからデータを持っていくので その後、リンクステーション内の構築が自動的に行われる。 赤いランプが点滅し、HDのアクセス音が聞こえてくると設定中である。 しばらくすると設定は完了する。 うまくいかない場合 firewall を確認しておく。 特に問題なければ無効にしておいてもいい。 # systemctl stop firewalld tftpサービスが立ち上がっているか確認してみる。 必要に応

perl の https通信 が出来なかったので対処した件

いつもhttpsの接続方法を調べているのでまとめることにした。 ここではDebianでの話になっている。 $ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 10 (buster)" NAME="Debian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" $ perl --version This is perl 5, version 28, subversion 1 (v5.28.1) built for x86_64-linux-gnu-thread-multi (with 61 registered patches, see perl -V for more detail) LWP::Protocol::https このモジュールを入れると関連するモジュールも入れてくれるのでこれをインストールする。 # cpanm LWP::Protocol::https エラーが出てインストールできない場合、何かが入っていない為ログファイルを確認する必要がある。 今回はこの辺をインストールした。 # apt install gcc # apt install libssl-dev # apt install zlib1g-dev gccがないとコンパイルできないと言うエラーが出る。 libssl-dev は openssl のヘッダファイルがないとエラーが出る。 zlib1g-dev は /usr/bin/ld: -lz が存在しないとエラーが出る。 インストールが出来たら、試しにFeedPPのサイトのサンプルを動かしてみた。 [Perl] XML::FeedPP - R

TFTPサーバーを導入 on CentOS 8

CentOS8 に TFTPサーバーを構築する。 日本語のサイトは xinetd 経由で動作させる記述が多いが、出来るだけ余計なものを導入したくないので systemd で動作をさせた。 [参考] Configure TFTP Server on CentOS 8 https://linuxhint.com/tftp_server_centos8/ インストール 次のコマンドでインストール出来る。 $ sudo dnf install tftp-server インストール後の状態確認 systemdのユニットファイルを確認してみる。 $ systemctl list-unit-files 300近くあるので制限して表示すると2つのファイルが見つかる。 $ systemctl list-unit-files | grep tftp tftp.service indirect tftp.socket disabled それぞれのファイルは次の場所にある。 /usr/lib/systemd/system/tftp.service /usr/lib/systemd/system/tftp.socket 中身については以下の通り。 $ cat /usr/lib/systemd/system/tftp.service [Unit] Description=Tftp Server Requires=tftp.socket Documentation=man:in.tftpd [Service] ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot StandardInput=socket [Install] Also=tftp.socket $ cat /usr/lib/systemd/system/tftp.socket [Unit] Description=Tftp Server Activation Socket [Socket] ListenDatagram=69 [Install] WantedBy=sockets.target

CentOSのGUI環境について

前回、CentOS8 の環境構築を行った。 CentOS 8.1 を 仮想環境VirtualBox にインストール on Win10 https://atsreport.blogspot.com/2020/05/centos-81-virtualbox-on-win10.html ディスク容量を絞ってインストールした為、GUIが入れられなかった。 OSのインストール後、パッケージマネージャ dnf を用いて導入したが、 重たかった為に他のGUIも試すことにする。 最小限のインストールを行った後、GUIを導入する。 dnfのグループを用いたインストールを行うが、 デフォルトでは GUI は GNOME しか用意されていない。 Extra Packages for Enterprise Linux repository を導入しインストールできるパッケージを増やしてKDEとXFCEを導入してみる。 [root@localhost ~]# dnf install epel-release epelリポジトリを追加すると、パッケージグループが増えている。 [root@localhost ~]# dnf group list Last metadata expiration check: 0:03:16 ago on Sat May 9 17:09:14 2020. Available Environment Groups: Server with GUI Server Workstation KDE Plasma Workspaces Virtualization Host Custom Operating System Installed Environment Groups: Minimal Install Available Groups: Container Management .NET Core Development RPM Development Tools Development Tools Graphical Administration Tools Headless Management Legacy UNIX Compatibi

CentOS 8.1 を 仮想環境VirtualBox にインストール on Win10

CentOS 8 のテスト環境を作ることにした。 用いたディスクイメージは CentOS-8.1.1911-x86_64-boot.iso http://ftp.riken.jp/Linux/centos/8.1.1911/isos/x86_64/CentOS-8.1.1911-x86_64-boot.iso VirtualBox は 6.0.20 を利用。 https://www.virtualbox.org/ インストール 仮想環境の設定を少し変更。 [ストレージ]のHDDサイズ - 8GB [システム]のチップセット - "ICH9" [ネットワーク]の割当 - "ブリッジアダプター" ディスクよりブートしウィザードに従いインストールを行う。 最初に言語の設定があるので日本語にした。 その後、タイムゾーンの設定が東京になっていなかったのでこれを変更。 パーテーションのレイアウトなどは自動で行った。 ネットワークを有効にし、インストールするソフトウェアは "最小限のインストール" を選択。 ダウンロードするファイルは約300MiB。 この間にrootパスワードとユーザを作成する。 ちなみに、GUI無しのサーバーでインストールするとダウンロードするファイルが400MiBぐらいで、インストール途中で止まってしまった。 インストールのバージョン [root@localhost ~]# cat /etc/centos-release CentOS Linux release 8.1.1911 (Core) [root@localhost ~]# cat /etc/os-release NAME="CentOS Linux" VERSION="8 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="8" PLATFORM_ID="platform:el8" PRETTY_NAME="CentOS Linux 8 (Core)" ANSI_COLOR="

Let's Encrypt の更新プログラム certbot が自動更新してくれない

Let's Encrypt を使いサーバの通信を行っているが、 自動更新するように cron の設定をしてもエラーが出て更新されない。 サーバはwebサーバとメールサーバで証明書を使っているがwebサーバの方しか更新されない。 エラーログを確認してみると原因がわかった。 次のファイルに更新時に使う設定が書かれている。 /etc/letsencrypt/renewal/ドメイン名.conf この設定が authenticator = standalone となっていた。 standaloneだと、webサービスを停止しないと更新ができない模様。 そこで、その部分をコメントアウトし、authenticator と installer を書き加えた。 [renewalparams] #authenticator = standalone authenticator = nginx installer = nginx これで、更新テストをしたらうまくいった。 # certbot-auto renew --dry-run 強制的に更新するなら次のように行う。 # certbot-auto renew --force-renewal certbot - GitHub https://github.com/certbot/certbot

Let's Encrypt 等のSSL/TSL証明書の詳細確認方法 on Linux

opensslコマンドを用いて証明書の有効期限などを確認する方法。 次の2つについて手順を書いておく。 外部のサーバの証明書を確認 ローカルに保存された証明書の確認 外部のサーバの証明書を確認 クライアントとして証明書を確認する。 blogger.com の証明書を見るには次のコマンドで確認できる。 $ openssl s_client -showcerts -connect www.blogger.com:443 有効期限を見るには次のようにするとnoAfterに有効期限が表示される。 $ openssl s_client -connect www.blogger.com:443 | openssl x509 -noout -enddate ブラウザでチェックサイトから証明書を確認も出来る。 DigiCert® SSL Installation Diagnostics Tool https://www.digicert.com/help/ ローカルに保存された証明書の確認 サーバへsshなどでログインし、直接保存されている証明書を確認する。 Let's Encrypt を利用しているなら証明書の保存場所は /etc/letsencrypt/live/ドメイン名/cert.pem となっているはず。 有効期限は次のコマンドで確認できる。 # openssl x509 -noout -dates -in /etc/letsencrypt/live/example.jp/cert.pem 詳細な情報は -dates オプションを -text に変更する。 # openssl x509 -noout -text -in /etc/letsencrypt/live/example.jp/cert.pem

IPアドレスを固定にする方法 と /etc/resolv.conf の設定を変更する方法 on Raspbian

RaspberryPiのネットワーク環境がDHCPでIPを割り振る状況で動作させていたが、 アドレスの固定を行った。 Raspbianの環境は以下の通り。 $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" $ cat /etc/debian_version 10.3 $ uname -a Linux dc 4.19.97-v7+ #1294 SMP Thu Jan 30 13:15:58 GMT 2020 armv7l GNU/Linux IPアドレスを固定にするのは /etc/dhcpcd.conf を書き換えることで行える。 /etc/dhcpcd.conf には次のような例がコメントとして書かれている。 # Example static IP configuration: #interface eth0 #static ip_address=192.168.0.10/24 #static ip6_address=fd51:42f8:caae:d92e::ff/64 #static routers=192.168.0.1 #static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1 Raspberry Pi を無線で接続している場合、インタフェースはwlan0になるはず。 下の設定は次の様な設定になっている。 固定