開いているポートを「閉じる」方法は何ですか?

開いているポートを「閉じる」方法は何ですか?

数日前、私は私のデータのセキュリティについて非常に心配しましたnmapnmap 127.0.0.1

驚くべきことに、localhostを受信するアクティブなサービスがたくさんあります。

$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2013-05-05 00:19 WEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 993 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
53/tcp  open  domain
111/tcp open  rpcbind
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

私の一つだけ可能useは次のとおりですssh(うまく構成されていない可能性がありますが、これについては別の質問として残しておきます)。

私が知る限り、ippCUPSプロトコルは私のプリンタを共有するために使用され、共有する必要はなく、サーバーからプリンタにアクセスするだけです。

netstat -lntup以下は、localhostアドレスが削除されたrootユーザーの出力です。

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      497/sshd        
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      2217/dropbox    
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      892/smbd        
tcp        0      0 0.0.0.0:50022           0.0.0.0:*               LISTEN      1021/rpc.statd  
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      892/smbd        
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      906/rpcbind     
tcp6       0      0 :::22                   :::*                    LISTEN      497/sshd        
tcp6       0      0 :::42712                :::*                    LISTEN      1021/rpc.statd  
tcp6       0      0 :::445                  :::*                    LISTEN      892/smbd        
tcp6       0      0 :::139                  :::*                    LISTEN      892/smbd        
tcp6       0      0 :::111                  :::*                    LISTEN      906/rpcbind     
udp        0      0 0.0.0.0:51566           0.0.0.0:*                           615/avahi-daemon: r
udp        0      0 0.0.0.0:68              0.0.0.0:*                           7362/dhclient   
udp        0      0 0.0.0.0:111             0.0.0.0:*                           906/rpcbind     
udp        0      0 192.168.1.255:137       0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.67:137        0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:137             0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.255:138       0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.67:138        0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:138             0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:655             0.0.0.0:*                           906/rpcbind     
udp        0      0 0.0.0.0:17500           0.0.0.0:*                           2217/dropbox    
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           615/avahi-daemon: r
udp        0      0 0.0.0.0:34805           0.0.0.0:*                           1021/rpc.statd  
udp6       0      0 :::40192                :::*                                1021/rpc.statd  
udp6       0      0 :::111                  :::*                                906/rpcbind     
udp6       0      0 :::655                  :::*                                906/rpcbind     
udp6       0      0 :::5353                 :::*                                615/avahi-daemon: r
udp6       0      0 :::42629                :::*                                615/avahi-daemon: r

実際に使用しているときにのみ外部の世界の音を聞くようにこれらのサービスを設定するにはどうすればよいですか?

ベストアンサー1

露出決定

コマンドの出力から、netstat多くのサービスが実際には非常に短いリストであるように見えます。

$ netstat -lntup | awk '{print $6 $7}'|sed 's/LISTEN//'| cut -d"/" -f2|sort|uniq|grep -v Foreign
avahi-daemon:r
dhclient
dropbox
nmbd
rpcbind
rpc.statd
smbd
sshd

状況を理解する

このリストを見ると、私が扱いたくないサービスがいくつかあります。

  • dhクライアント
    • IPアドレスの取得を担当するDHCPサーバーデーモンにはこの情報が必要です。
  • セーフティボックス
    • 当然、Dropboxが必要です。

削減の開始 - Sambaの無効化

今すぐSambaを無効にすることができます。 Sambaは上記のサービスの2つを占めており、nmbd実際にsmbdローカルホストまたはIPに接続されているネットワークでラップトップでそれを実行する必要があるかどうか疑問です。

実行中であることを確認するには、次のコマンドを使用できますstatus

$ status nmbd
nmbd start/running, process 19457
$ status smbd
smbd start/running, process 19423

サービスを終了すると、upstart、/etc/rc.d、およびビジネスのすべての変更が混乱する可能性があるため、どのサービスがどのスキルを使用しているのかを把握するのは困難です。 Samba の場合、次のserviceコマンドを使用できます。

$ sudo service nmbd stop
nmbd stop/waiting
$ sudo service smbd stop
smbd stop/waiting

今彼らは消えました:

$ status nmbd 
nmbd stop/waiting
$ status smbd 
smbd stop/waiting

遠くに…永久に

この問題を回避するために、私はこのツールを使用してsysv-rc-confコンソールでサービスを管理してきましたが、ほとんどのサービスよりも機能します。これにより、実行するサービスとサービスを開始/停止する必要がある実行レベルを確認できます。

$ sudo apt-get install sysv-rc-conf

   sysv-rc-conf ss

残りの不要なコンテンツを無効にする

これでSambaが終了したので、次のことが残ります。

  • ハバヒデーモン
    • Zeroconf(プラグアンドプレイ)の一部、オフ
  • rpcバインディング
    • NFSが必要 - オフ
  • rpc.statd
    • NFSが必要 - オフ

残りの3つについては、Sambaと同じことをしてドラッグすることもできます。

カップ?

CUPSをオフにするには(実際にCUPSは必要ありません)、同じ手順に従ってサービスをオフにしてから開始から無効にすることができます。印刷するには、システムの各プリンタを個別に設定する必要があります。system-config-printerGUIを介してこれを行うことができます。

これらのサービスは要求に応じて提供されますか?

これは実際には問題の中心ですが、これらのサービスを常に実行するのではなく、使用時に実行されるように「スマート」にする万能の解決策はありません。

#1 - systemdとスタートアップ

これは部分的に現在の分裂によって引き起こされます。システムそして突然現れる。 2つの競争技術の良い概要ここ

どちらの技術も少し違うことをしようとしているようです。機能セットを考慮すると、systemdはサーバーに適しており、upstartはデスクトップボリュームに適しています。この問題は時間の経過とともに自然に解決され、IMOでは両方のサービスが信頼性が高く機能が豊富になります。

最終的に、両方のサービスが管理するすべてのサービスに包括的なオンデマンドの起動と停止機能を提供します。たとえば、このような機能はStopWhenUnneeded=yesすでに存在してsystemdいるため、具体化されるのは時間の問題に過ぎません。

#2 - サービスサポート

一部のサービスは停止/開始をまったくサポートしていません。このようなサービスがsshd必要に応じて実行されることは妥当ではないように見えるかもしれません。特に使用量が多い場合にはさらにそうです。また、一部のサービス(Apacheなど)は、独自の管理のためにより多くのリスナーを起動するメカニズムも提供します。したがって、このタイプのサービスがどのようにオンデマンドサービスを提供するのかsystemdupstartこれらのサービスとどのように統合されるのかは不明です。

これは本当に必要ですか?

これはあまりにも、あるいはミニマリストのアプローチをとり、必ず必要なものだけをインストールしなければならないという言葉を両側から聞くことになるだろうが、それは事実個人の選択だ。これらのサービスが存在し、どのような役割を果たしているかを理解することは本当に重要です。最終的に、コンピュータは単なるツールであり、Unixシステムを使用することで、あなたは喜んでステージの後ろを覗き、コンピュータがどのように機能するかを理解したいと考えました。

私はこの種の質問がコンピュータとUnixを扱うときに努力すべき考え方だと言いたいと思います。

引用する

おすすめ記事