Windows NIC関連

基本的に変更しなくても大丈夫だけど接続が不安定なときに一応確認。

イーサネットプロパティ

ncpa.cpl>右クリック>プロパティ
①Microsoft ネットワーク用クライアント
②Microsoft ネットワーク用ファイルとプリンター共有
③インターネット プロトコル バージョン 4 (TCP/IPv4)
のみ残せばOK。

①②については、ファイルを共有(公開)する側で②だけチェックしてあれば、
あとは、利用する側も含めチェックがなくても問題ない。

VPNの優先度

ncpa.cpl>右クリック>プロパティ>インターネット プロトコル バージョン 4 (TCP/IPv4)の右クリック>プロパティ>詳細設定
メトリック値を1000など大きな値にする。

Met値確認
netsh interface ipv4 show interface

WatchGuard VPN ClientからOpenVPN GUIに変更

リセット

・設定

Win10設定>ネットワークとインターネット>ネットワークのリセット

間違えてWiFiのUSBアダプターを2つ付けてしまい、ネット接続がおかしくなってしまったときに、このリセットで回復した。

・DNSとNetBiosのキャッシュクリア
ipconfig /flushdns
nbtstat -R

ちなみにnbtstatでIP/ホスト名を調べる場合
nbtstat -R
nbtstat -a Host名 / nbtstat -A IPアドレス
nbtstat -c

・DHCP再取得
ipconfig /release
ipconfig /renew

WiFi(USBアダプタ)

・イベントログの確認
Win+R>eventvwr>アプリケーションとサービスログ>Microsoft>Windows>WLAN-AutoConfig>Operational

powercfg.cplとは別に、以下のようにも設定できる。
・アダプターがUSBの場合
Win+R>devmgmt.msc>ユニバーサル シリアル バス コントローラー
プロパティ>電源の管理>電力の節約…のチェックを外す。

SNP設定

・RWIN値設定(受信ウィンドウ自動チューニングレベル)
netsh interface tcp show global(確認用)
netsh interface tcp set global autotuninglevel=highlyrestricted

・Nic初期化
netsh interface ip reset c:\aaa.log

・Socket初期化
netsh winsock reset

・SNP停止
netsh interface tcp show global (確認用)
netsh int tcp set global rss=disabled
netsh int tcp set global chimny=disabled
netsh int tcp set global netdma=disabled

RSS(Receive Side Scaling), TCP Chimney Offload, NetDMAの3つでSNPといい、ネットワーク負荷を分散させる技術。Win10の場合RSSのみ既定値で有効になっている。

DNS設定

IPv4
8.8.8.8
8.8.4.4

IPv6
2001:4860:4860::8888
2001:4860:4860::8844

NIC詳細設定(オフロード系)

オフロードは有効にするとNICで処理し、無効にするとCPUで処理

・IPv4チェックサムオフロード:無効
・TCP/UDPチェックサムオフロード:無効
送信及び受信時にチェックサムを計算

・ARPオフロード:無効
ARP(IPv4)に応答する機能

・NSオフロード:無効
Neighbor Solicitation(IPv6)に応答する機能

・一括送信(Large Send)オフロード:無効
NICが送信するデータを分割処理をする。

https://docs.microsoft.com/ja-jp/windows-server/networking/technologies/network-subsystem/net-sub-choose-nic#bkmk_offload

https://learn.microsoft.com/ja-jp/windows-server/networking/technologies/hpn/hpn-hardware-only-features

NIC詳細設定(WakeOnLAN系)

・PMEをオンにする(Power Manegement Event):無効

・Wake on Link / Wake On Magic Packet / Wake on Pattern Match:無効

・WOLとシャットダウンリンク:速度低下ではない
Wake On LANの待機状態でリンク速度を落とす

・ウェイク・オン・パターンマッチ:無効

NIC詳細設定(RSS系)

・RSSキューの最大値:2キュー
受信したデータ処理を他のCPUに何回まで回せるか

・RSS ロード・バランシング・プロファイル:NUMA スケーリング
>Closest/最も近いプロセッサー
>ClosestStatic/最も近いプロセッサー・スタティック
>NUMAStatic/NUMAスケーリング・スタティック
>Conservative/コンサーバティブスケーリング

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/6/html/performance_tuning_guide/network-rss

https://docs.microsoft.com/ja-jp/windows-server/networking/technologies/network-subsystem/net-sub-choose-nic#bkmk_rss

https://docs.microsoft.com/ja-jp/windows-server/networking/technologies/network-subsystem/net-sub-choose-nic#bkmk_offload

https://docs.microsoft.com/ja-jp/windows-hardware/drivers/network/introduction-to-receive-side-scaling

https://docs.microsoft.com/ja-jp/windows-hardware/drivers/network/standardized-inf-keywords-for-rss

NIC詳細設定(省エネ系)

・超低消費電力:無効
・グリーンイーサネット:無効
・省電力型イーサネット:無効
(Energy Efficient Ethernet)

・802.3az:無効
有線LANの省エネ機能

NIC詳細設定(WiFi)

・Roaming Sensitivity Level:Disable

ローミング(近くのアクセスポイントに自動的に切り替わる機能)の感度。

・Adaptivity関連

AdaptivityPara
EnableAdaptivity
HLDiffForAdaptivity
L2HForAdaptivity

干渉に関連する設定と思われる。詳細不明。

・QoS Support:Support QoS

帯域、優先制御しネットワークの混雑を解消。
Not Supportにするとリンク速度が低下する。

・VHT 2.4G IOT:Disable

詳細不明。

・Wireless Mode:IEEE 802.11ac

NIC詳細設定(その他)

・Adaptive Inter-Frame Spacing:無効
フレーム送信間隔を調整する。

・PTP Hardware Timestamp:無効
ネットワーク内のデバイスの時刻を高精度で同期する

・自動無効ギガビット:無効

・リンクステート イベントのログ:無効
ログを確認する必要が無ければオフ

・受信側スケーリング:無効
複数のCPUコアに処理を分散させる機能。
分散させると効率が下がる。CPUに余裕があるならば無効。

・割り込み加減:無効
CPUの負荷を下げる機能。CPUに余裕があるならば無効。

・受信バッファ/送信バッファ:2048/2048
バッファ領域。メモリに余裕がある場合は大きくすると良い

・パケット優先度とVLAN(Packet Priority & VLAN):VLAN無効
パケットの優先度、タグつきフレーム(802.1p/802.1Q)の送受信を有効にするかどうか

・フロー制御/FlowControl:有効
通信相手と速度を合わせる、受信側が遅い場合は高速で送ろうとしないようにする※Rx=受信パケット, Tx=伝送パケット

・速度とデュプレックス/スピードと二重化(Speed&Duplex)
自動ネゴシエーション → 1.0 Gbps フルデュプレックス
自動ネゴシエーションだと稀に遅い速度で接続することがある

・ジャンボフレーム/ジャンボパケット:無効
一度の通信で送受信する最大サイズ

https://learn.microsoft.com/ja-jp/windows-server/networking/technologies/hpn/hpn-hardware-only-features

MTU設定

現在のMTU値を確認
netsh interface ipv4 show interfaces

設定する値は通常、1454だが、
https://www.speedguide.net/analyzer.php
でも確認できる。

MTUを設定(xxxの部分はIdx)
netsh interface ipv4 set interface xxx mtu=1454

LLTDプロトコル

ncpa.cpl>プロパティ
Link-Layer Topology Discovery xxxx

過去にネットワークマップを作るため使っていたプロトコル。また、LLDPも同じように探索に使われるプロトコル。両方とも無効で問題なし。

ルートテーブル

・確認

route print

1 ネットワーク宛先
2 ネットマスク
3 ゲートウェイ
4 インターフェース
5 メトリック

1と2でネットワークを判断する。
そのネットワーク宛先の場合、
どのゲートウェイ(ネクストホップ)を使うかは3
どのインターフェースを使うかは4(NICのIPアドレス)

・その他の表示

リンク上はルータを介さない接続のこと。
ネットワーク宛先、ネットマスクが0.0.0.0のものがデフォルトルート。

・リセット

route -f

ncpa.cpl>イーサネット右クリック>プロパティ>インターネットプロトコルバージョン4(TCP/IPv4)>プロパティ
デフォルトゲートウェイが空白になっているので再設定すれば繋がる。VPN系は再起動すれば繋がる。

・ルートテーブル追加

route print
からインターフェース番号を確認。
(インターフェース一覧の左側の数字がインターフェース番号)

route -p add [宛先IPアドレス] mask [ネットマスク] [サーバーIPアドレス] metric [メトリック値] if [インターフェース番号]
(pオプションは再起動後も有効)

・有線とWiFi同時接続

同時に接続は可能だけど、利用されるのは片方だけ。

どちらかを優先させたい場合はメトリック値を小さくする。

どちらが利用されているかの確認はタスクマネージャのパフォーマンスタブから。

 

Git メモ(VisualStudio)

VisualStudioでは、
チェックアウト、マージなど
表示>Git 変更
表示>Git リポジトリ
どちらからでも実行できるが、Git リポジトリは不安定なことが多い。

既存のソリューションにGitに追加

ウィンドウ右下>ソース管理に追加>Git
あるいは
ソリューション右クリック>Gitリポジトリの作成

・既存のリポジトリにソリューションの追加

新規作成したソリューションをリポジトリに保存すればいいので、
Git 変更>Git リポジトリの作成
リポジトリ作成後、
ファイル>スタートウィンドウ>新しいプロジェクトの作成
からソリューションを追加すればいい。

コミット

Git 変更>すべてをコミット
(保存していない場合、その状態でコミットされる)

元に戻す(Revert)

Git リポジトリ>ローカル履歴の上で右クリック>元に戻す。

特定のコミットを消す。その履歴自体をコミットされる。

//1、//2、//3
をコミットして、2をRevertした場合。

編集場所が連続していたりすると競合する。

リセット(Reset)

ある時点のコミットに戻す。

Git リポジトリ>ローカル履歴の上で右クリック>リセット>
・変更を保持(–mixed)
・変更を削除(–hard)

–mixedはHEADの位置、インデックスのみ修正しファイルはそのまま。

ブランチ作成

Git リポジトリ>ローカル履歴の上で右クリック>新しいブランチ

ブランチの切り替えはウィンドウ右下、あるいはGit 変更から。

ブランチツリー

・ブランチはコミットへの参照。
・コミットは親への参照を持っている。
・マージすると親を複数持つ。

masterブランチで、
//1、//2、//3
をコミット。

//1からfeat1ブランチ。
//2からfeat2ブランチ。

feat1に//4を追加しマージ。
feat2に//5を追加しマージ。

ブランチのマージ

featブランチをmasterブランチにマージする場合。

masterブランチをチェックアウトする。
featブランチ右クリック>featをmasterにマージする。

競合した表示。

マージエディターで競合している部分が、赤くなっているので、
チェックボックスを選択>マージを許可。

ブランチのリベース

分岐したブランチをもと(master等)の先頭にくっつける。

masterブランチで、
//1、//2
をコミット。

//1からfeatブランチを作成。

featに//3をコミット。

・featをmasterにリベース。

・マージの場合。

ちなみに、リベースのとき//1からfeatブランチを作成しているが、//2からfeatブランチを作成しリベースすると以下の通り。

マージとリベースの違い

マージは、masterとfeatを共通の親とするコミットを作るが、リベースはmasterを親としてfeatを付ける。VisualStudioでの画面の場合。

・masterブランチ
1コミット
2コミット
featブランチ作成
4コミット

・featブランチ
3コミット

・masterブランチをチェックアウトし、マージとリベース

マージ

リベース

チェリーピック

分岐したブランチの特定コミットをもと(master等)の先頭にくっつける。

masterブランチで、
//1、//2、//3
をコミット。

//1からfeatブランチを作成し、
//4、//5
をコミット。

masterをチェックアウト。

featブランチの
//4
を右クリック>チェリーピック。

リモートリポジトリ

ローカルリポジトリ作成時のダイアログでGitHubにリモートリポジトリが作成される設定になっている。

・ブランチの種類

ブランチには、
1.ローカルブランチ
2.トラッキングブランチ
3.リモートブランチ
がある。

ローカルブランチ、トラッキングブランチはローカルに存在していて、リモートブランチに変更があってもフェッチするまでトラッキングブランチは自動で変化しない。

例えば、
1.master (ローカル)
2.origin/master (ローカル)
3.master (GitHubなど)

ローカルブランチの追跡対象

1はリモートと同名(例えばmaster)であっても追跡対象を持っても持たなくてもいい。VisualStudio上では持っていると緑色の矢印がある。

Git 変更>ブランチ名プルダウン>右クリック>リモートブランチ名>チェックアウト
からローカルブランチを作成すると追跡対象を持つローカルブランチとなる。

また、
Git リポジトリ>ローカル履歴>右クリック>新しいブランチ
から作成すると追跡対象がないローカルブランチになるが、その後プッシュした時点で追跡対象を持つ。

標準では追跡対象を持っている。

フェッチ

フェッチを使うとリモートブランチの情報を取得してトラッキングブランチが最新になる。ちなみに、VisualStudioでフェッチは、どのローカルブランチをチェックアウトしていても全てのトラッキングブランチが最新になる。

プル

フェッチ、マージを同時に行う。

プルを実行すると、チェックアウトしているローカルブランチだけマージまで実行される。その他のチェックアウトしていないローカルブランチもフェッチは実行される。

プッシュ

プッシュはブランチ単位で行う。

Git リポジトリ>ローカルブランチ>右クリック>プッシュ
あるいは、
Git 変更>リポジトリ名プルダウン>右側にあるプッシュボタン

プッシュ実験

リモートが追跡対象の場合

・ローカルで新しいブランチを作成してプッシュ

リモートに同名のブランチが存在しない場合、自動でリモートにfeatブランチが作成される。

・ローカルブランチのコミットを進めてプッシュ。

これは通常処理なので問題ない。

・リモートブランチのコミットが進んでいる状態でプッシュする

エラーになるので、
プル>プッシュ(フェッチ>マージ>プッシュ)
で処理する。

・ローカル、リモートそれぞれコミットが進んでいる場合。

エラーになるが、競合しない個所なら
プル>プッシュ(フェッチ>マージ>プッシュ)
で処理できる。

・他のローカルからリモートにブランチがプッシュされていて、ローカルで新しく同名ブランチを作成してプッシュする。(追跡対象になっておらずブランチの名前が一緒なだけ)

ローカルのコミットが進んでいるのはOKだが、リモートのコミットが進んでいるとNGになる。前述と同じ結果。

この場合、ローカルとリモート別々にブランチを作成していて追跡対象になっていないので、
プル>プッシュ(フェッチ>マージ>プッシュ)
とする。前述と同じ結果。

・他のローカルから既にリモートにブランチがプッシュされていて、
ローカルで新しく同名ブランチを作成してフェッチする。

フェッチはトラッキングブランチを更新するだけなので、ローカルブランチと
トラッキングブランチの状態が違うだけで何もおきない。

・ローカルリポジトリでリセットしてリモートにプッシュ。

ローカルリポジトリのコミットの方が前にあるのでプッシュできない。

・ローカルリポジトリで元に戻して(特定のコミット削除)プッシュ。

元に戻す(Revert)は削除の処理もコミットされるので、プッシュできる。

リモートリポジトリ削除

Git リポジトリ>(remotes/origin以下の)リポジトリ>右クリック
リモートブランチを削除

デフォルトブランチは削除できない。

エラー対処

ときどき、インデックスファイルへ書き込めない、チェックアウトできないなどのエラーが発生する。その場合は、一度.gitフォルダごと消してしまう。チェックアウトするとソースファイル自体が書き換わっているので、最新の状態にして.gitフォルダを消しても問題はない。

PHP パスワード生成

パスワードがほしいとき用。

<?php
echo exec(“head /dev/urandom | tr -dc a-km-np-z2-9 | head -c 13”);

head
先頭から10行

/dev/urandom
ランダムな文字列

tr -dc
指定した文字列の集合

head -c
指定した文字数

Ubuntu(Indigo) Postfix+Dovecot

とりあえず確認方法として以下の通り。他のレンサバで実行してみた。

MTA確認
alternatives –display mta

sendmailの場合、
“/etc/alternatives/mta -> /usr/sbin/sendmail.sendmail”

Postfixの場合、
“/etc/alternatives/mta -> /usr/sbin/sendmail.postfix”

もし切り替えるなら
alternatives –config mta

Courier-IMAPのバージョン
/usr/lib/courier-imap/bin/imapd –version

ドメイン取得

今回はムームーでドメイン取得。

ドメイン操作>ムームーDNS
対象ドメインの変更をクリック。

サブドメイン / 種別 / 内容
* / TXT / v=spf1 +ip4:xxx.xxx.xxx.xxx ~all
* / A / xxx.xxx.xxx.xxx
空白 / TXT / v=spf1 +ip4:xxx.xxx.xxx.xxx ~all
空白 / A / xxx.xxx.xxx.xxx
空白 / MX / domain.com
このような感じで登録。

Postfix

・インストール

sudo apt install postfix

Please select the mail server configuration type that best meets your needs
と表示される。

Internet Site(インターネットサイト)
を選択。

次の画面では、
The “mail name” is the domain name used to “qualify” _ALL_ mail address …
等々表示される。

ここではドメイン名を入力。

・設定

sudo vim /etc/postfix/main.cf

myhostname = ドメイン名
に変更する。

DNSで正引きできないと、宛先のメールサーバーから受信拒否されるので、DNSで正引きできる(=Aレコードが存在する)

ちなみに、完全修飾ドメイン名を指定する。
(サブドメインなどを省略しないことアドレス)

mydomain / 指定無し
指定しなければ、デフォルトで$myhostnameから算出される。

myorigin = /etc/mailname
投函されたメールがどのドメインから来るように見えるか。

inet_interfaces = all
リッスンするインターフェース。送信のみで受信しないならlocalhostでもOK。

inet_protocols = ipv4
IPv4のみ

mydestination = $myhostname
自分が宛先(最終)になる場合のドメイン名を指定する。 メールアドレスの右側が mydestinationに一致すると、そのメールは他のサーバには配送せず処理する。 そこで存在しないユーザ宛の場合、エラーになり、送信者にエラーメールを返す。

mynetworks = 127.0.0.0/8 192.168.12.0/24
メールの転送することができる(許可するクライアント)IPアドレスリストを指定する。もし0.0.0.0/0 として、ufwで25を許可すると、スパムメールの踏み台となる。

今回はVPNで固定IPなので、
mynetworks = 127.0.0.0/8 192.168.12.2
と言う感じでもOK。

home_mailbox = mail/
これで/home/ubuntu/mailにメールが入る。

ちなみに、デフォルト状態では環境にもよるが、
/var/mail/ユーザ名
にmbox形式で入る。

再起動
sudo systemctl restart postfix

起動設定
sudo systemctl enable postfix

・ポート開放

sudo ufw allow 25/tcp
sudo ufw reload

ここまでやると、ユーザー名@ドメインで受信できる。
必要ならユーザーを追加する。

・ここで試しに送信。

> sendmail -t
From: xxx
To: xxx
Subject: xxx
xxx
. (最後は.でEnter)

・サブミッションポート有効化する場合

sudo vim /etc/postfix/master.cf

コメントアウト削除(今回は不要)
submission inet n – n – – smtpd

今回はSASL認証を利用しない(クライアントとVPNでつながっているので、mynetworksでローカルアドレスのみ許可しているが、通常はSASL認証を設定する)が、通常は以下のように設定する。

-o smtpd_sasl_auth_enable=yes
SMTP Authを有効

-o smtpd_recipient_restrictions = permit_sasl_authenticated, reject
転送要求の可否(SMTP Auth で認証が確認された接続を許可)

-o smtpd_client_restrictions = permit_sasl_authenticated, reject
接続要求の可否(SMTP Auth で認証が確認された接続を許可)

・ポート開放(今回は不要)

sudo ufw allow 587/tcp
sudo ufw reload

Dovecot

ここまでデフォルトユーザーで作業してきたが、メールアドレスを作成(ユーザー作成)して作業する。

ユーザー作成
sudo useradd -s /sbin/nologin okamura

パスワード設定(ワンライナー)
pass=$(head /dev/urandom | tr -dc a-km-np-z1-9 | head -c 13); sudo echo okamura:${pass} | sudo chpasswd; sudo echo $pass;

ここでokamuraを作成した。

Maildir作成
/home/okamura/mail
にディレクトリを作成し、所有者を変更

sudo chown -R okamura:okamura okamura

・インストール

sudo apt install dovecot-common dovecot-pop3d
必要なら、 dovecot-imapd

・設定

etc/dovecot/conf.d
が基本ディレクトリ

IPv6をListenしない
sudo vim /etc/dovecot/dovecot.conf

listen = *

sudo vim /etc/dovecot/conf.d/10-master.conf
port = 110

プレーンテキスト認証も許可
sudo vim /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no

ディレクトリを設定
sudo vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/mail

起動
sudo systemctl start dovecot
sudo systemctl enable dovecot

・ポート開放

sudo ufw allow from 192.168.12.2 to any port 110 proto tcp
sudo ufw status

メーラーからの接続

VPNが192.168.12.1でクライアントが192.168.12.2

SoftEther Ubuntu/Win インストール

になっている状態で、
SMTP/POP3サーバー:192.168.12.1
ユーザーID:okamura
で接続できる。

 

Ubuntu apt(カーネルパッチ)

sudo apt upgrade
にて、以下のようなメッセージがでた。
A new version of /boot/grub/menu.lst is available, but the version installed currently has been locally modified

選択肢としては以下。

・install the package maintainer’s verstion
パッケージメンテナのバージョンをインストール

・keep the local version currently installed
現在インストールされているローカルバージョンを保持

・show the differences between the versions
バージョン間の差異を表示

・show a side-by-side difference between the versions
バージョン間の差異を並行表示

・show a 3-way difference between available vertions
利用可能なバージョン間の3種類の差異を表示

・do a 3-way merge between available versions
利用可能なバージョン間での3種類マージを行う (実験的)

・start a new shell to examine the situation
状況を検討するための新しいシェルを起動

***

・install the package maintainer’s verstion
を実行したが、一応、
sudo vim /boot/grub/menu.lst
をメモしておくと。

●旧

title Ubuntu 18.04.1 LTS, kernel 4.15.0-43-generic
root (hd0)
kernel /boot/vmlinuz-4.15.0-43-generic root=LABEL=cloudimg-rootfs ro console=hvc0
initrd /boot/initrd.img-4.15.0-43-generic

title Ubuntu 18.04.1 LTS, kernel 4.15.0-43-generic (recovery mode)
root (hd0)
kernel /boot/vmlinuz-4.15.0-43-generic root=LABEL=cloudimg-rootfs ro single
initrd /boot/initrd.img-4.15.0-43-generic

●新

title Ubuntu 18.04.5 LTS, kernel 4.15.0-123-generic
root (hd0)
kernel /boot/vmlinuz-4.15.0-123-generic root=LABEL=cloudimg-rootfs ro console=hvc0
initrd /boot/initrd.img-4.15.0-123-generic

title Ubuntu 18.04.5 LTS, kernel 4.15.0-123-generic (recovery mode)
root (hd0)
kernel /boot/vmlinuz-4.15.0-123-generic root=LABEL=cloudimg-rootfs ro single
initrd /boot/initrd.img-4.15.0-123-generic

title Ubuntu 18.04.5 LTS, kernel 4.15.0-122-generic
root (hd0)
kernel /boot/vmlinuz-4.15.0-122-generic root=LABEL=cloudimg-rootfs ro console=hvc0
initrd /boot/initrd.img-4.15.0-122-generic

title Ubuntu 18.04.5 LTS, kernel 4.15.0-122-generic (recovery mode)
root (hd0)
kernel /boot/vmlinuz-4.15.0-122-generic root=LABEL=cloudimg-rootfs ro single
initrd /boot/initrd.img-4.15.0-122-generic

title Ubuntu 18.04.5 LTS, kernel 4.15.0-43-generic
root (hd0)
kernel /boot/vmlinuz-4.15.0-43-generic root=LABEL=cloudimg-rootfs ro console=hvc0
initrd /boot/initrd.img-4.15.0-43-generic

title Ubuntu 18.04.5 LTS, kernel 4.15.0-43-generic (recovery mode)
root (hd0)
kernel /boot/vmlinuz-4.15.0-43-generic root=LABEL=cloudimg-rootfs ro single
initrd /boot/initrd.img-4.15.0-43-generic

となった。

現在のカーネルのバージョン確認方法
uname -r
4.15.0-123-generic

PHP セキュリティメモ

最低限の部分

・PHP.ini

今回は、さくらのレンタルサーバーで利用している。
設置場所は、ドキュメントルートで、
echo phpinfo();
Loaded Configuration File
に反映される。

php.iniのパーミッションは600

追加内容は、
display_errors = Off
expose_php = Off

session.name = “hoge”
session.use_strict_mode=On
session.cookie_httponly=On
; HTTPSの場合
session.cookie_secure=On

allow_url_fopen = Off
file_uploads = Off

; post_max_sizeより大きくする
memory_limit = 20M
; upload_max_filesizeより大きくする
post_max_size = 20M
upload_max_filesize = 20M

・通常ファイル、ディレクトリのパーミッション

ファイル
604(もしくは644)

ディレクトリ
705(もしくは755)

・プログラム

リクエストにはワンタイムトークンを付加。
入力された値はサニタイジング。

 

LINE WORKS 自動起動しない

最近LINE WORKSが自動起動しなくなった。

どうやら、
Windows起動時に自動実行する
をチェックすると、
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
にエントリされるようだが、フルパスじゃなく実行ファイル名のみになっていた。

Get-ItemProperty -Path Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

フルパスに書き換えると、1度は自動起動するが、起動時にエントリを修正するようで、また実行ファイル名のみになってダメ。

他にも、
sysdm.cpl>環境設定>環境変数
からパスを通してみたけどダメ。

もともと正しく自動起動していたときにどういう値だったか見ていないので、どうしようもない。

再インストールは面倒なので、
Windows起動時に自動実行する
のチェックを外し、
shell:startup
にショートカットを登録した。

 

 

 

さくらのレンタルサーバ HTTPS化(無料SSL)

・無料SSL有効化

サーバコントロールパネルにログイン。

左側メニュー>ドメイン/SSL>ドメイン/SSL
をクリック。

対象ドメインにある
SSL

をクリック。

登録設定を始めるSSL証明書の種類を選択
をクリック。

Let’s Encrypt (無料SSL)
を選択する。

SNI SSL(ネームベース)
がチェックされ、
IPベースの証明書は新規でのご提供を終了いたしました、
とあるので、そのままでOK。

しばらくすれば完了。

***

・転送設定

SSL有効化が完了してから作業。

ドキュメントルートに.htaccessを設置するという方法もあるが、先程と同じく、
サーバコントロールパネルにログイン。

左側メニュー>ドメイン/SSL>ドメイン/SSL
をクリック。

対象ドメインにある
設定

をクリック。

HTTPSに転送する
にチェック。

VBA ListBox参考

ListBoxの使い方を忘れてしまうので、さっき作ったものをメモ代わり。

 

WatchGuard VPN ClientからOpenVPN GUIに変更

ときどき利用しているWatchGuard VPN Clientの調子が悪く、接続プロセス中に止ってしまうことが多くなった。

情報も少なく原因追求もできなかったので、試しにOpenVPNのクライアントをそのまま使ってみようかと考えた。
https://www.openvpn.jp/download/
から
OpenVPN-x.x.x-I601-amd64.msi
をダウンロード+インストールし、
C:\Users\xxx\AppData\Roaming\WatchGuard\Mobile VPN
の中にある、
ca.crt
client.crt
client.ovpn
client.pem
の4つのファイルを、そのまま
C:\Program Files\OpenVPN\config
の中にコピーしたらOpenVPN GUIで接続できたので、しばらく使ってみる。

***

追記:数ヶ月利用してみた結果、OpenVPNの方が安定しているような感じで、一度も問題は発生しなかった。

一応、WatchGuardの方は、
https://software.watchguard.com/SoftwareHome
からFirebox and XTMの中で適当な製品を開き、
Mobile VPN with SSL xx.x for Windows
の最新版をダウンロードして入れたら動くようにはなった。

***

追記:1年以上OpenVPNを利用したが特に問題なし。

少し気になったのが、VPNを有効にすると、ネット接続が全てVPN経由になってしまうこと。時々切断を忘れることもあるので、特定のIPアドレスの範囲だけVPN経由に変更。

NICのメトリックで対応できるかと思ったけど、接続を実行すると、
ネットワーク宛先 / ネットマスク / ゲートウェイ / インターフェイス
0.0.0.0 / 128.0.0.0 / 192.168.113.1 / 192.168.113.5
128.0.0.0 / 128.0.0.0 / 192.168.113.1 / 192.168.113.5
(192.168.113.5がVPNのNIC)
というルーティングが追加されてしまうようでダメだった。

ちなみに、もともと存在するデフォルトルートは、
0.0.0.0 / 0.0.0.0 / 192.168.11.1 / 192.168.11.18
(192.168.11.18が物理NIC)

OpenVPNの情報が少なく適当ではあるけど、
C:\Program Files\OpenVPN\config\client.ovpn
に、
route-nopull
route 192.168.0.0 255.255.248.0
と追加した。
(192.168.0.1~192.168.7.254までVPN経由)

client.ovpnの名前を変更して、*.ovpnを複数作成すると、タスクトレイのアイコンから選択して接続できる。

***

クライアントを2.5.8>2.6.0に上げたらエラーが出たのでエラーの内容から、client.ovpnに、
data-ciphers AES-128-CBC
と追加した。