ਇੱਕ banaction, ਦੋ ਟਰਾਂਸਪੋਰਟ: fail2ban-VPN-jail ਠੀਕ ਕਰਨਾ
ban ਆਪਣੀ ਕਿਰਿਆ ਦੇ ਪ੍ਰੋਟੋਕੋਲ ਜਿੰਨਾ ਹੀ ਚੌੜਾ ਹੁੰਦਾ ਹੈ। ਚੇਨ ਕਾਊਂਟਰਾਂ ਦੀ ਸਰੋਤਿਆਂ ਨਾਲ ਤੁਲਨਾ ਕਰੋ, ਫਿਰ jail ਵਿੱਚ ਹੀ ਦੋਵੇਂ ਟਰਾਂਸਪੋਰਟ ਢੱਕ ਦਿਓ।
fail2ban ਵਿੱਚ ਕੁਝ ਵੀ ਆਪਣੇ ਆਪ ਪੈਕਟ ਨਹੀਂ ਡਿਗਦਾ: ਇਹ ਇੱਕ ਕਿਰਿਆ ਬੁਲਾਉਂਦਾ ਹੈ, ਅਤੇ ਉਹੀ ਕਿਰਿਆ ਪ੍ਰੋਟੋਕੋਲ ਅਤੇ ਪੋਰਟ ਦਾ ਨਾਮ ਦਿੰਦੀ ਹੈ। ਜਦੋਂ jail ban ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ ਅਤੇ ਡੈਮਨ ਲੌਗਇਨ ਸਵੀਕਾਰ ਕਰਦਾ ਰਹਿੰਦਾ ਹੈ, ਤਾਂ ਉਹ ban ਆਮ ਤੌਰ 'ਤੇ ਅਸਲੀ ਹੁੰਦਾ ਹੈ ਅਤੇ ਲੌਗ ਦੱਸਦਾ ਹੈ ਉਸ ਤੋਂ ਸੰਕਰਾ ਹੁੰਦਾ ਹੈ। ਦੂਜੇ ਟਰਾਂਸਪੋਰਟ ਰਾਹੀਂ ਦੁਬਾਰਾ ਜੁੜਨ ਵਾਲਾ ਕਲਾਇੰਟ ਸਥਾਪਿਤ ਨਿਯਮ ਨਾਲ ਕਦੇ ਨਹੀਂ ਟਕਰਾਉਂਦਾ। ਕੁਝ ਵੀ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਤੁਲਨਾ ਕਰੋ ਕਿ ਕਿਰਿਆ ਨੇ ਕੀ ਸਥਾਪਿਤ ਕੀਤਾ ਅਤੇ ਡੈਮਨ ਕਿਸ ਉੱਤੇ ਸੁਣਦਾ ਹੈ, ਕਿਉਂਕਿ ਸਬੂਤ ਕਿਰਿਆ ਦੀ ਲਿਖੀ ਫਾਇਰਵਾਲ ਚੇਨ ਵਿੱਚ ਹੈ, jail ਦੀ ਸੂਚੀ ਵਿੱਚ ਨਹੀਂ।
ਚੇਨ ਪੜ੍ਹੋ, jail ਦਾ ਸਾਰ ਨਹੀਂ
fail2ban ਆਪਣੀ ਚੇਨ ਸੇਵਾ ਦੀ ਚੇਨ ਤੋਂ ਪਹਿਲਾਂ ਪਾਉਂਦਾ ਹੈ, ਇਸ ਲਈ ਕਾਊਂਟਰ ਸੂਚੀ ਠੀਕ-ਠੀਕ ਦਿਖਾਉਂਦੀ ਹੈ ਕਿ ਕੀ ਮੌਜੂਦ ਹੈ। jail ਦੇ ਨਾਮ ਦੀ ਚੇਨ, ਜਿਸ ਵਿੱਚ ਇੱਕ ਨਿਯਮ ਹੈ ਅਤੇ ਉਸਦਾ ਪ੍ਰੋਟੋਕੋਲ ਕਾਲਮ udp ਪੜ੍ਹਦਾ ਹੈ, ਆਉਂਦੇ ਰਹਿਣ ਵਾਲੇ TCP ਲੌਗਇਨ ਲਈ ਪੂਰੀ ਵਿਆਖਿਆ ਹੈ। ਸਿਰਫ਼ ਪਾਬੰਦੀਸ਼ੁਦਾ ਸਰੋਤ ਤੋਂ ਆਉਣ ਵਾਲੇ UDP ਪੈਕਟ ਹੀ ਰੱਦ ਹੁੰਦੇ ਹਨ। ਸੇਵਾ ਕੋਲ TCP ਸਰੋਤਾ ਹੈ, ਅਤੇ ਉਸ ਚੇਨ ਵਿੱਚ ਕੁਝ ਵੀ ਉਸਨੂੰ ਛੂਹਦਾ ਨਹੀਂ।
ਗੁਆਂਢੀ jail ਦੇ ਪ੍ਰਭਾਵ ਵੱਲ ਵੀ ਧਿਆਨ ਦਿਓ। ਇੱਕ ਹੋਸਟ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸੰਰਚਿਤ ਦਿਖ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਕੋਈ ਹੋਰ jail ਗੁੰਮ ਅੱਧਾ ਹਿੱਸਾ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਉਹੀ ਬਿਲਡ ਉੱਥੇ ਕੁਝ ਨਹੀਂ ਕਰਦਾ ਜਿੱਥੇ ਉਹ jail ਸਥਾਪਿਤ ਨਹੀਂ।
ਕਿਰਿਆ ਇੱਕ ਹੀ ਪ੍ਰੋਟੋਕੋਲ ਦਾ ਨਾਮ ਦਿੰਦੀ ਹੈ, ਅਤੇ ਉੱਥੇ ਹੀ ਇਹ ਟੁੱਟਦੀ ਹੈ
ਹਰ banaction ਫਾਇਰਵਾਲ ਕਮਾਂਡ ਦਾ ਟੈਂਪਲੇਟ ਹੈ, ਅਤੇ ਪ੍ਰੋਟੋਕੋਲ ਉਸਦੇ ਇੱਕ ਪਲੇਸਹੋਲਡਰ ਵਿੱਚ ਬੈਠਦਾ ਹੈ। ਇਹ ਸੰਕਰਾਪਨ ਜਾਣਬੁੱਝ ਕੇ ਹੈ, ਕਿਉਂਕਿ ਵੈੱਬ jail ਅਤੇ DNS jail ਨੂੰ ਇੱਕੋ ਜਿਹੇ ਪੋਰਟ ਰੋਕਣ ਨਾਲ ਕੋਈ ਲੈਣ-ਦੇਣ ਨਹੀਂ। ਇਹ ਜਾਲ ਤਦ ਬਣਦਾ ਹੈ ਜਦੋਂ ਸੇਵਾ ਇੱਕ ਤੋਂ ਵੱਧ ਟਰਾਂਸਪੋਰਟ ਉੱਤੇ ਸੁਣਦੀ ਹੈ, ਜੋ VPN ਡੈਮਨ ਨਿਯਮਿਤ ਕਰਦੇ ਹਨ। ਫਿਲਟਰ ਦੋਵੇਂ ਟਰਾਂਸਪੋਰਟਾਂ ਦੇ ਅਸਫਲ ਲੌਗਇਨ ਦੇਖ ਸਕਦਾ ਹੈ, ਪਰ ਕਿਰਿਆ ਇੱਕ ਹੀ ਢਕਦੀ ਹੈ।
SoftEther ਅਤੇ OpenVPN ਦੀਆਂ ਤੈਨਾਤੀਆਂ ਆਮ ਤੌਰ 'ਤੇ ਇੱਕੋ ਸਮੇਂ UDP ਅਤੇ TCP ਉੱਤੇ ਸੁਣਦੀਆਂ ਹਨ, ਅਤੇ ਲੌਗ ਲਾਈਨ ਦੋਵਾਂ ਹਾਲਤਾਂ ਵਿੱਚ ਇੱਕੋ ਜਿਹੀ ਦਿਸਦੀ ਹੈ ਇਸ ਲਈ ਫਿਲਟਰ ਦੋਵੇਂ ਦੇਖਦਾ ਹੈ। ਇਹ ਅਸਮਾਨਤਾ jail ਦੀ ਆਪਣੀ ਰਿਪੋਰਟ ਵਿੱਚ ਕਦੇ ਨਹੀਂ ਦਿਸਦੀ। fail2ban ਨੇ ਅਸਫਲਤਾਵਾਂ ਸਹੀ ਗਿਣੀਆਂ ਅਤੇ ਫਿਰ ਅਜਿਹਾ ਨਿਯਮ ਸਥਾਪਿਤ ਕੀਤਾ ਜੋ ਉਸ ਅੱਧੇ ਟ੍ਰੈਫਿਕ ਉੱਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ ਜਿਸ ਉੱਤੇ ਉਹ ਅਸਫਲਤਾਵਾਂ ਆਈਆਂ।
ban ਦੋਵੇਂ ਟਰਾਂਸਪੋਰਟ ਢੱਕੇ
ਇਸਨੂੰ jail ਦੀ ਪਰਿਭਾਸ਼ਾ ਵਿੱਚ ਹੀ ਠੀਕ ਕਰੋ; ਹੱਥ ਨਾਲ ਲਿਖੇ ਨਿਯਮ ਅਗਲੀ ਰੀਲੋਡ ਵਿੱਚ ਉਲਟ-ਪੁਲਟ ਹੋ ਜਾਣਗੇ। ਹਰ ਪ੍ਰੋਟੋਕੋਲ ਲਈ ਇੱਕ-ਇੱਕ, ਦੋ ਕਿਰਿਆਵਾਂ ਸਪਸ਼ਟ ਲਿਖੋ:
action = %(banaction)s[name=%(__name__)s-tcp, actionname=%(__name__)s-tcp, protocol="tcp", port="%(port)s", chain="%(chain)s"]
%(banaction)s[name=%(__name__)s-udp, actionname=%(__name__)s-udp, protocol="udp", port="%(port)s", chain="%(chain)s"]
ਇਸਨੂੰ protocol = all ਨਾਲ ਛੋਟਾ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਨਾ ਕਰੋ। ਡਿਫ਼ਾਲਟ banaction ਇੱਕ multiport ਕਿਰਿਆ ਹੈ, ਅਤੇ ਇਹ -p <protocol> -m multiport --dports <port> ਤੱਕ ਫੈਲਦੀ ਹੈ; L4 ਪ੍ਰੋਟੋਕੋਲ ਤੋਂ ਬਿਨਾਂ ਪੋਰਟ ਮਿਲਾਨ ਕੋਲ ਪਰਖਣ ਲਈ ਕੁਝ ਨਹੀਂ, ਇਸ ਲਈ iptables ਨਿਯਮ ਰੱਦ ਕਰਦਾ ਹੈ, ਪਰ jail ਅਜੇ ਵੀ ਸਫਲ ban ਦੀ ਰਿਪੋਰਟ ਕਰਦਾ ਹੈ। iptables-allports ਜਾਂ nftables-allports ਵਰਗੀ ਸਾਰੇ ਪੋਰਟਾਂ ਦੀ ਕਿਰਿਆ ਇੱਕ ਐਂਟਰੀ ਸਵੀਕਾਰ ਕਰਦੀ ਹੈ, ਪਰ ਉਸ ਸਰੋਤ ਦਾ ਹਰ ਪੋਰਟ ਰੋਕ ਦਿੰਦੀ ਹੈ, ਜੋ ਵੱਖਰਾ ਫ਼ੈਸਲਾ ਹੈ ਅਤੇ ਇਸਦਾ ਆਪਣਾ ਤਰਕ ਚਾਹੀਦਾ ਹੈ। protocol ਨੂੰ tcp ਜਾਂ udp ਉੱਤੇ ਛੱਡੋ ਅਤੇ ਦੋਵੇਂ ਐਂਟਰੀਆਂ ਸਵੀਕਾਰ ਕਰੋ।
ਸੈਟਿੰਗ ਉੱਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਬਜਾਏ ਸਾਬਤ ਕਰੋ ਕਿ ਨਿਯਮ ਮੌਜੂਦ ਹੈ, ਕਿਉਂਕਿ ਚੇਨ ਇਸਨੂੰ ਫੜਨ ਤੱਕ ਸੈਟਿੰਗ ਸਿਰਫ਼ ਇਰਾਦਾ ਦੱਸਦੀ ਹੈ:
iptables -S f2b-vpn-tcp
iptables -S f2b-vpn-udp
ਹਰ ਚੇਨ ਨੂੰ ਇੱਕ ਨਿਯਮ ਸੂਚੀਬੱਧ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ, ਪਹਿਲੀ ਵਿੱਚ -p tcp ਅਤੇ ਦੂਜੀ ਵਿੱਚ -p udp, ਦੋਵੇਂ ਪਾਬੰਦੀਸ਼ੁਦਾ ਪਤੇ ਦਾ ਨਾਮ ਦਿੰਦੇ ਹਨ। ਫਿਰ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਉਹੀ ਪਤਾ ਦੋਵੇਂ ਟਰਾਂਸਪੋਰਟਾਂ ਉੱਤੇ ਰੱਦ ਹੁੰਦਾ ਹੈ। ਚੇਨ ਵਿੱਚ ਨਾ ਦੇਖਿਆ ban ਇੱਕ ਆਸ ਹੈ, ਅਤੇ ਉਸੇ ਲੱਛਣ ਦੀ ਅਗਲੀ ਰਿਪੋਰਟ ਫਿਰ ਉਹੀ ਘੰਟਾ ਖ਼ਰਚ ਕਰੇਗੀ।
ban ਅਜੇ ਵੀ ਕੀ ਖੁੰਝਾਉਂਦਾ ਹੈ, ਅਤੇ ਅਗਲਾ ਮਾਮਲਾ
ਕਿਰਿਆ ਜੋ ਕਰਦੀ ਹੈ ਉਹ ਇੱਕ ਸਰੋਤ ਨੂੰ ਰੱਦ ਕਰਨਾ ਹੈ, ਅਤੇ ਸਿਰਫ਼ ਉਸ ਵਿੱਚ ਸੂਚੀਬੱਧ ਪੋਰਟਾਂ ਉੱਤੇ। ਪਤੇ ਬਦਲਣ ਵਾਲੇ ਹਮਲਾਵਰ ਵਿਰੁੱਧ ਇਹ ਕੁਝ ਨਹੀਂ ਕਰਦੀ, ਅਤੇ ਇਹ ਦੁਸ਼ਮਣ ਮਸ਼ੀਨ ਨੂੰ ਸੈਂਕੜੇ ਵਰਤੋਂਕਾਰਾਂ ਵੱਲੋਂ ਸਾਂਝੇ ਕੀਤੇ ਕੈਰੀਅਰ-ਗ੍ਰੇਡ NAT ਨਿਕਾਸ ਤੋਂ ਵੱਖ ਨਹੀਂ ਕਰ ਸਕਦੀ, ਜਿੱਥੇ ਇੱਕ ban ਕੁਝ ਨਾ ਕੀਤਾ ਲੋਕਾਂ ਨੂੰ ਬਾਹਰ ਰੱਖਦਾ ਹੈ। ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਫਿਲਟਰ ਕਲਾਇੰਟ ਕੋਲ ਅਸਲ ਵਿੱਚ ਜੋ ਪਤਾ ਹੈ ਪੜ੍ਹਦਾ ਹੈ, ਅੱਗੇ ਭੇਜਿਆ ਹੈਡਰ ਜਾਂ ਪ੍ਰੌਕਸੀ ਪਤਾ ਨਹੀਂ। ਵਿੰਡੋ ਨੂੰ ਇੰਨੀ ਛੋਟੀ ਰੱਖੋ ਕਿ ਗਲਤੀ ਆਪਣੇ ਆਪ ਖ਼ਤਮ ਹੋ ਜਾਵੇ।
ਇਹਨਾਂ ਵਿੱਚੋਂ ਕੋਈ ਵੀ ਪ੍ਰੋਟੋਕੋਲ ਸੁਧਾਰ ਛੱਡਣ ਦੇ ਪੱਖ ਵਿੱਚ ਨਹੀਂ ਹੈ; ਇਹ ਇੱਕ ਸਮੇਂ ਦੋ ਵਿਚਾਰ ਰੱਖਣ ਦੇ ਪੱਖ ਵਿੱਚ ਹੈ। ban jail ਦੇ ਸਾਰ ਤੋਂ ਸੰਕਰਾ ਹੈ, ਅਤੇ ਪੂਰਾ ban ਵੀ ਖ਼ਤਰੇ ਤੋਂ ਸੰਕਰਾ ਹੈ। ਫਾਇਰਵਾਲ ਚੇਨ ਨੂੰ ਡੈਮਨ ਦੀ ਸਰੋਤਾ ਸੂਚੀ ਦੇ ਕੋਲ ਰੱਖੋ ਅਤੇ ਪ੍ਰੋਟੋਕੋਲ-ਦਰ-ਪ੍ਰੋਟੋਕੋਲ ਤੁਲਨਾ ਕਰੋ, ਕਿਉਂਕਿ ban ਸੇਵਾ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ, ਇਹ ਉਹੀ ਦੋ ਸੂਚੀਆਂ ਤੈਅ ਕਰਦੀਆਂ ਹਨ।
ਰੀਲੋਡ ਕਮਾਂਡ ਅਤੇ ਚੇਨ ਸੂਚੀ jail ਦੇ ਕੋਲ ਰਨਬੁੱਕ ਵਿੱਚ ਰੱਖੋ। ਅਗਲੇ ਵਿਅਕਤੀ ਨੂੰ ਦੋਵੇਂ ਚਾਹੀਦੇ ਹੋਣਗੇ, ਅਤੇ jail ਦਾ ਸਾਰ ਉਸਨੂੰ ਇੱਕ ਵੀ ਨਹੀਂ ਦੱਸੇਗਾ।