INNER CODE UNIT · Shell
mss6
bivlked/amneziawg-installer · awg_common.sh:1993
local mss6=$(( awg_mtu - 60 ))
postup="${postup}; iptables -t mangle -A FORWARD -o %i -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss ${mss4}; iptables -t mangle -A FORWARD -i %i -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss ${mss4}"
postdown="${postdown}; iptables -t mangle -D FORWARD -o %i -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss ${mss4}; iptables -t mangle -D FORWARD -i %i -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss ${mss4}"
# Изоляция клиентов (issue #178): DROP awg0->awg0 до общего ACCEPT.
# PostUp выполняется слева направо, -I вставляет в начало цепочки -
# правило, добавленное В СТРОКЕ ПОЗЖЕ, оказывается В ЦЕПОЧКЕ ВЫШЕ, поэтому
# DROP дописывается в конец postup. Перед -I дренируем stale-копии циклом
# -D: после сбойного PostDown копия DROP иначе копилась бы с каждым up
# (ревью PR #179). Именно drain, а не -C: stale-копия к этому моменту
# лежит НИЖЕ свежевставленного ACCEPT, -C нашёл бы её, пропустил вставку -
# и awg0->awg0 трафик уходил бы в ACCEPT (изоляция молча сломана).
# PostDown с '2>/dev/null || true': после переустановки on->off правила в
# running-наборе нет, и упавший -D не должен ронять awg-quick down
# (down-фаза restart работает уже с новым конфигом). Unset
# CLIENT_ISOLATION = 1: конфиги до v5.20 изолированы.
if [[ "${CLIENT_ISOLATION:-1}" -eq 1 ]]; then
postup="${postup}; while iptables -D FORWARD -i %i -o %i -j DROP 2>/dev/null; do :; done; iptables -I FORWARD -i %i -o %i -j DROP"