Назад | Перейти на главную страницу

Блокировать определенный порт для доступа к приложению извне, влияя на доступ к скриптам локального хоста

Я установил одно приложение «phanthomjs», которое работает на определенном порту 6423. Я хочу, чтобы оно было доступно для сценариев, которые запускаются локально в поле «localhost» и недоступны извне.

phantomjs--webdriver=6324

мой текущий скрипт использует TCP и запускается в том же окне, и мы используем имя сервера как localhost для подключения к приложению.

Есть ли способ в Redhat Linux заблокировать доступ к этому порту извне?

Если ваше приложение прослушивает только localhost, с ним нельзя связаться извне. Если можно настроить "привязанный" адрес, то поставьте 127.0.0.1. Чтобы проверить, что это работает, введите lsof -i -n -P :6423 (или 6324...). На выходе вы должны увидеть строку, заканчивающуюся на

TCP 127.0.0.1:6423 (LISTEN)

Если ты видишь

TCP *:6423 (LISTEN)

тогда ваше приложение прослушивает любой порт и, таким образом, с ним можно связаться из Интернета.

Если вы не можете заставить ваше приложение прослушивать только 127.0.0.1, вам нужно будет использовать iptables.

Вам не нужно блокировать доступ к порту при привязке к localhost: только локальные процессы могут получить к нему доступ, другие хосты не имеют к нему доступа.

Чтобы убедиться, что цены привязаны к localhost только, а не к внешнему сетевому интерфейсу, выполните эту команду:

netstat -ntl | grep 6423

Если на выходе вы видите что-то вроде 127.0.0.1:6423 тогда вы можете быть уверены, что служба недоступна с других хостов, только для локальных процессов.

Если же вы видите что-то вроде *:6423 или IP-адрес, доступный в сети, тогда услуга доступна, и вам необходимо настроить конфигурацию для привязки к localhost вместо.