Я написал простое серверное приложение (с интерфейсом HTTP). Я хочу убедиться, что обрабатываются только звонки с локального компьютера - т.е. я хочу запретить доступ / использование моего сервера посторонним лицам.

Как я могу ограничить посторонних (то есть запросы от удаленных машин)?

Кстати, я развертываю на Linux

4 ответа4

1

Другие ответы предполагают, что вы написали CGI/ модульное приложение Apache - я предполагаю, что вы написали свое собственное приложение, которое также прослушивает порт 80, для целей администрирования.

В системе Linux самый простой способ (без необходимости писать собственную систему ACL .htaccess или аналогичную) заключается в использовании iptables для предотвращения чего-либо, кроме локального доступа к выбранному вами порту:

iptables -A INPUT -p tcp --dport 80 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j DROP

Очевидно, что это лучше использовать для включения в сценарий инициализации, который будет загружаться при загрузке, и потенциально может быть сделан более устойчивым, но для ваших текущих ограниченных целей, как определено, это должно сработать. :)

0

попробуйте добавить файл .htaccess (в ваше веб-приложение), где вы указываете что-то вроде:
разрешить с 192.168.1.
или любой другой ip patter для используемого вами локального URL-адреса (также должен быть действительным 127.0.0.1).

0

Под Apache вы можете сделать это довольно просто с помощью файлов .htaccess . Есть некоторые примеры ограничения доступа по IP - адресу на этом сайте .

Чтобы запретить внешние соединения и сделать их доступными только для локального хоста:

order deny,allow
deny from all
allow from 127.0.0.1

Просто убедитесь, что вы указали order deny,allow чтобы deny имел приоритет. Также обязательно укажите deny from all чтобы все другие IP-адреса были запрещены для доступа к приложению.

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

0

Вы ищете «bind ()» для прослушивающего сокета, который вы открываете для определенного IP-адреса. Если вы привязываетесь к адресу обратной связи, то только программы на локальном компьютере смогут подключаться (локальная сеть никогда не маршрутизируется за пределы данного компьютера)

Это будет проще, чем конфигурация брандмауэра, потому что она полностью автономна в вашей программе и потому что она переносима.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .