Рейтинг:0

Разрешает ли ufw весь входящий трафик в ответ на исходящие запросы?

флаг zm

Я запутался, как работает ufw. Я искал сайт, но большинство проблем останавливают приток трафика, моя проблема разрешает приток трафика.

Я настроил ufw, чтобы разрешить только мой пользовательский порт ssh; однако я запускаю java-программу на сервере, который подключается к другому серверу через порт 4246, и все же все данные с другого сервера разрешены на моем сервере, даже если я не открыл порт 4246/tcp. Я также не разрешал никаких http или https, но все команды apt также работают без проблем.

Насколько я понимаю, функция ufw по умолчанию "запретить (входящие), разрешить (исходящие)". Означает ли это, что пока соединение создается изнутри сервера, разрешены любые данные в ответ? Есть ли реальный способ предотвратить это и разрешать данные только в том случае, если они настроены в ufw, независимо от того, было ли соединение установлено изнутри сервера?

Заранее спасибо!

флаг ar
«*Означает ли это, что пока соединение создается изнутри сервера, любые данные в ответ разрешены?*» **Да!**
Doug Smythies avatar
флаг gn
Вы можете делать то, что хотите, но может быть проще использовать iptables напрямую, а не UFW. Если вам нужна политика DROP по умолчанию для цепочки OUTPUT, вам нужно будет управлять такими вещами, как DNS и DHCP, с отдельными правилами iptables в дополнение к вашему пользовательскому трафику порта ssh.
флаг ar
«*Я также не разрешаю никаких http или https, но все команды apt также работают без проблем.*» Вот как работает Интернет. Веб-браузер, такой как crome или, в данном случае, программа «apt» отправляет сообщение на порт 80 (или 443) веб-сервера и говорит ему отправить данные (веб-страницу) обратно, используя порт XXXXXX, где XXXXXX является случайным числом. Когда вы «отклоняете (входящие)», он не отклоняет входящие пакеты, которые специально запрошены исходящим пакетом.
флаг ar
См. [этот вопрос и ответы] (https://stackoverflow.com/questions/2301075/client-use-high-port-number) для получения более конкретных ответов о том, как работают эфемерные/незарегистрированные порты.
Doug Smythies avatar
флаг gn
@ user68186: «он не отклоняет входящие пакеты, которые специально запрашиваются исходящим пакетом». ну, ufw (который является просто внешним интерфейсом для iptables) делает это по умолчанию, но не нужно ПРИНИМАТЬ такие ответы, если они этого не хотят.
флаг ar
@DougSmythies достаточно честно. Может быть, вы могли бы написать ответ.
флаг zm
спасибо за информацию @user68186 и ответ на часть вопроса.
Рейтинг:0
флаг gn

Вопрос был о UFW, но этот ответ использует iptables напрямую и может быть не таким, как хотелось бы.

Вы можете заблокировать исходящие и входящие сетевые пакеты, кроме ваших SSH, с помощью этого скрипта iptables:

#!/бин/ш
ФВВЕР=0,01
#
# ask1393247 Smythies 2022.02.16 Версия: 0.01
#       Глянь сюда:
# https://askubuntu.com/questions/1393247/does-ufw-allow-all-incoming-traffic-in-response-to-outbound-requests?noredirect=1#comment2409932_1393247
# запустить как sudo на s19.
# Начали снизу:
#
# ask1368071 Smythies 2021.10.08 Версия: 0.01
#       Глянь сюда:
# https://askubuntu.com/questions/1368071/iptables-that-only-allow-incoming-traffic-to-openssh-and-block-all-other-traffic
# запустить как sudo на s19.
# записи журнала только для каждого НОВОГО пакета ssh. Кажется неразумным регистрировать каждый пакет ssh, но это можно сделать.
#

echo "Загружается версия набора правил ask1393247 $FWVER..\n"

# Расположение программы iptables
#
IPTABLES=/sbin/iptables

#Установка ВНЕШНИХ и ВНУТРЕННИХ интерфейсов и адресов для сети
#
# Набор для компьютера Smythies s19 (для тестирования). Изменить для компьютера ask1393247.
EXTIF="br0"
EXTIP="192.168.111.136"
СЕТЬ = "192.168.111.0/24"
ВСЕЛЕННАЯ="0.0.0.0/0"

# Очистка любой предыдущей конфигурации
# Будьте осторожны. Я могу сделать это на s19, но не знаю
# о других пользователях компьютера.
#
echo "Очистка существующих правил и установка политик по умолчанию.."
$IPTABLES -P ВХОД DROP
$IPTABLES -F ВВОД
$IPTABLES -P УДАЛЕНИЕ ВЫВОДА
$IPTABLES -F ВЫВОД
$IPTABLES -P ПЕРЕДАТЬ ПРИНЯТЬ
$IPTABLES -F ВПЕРЕД
$IPTABLES -t физ -F

# Удалить пользовательские цепочки
$IPTABLE -X
# Сбросить все счетчики IPTABLES
$IPTABLES -Z
# Smythies: Хотя в моих ссылках этого нет, я думаю, что это необходимо.
$IPTABLES -t физ -Z

# петлевые интерфейсы допустимы.
#
$IPTABLES -A INPUT -i lo -s $UNIVERSE -d $UNIVERSE -j ПРИНЯТЬ

# Разрешить любой связанный трафик, возвращающийся на сервер.
# По неизвестным причинам, ask1393247 не хочет использовать универсальную версию. Так что закомментировано.)
#$IPTABLES -A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m состояние --state УСТАНОВЛЕНО,СВЯЗАННО -j ПРИНЯТЬ
# ask1393247, похоже, хочет этого:
эхо "флаг 1"
$IPTABLES -A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m состояние --state УСТАНОВЛЕНО,СВЯЗАННО -p tcp --dport 22 -j ПРИНЯТЬ
эхо "флаг 2"

# Разрешить и регистрировать новые подключения SSH. Не требуется, если вы не хотите регистрировать сеансы, но тогда вам нужно добавить NEW выше.
# Примечание: я использую порт 22, потому что никто другой не может сюда попасть. Переключитесь на свой порт.
#
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW -p tcp -s $UNIVERSE -d $EXTIP --dport 22 -j LOG --log-prefix "ssh traffic:" --log-level info
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW -p tcp -s $UNIVERSE -d $EXTIP --dport 22 -j ACCEPT

# Теперь также выпускаем только ssh:
$IPTABLES -A ВЫВОД -o $EXTIF -p tcp --sport 22 -m состояние --state УСТАНОВЛЕНО,СВЯЗАННО -j ПРИНЯТЬ

# Примечание: если ваш компьютер использует DCHP, вам нужно будет разрешить его как для входа, так и для выхода.

# Выполнено.
#
echo ask1393247 версия набора правил $FWVER выполнена.

И это результат:

doug@s19:~/iptables/misc$ sudo iptables -xvnL
Цепочка INPUT (политика DROP 133 пакета, 11819 байт)
    pkts bytes target prot opt ​​in out source target
       0 0 ПРИНЯТЬ все -- lo * 0.0.0.0/0 0.0.0.0/0
     202 13689 ПРИНЯТЬ TCP -- br0 * 0.0.0.0/0 192.168.111.136 состояние СВЯЗАННО,УСТАНОВЛЕНО TCP dpt:22
       4 280 LOG tcp -- br0 * 0.0.0.0/0 192.168.111.136 состояние NEW tcp dpt:22 LOG flags 0 уровень 6 префикс "ssh traffic:"
       4 280 ACCEPT TCP -- br0 * 0.0.0.0/0 192.168.111.136 состояние NEW TCP dpt:22

Цепочка FORWARD (политика ACCEPT 0 пакетов, 0 байт)
    pkts bytes target prot opt ​​in out source target

Цепочка OUTPUT (политика DROP 14 пакетов, 3240 байт)
    pkts bytes target prot opt ​​in out source target
     164 25505 ПРИНЯТЬ tcp -- * br0 0.0.0.0/0 0.0.0.0/0 tcp spt:22 состояние СВЯЗАННО, УСТАНОВЛЕНО
флаг zm
спасибо за информацию о части вопроса «Есть ли реальный способ предотвратить это». Вряд ли я это реализую, но это полезная информация. Я отмечу это как ответ.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.