時々、あなたはあなたのサーバー上でのみサーバーとクライアントの関係を持ちたい、すなわち。 localhost
のみ。
しかし、ポートを開いて聞くと、インターネットでも利用できるようです。したがって、root権限を持つサーバーへのパスワードを回避すると、サーバーはインターネット上のすべてのユーザーに対して開かれているように見えます。
サーバーをlocalhost
からの接続のみにどのように制限するか、つまり、マシンがインターネットにアクセスできる場合でも内部でのみ通信できる内部ネットワークを持っていますか?
アプリケーションは、アドレス127.0.0.1(localhost)でのみリッスンするように構成できます。これにより、外部から開いているとは見なされません。
たとえば、nginxがポート80ですべてのIPをリッスンし、Apacheがポート8080で127.0.0.1をリッスンしている場合:
# netstat -ltnp (Redacted a little to make it clearer)
Local Address State Program name
0.0.0.0:80 LISTEN nginx: master
127.0.0.1:8080 LISTEN Apache
これらの2つのポート(nmapなど)の外側から確認すると、80が開いているだけで、8080が閉じていることがわかります。
# nmap $server -p 80,8080
PORT STATE SERVICE
80/tcp open http
8080/tcp closed http-proxy
8080に接続しようとすると、次のようになります。
# telnet $server 8080
Trying $ip...
telnet: Unable to connect to remote Host: Connection refused
しかし、80は機能します。
# telnet $server 80
Trying $ip...
Connected to .
Escape character is '^]'.
それが役に立てば幸い !