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

Есть ли оболочка для ограничения исполняемого файла, чтобы он мог прослушивать только определенные порты?

Есть ли оболочка, которая предотвратит прослушивание порта исполняемым файлом? В качестве альтернативы, существует оболочка, которая переназначает порт, чтобы исполняемый файл думал, что он прослушивает 80, но на самом деле прослушивает 8080

Командная строка моей мечты была бы такой:

server:~ # remapper -f 80 -t 8080 /usr/bin/some_binary

Создание политики обязательного контроллера доступа в SELinux, AppArmor (или, как я полагаю, доверенных расширениях Solaris) - единственный реальный способ гарантировать, что приложениям не разрешено связываться с портами, которые явно не указаны в политике. Если вы хотите сопоставить один порт с другим портом для входящих подключений, это делается на уровне системного брандмауэра / фильтра пакетов - iptables в Linux, ipf в Solaris и т. Д.

Однако вопрос Бенуа остается в силе, и то, что вы пытаетесь сделать, может оказаться излишним.

Вы запускаете веб-сервер на порту 80, который может выполнять только определенные типы скриптов. Затем вы можете разрешить пользователям загружать на веб-сервер и выполнять свой сценарий через веб-браузер, тем самым заставляя доступ к нему только через http. Просто мысль.

Например, выполните это из cgi-bin:

#!/bin/bash
# get today's date
OUTPUT="$(date)"
# You must add following two lines before
# outputting data to the web browser from shell
# script
 echo "Content-type: text/html"
 echo ""
 echo "<html><head><title>Demo</title></head><body>"
 echo "Today is $OUTPUT <br>"
 echo "Current directory is $(pwd) <br>"
 echo "Shell Script name is $0"
 echo "</body></html>"