サーバのオープンポート番号を見るためにLinuxを説明する

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

この問題を説明する前に、物理ポート、論理ポート、ポート番号などのコンピュータの概念を見てみましょう。

港関連の概念:

ネットワーク技術では、ポートには論理ポートと物理ポートの2種類があります。 物理ポートとは、ADSLモデム、ハブ、スイッチ、またはRJ-45ポート、SCポートなどの他のネットワークデバイスに接続するためのルータ上のインターフェイスなど、物理的に存在するポートを指します。 論理ポートは、TCP / IPプロトコルのサービスポートなど、サービスを論理的に区別するために使用されるポートです。ポート番号の範囲は0〜65535です(Webサービスを参照する場合はポート80、FTPサービスの場合はポート21など)。待って。 物理ポートと論理ポートの数が多いため、ポートを区別するために、各ポートに番号が付けられています。これがポート番号です。

ポートは、ポート番号によって3つのカテゴリに分けられます。

1:よく知られているポート

認識されるポート番号の範囲は0から1023までですが、ポート21を使用するFTPサービスなどのいくつかの共通サービスに緊密にバインドされています。このマッピングは/ etc / servicesにあります。

2:登録港:

1024から49151まで 彼らはいくつかのサービスに疎結合しています。 これは、これらのポートにバインドされている多くのサービスが存在し、これらのポートが他の多くの目的にも使用されていることを意味します。

3:ダイナミックおよび/またはプライベートポート

ダイナミックポート(プライベートポート番号)は、インターネットの伝送制御プロトコル(Transmission Control Protocol)またはユーザー転送プロトコル(User Transport Protocol)を使用して、他のソフトウェアと通信するためにソフトウェアが使用できるポートの数です。 ダイナミックポートは、一般的に49152〜65535

Linuxでポートの使用に制限があります。私のプログラム用にいくつかのポートを予約したい場合は、このポート範囲を制御する必要があります。 / proc / sys / net / ipv4 / ip_local_port_rangeは、ローカルTCP / UDPポートの範囲を定義します。/etc/sysctl.confにnet.ipv4.ip_local_port_range = 1024 65000を定義できます。


[[email protected] ~]# cat /proc/sys/net/ipv4/ip_local_port_range
32768  61000
[[email protected] ~]# echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range

港とサービスについては公衆トイレを例にとってみましたが、公衆トイレのトイレはすべて各港のようなもので、これは人々の解決のためのサービスです。誰かがトイレに行くと、これらの港につながります。 トイレが占有されている場合は、ポート番号がサービスによって占有されていることを意味します。ある日は公衆便所のサービスがない場合は、公衆便器は取り除かれ、当然ポート番号はありません。 実際、銀行ロビーのように鮮明な例があり、ポート番号はそれらのカウンタであり、ビジネスを処理するために番号を取得する人は、サーバーにリンクするさまざまなクライアントのようなものです。 彼らは、ポートリダイレクション技術を使用してビジネスコンタクトをカウンターに送信します。 たとえば、長沙、陽陽などの高速鉄道線の各サイトのようなポート番号はポート番号を表しており、各アプリケーションがサーバーに送信されるように列車のチケットをそれぞれのサイトに渡します。ポートのIPパケット。

ポートとサービスの関係

ポートの使用は何ですか? IPアドレスを持つホストは、Webサービス、FTPサービス、SMTPサービスなど、多くのサービスを提供できます。これらのサービスは1つのIPアドレスで実装できます。 では、ホストはさまざまなネットワークサービスをどのように区別していますか? 明らかに、IPアドレスとネットワークサービスの関係は1対多であるため、IPアドレスだけに依存することはできません。 実際、「IPアドレス+ポート番号」は、異なるサービスを区別するために使用されます。

ポート番号と対応するサービスの対応は、/ etc / servicesファイルに格納されています。ほとんどのポートはこのファイルにあります。

ポートが開いているかどうかをチェックする方法は、実際には、整理していない、私はそこに多くの方法があるかわからない!

1:nmapツールがオープンポートを検出する

Nmapは、ネットワークスキャンとホスト検出のためのツールです。 nmapのインストールは非常に簡単です(以下のrpmインストールで示されています)。


[[email protected] Server]# rpm -ivh nmap-4.11-1.1.x86_64.rpm 
warning: nmap-4.11-1.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...        ########################################### [100%]
1:nmap          ########################################### [100%]
[[email protected] Server]# rpm -ivh nmap-frontend-4.11-1.1.x86_64.rpm 
warning: nmap-frontend-4.11-1.1.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...        ########################################### [100%]
1:nmap-frontend     ########################################### [100%]
[[email protected] Server]# 

nmapの使用に関して、大きなキャプションのクローズアップを使うことができ、ここでは展開しません。 以下に示すように、nmap 127.0.0.1は、マシンの開いているポートを調べ、すべてのポートをスキャンします。 もちろん、他のサーバーポートをスキャンすることもできます。


[[email protected] Server]# nmap 127.0.0.1
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2016-06-22 15:46 CST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1674 closed ports
PORT   STATE SERVICE
22/tcp  open ssh
25/tcp  open smtp
111/tcp open rpcbind
631/tcp open ipp
1011/tcp open unknown
3306/tcp open mysql
Nmap finished: 1 IP address (1 host up) scanned in 0.089 seconds
You have new mail in /var/spool/mail/root
[[email protected] Server]# 

2:netstatツールが開いているポートを検出する


[[email protected] Server]# netstat -anlp | grep 3306
tcp    0   0 :::3306           :::*            LISTEN   7358/mysqld     
[[email protected] Server]# netstat -anlp | grep 22
tcp    0   0 :::22            :::*            LISTEN   4020/sshd      
tcp    0   52 ::ffff:192.168.42.128:22  ::ffff:192.168.42.1:43561  ESTABLISHED 6198/2       
[[email protected] Server]# 

上記のように、このツールはnmapが簡潔ではないと感じています。 もちろん、実際には強力なnmapはありません。

3:lsofツールが開いているポートを検出する


[[email protected] Server]# service mysql start
Starting MySQL......[ OK ]
[[email protected] Server]# lsof -i:3306
COMMAND PID USER  FD  TYPE DEVICE SIZE NODE NAME
mysqld 7860 mysql  15u IPv6 44714    TCP *:mysql (LISTEN)
[[email protected] Server]# service mysql stop
Shutting down MySQL..[ OK ]
[[email protected] Server]# lsof -i:3306
[[email protected] Server]# 


[[email protected] Server]# lsof -i TCP| fgrep LISTEN
cupsd   3153  root  4u IPv4  9115    TCP localhost.localdomain:ipp (LISTEN)
portmap  3761   rpc  4u IPv4 10284    TCP *:sunrpc (LISTEN)
rpc.statd 3797 rpcuser  7u IPv4 10489    TCP *:1011 (LISTEN)
sshd   4020  root  3u IPv6 12791    TCP *:ssh (LISTEN)
sendmail 4042  root  4u IPv4 12876    TCP localhost.localdomain:smtp (LISTEN)

4:telnetを使用してポートが開いているかどうかを検出する

サーバーポートがリスニング状態にある場合でも、ファイアウォールのiptablesはポートを保護します。この方法でポートが開いているかどうかを検出することはできません。

5:netcatツールは、ポートが開いているかどうかを検出します。


[[email protected] ~]# nc -vv 192.168.42.128 1521
Connection to 192.168.42.128 1521 port [tcp/ncube-lm] succeeded!
[[email protected] ~]# nc -z 192.168.42.128 1521; echo $?
Connection to 192.168.42.128 1521 port [tcp/ncube-lm] succeeded!
0
[[email protected] ~]# nc -vv 192.168.42.128 1433
nc: connect to 192.168.42.128 port 1433 (tcp) failed: No route to host

ポートを閉じてポートを開く

シャットダウンポートとオープンポートは2つの異なる概念でなければなりません。各ポートには対応するサービスがありますので、ポートを閉じるには対応するサービスをオフにしてください。 以下の例のように、MySQLサービスは有効になり、ポート3306は待機し、MySQLサービスを終了するとポート3306は自然に閉じられます。


[[email protected] Server]# service mysql start
Starting MySQL......[ OK ]
[[email protected] Server]# lsof -i:3306
COMMAND PID USER  FD  TYPE DEVICE SIZE NODE NAME
mysqld 7860 mysql  15u IPv6 44714    TCP *:mysql (LISTEN)
[[email protected] Server]# service mysql stop
Shutting down MySQL..[ OK ]
[[email protected] Server]# lsof -i:3306
[[email protected] Server]# 

したがって、システムには不要なポートやサービスが存在し、セキュリティ上の配慮や省資源の観点から、不要なサービスを閉鎖する必要があります。 対応するポートを閉じます。 さらに、サービスがオンになっても、ファイアウォールは対応するポートを制限してポートにアクセスできないようにしますが、ポート自体は閉じられていませんが、ポートはブロックされます。


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ