Я использую программу, доступную для http://server_ip:certain_port
Я хочу, чтобы он был доступен только для внутреннего использования http://localhost:port
.
Как я могу заблокировать эти порты извне?
Брандмауэр. Если вы используете Ubuntu или debian, ufw - хороший выбор. Настройте брандмауэр на разрешение портов по умолчанию, но, как правило, запретить конкретный порт.
Исходя из моего собственного опыта работы с веб-сервером, наиболее чистым решением является использование директивы Apache для ограничения доступа через .htaccess
директивы или в конфигурации сайта.
Преимущества:
Вам необходимо использовать следующие директивы:
<Location />
order Deny, Allow
deny from all
Allow from localhost
Allow from 127.0.0.1
</Location>
Эта директива запрещает доступ ко всему веб-сайту, будет разрешено только соединение с localhost (127.0.0.1). Вы можете использовать имя или IP-адрес в URI, они будут распознаваться как таковые обоими правилами разрешения.
Где разместить эти директивы:
.htaccess
файл в верхнем каталоге, содержащий файлы для вашего веб-сайта, который вы хотите защититьЗамечание:
Для .htaccess
файл может быть загружен веб-сервером, вы должны определить этот веб-сайт с AllowOverride Limit
или AllowOverride all
в определении веб-сайта. Также, .htaccess
это имя по умолчанию, используемое для этого, и может быть переопределено директивой Apache AccessFileName <filename>