Как вы ограничиваете сервер соединениями только с локального хоста?

Иногда вы хотите, чтобы отношения между клиентом и сервером были только на вашем сервере, то есть только на localhost.

Но, похоже, что когда вы открываете порт для прослушивания, он также становится доступным в Интернете. Так что, если вы избегаете пароля к серверу с привилегиями root, он будет открыт для всех в Интернете.

Как вы ограничиваете сервер подключениями только с локального хоста или, другими словами, имеете внутреннюю сеть, где вы можете общаться только внутри, даже если у машины есть доступ к Интернету?

1
задан 8 October 2019 в 11:15

1 ответ

можно настроить приложение для слушания только на адресе 127.0.0.1 (localhost), тот способ, которым это не будет рассматриваться как открытое с внешней стороны.

, Например, если у меня есть nginx, слушающий на порте 80 фортов каждый IP и апач, слушающий на порте 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 '^]'.

Hope это помогает!

2
ответ дан 10 November 2019 в 10:03

Другие вопросы по тегам:

Похожие вопросы: