コマンドでプロキシを設定する

IE、インターネットエクスプローラー。もうIEは古いのかわからないが、設定はこれでないと細かくできない?。Windows10では必要無いかな。

プロキシを使う1(チェック、次図)、使わない0設定。ここでは最後の1、使うに設定している。これはレジストリの書き換えになる。

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyEnable /t reg_dword /d 1

この図の状態。

プロキシサーバー172.16.1.1、ポート番号8080の設定の場合

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyServer /t reg_sz /d "172.16.1.1:8080"

この状態。

Socketの設定の場合、IPアドレス127.0.0.1、ポート番号10000に設定。

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyServer /t reg_sz /d "socks=127.0.0.1:10000"

この状態

「次で始まるアドレスにはプロキシを使用しない」の設定。/d “192.168.2.1”

reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings" /f /v ProxyOverride /t reg_sz /d "192.168.2.1"

レジストリの設定ができても、実体のブラウザは更新されない。はず、だったがWindows10では大丈夫みたい。Windows7時代は活を入れるために一度IEをstartコマンドで実行し、timeoutコマンドは10秒待ちで、強制終了taskkillする。/imはイメージファイル=コマンドファイル。/fが強制。

start /d "C:\Program Files\Internet Explorer\" iexplore.exe
timeout /t 10
taskkill /im iexplore.exe /f

IEを起動するのがポイント。timeoutコマンドでIEが起動したころをみはからって、taskkillコマンドでIEを強制シャットダウン。

puttyの設定、コマンドプロンプトで実行

設定はここここ

ウィンドウを持つアプリってマウス操作で実行。

って思い込んでないすか?。コマンドで実行できればタスクスケジューラに登録。自動化できる。

以下をコマンドプロンプトに入力

putty -load myhome

でも

putty -load myHome

でもどちらも動いた。Hの大文字小文字は関係ないようだ。

上図に見えるmyhomeはレジストリに登録されているらしくファイルでは存在しない。

putty.exeにpathが通ってないと以下のメッセージになる。

‘putty’ は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

昔、MS-DOSのころは確かこれだったですね。

コマンドまたはファイル名が違います。

さて、

Progam Files¥puttyフォルダに移動したらファイル名を見つけることができるので確実に実行できる。

なお、

Puttyを実行するとコマンドプロンプトが開くが、閉じるボタンを押すと毎回以下のウィンドウがでる。

この確認を省略する。以下のチェックを2つ外す。

チェックを外す

scでWindowsサービス名一覧

サービスの一覧。これWIN32だけらしい。答えは、最後。

C:\WINDOWS\system32>sc query | findstr SERVICE_NAME

だめなんは、以下でわかります。

C:\WINDOWS\system32>sc query | findstr 32
sc query type= service – Win32 サービスのみ列挙します

じゃ。

C:\WINDOWS\system32>sc query |findstr 64

これは無い。わー使えない!

起動していればtasklistコマンドでサービス名がわかる。

C:\WINDOWS\system32>tasklist /svc |findstr ssh
sshd.exe 10788 sshd

止まっているサービスの名前もわかればnetでもscでも起動、終了のどちらもできるだけど!!

C:\WINDOWS\system32>sc query |findstr ssd

C:\WINDOWS\system32>

と無いわ。

C:\WINDOWS\system32>net start sshd
OpenSSH SSH Server サービスを開始します.
OpenSSH SSH Server サービスは正常に開始されました。

C:\WINDOWS\system32>net stop sshd
OpenSSH SSH Server サービスは正常に停止されました。

とあるよね。これ私のノートパソコンの話しなんで、

spoolerはどのパソコンでもあるのでやってみて。

コマンドプロンプトでする。netの方がわかりやすいのでここではnetコマンドを使ってます。

C:\Windows\System32>net stop spooler
Print Spooler サービスを停止中です.
Print Spooler サービスは正常に停止されました。

C:\Windows\System32>net start spooler
Print Spooler サービスを開始します.
Print Spooler サービスは正常に開始されました。

ヘルプは、コマンドプロンプトでscを実行する。

C:\Windows\System32>sc
説明:
        SC はサービス コントロール マネージャーやサービスと通信するために使用
        するコマンド ライン プログラムです。
使用法:
        sc <サーバー> [コマンド] [サービス名] <オプション 1> <オプション 2>...


        オプションの <サーバー> は "\\サーバー名" の形式です。
        「sc [コマンド]」と入力するとコマンドの詳細なヘルプが表示されます。
        コマンド一覧:
          query-----------サービスの状態を照会したりサービスの種類ごと
                          に状態を列挙したりします。
          queryex---------拡張されたサービスの状態を照会したりサービス
                          の種類ごとに状態を列挙したりします。
          start-----------サービスを開始します。
          pause-----------サービスに PAUSE 制御要求を送信します。
          interrogate-----サービスに INTERROGATE 制御要求を送信します。
          continue--------サービスに CONTINUE 制御要求を送信します。
          stop------------サービスに STOP 要求を送信します。
          config----------サービスの構成を変更します (恒久的)。
          description-----サービスの説明を変更します。
          failure---------エラー発生時のサービスの動作を変更します。
          failureflag-----サービスの障害動作フラグを変更します。
          sidtype---------サービスのサービス SID の種類を変更します。
          privs-----------サービスの必要な特権を変更します。
          managedaccount--サービス アカウントのパスワードを LSA で管理された
                          パスワードとマークするようにサービスを変更します。
          qc--------------サービスの構成情報を照会します。
          qdescription----サービスの説明を照会します。
          qfailure--------エラー発生時のサービスの動作を照会します。
          qfailureflag----サービスの障害動作フラグを照会します。
          qsidtype--------サービスのサービス SID の種類を照会します。
          qprivs----------サービスの必要な特権を照会します。
          qtriggerinfo----サービスのトリガー パラメーターを照会します。
          qpreferrednode--サービスの優先 NUMA ノードを照会します。
          qmanagedaccount-パスワードが LSA で管理されたアカウントを
                         サービスで使用するかどうかを照会します。
          qprotection-----サービスのプロセス保護レベルを照会します。
          quserservice----ユーザー サービス テンプレートのローカル インスタンスを照会します。
          delete----------レジストリからサービスを削除します。
          create----------サービスを作成します (レジストリに追加します)。
          control---------サービスに CONTROL コードを送信します。
          sdshow----------サービスのセキュリティ記述子を表示します。
          sdset-----------サービスのセキュリティ記述子を設定します。
          showsid---------任意の名前に対応するサービス SID 文字列を表示します。
          triggerinfo-----サービスのトリガー パラメーターを構成します。
          preferrednode---サービスの優先 NUMA ノードを設定します。
          GetDisplayName--サービスの DisplayName を取得します。
          GetKeyName------サービスの ServiceKeyName を取得します。
          EnumDepend------サービスの依存関係を列挙します。

        次のコマンドはサービス名を指定しません:
        sc <サーバー> <コマンド> <オプション>
          boot------------(ok | bad) 最後に行われたブートを前回正常起動時
                          の構成として保存するかどうかを示します。
          Lock------------サービス データベースをロックします。
          QueryLock-------SCManager データベースの LockStatus を照会します。
例:
        sc start MyService


QUERY と QUERYEX のオプション:
        クエリ コマンドにサービス名が続く場合、サービスの状態が戻されます。
        この場合、それ以上のオプションは適用されません。クエリ コマンドに
        オプションがない場合やまたは以下に一覧に表示されているオプションが
        続く場合は、サービスが列挙されます。
    type=    列挙するサービスの種類 (driver、service、user service、all)
             (既定 = service)
    state=   列挙するサービスの状態 (inactive、all)
             (既定 = active)
    bufsize= 列挙バッファーのサイズ (バイト)
             (既定 = 4096)
    ri=      列挙の開始を指定するための再開インデックス番号
             (既定 = 0)
    group=   列挙するサービス グループ
             (既定 = all groups)

構文の例
sc query                - アクティブなサービス ドライバーの状態を列挙します
sc query eventlog      - イベントログ サービスの状態を表示します
sc queryex eventlog    - イベントログ サービスの拡張状態を表示します
sc query type= driver   - アクティブなドライバーのみ列挙します
sc query type= service  - Win32 サービスのみ列挙します       <<<<<<わお
sc query state= all     - サービスとドライバーをすべて列挙します  <<<<これ!!
sc query bufsize= 50    - 50 バイトのバッファーで列挙します
sc query ri= 14         - 再開インデックスを = 14 にして列挙します
sc queryex group= ""    - グループにないアクティブなサービスを列挙します
sc query type= interact - 対話型サービスをすべて列挙します
sc query type= driver group= NDIS     - NDIS ドライバーをすべて列挙します


C:\Windows\System32>

答えは

sc query state=all | findstr SERVICE_NAME

state=allなんです。

C:\WINDOWS\system32>sc query state=all|findstr ssh
SERVICE_NAME: ssh-agent
SERVICE_NAME: sshd

見つけてますね。OK

sc query state=all | findstr 探したいサービス名の一部

ssh 「Secure Shell」

セキュア シェル。Windowsで言えばShellシェルとはcmd.exeやエクスプローラーかな。

暗号化したコマンド。暗号化したトンネル(パイプ)を作ったり、scpでコピーもできるし多機能です。

コマンドで使うのでキーボード大好きな人向き。

もともと、マウスで操作するのは自動化や繰り返し処理には向かない?

私はキーボード操作が好きです。

さて、

sshの前にtelnetを使っているとあーsshねとなると思いますが。Windowsでは使うことないでしょ。もともとsshはUNIXで一般的につかわれています。

ここでは、Windows10で使えるということでやってみます。

sshクライアントとsshdサーバーの2つともWindows10では設定するだけですぐに使える。

コマンドプロンプトでssh localhostまたはssh 127.0.0.1で自分のサーバーに接続する。

家のパソコンを会社からVNCでリモート操作

会社のフィルターでネットがつかえん」の追加の設定です。

フリーのVNCは、リモートディスクトップっていうんかな。遠くのパソコンのディスクトップ画面を画面として操作できます。

Team Viewerも使えるが、フリーのVNCも使えます。ただ、VNCは通信経路が丸見え?だったと。

でも

sshでトンネリング(暗号化した通信のパイプ/トンネルのような感じ)しているので大丈夫。ということでVNCを使います。

家のノートパソコンにVNCを検索して、ノートパソコンにダウンロード、インストールします。

サービスとして動かしてから。家のノートパソコンの画面右下

設定画面をだす

パスワードの設定です。なんでもいいです。トンネルの中ですから簡単なパスワードにしよう。1文字でも大丈夫。何かエラーぽいのがでるけど。

パスワードの設定

動作確認は家のノートパソコンでlocalhostか127.0.0.1で確認できる。

会社のPuttyのTunnelsの設定の投稿に追加します。

追加したら、いったんsshの接続を切る(Puttyを閉じる)。再度、Puttyを起動、sshで接続してから、VNCViewerを起動し、127.0.0.1:11111かlocalhost:11111で家のノートパソコンに接続する。

あ、会社のパソコンにVNCViewerがいる。

パスワードは、UltraVNC Server Property Pageで設定したパスワードです。

会社のフィルタでネットが使えん

という方に、家のパソコンに会社からsshで接続して自由を獲得する。

こちらを参考にしました。ssh接続の「ダイナミックフォワード」という機能を使う。

sshっていうのはコマンドで別のコンピュータとコマンドのやり取りができる。しかも、暗号化してます。接続相手はsshサーバーです。相手は家にあるノートパソコンです。接続しようとしている(クライアント)は会社のパソコンです。会社からはPuTTyを使う。

会社のPuTTy⇔家のパソコンのsshサーバー

この間に関所があります。会社のプロキシーサーバーと家の(ブロードバンド)ルータです。

会社のPuTTy⇔会社のプロキシーサーバー⇔家のルータ⇔家のパソコンのsshサーバー

Putty、家のルータの説明を主にします。

我社はプロキシの設定もあるのでPuTTyを使いました。会社にプロキシーサーバーがあるかどうかは、会社のパソコンのIEの設定でわかります。プロキシーが無ければ、Puttyを使わなくてもsshコマンド(有効にすればWindows10でも使える)でもOKです。

PuTTyの設定はややこしいです。でも設定がややこしいだけで使うのは簡単。

Tunnelsの設定

家のノートパソコン経由でインターネットに接続する設定。ダイナミックフォワード

ということで、会社のパソコンのIE(Microsoft Edgeは不明)のプロキシーの設定をSoketsにして、使用するプロキシーのアドレスを127.0.0.1かlocalhost、ポート番号は10000にすると会社にいながら家のノートパソコンを経由してインターネットに接続できる。

ブラウザでFireFoxは、単独でSocksの設定ができる。単に調べ物だけならFireFoxを使って他は社内のサーバーを使う。

話はそれました。PuTTyの設定の続き。

Sessionの設定。443はhttpsプロトコルが使うポート。このポートだと会社のフィルターも止めないでしょう。「家のグローバルIPアドレス」は、こちらでわかります。「こちら」は家でやってメモります。

このSession/セッション/接続は、会社のルータを監視すると見えます。https443番は一般的で怪しまれることはありませんが、これが何時間も接続していると怪しまれます。適当に切断することをオススメします。

Proxyの設定。HTTPをチェック

会社のプロキシサーバー名/IPアドレスは、IEの設定を参考にする

「Open」ボタンを押すとログインでパスワードを要求される。Windowsのログインと同じパスワードです。

以下がログイン完了。会社のパソコンからこのノートパソコンを通してインターネットに接続できる。次図のコマンドプロンプトは、家のノートパソコンのコマンドプロンプトです。

家のパソコンはWindows10でWindowsのsshdサーバーを使います。この設定はWindowsにsshdサーバーを追加して、ただ動かすだけ。ここで設定方法と使い方を簡単に説明してます。

ややこしいのは、家のルータ(バッファローAir-Station WHR-1166DHP2)の設定でしょうね。意味を説明するがややこしい。設定は簡単。考え方がややこしい。

アパート、マンションの方は無理です。また、一戸建ての方でも例えばSoftbankのレンタルルータなどでもきっと「ポート変換」ぐらいはあるはずです。

我が家は一戸建て、バッファローのルータを光回線の終端装置(ONU)に付けてるので自由です。

家のノートパソコンのIPアドレスは、〜.11.10です。これを固定しておかないといけない。ので手動割当です。

世界からパケットがお家のルータに来るのですが、ポート番号443の港をたたくパケットはノートパソコン〜.11.10のポート22にそのままえ渡す設定です。

なんで443なんか?PuTTyの「Sessionの設定」を見て下さい。

以上、ややこしい設定2つです。

家のグローバルIPアドレスはこちらでわかる。家でします。ついでに、会社の方も知っているといいことがあります。Windows10のファイアウォールの設定で特定のIPしか接続できないようにするのです。sshdサーバーに対してスコープをかけるとIPのパケットを見て送信元が会社のグローバルかどうかをチェックします。次図。

これで、家のいつのポート(港)が空いていると世界から侵入を試みるでしょうが、受け取る自宅のノートパソコンのsshdサーバーが応答するかどうかは、送信元のIPアドレスで判断してくれます。IPパケットのヘッダを見た時点で会社のグローバルIPアドレスでないとパケットが捨てられます。データな中身以前に送信元のIPアドレスで無視します。

だから、ユーザー名とパスワードすら試すことはできません。