Если у вас есть политика DROP INPUT по умолчанию, даже пакеты ответа от ваших исходящих соединений будут отброшены.
Чтобы принять их, добавьте это правило ввода:
iptables -I INPUT 1 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Что касается вашего последнего вопроса, в вашем c and d
примере (при условии пустых правил перед этими командами) вы устанавливаете первое правило drop everything
и второе правило, которое будет принимать трафик из определенной сети. IPTABLES получает совпадение, как только может, поэтому первое правило всегда совпадает (без условий), поэтому каждое правило после этого не будет выполнено. Исключения из правила должны быть определены до правила.
В первом примере -P INPUT DROP
вы устанавливаете последнее правило, которое будет отлавливать то, что не было найдено ранее, поэтому любое добавленное исключение будет выполнено до этого правила по умолчанию ( -P
).
-I
вставляет в определенную позицию (например, в моей предыдущей команде я устанавливаю правило ESTABLISHED, RELATED первым, чтобы оно совпадало независимо от того, что вы установили после этого.
-A
добавляется в список правил, поэтому если будет сопоставлено непосредственно перед значением по умолчанию.
Если вы хотите добиться того же, что и в первом примере, с явными правилами (например c and d
), вам следует обмениваться этими возможностями.