netstat コマンドで ECS Linux ポート状態の確認方法
netstat コマンドで、Linux OS 開放中のポート、該当ポートを占用するプロセス、ユーザー情報を確認できます。netstat コマンドに下記の引数があります。
パラメータ | 説明 |
---|---|
-t | TCP ポートのみを表示 |
-u | UDP ポートのみを表示 |
-l | 接続待ち状態にあるソケットのみを表示 |
-p | 各ソケットが属しているプログラムの PID と名前を表示 |
-n | DNS解析せずに、数字のアドレスで表示 |
netstat コマンド引数の組合せ
コマンド | 説明 |
---|---|
netstat -na | アクティブ状態のネットワーク接続を表示します。 grep、wc、sort などコマンドを併用して、接続状況、接続数を確認し、攻撃を受けているかどうかを判断できます。 |
netstat -an | grep :80 | sort | 80 番ポートを利用中のネットワーク接続を表示し、リストします。80 番ポートは http ポートであるため、web サービスを監視できます。単一の IP から大量の接続がある場合、該当 IP から攻撃を受けていると判断できます。 |
netstat -n -p|grep SYN_REC | wc -l | アクティブの SYNC_REC の接続数を表示します。通常値は 5 以下です。説明:DDos 攻撃を受けた場合、SYNC_REC の接続数は多くなる場合があります。ただし、並行プロセスが多いサーバーのSYNC_REC の接続数も多いので、攻撃かどうか場合によって判断する必要があります。 |
netstat -n -p | grep SYN_REC | sort -u | 接続した記録がある IP アドレスを表示し、リストします。 |
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}' | SYN_REC 接続ノードを送信した IP アドレスを表示します。 |
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | 各ホストからの接続数をホストごとで表示します。 |
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | UDP または TCP と接続している IP アドレスの数を表示します。 |
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | ESTABLISHED 接続をチェックし、IP アドレスごとの接続数を表示します。 |
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 | 80 番ポートに接続している IP アドレス、IP アドレスごとの接続数を表示します。 |
netstat -antp | awk '$4 ~ /:80$/ {print $4" "$5}' | awk '{print $2}'|awk -F : {'print $1'} | uniq -c | sort -nr | head -n 10 | 80 番ポートに接続している IP アドレス中、接続数前 10 位の IP アドレス、IP アドレスごとの接続数を表示します。単一の IP から大量の接続がある場合、該当 IP から攻撃を受けていると判断できます。 |
ポート占用解除の方法
下記のコマンド(例:9000 番ポート)で、ポート占用のプロセスを特定します。
netstat -antp | grep 9000
PID 1070 のプロセスが 9000 番ポートを占用していますので、該当プロセスを停止します。