Iptables - возникли проблемы с разрешением определенных портов и блокировкой других

Выполненная вами команда создала символическую ссылку в текущем каталоге. Судя по подсказке, текущий каталог - это ваш домашний каталог. Создание символических ссылок на исполняемые программы в вашем домашнем каталоге не особенно полезно.

Когда вы вводите имя программы, оболочка ищет ее в каталогах, перечисленных в переменной среды PATH . Чтобы увидеть значение этой переменной, запустите echo $ PATH . Каталоги разделяются двоеточием (: ). Типичный путь - / home / ricardo / bin: / usr / local / bin: / usr / bin: / bin , но существует множество вариантов.

Вам необходимо создать эту символическую ссылку в одном из каталогов, перечисленных в $ PATH . Если вы хотите сделать команду доступной для всех пользователей, создайте ссылку в / usr / local / bin :

sudo ln -s /opt/android-studio/bin/studio.sh /usr/local/bin/studio

Если вы хотите сделать команду доступной только вам (что является единственной возможностью, если у вас нет прав администратора), создайте ссылку в ~ / bin (подкаталог bin вашего домашнего каталога).

ln -s /opt/android-studio/bin/studio.sh ~/bin/studio

Если ваш дистрибутив не помещает / home / ricardo / bin в ваш ПУТЬ (где / home / ricardo - ваш домашний каталог), создайте сначала введите mkdir ~ / bin и добавьте его в свой ПУТЬ , добавив следующую строку в ~ / .profile (создайте файл, если это не так » t exists):

PATH=~/bin:$PATH

Файл .profile читается при входе в систему. Вы можете прочитать его в текущем терминале, запустив . ~ / .profile (относится только к программам, запускаемым с этого терминала).

1
17.03.2019, 20:26
3 ответа

Las reglas de política que ha creado permitirán que hosts externos a se conecten a sus puertos TCP 22, 80 y 443, pero no permitirán ningún otro tráfico, ¡incluido el suyo propio! Si realmente desea evitar que este host acceda a cualquier otra cosa que no sean estos tres puertos, y no desea que hosts externos accedan al suyo en absoluto , puede poner las reglas en su cadena de reglas OUTPUTen lugar de su INPUTuno y luego tenga una regla CONNTRACK en su cadena de entrada para evitar conexiones que no inició:

-P INPUT DROP
-P OUTPUT DROP
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m udp -p udp --sport 53 -j ACCEPT
-A OUTPUT -i lo -j ACCEPT
-A OUTPUT -m tcp -p tcp --dport 22 -j ACCEPT
-A OUTPUT -m tcp -p tcp --dport 53 -j ACCEPT
-A OUTPUT -m udp -p udp --dport 53 -j ACCEPT
-A OUTPUT -m tcp -p tcp --dport 80 -j ACCEPT
-A OUTPUT -m tcp -p tcp --dport 443 -j ACCEPT

Por lo general, permito que el adaptador de bucle invertido funcione normalmente, ya que algunos programas internos pueden necesitarlo; también, permitiría el tráfico de DNS, o de lo contrario no podrá resolver los nombres de dominio.

1
27.01.2020, 23:32

Como otros señalaron en los comentarios, no necesita reglas de ENTRADA como esas para acceder a los sitios web. Solo necesitaría estas reglas si estuviera ejecutando servicios en estos puertos localmente. Si quisiera restringir el tráfico saliente, estas reglas deberían ir en la cadena de SALIDA.

Además, está perdiendo toda la conectividad porque está eliminando todo el tráfico entrante. Cuando realiza una conexión a un servidor web, los datos devueltos (específicamente, el protocolo de enlace de 3 vías TCP )se DROPPed en la cadena de ENTRADA debido a su captura -todos descartados. Para solucionar esto, debe agregar una regla para permitir estas conexiones de retorno:

iptables -I INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
1
27.01.2020, 23:32

Попробуйте update-alternatives --config iptablesи выберите устаревшую версию. Работал на меня до поры до времени.

0
27.01.2020, 23:32

Теги

Похожие вопросы