Files
251208-biz-u-dx/netflow/iptables.sh
Wang Sen Di 401e575602 -
2025-12-25 10:42:13 +08:00

51 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# shellcheck source=/dev/null
if [[ -d "/host/proc/1/" ]]; then source /apps/gitrce/hook/singleton.sh "$0"; fi
__main() {
:
update-alternatives --set iptables /usr/sbin/iptables-legacy 2>/dev/null
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy 2>/dev/null
_owner_ids=(3003 51000)
_chain="output_netflow_owner_51000"
for _owner_id in "${_owner_ids[@]}"; do
for cmd in iptables ip6tables; do
$cmd -t mangle -N "$_chain" 2>/dev/null || true
if ! $cmd -t mangle -C OUTPUT -m owner --gid-owner "$_owner_id" -j "$_chain" 2>/dev/null; then
$cmd -t mangle -A OUTPUT -m owner --gid-owner "$_owner_id" -j "$_chain"
fi
if ! $cmd -t mangle -C "$_chain" -j RETURN 2>/dev/null; then
$cmd -t mangle -A "$_chain" -j RETURN
fi
$cmd -t mangle -L OUTPUT -v -n -x
done
done
}
__main
__help() {
cat >/dev/null <<-'EOF'
iptables -t mangle -S OUTPUT \
| grep -- '--gid-owner' \
| sed 's/^-A /-D /' \
| while read rule; do
iptables -t mangle $rule
done
ip6tables -t mangle -S OUTPUT \
| grep -- '--gid-owner' \
| sed 's/^-A /-D /' \
| while read rule; do
ip6tables -t mangle $rule
done
EOF
}