外部から NAS へのアクセスの確認
最近 NAS への攻撃が多いみたいで,ちょっとまとめました.
自分の LAN 環境が,どこまで(どの様に)外部に公開されているかの確認方法です.
先ず グローバル IP を調べます.
私が用意した,次の所でも確認できます.
https://itl.mish.work/i_Tools/tiny/variable/
スマートフォンなどで,LAN とは別の回線を使用してグローバル IP に対して接続します.
接続できなければ OK です(表示内容はブラウザにより異なります).
以降は,接続された場合の表示例と,簡単な説明です.
幾つかの画像は NAS のデモサイトに一度入って,サインアウトしたものです.
ASUSTOR NAS
あまり好ましくはないですが,意図した動作ならば問題ありません.
できれば,使用している NAS がわからない様な空のページの html を用意することをお勧めします.
管理画面サインイン
グローバル IP に,NAS のデフォルトのポート番号を指定してのアクセスも確認してください.
例えば //27.92.169.109:5000/ など.
これらの様な管理画面の入り口が表示される場合は注意が必要です.
これらの NAS は,ポート番号を変更してください.
また,パスワードは必ず強力なものにします.できればデフォルトの管理者アカウントは無効にします.
LAN からのみ接続可能な様に設定することがお勧めです.
私の環境では,ルータ の VPN 機能 を利用して接続しています.
これらを書いている時,次の様な記述を見つけました.
QNAP NASを無防備にインターネットに直接接続してはいけない理由とは
以降は,私の環境に対しての怪しいアクセスです.
phpMyAdmin に対するアクセス
/phpMyAdmin , /phpmyadmin , /pma , /myadmin , /MyAdmin の scripts/setup.php .
WordPress をセットアップした時にインストールした phpMyAdmin は,削除することがお勧めです.
WordPress
/wp-admin/ , /wp-content/ , /wp-content/plugins
恐らくプラグインを狙ったものと思いますが,常に最新にしておくことくらいでしょうか.
/wp-login.php も多くあります.
利用していないものはなるべく削除してください.
他に /FCKeditor/ へのアクセスも多いです.
2021/05/23
「スマートホームスキャナー」で定期的にチェックすることもお勧めです.
以下は,前に私が書いた記事になります.
https://mish.hatenablog.jp/entry/2020/12/16/smart_home_scanner
ADM に入れない
証明書の関係をいろいろ弄ったら,ADM に入れなくなってしまった.
NAS を再起動しても変わらず.
安全な接続ができませんでした 192.168.1.??:????? への接続中にエラーが発生しました。Peer’s Certificate has been revoked. エラーコード: SEC_ERROR_REVOKED_CERTIFICATE 受信したデータの真正性を検証できなかったため、このページは表示できませんでした。 この問題をウェブサイトの管理者に連絡してください。 エラーの説明...
スマートフォンの AiMaster では入れる.
検索すると,Firefox のガードに引っ掛かっているみたい.
Edge で開くと,入れた.
「設定」-「証明書管理者」で「asustor.com (デフォルト)」となっている方を「既定の証明書として設定」.
VC プロファイラが…
先日使った VC のプロファイラがうまく動作しなくなった?
動作としては開始するが,結果が取れない.
「CPU 使用率」で,実行中のグラフは表示されている.
実行終了後,下の部分の関数名などが表示される所のデータがうまく生成されない?
次の様にやってもうまくいかない.
MSDN クイック スタート: Visual Studio の CPU 使用率データの分析 (C++)
「手順 2: CPU 使用率データの分析」のデータが取れない.
設定なども確認したが,特に影響しそうな所はわからない.
PC を再起動してもダメ.
何で?
ここに入っている VS 2008 は Team System なので,プロファイラが何とか動くみたい.
結果が表示されるまで時間がかかるのと,ボトルネックを見つけるのに使い勝手があまり良くなさそう.
もう少しあたりを付けて,単体テスト用のコードを書いて調べた方が効率が良さそう.
VC 2008 でやってみた.
VC 2015 などと比べると,生成までの時間がかかる.その後の操作も面倒.
更に出来上がっていた vsp が,193 GB .
先ず簡単に変更できるコード.
template <class V3> long V3_Search (const std::vector<V3>& pnts,const V3& pos) { for (size_t index=0 ; index<pnts.size() ; index++) { V3 pnt = pnts[index] ; if (pnt == pos) { return long(index) ; } } return -1 ; }
pnt の変数を使わず,直接比較するコードに.VC 6 でビルドして実行.
最近のコンパイラはうまく最適化してくれるので,VC 8 などでは効果がなかった(最初から速い).
ここでの検索で一致するデータは,比較的後ろの方に存在することが多いので,後ろから検索する様に変更.
// for (size_t index=0 ; index<pnts.size() ; index++)
for (long index=long(pnts.size())-1 ; index>=0 ; index--)
2021/04/12
更にコードを変更.
この関数は,呼び元との多重ループとなることがあるのと,検索して見つからないことも多いので,検索最大数を指定可能に.
template <class V3> long V3_Search_ (const std::vector<V3>& pnts,const V3& pos,const size_t max=-1) { size_t count = 0 ; for (long index=long(pnts.size())-1 ; index>=0 && count<max ; index-- , count++) { if (pnts[index] == pos) { return long(index) ; } } return -1 ; }
最大数を 1000 として,処理速度の許容範囲にはなった.
出来上がったデータとして問題ないかの検証はこれから.
検索して一致するデータは,最後と最初に存在することが多いので,その判断部分を変更.
template <class V3> long V3_Search_ (const std::vector<V3>& pnts,const V3& pos,const size_t max=-1) { for (size_t index=0 ; index<pnts.size() /*&& index<max*/ ; index++) { if (pnts[index] == pos) { return long(index) ; } size_t index_l = pnts.size()-index-1 ; if (index>=index_l) { break ; } if (pnts[index_l] == pos) { return long(index_l) ; } } return -1 ; }
20% 程度の効果.但し VC 8 でビルドしたものは遅くなってしまった.
2021/04/14
やはり,頂点などの検索のループで最大数を指定すると,得られる結果が異なる.
そのため,最大数を指定するのは限定的とする.今回は STL 読込み で 10000 に.
MFC ドキュメントの関連付け
スケルトン作成時,ファイルの拡張子を指定しなかったプロジェクトに,後から関連付けのコードを追加する手順.
アプリケーションクラスの InitInstance に EnableShellOpen と RegisterShellFileTypes を追加.
BOOL CXxxxApp::InitInstance() { // ... AddDocTemplate(pDocTemplate); // DDE Execute open を使用可能にします。 EnableShellOpen(); RegisterShellFileTypes(TRUE); // DDE、file open など標準のシェル コマンドのコマンドラインを解析します。 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // ... // メイン ウィンドウが初期化されたので、表示と更新を行います。 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // ドラッグ/ドロップ オープンを許可します m_pMainWnd->DragAcceptFiles(); return TRUE; }
必要に応じて,DragAccesptFiles .
リソースの String Table IDR_MAINFRAME で,ファイルタイプと拡張子を指定する.
文字列は 7 つに区切られている.CDocTemplate::GetDocString
最近の Windows は,RegisterShellFileTypes では登録できない.
そのため,自前の RegFileType::SetFileType(TRUE) を呼出す.
RegFType.hxx RegFType.cxx
RegisterShellFileTypes とは違い,HKEY_CURRENT_USER\Software\Classes\ に登録している.
HVL-LS4 入手
録画用 USB HDD の空きが少なくなってきたので HVL-LS4 を追加.
電源を接続すると ON の状態になるので注意.
マニュアルなどでは DR Controler をインストールして設定する様になっているが,PC から HVL-xxx を探してブラウザなどで開くことも可能.
当然のことだが HVTR-BCTX3 からのコピーは,特に問題なくできた.
少し面倒なのが,コピーカウントがそのまま引き継がれるわけではないので,コピー回数分がカウントされる.
HVL-AHW からの移動も,同じコンテンツは HVTR-BCTX3 からコピーしたものに追加でカウントされているみたい.
2021/05/01
暫く使って感じたこと.
特に問題なく使えている.HVTR-BCTX3 に USB 接続 HDD からの移動で 50 GB 程度空いた.
PC TV Plus での 視聴も問題ない .
録画したコンテンツの操作のフォルダわけなどの時,ツリー表示がないので 操作 が少し面倒.
Windows で例えると,エクスプローラで左のツリーがない様な状態での操作になる.
NAS の再起動などのスケージュール
個人的にはあまり使うことはないと思うが…
Synology NAS
「コントロールパネル」-「ハードウェアと電源」-「電源管理」タブ.
「作成」を押してスケジュールを指定する.
QNAP NAS
「コントロールパネル」-「システム」-「電源」-「電源スケジュール」タブ.
「スケジュールを有効にする」にチェックを入れて「追加」を押すとリストに追加されて編集できる.
ASUSTOR NAS
「設定」-「ハードウェア」-「電源」タブ.
「電源スケジューリング」の「追加」を押してスケジュールを指定する.
2021/04/26
QNAP NAS で,Virtulization Station を起動していても問題ない.「一時停止」になるので「レジューム」は必要.
再起動によりメモリ使用量が減る(メモリが解放される?)みたいで,定期的な再起動には有効と思われる.
2021/05/11
ASUSTOR NAS で,VirtualBox はメニューの「電源オフ」を選択した動作になるみたいで注意が必要.
スタティック ライブラリで MFC …
「共有 DLL で MFC を使う」にしていたプロジェクトを「スタティック ライブラリで MFC を使用する」に変更.
ビルドして実行すると起動時エラーに.
VC 6 から順にあげてきたプロジェクトで,設定がうまく引き継がれていない.
個々のソースなどは変更した が,それだけでは足りないみたい.
プロジェクトの設定で「リソース」の「プリプロセッサの定義」に _AFXDLL が定義されてしまっている.
「<親またはプロジェクトの既定値から継承>」に変更してうまく動作する様になった.