V-antena and Tanimoto's page

谷本の備忘録・雑記帳・work

>

カテゴリー: settings

CATEGORY ARCHIVE

Mother Board を交換したのでメモ

マザーボードについているボタン電池を交換したところ画面が何も表示されなくなった。 どこが悪いのか判らないがマザーボード(MB)が壊れたのではないかと決めつけMBを交換したので、手順をこうすれば良かったというものをメモとして残す。

※もしかしたら、MBが悪いのではなくメモリー周りに問題があったのかも知れない。 それだと、MB代とCPU代が持ったなかったかも

あらかじめ準備しておくもの

・静電気防止手袋
・フリーザーストック用袋何枚か (区分けされている箱でもよい)
・ポストイットやスコッチテープ
・拡大鏡(字が小さいので見えにくいため

こうすればよさそうの手順

  1. ケーブル周りを写真にとる
  2. ポストイットかスコッチテープに何のケーブルか、もしくは、どこに接続されていたケーブルかを書き、ケーブルにくっつける

(以下のケーブルがあった
   ・SATA-SSD用ケーブル
   ・SATA-HD用ケーブル
   ・SATA ?用ケーブル
   ・電源ケーブル(幅広)
   ・USB用ケーブル
   ・   ケーブル
   ・CPUfan用ケーブル(これはCPUも交換なら付け替えは不要)
   ・FAN用ケーブル
   ・HDaudio(AAFP)
   ・システムパネルヘーダー用5本
    -POWER SW
    -RESET SW
    -HDD LED (色付きが+, 白や黒が-)
    -POWER LED
    -POWER LED
   ・SPEAKER

3.邪魔になるので電源、FANを外す(よける)。
4.ストック袋にネジをいれて、どこのネジかを記入する
5.ケーブルをはずす。
6.メモリーをはずす
7.グラボをはずす
8.MBをはずす
9.M2.SSDをはずす

10.新MBにCPUをつける
11.CPU用ファンを取り付ける
12.M2.SSDを取り付ける
13.メモリーを取り付ける(うまくささっていないと画面が映らないなどあり)
14.IOシャーシを交換する(おりまげ等しないといけないかも)
14.MBを取り付ける
15,ケーブル類を取り付ける
16.ファンと電源を取り付ける
17.グラボを取り付ける
18,ケースを閉じておしまいのはず

ubuntuのkernelだけ版数up

Ubuntuをバージョンアップした際に音声トラブルがあり(まだ残っている)、kernelのバージョンアップも試してみた。せっかくなので、kernelのバージョンアップの方法について記録として残しておく。

方法1

コンパイル済みのdebファイルをダウンロードしてインストールする。
https://kernel.ubuntu.com/~kernel-ppa/mainline/ からインストールしたいkernel版数を選び必要なdebファイルをダウンロードしインストールする。

例: version 5.6選択の場合

mkdir kernel5.6
cd kernel5.6
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6/linux-headers-5.6.0-050600_5.6.0-050600.202003292333_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6/linux-headers-5.6.0-050600-generic_5.6.0-050600.202003292333_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6/linux-image-unsigned-5.6.0-050600-generic_5.6.0-050600.202003292333_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.6/linux-modules-5.6.0-050600-generic_5.6.0-050600.202003292333_amd64.deb
sudo dpkg -i *.deb

sudo reboot

方法2

uktoolsを使う方法。 版数の指定はできないので要注意。

git clone https://github.com/usbkey9/uktools
cd uktools
make

その後
sudo uktools-upgrade

ubuntuを18.04から20.04へバージョンアップした

なぜかpolkit segfaultが起こりだしたので、バージョンアップしてみる事にした。

手順

sudo apt update
sudo apt upgrade
sudo do-release-upgrade -d

リモートデスクトップがなぜか一瞬で切断されるのでインストールしなおしてみた。動いた。

sudo apt purge xrdp
sudo apt install xrdp 

nvidia-smiコマンドがエラーとなった。 driverを更新しないといけないとのことだったので、更新。nvidia-smiコマンドは動いた。

sudo apt install nvidia-driver-460

新たな問題発生

ubuntu 20.04に更新したところ、音声が出なくなった。

いろいろ試しているがまだダメ。 なお、vlc media playerに関しては声がでる様になった。

wireguardでvpnを構築した

実際の理由は不明もルータを変更したところ、ポートフォワーディングを設定してもIPSEC/L2TPでのVPN接続ができなかった。 そこでwireguardを使ってのvpnを設定しなおした。 

参考としたサイト

'https://chirashi.twittospia.com/技術/windowsでwireguardを設定する方法/2021-02-26/
'https://qiita.com/naomori/items/1ee1a314cbdd3010f3ee
'https://asiavp.net/guide/windows/wireguard/

環境

サーバー: raspberry pi (buster)
外部端末: タブレットPC(windows10)
ルータ使用: NAT転送(ポートフォワーディング)使用

なお、下記手順中のxxxxxxx,yyyyy,zzzzz,vvvvv, aaaaa, mydomain, 192.168.123.200, 192.168.123.100は自分の環境や設定したい値に合わせること。

サーバー側設定

sudo apt update
sudo apt upgrade
sudo apt install wireguard
mkdir wgkeys
cd wgkeys
umask 077
wg genkey > server_private.key
wg pubkey > server_public.key < server_private.key
wg genkey > client_private.key
wg pubkey > client_public.key < client_private.key
cd
sudo nano /etc/wireguard/wg0.conf
sudo wg-quick up wg0
sudo wg-quick down wg0
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo ufw allow aaaaa/udp

wg0.confの内容は

[Interface]
# virtual IP address for server
Address = 192.168.123.200/24

# port for wireguard .  any number available
ListenPort = aaaaa

# server_private.key
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxx

# nat mantra
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# client_public.key
PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyy

# virtual IP address in VPN for client 
# allowed virtual IP
AllowedIPs = 192.168.123.100/32

タブレット側設定

windows用wireguardソフトをwireguardサイトからダウンロード

次にwindows上でnotepadか何かを使ってconfファイルを作成する。ここではwg1.confとする。

[Interface]
# client_private.key
PrivateKey = zzzzzzzzzzzzzzzzzzzzzzzzzzz

# virtual IP for client
Address = 192.168.123.100/24

[Peer]
# server_public.key
PublicKey = vvvvvvvvvvvvvvvvvvvvvvvvv

# set virtual IP address for VPN server as allowed IPs
AllowedIPs = 192.168.123.200/32,192.168.123.0/24

# set url and port
Endpoint = mydomain:aaaaa

windows用wireguardソフトをインストール&起動し、上記confファイルを読ませる。

その後は、有効化や無効化で制御可能

その他

ルータでポートaaaaa/udpをポート転送できる様にする。

WordPressでコメント長制限

スパムメールで長文のものがあるので長さを制限する。
functions.phpに以下のコードを追加

add_filter( 'preprocess_comment', 'wpb_preprocess_comment' );
function wpb_preprocess_comment($comment) {
    if( mb_strlen( $comment['comment_content'] ) > 1000 ) {
        wp_die('Comment is too long. Please keep your comment under 1000 characters.'); 
	}
   return $comment;
}

なお、コメント欄設置自体は下記のサイトが参考になった。

http://webdesign.practice.jp/wordpress-theme16-comments-php

メールサーバー構築 その2(暫定)

LAN内専用のメールサーバーは構築していたが、LAN外からメールを受信できれば、用途が広がる。
そこで、sslをサポートし、また帰宅後も再度PCでメールを見れるようにIMAP形式のメールサーバーを構築する。  なお、外部からメール受信には外部メールサービスを使うpush方式と、自ら見に行くpull方式があるが、まずはpull方式とした(gmailサーバー等をリレーしない)

※まだ、おかしいところがあるかも。いったんメモとして公開する。

構築イメージ

参考としたサイト

How to set up a mail server on your Raspberry Pi?

 (Roundcubeを使う部分は実装せずにすました。 また、ENNABLE IMAPSの箇所で一部設定変更)

OpenSSL で SSL 自己証明書を発行する手順
先の参考サイトではdovecot.pemを使うとなっていたが、それだとエラーになったため。自己証明書ではなく本当はletsencryptを使うのが良いが、別のサーバーでテストしていたため自己証明書で行った。 

インストールとテンプレート準備

sudo apt install postfix
sudo nano /etc/postfix/main.cf
sudo apt install mailutils
sudo apt install dovecot-imapd

sudo maildirmake.dovecot /etc/skel/Maildir
sudo maildirmake.dovecot /etc/skel/Maildir/.Drafts
sudo maildirmake.dovecot /etc/skel/Maildir/.Sent
sudo maildirmake.dovecot /etc/skel/Maildir/.Spam
sudo maildirmake.dovecot /etc/skel/Maildir/.Trash
sudo maildirmake.dovecot /etc/skel/Maildir/.Templates

ssl用自己証明書作成

makedir ssls
sudo openssl genrsa 4096 > ssls/server.key
openssl req -new -key ssls/server.key > ssls/server.csr
openssl x509 -req -days 365 -signkey ssls/server.key < ssls/server.csr >ssls/server.crt

3つ目のserver.csrを作成するところで出てくる質問には例えば以下の様に答える
JP
都道府県名
区名/市名/郡名 など
組織名等
  単に改行
ドメイン名(例: example.com)
その後の質問は改行でかまわない

場所移動
sudo cp ssls/* /etc/dovecot/private

postfixの設定

ポート番号の設定、ドメイン名の設定、ネットワークの指定等を行う

sudo nano /etc/postfix/main.cf
myhostname = example.com
mydomain = example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/24
inet_protocols = ipv4
home_mailbox = Maildir/

#  以下追加
mailbox_command =
smtpd_helo_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_invalid_helo_hostname,
        reject_non_fqdn_helo_hostname,
        reject_unknown_helo_hostname,
        check_helo_access hash:/etc/postfix/helo_access
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes

sudo nano /etc/postfix/helo_access
aaa.bb.cc.ddd  REJECT        # aaa.bb.cc.ddd はexample.comのIPアドレス
# example.com   REJECT
smtp.example.com   REJECT
mail.example.com   REJECT
sudo nano /etc/postfix/master.cf
587      inet  n       -       y       -       -       smtpd     #smtpを587にした

sudo service postfix restart で、postfixを起動

dovecotの設定

sudo nano /etc/dovecot/dovecot.conf
listen = *
sudo nano /etc/dovecot/conf.d/10-mail.conf
mail_location = ~/Maildir
sudo nano /etc/dovecot/conf.d/10-master.conf
service imap-login {
  inet_listener imap {
    port = 143
  }
  inet_listener imaps {
    port = 993
    ssl = yes
  }

service auth {
        unix_listener /var/spool/postfix/private/auth {
                mode = 0660
                user = postfix
                group = postfix
        }
}
sudo nano /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
sudo nano /etc/dovecot/conf.d/10-ssl.conf

ssl = yes
ssl_cert = </etc/dovecot/private/server.crt
ssl_key = </etc/dovecot/private/server.key
ssl_min_protocols = TLSv1.2

ssl = yes

ssl_cert = </etc/dovecot/dovecot.pem       #  private/ を消すことに注意
ssl_key = </etc/dovecot/private/dovecot.pem  # .keyを.pemにすることに注意

ssl_min_protocols = TLSv1.2

sudo service dovecot restart でdovecotを再起動

自分証明書だとおこられるかも。letsencryptので行う必要ありか。

テスト及び実行

sudo adduser testuser

※ 下記部分は「自己証明書作成」部分を行った場合は不要

printf '\0%s\0%s' 'testuser' 'password' | openssl base64
cd /etc/dovecot
sudo openssl req -new -x509 -nodes -config /usr/share/dovecot/dovecot-openssl.cnf -out dovecot.pem -keyout private/dovecot.pem -days 365

メーラー側の設定

protocol imap4
smtp認証 しない
ssl imap4 sslを使用
smtp sslを使用しない
smtp ポート番号 587
IMAP ポート番号 993
コードはutf-8にする。(文字化けするので) 2021/3/31追記

自己証明書なので信頼できないといわれるが、許可して受け入れると受信可能となる。

※ smtp側を開けていないとほとんどのメーラが使えない。 windowsだとSylpheedは使えた。 androidだとOpen Mailが使えた(おそらくK-9 Mailも)。 2021/3/31 追記

その他エラー対策

/var/log/mail.err や /var/log/syslogにエラーが出ているのでうまくいかないとき、コマンドでの直接のエラーメッセージの他にここをみてチェック

もし、 key too smallの様なメッセージが出た場合は /etc/ssl/openssl.cnf 中の
CipherString = DEFAULT@SECLEVEL=2 の値を1にしてみる

もし、 /dev/urandomでエラーになった場合は、 /usr/share/dovecot/dovecot-openssl.cnf 中のRANDFILE = /dev/urandom部分をコメントアウトしてみる。 ついでにkey長を4096にするのが良い

V-antena and Tanimoto's page