質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

1回答

1143閲覧

netstatを利用したIPアドレス監視

mta77

総合スコア4

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

0クリップ

投稿2021/07/29 05:50

前提・実現したいこと

やりたいこと
・netstat -anoを元にホワイトリストを作成 
・作成したホワイトリストとnetstat -anoの結果を比較。比較し一致不一致した結果をCSVへエクスポート
・上記を可能とする、ホワイトリストとシェルスクリプトを作成したい。
・ホワイトリストについては、jsonファイルで作成し、ConvertFrom-Jsonで読み込みスクリプトで条件式
でソートを掛け、Export-CSVでCSV出力したい。

【作成したいホワイトリスト】この範囲は接続を許可
受信許可
送信元IPアドレス - ローカルLAN(192.168.0.0/24, 172.16.0.0/16, 172.18.0.0/16)
受信ポート - HTTP(tcp/80,443), SMB(tcp/445),

送信許可
HTTP:宛先IP - 複数のグローバルIPアドレス(もしくは any)、ポート tcp/80,443
SMTP:宛先IP - 特定のグローバルIPアドレス、ポート tcp/24,587 tcp/21

確認したいこと
・ホワイトリスト作成に当たり
/24などCIDRが存在する為、NW帯のIPアドレスを一覧化してpowershellに読み込むこと
は可能でしょうか。
・試しでnetstat -anoをCSV出力可能か試したところエラーとなり
netstat | memberでCSV出力可能な項目をSelect-Objectで抽出したいのですが、
"ローカル アドレス","外部アドレス"等の項目が存在しない。

素人質問になり、大変申し訳ございませんが何卒ご教授の程お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/07/29 06:59

まずはその試してエラーになったというコードを提示しましょう
mta77

2021/07/29 07:03

返信ありがとうございます。 コードについては、 netstat -ano | select LocalAddress,Foreign Address,PID |Export-Csv -Path .\test.csv -Encoding Default となります。
guest

回答1

0

ベストアンサー

PowerShellではnetstatの代わりにGet-NetTCPConnectionGet-NetUDPEndpoint
使用できます。

こちらであればオブジェクトが返ってくるので
select LocalAddressなどが使用できますよ。

投稿2021/08/03 15:10

編集2021/08/03 15:11
kamikazelight

総合スコア305

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mta77

2021/08/04 05:01

ご回答ありがとうございます。 netstatでは”LocalAddress”をSelect-Objectなどで持ってこれないとの理解でよろしいでしょうか。 Get-NetTCPConnection+NetUDPEndpointで必要な情報を取得しシェル化する方が、よろしいでしょうか。
kamikazelight

2021/08/04 10:35

そうですねnetstatが返しているのはただの文字列です。 String型にはLocalAddressプロパティは存在しないので SelectObjectでは持ってこれません。 netstatの結果を加工してカスタムオブジェクトを生成することも出来ますが 私は前述のコマンドレットの使用をおすすめします。 スペースで分割してカスタムオブジェクトを生成することは出来ますが 上記のコマンドレットを使用したほうが楽ですよ
mta77

2021/08/06 04:45

コメントありがとうございます。 "String型にはLocalAddressプロパティは存在しないのでSelectObjectでは持ってこれません。" こちらの回答が求めていた内容でしたので、確認でき大変助かりました。 NetUDPEndpoint,NetUDPEndpoint共にmemberでLocalAddressを確認しましたので、2つを マージし検討してみます。ホワイトリスト作成の目途が立っていないので分析から確認してみます。
kamikazelight

2021/08/06 10:53

上手くいくといいですね、 またわからなかったらコメントください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問