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

Сделать порт доступным только с localhost

Я использую программу, доступную для http://server_ip:certain_port Я хочу, чтобы он был доступен только для внутреннего использования http://localhost:port.

Как я могу заблокировать эти порты извне?

Вы должны указать Apache прослушивать только интерфейс lo.

Listen 127.0.0.1:80

Ссылка

Брандмауэр. Если вы используете Ubuntu или debian, ufw - хороший выбор. Настройте брандмауэр на разрешение портов по умолчанию, но, как правило, запретить конкретный порт.

Исходя из моего собственного опыта работы с веб-сервером, наиболее чистым решением является использование директивы Apache для ограничения доступа через .htaccess директивы или в конфигурации сайта.

Преимущества:

  1. Нет необходимости бороться с IPtables или другими правилами брандмауэра на уровне ядра.
  2. Apache по-прежнему прослушивает все интерфейсы вашего сервера, поэтому вы можете иметь в том же экземпляре Apache другие веб-сайты без этого только доступ к локальному хосту ограничение

Вам необходимо использовать следующие директивы:

<Location />
  order Deny, Allow
  deny from all
  Allow from localhost
  Allow from 127.0.0.1
</Location>

Эта директива запрещает доступ ко всему веб-сайту, будет разрешено только соединение с localhost (127.0.0.1). Вы можете использовать имя или IP-адрес в URI, они будут распознаваться как таковые обоими правилами разрешения.

Где разместить эти директивы:

  1. В .htaccess файл в верхнем каталоге, содержащий файлы для вашего веб-сайта, который вы хотите защитить
  2. Если в вашем файле конфигурации Apache настроено несколько виртуальных хостов, поместите эти директивы в раздел относительно этого веб-сайта

Замечание:

Для .htaccess файл может быть загружен веб-сервером, вы должны определить этот веб-сайт с AllowOverride Limit или AllowOverride all в определении веб-сайта. Также, .htaccess это имя по умолчанию, используемое для этого, и может быть переопределено директивой Apache AccessFileName <filename>