VPN ਫਾਇਰਵਾਲ ਹੁੱਕ ਉਹੀ ਨਿਯਮ ਦੋ ਵਾਰ ਕਿਉਂ ਜੋੜਦਾ ਹੈ
ਮੁੜ ਕਨੈਕਟ ਹੋਣ 'ਤੇ ਤੁਹਾਡਾ ਹੁੱਕ ਫਿਰ ਚੱਲ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਲੋੜੀਂਦੀ ਹਾਲਤ ਲਈ ਡਿਜ਼ਾਈਨ ਕਰੋ: ਆਪਣੀਆਂ ਚੇਨਾਂ, ਸ਼ਾਮਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਜਾਂਚ, ਇੱਕ ਕ੍ਰਮਬੱਧ ਬਦਲਾਅ ਅਤੇ ਸੀਮਿਤ ਟਿਅਰਡਾਊਨ।
ਹੁੱਕ ਪਹਿਲੀ ਵਾਰ ਕੰਮ ਕਰਦਾ ਹੈ, ਅਤੇ ਤਿੰਨ ਮੁੜ ਕਨੈਕਟਾਂ ਤੋਂ ਬਾਅਦ ਚੇਨ ਵਿੱਚ ਉਸੇ ਨਿਯਮ ਦੀਆਂ ਤਿੰਨ ਕਾਪੀਆਂ ਰਹਿੰਦੀਆਂ ਹਨ। ਕੁਝ ਵੀ ਉੱਚੀ ਆਵਾਜ਼ ਵਿੱਚ ਫੇਲ੍ਹ ਨਹੀਂ ਹੋਇਆ; ਸਕ੍ਰਿਪਟ ਹਰ ਵਾਰ ਚੱਲਣ 'ਤੇ ਬੱਸ ਉਹੀ ਕਰਦੀ ਸੀ ਜੋ ਉਸਨੂੰ ਕਿਹਾ ਗਿਆ ਸੀ। VPN ਹੁੱਕ ਇੱਕ ਕਨਫ਼ਿਗਰੇਸ਼ਨ ਕਾਰਵਾਈ ਹੈ ਜੋ ਇੱਕ ਤੋਂ ਵੱਧ ਵਾਰ ਚੱਲ ਸਕਦੀ ਹੈ, ਇਸ ਲਈ ਇਸਨੂੰ ਮਾਲਕ, ਲੋੜੀਂਦੀ ਹਾਲਤ ਅਤੇ ਇੱਕ ਕ੍ਰਮਬੱਧ ਬਦਲਾਅ ਚਾਹੀਦਾ ਹੈ। ਇਸ ਕ੍ਰਮ ਵਿੱਚ ਚੱਲੋ, ਅਤੇ ਕਾਪੀਆਂ ਰੁਕ ਜਾਣਗੀਆਂ।
ਕੋਈ ਵੀ ਨਿਯਮ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ ਨਿਯਮਾਂ ਨੂੰ ਮਾਲਕ ਦਿਓ
ਇੱਕ ਵੀ ਨਿਯਮ ਲਿਖਣ ਤੋਂ ਪਹਿਲਾਂ ਤੈਅ ਕਰੋ ਕਿ ਇਹ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਕਿਹੜੀ ਚੇਨ ਜਾਂ ਟੇਬਲ ਦੀ ਮਾਲਕ ਹੈ। ਹੁੱਕ ਜੋ ਸਮਰਪਿਤ ਚੇਨ ਬਣਾਉਂਦਾ ਅਤੇ ਖਾਲੀ ਕਰਦਾ ਹੈ, ਉਹ ਮਾਲਕੀਅਤ ਦਾ ਸਭ ਤੋਂ ਸਪਸ਼ਟ ਰੂਪ ਹੈ, ਕਿਉਂਕਿ ਸਫ਼ਾਈ ਫਿਰ ਉਸ ਚੇਨ ਨੂੰ ਕਿਸੇ ਹੋਰ ਦੀ ਨੀਤੀ ਨੂੰ ਛੋਹੇ ਬਿਨਾਂ ਹਟਾ ਸਕਦੀ ਹੈ। ਜੇ ਤੁਹਾਨੂੰ ਸਾਂਝੀ ਚੇਨ ਵਿੱਚ ਨਿਯਮ ਜੋੜਨੇ ਹੀ ਪੈਣ, ਤਾਂ ਉਹਨਾਂ 'ਤੇ ਟਿੱਪਣੀ ਲਗਾਓ ਤਾਂ ਜੋ ਬਾਅਦ ਦੀ ਖੋਜ ਠੀਕ ਤੁਹਾਡੇ ਹੀ ਲੱਭ ਸਕੇ। ਮਾਲਕੀਅਤ ਹੀ ਟਿਅਰਡਾਊਨ ਨੂੰ ਸੁਰੱਖਿਅਤ ਬਣਾਉਂਦੀ ਹੈ, ਅਤੇ ਟਿਅਰਡਾਊਨ ਹੀ ਉਹ ਹਿੱਸਾ ਹੈ ਜੋ ਚੁੱਪਚਾਪ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ।
iptables -N VPN_HOOK 2>/dev/null || true
iptables -C INPUT -j VPN_HOOK 2>/dev/null || iptables -I INPUT -j VPN_HOOK
iptables -S VPN_HOOK
ਇੱਥੇ ਟਿੱਪਣੀ ਸਜਾਵਟ ਨਹੀਂ ਹੈ। ਇਹ ਤੁਹਾਡੇ ਨਿਯਮ ਨੂੰ ਹਟਾਉਣ ਅਤੇ ਅਚਾਨਕ ਮਿਲਦੇ-ਜੁਲਦੇ ਨਿਯਮ ਨੂੰ ਹਟਾਉਣ ਵਿਚਕਾਰਲਾ ਫ਼ਰਕ ਹੈ, ਅਤੇ ਇਹ ਸੰਭਾਲੇ ਨਿਯਮ-ਸੈੱਟ ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ। ਟਿੱਪਣੀ ਇੱਕ ਵਾਰ ਕਿਸੇ ਵੇਰੀਏਬਲ ਵਿੱਚ ਲਿਖੋ ਅਤੇ ਜੋੜਨ, ਜਾਂਚਣ ਜਾਂ ਹਟਾਉਣ ਵਾਲੇ ਹਰ ਆਦੇਸ਼ ਵਿੱਚ ਉਹੀ ਸਟ੍ਰਿੰਗ ਵਰਤੋ।
ਦੁਬਾਰਾ ਜੋੜਨ ਦੀ ਬਜਾਏ ਲੋੜੀਂਦੀ ਹਾਲਤ ਦੀ ਜਾਂਚ ਕਰੋ
ਲਿਖੋ ਕਿ ਸੁਰੰਗ ਉੱਪਰ ਹੋਣ ਸਮੇਂ ਕੀ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ: ਕਿਹੜੇ ਇੰਟਰਫ਼ੇਸ, ਕਿਹੜਾ ਸਰੋਤ ਅਤੇ ਮੰਜ਼ਿਲ, ਕਿਹੜਾ ਪ੍ਰੋਟੋਕੋਲ ਅਤੇ ਕਿਹੜਾ ਪੋਰਟ। ਫਿਰ ਹਰ ਨਿਯਮ ਨੂੰ ਇੱਕ ਜਾਂਚ ਅਤੇ ਉਸ ਤੋਂ ਬਾਅਦ ਸ਼ਾਮਲ ਕਰਨ ਦੇ ਰੂਪ ਵਿੱਚ ਪੇਸ਼ ਕਰੋ, ਤਾਂ ਜੋ ਦੂਜੀ ਵਾਰ ਚੱਲਣ 'ਤੇ ਨਿਯਮ ਮਿਲ ਜਾਵੇ ਅਤੇ ਕੁਝ ਨਾ ਹੋਵੇ। ਨਿਯਮ ਹੋਣ 'ਤੇ ਜਾਂਚ ਆਦੇਸ਼ ਸਿਫ਼ਰ ਨਾਲ ਬਾਹਰ ਨਿਕਲਦਾ ਹੈ, ਅਤੇ ਸਕ੍ਰਿਪਟ ਨੂੰ ਠੀਕ ਇਹੀ ਸੰਕੇਤ ਚਾਹੀਦਾ ਹੈ। iptables ਹਵਾਲਾ ਇੱਥੇ ਵਰਤੇ ਗਏ ਜਾਂਚ, ਜੋੜ ਅਤੇ ਸ਼ਾਮਲ ਕਰਨ ਦੇ ਰੂਪਾਂ ਨੂੰ ਦਸਤਾਵੇਜ਼ ਕਰਦਾ ਹੈ।
iptables -C VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT ||
iptables -A VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
ਥਾਂ ਬਾਰੇ ਸਾਵਧਾਨ ਰਹੋ। ਨਿਯਮ ਦੀ ਜਾਂਚ ਕਰਕੇ ਸਭ ਤੋਂ ਉੱਪਰ ਸ਼ਾਮਲ ਕਰਨਾ ਪਹਿਲਾਂ ਆਉਣ ਵਾਲੀ ਜਾਣ-ਬੁੱਝ ਕੇ ਕੀਤੀ ਨਾਂਹ ਤੋਂ ਪਹਿਲਾਂ ਇਜਾਜ਼ਤ ਨੂੰ ਖਿਸਕਾ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਦੂਜੀ ਵਾਰ ਚੱਲਣ 'ਤੇ ਕੁਝ ਜੋੜੇ ਬਿਨਾਂ ਵੀ ਵਿਵਹਾਰ ਬਦਲ ਜਾਂਦਾ ਹੈ। ਆਪਣੀ ਚੇਨ ਦੇ ਅੰਦਰ ਅੰਤ ਵਿੱਚ ਜੋੜੋ, ਅਤੇ ਉਸ ਚੇਨ ਵੱਲ ਛਾਲ ਕਿੱਥੇ ਹੈ ਉਸ ਨਾਲ ਕ੍ਰਮ ਨਿਯੰਤਰਿਤ ਕਰੋ। ਜੇ ਚੇਨ ਦੇ ਅੰਦਰ ਕ੍ਰਮ ਮਹੱਤਵਪੂਰਨ ਹੈ, ਤਾਂ ਨਿਯਮ-ਦਰ-ਨਿਯਮ ਪੈਬੰਦ ਲਾਉਣ ਦੀ ਬਜਾਏ ਜਾਣੀ-ਪਛਾਣੀ ਸੂਚੀ ਤੋਂ ਚੇਨ ਦੁਬਾਰਾ ਬਣਾਓ।
ਜੇ ਲੋੜੀਂਦਾ ਨਿਯਮ ਸਥਿਰ ਜਾਂਚ ਦੇ ਰੂਪ ਵਿੱਚ ਪੇਸ਼ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਤਾਂ ਰੁਕੋ। ਆਮ ਤੌਰ 'ਤੇ ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਲੋੜੀਂਦੀ ਹਾਲਤ ਅਜੇ ਵੀ ਅਸਪਸ਼ਟ ਹੈ।
ਟਿਕੇ ਰਹਿਣ ਦੀ ਉਮੀਦ ਦੀ ਬਜਾਏ ਬਦਲਾਅ ਨੂੰ ਕ੍ਰਮਬੱਧ ਕਰੋ
ਹੁੱਕ ਦੇ ਦੋ ਸੱਦੇ ਓਵਰਲੈਪ ਹੋ ਸਕਦੇ ਹਨ, ਅਤੇ ਦੋਵੇਂ ਕਿਸੇ ਦੇ ਜੋੜਨ ਤੋਂ ਪਹਿਲਾਂ ਨਿਯਮ ਦੀ ਗੈਰਹਾਜ਼ਰੀ ਦੇਖ ਸਕਦੇ ਹਨ। xtables ਦਾ ਉਡੀਕ ਵਿਕਲਪ ਆਦੇਸ਼ ਨੂੰ ਤਾਲੇ ਦੀ ਉਡੀਕ ਕਰਵਾਉਂਦਾ ਹੈ, ਪਰ ਦੋ ਆਦੇਸ਼ਾਂ ਵਿੱਚ ਜਾਂਚ-ਫਿਰ-ਜੋੜ ਕ੍ਰਮ ਨੂੰ ਪਰਮਾਣੂ ਨਹੀਂ ਬਣਾਉਂਦਾ। ਪੂਰੀ ਕਾਰਵਾਈ ਨੂੰ ਆਪਣੇ ਤਾਲੇ ਨਾਲ ਕ੍ਰਮਬੱਧ ਕਰੋ, ਜਾਂ ਅਜਿਹਾ ਪ੍ਰਬੰਧਕ ਵਰਤੋ ਜੋ ਘੋਸ਼ਿਤ ਬੈਚ ਨੂੰ ਇੱਕ ਲੈਣ-ਦੇਣ ਵਜੋਂ ਲਾਗੂ ਕਰੇ। nftables ਬਾਅਦ ਵਾਲਾ ਕਰ ਸਕਦਾ ਹੈ, ਅਤੇ ਇਹ ਉਹਨਾਂ ਹੋਸਟਾਂ 'ਤੇ ਇਸਨੂੰ ਤਰਜੀਹ ਦੇਣ ਦਾ ਇੱਕ ਕਾਰਨ ਹੈ ਜਿੱਥੇ ਇਹ ਉਪਲਬਧ ਹੈ।
flock /run/vpn-hook.lock /usr/local/sbin/vpn-firewall-apply
nft -f /etc/nftables/vpn-hook.nft
ਤੁਸੀਂ ਕੋਈ ਵੀ ਵਿਧੀ ਚੁਣੋ, ਨਾਜ਼ੁਕ ਹਿੱਸਾ ਛੋਟਾ ਰੱਖੋ ਅਤੇ ਉਸਨੂੰ ਦੁਬਾਰਾ ਦਾਖਲ ਹੋਣ ਯੋਗ ਬਣਾਓ: ਅੱਧੇ ਰਾਹ ਵਿੱਚ ਫੇਲ੍ਹ ਹੋਣ ਵਾਲਾ ਹੁੱਕ ਦੁਬਾਰਾ ਚਲਾਉਣ ਲਈ ਸੁਰੱਖਿਅਤ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਨਤੀਜਾ ਲੌਗ ਕਰੋ ਤਾਂ ਜੋ ਵਾਰ-ਵਾਰ ਚੱਲਣਾ ਨਿਯਮਾਂ ਦੀ ਗਿਣਤੀ ਤੋਂ ਅੰਦਾਜ਼ਾ ਲਾਉਣ ਦੀ ਬਜਾਏ ਜਰਨਲ ਵਿੱਚ ਦਿਸੇ। ਜੇ ਦੋ ਵੱਖ-ਵੱਖ ਸੁਪਰਵਾਈਜ਼ਰ ਹੁੱਕ ਨੂੰ ਬੁਲਾ ਸਕਦੇ ਹਨ, ਤਾਂ ਪਹਿਲਾਂ ਉਹੀ ਠੀਕ ਕਰੋ; ਕੋਈ ਤਾਲਾ ਦੋ ਮਾਲਕਾਂ ਨੂੰ ਠੀਕ ਨਹੀਂ ਕਰਦਾ।
ਸਿਰਫ਼ ਆਪਣਾ ਹੀ ਟਿਅਰਡਾਊਨ ਕਰੋ
ਟਿਅਰਡਾਊਨ ਨੂੰ ਬਦਲਵੇਂ ਕਨੈਕਸ਼ਨ ਨੂੰ ਉਸ ਕਨੈਕਸ਼ਨ ਤੋਂ ਵੱਖ ਪਛਾਣਨਾ ਚਾਹੀਦਾ ਹੈ ਜਿਸਨੂੰ ਇਸਨੇ ਸੇਵਾਮੁਕਤ ਕੀਤਾ, ਅਤੇ ਇਹਨੂੰ ਅਜਿਹੀ ਘਟਨਾ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਜਿਸਨੂੰ ਕਦੇ ਵੀ ਸੁਚੱਜੀ ਸਫ਼ਾਈ ਨਹੀਂ ਮਿਲਦੀ। ਜਿਨ੍ਹਾਂ ਪਛਾਣਕਰਤਾਵਾਂ ਨਾਲ ਜੋੜਿਆ ਸੀ ਉਹਨਾਂ ਹੀ ਨਾਲ ਮਿਟਾਓ, ਅਤੇ ਸਫ਼ਾਈ ਸੌਖੀ ਕਰਨ ਲਈ ਕਦੇ ਵੀ ਸਾਂਝੀ ਚੇਨ ਖਾਲੀ ਨਾ ਕਰੋ। ਸਖ਼ਤ ਰੁਕਾਵਟ ਤੋਂ ਬਾਅਦ, ਡਾਊਨ ਹੁੱਕ ਚੱਲਿਆ ਮੰਨਣ ਦੀ ਬਜਾਏ ਅਗਲੀ ਸ਼ੁਰੂਆਤ 'ਤੇ ਮੇਲ-ਮਿਲਾਪ ਦਾ ਦੌਰ ਚਲਾਓ।
iptables -D VPN_HOOK -i tun0 -p tcp --dport 443 -j ACCEPT
iptables -F VPN_HOOK
ip -brief link show type tun
ਇੰਟਰਫ਼ੇਸ ਦੀ ਉਮਰ ਵੀ ਡਿਜ਼ਾਈਨ ਦਾ ਹਿੱਸਾ ਹੈ। ਮੁੜ ਕਨੈਕਟ ਹੋਣ 'ਤੇ ਵੱਖਰੇ ਨਾਮ ਦਾ ਯੰਤਰ ਬਣ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਦੂਜੀ ਸੁਰੰਗ ਦਾ ਨਾਮ ਸਖ਼ਤੀ ਨਾਲ ਤੈਅ ਕਰਨ ਵਾਲਾ ਨਿਯਮ ਵੈਧ ਦਿਸਦੇ ਹੋਏ ਵੀ ਪੁਰਾਣਾ ਹੋ ਜਾਂਦਾ ਹੈ। ਕਨੈਕਸ਼ਨ ਖੁਦ ਜੋ ਪਛਾਣ ਦਰਸਾਉਂਦਾ ਹੈ ਉਸਨੂੰ ਤਰਜੀਹ ਦਿਓ, ਅਤੇ ਹਰ ਵਾਰ ਚੱਲਣ 'ਤੇ ਉਸਨੂੰ ਦੁਬਾਰਾ ਪੜ੍ਹੋ। ਤਿੰਨੇ ਘਟਨਾਵਾਂ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਜਾਂਚੋ: ਦੁਹਰਾਇਆ ਕਨੈਕਸ਼ਨ, ਬਦਲਵਾਂ ਕਨੈਕਸ਼ਨ ਅਤੇ ਸ਼ਟਡਾਊਨ। ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਟ੍ਰੈਫ਼ਿਕ ਤਿੰਨੇ ਬਿਨਾਂ ਨਕਲ ਪਾਰ ਕਰੇ, ਅਤੇ ਅਸੰਬੰਧਿਤ ਸੇਵਾਵਾਂ ਅਛੂਤ ਰਹਿਣ।
ਇਹ ਚਾਲ ਉਦੋਂ ਪੂਰੀ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਹੁੱਕ ਕੋਲ ਮਾਲਕ, ਇਸ ਦੁਆਰਾ ਜੋੜੇ ਹਰ ਨਿਯਮ ਲਈ ਜਾਂਚ, ਇੱਕ ਕ੍ਰਮਬੱਧ ਰਾਹ ਅਤੇ ਸਿਰਫ਼ ਆਪਣੀ ਹਾਲਤ ਹਟਾਉਣ ਵਾਲਾ ਟਿਅਰਡਾਊਨ ਹੋਵੇ। ਦੋ ਵਾਰ ਚਲਾਉਣ ਲਈ ਸੁਰੱਖਿਅਤ ਹੁੱਕ ਇੱਕ ਵਾਰ ਚਤੁਰ ਹੁੱਕ ਨਾਲੋਂ ਵੱਧ ਕੀਮਤੀ ਹੈ।