nc(Ncat)コマンドで覚えておきたい使い方3個(ncコマンドCentOS 7版)

前回も紹介したLinuxでポートの疎通確認を行う際によく用いるncコマンド。
実はこのコマンド、netcatではなくCentOS 7の場合だとnampプロジェクトのncatに置き換えられているのだ。

今後はncもこのncatコマンドに置き換えられている事になるので、このコマンドの使い方についても(あんま変わらんけど)紹介することにした。
なお、検証に使用したコマンドはCentOS 7に入れている"Ncat: Version 6.40 ( http://nmap.org/ncat )"とする。

[root@test-centos7 ~]# nc --version
Ncat: Version 6.40 ( http://nmap.org/ncat )

コマンドが置き換わったため、netcatでは使えていたオプションが無かったりする。
例えば「-z」オプションなんて無いので、レンジ指定で空きポートを確認する手法は使うことが出来ないので注意が必要だ。

なお、前回紹介した手法のうち、以下についてはnetcatコマンドと変わらないため、割愛する。
変わった(できなくなった)のは、ポート範囲を指定してのスキャンだけだ。

  • 1.基本的な使い方・クライアントとして動作させる
  • 2.基本的な使い方・サーバとして動作させる
  • 3.ファイルを転送する
  • 4.IPv4、IPv6を指定する
  • 5.通信の詳細を取得する
  • 6.ソースアドレス・ポートを指定する
  • 8.ポートへのアクセス時にコマンド(bash等)が実行されるようにする

1.通信にsslを利用する

ncatの場合、「--ssl」を付与することで通信にSSLを使用することができる。
デフォルトではSHA1で通信が行われる。

nc -vl ポート番号 --ssl # サーバ側
nc -v 対象ホスト(IPアドレス等) ポート番号 --ssl

SSLで通信を行わせる場合は、サーバ・クライアントともに「--ssl」オプションを付与する必要がある点に注意。
SSLを利用できるということで、その他のオプション(鍵ファイルを指定したり等)も付与する事が出来る。

2.SCTPで通信を行う

あまり使うシチュエーションは思いつかないが、「--sctp」を付与することで、SCTPプロトコルでの通信を行う事も出来る。

3.送信・受信専用にする

オプションとして「--send-only」を付与することで送信専用に、「--recv-only」を付与することで受信専用として動作させることができる。
例えば、右側のコンソールをクライアントとして送信専用にすると、左のコンソールで入力した内容は受信されない。

その他、細かいオプション(同時接続数の制限や接続許可ホストの指定、コマンドの実行方法など)もあるが基本的にはnetcatとそう変わらない。