読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

ポートの開放での注意

何度か使用していますが、ポート開放の確認は以下のページで出来ます。 ポートチェック【ポート開放確認】 ここで注意なのは、ちゃんとアクセスするためには ①ルータでポートフォワーディングをする ②FW(ファイアーウォール)でポートを開放する ③サービスを立ち上げてListen状態にする この3つがそろっていないときちんとアクセスできません。 特に③番目が個人的には盲点で、開放しているはずなのに「アクセスできません」と表示が出て不思議に思っていました。 これはサービスがListen状態になっていないためにtcp接続が出来なかったんです。 Listen状態とは、簡単に言うとtcp接続するときの準備ができている状態です。相手の接続時のパケットを聞きとる(Listen)ことができる状態って感じでしょうか。 より詳しく知りたいと思った方はTCPのオープンとクローズ処理を参考にしてください。 ではこのListen状態かどうかを調べる方法を述べていきます。 以下のコマンドで、ポートの開放状況と使用しているプロセスの一覧を表示します。 注意としてroot権限で実行してください。 # netstat -untap Listen状態のものはtcpを用いたサービスが起動しており、外部からアクセスがあればEstablishに変化します。 Establishは現在外部からアクセスがなされており、接続が成立している状態のものです。 試しにWebにアクセスした状態でこのコマンドを実行してみると443のapacheの項目がEstablishになっています。 ついでですが、この一覧を元に使用するつもりないプロセスがポートを使用していたらサービスを停止しましょう。つまり使用していないサービスのListen状態があれば停止する、ということです。例えばプリンタ用のcupsとか使用しないと思うので、停止したほうがセキュリティ的に良いです。 補足ですが、各オプションは u・・・udp n・・・名前のレゾルブをしない t・・・tcp a・・・すべての情報を表示 p・・・ポートを使用しているプロセスを表示 となります。nを省くとホスト名(FDQN)やサービス名(ssh)がIPやポートの代わりに表示されます。 ソース: netstatコマンドを使いこなす TCPの状態遷移図