#7 Firewall: ssh über WAN besser absichern

closed-accepted
nobody
None
5
2009-10-30
2009-10-19
amd-65
No

Wenn ich den ssh-Port für das WAN aufmache, laufen ständig irgendwelche längeren Wörterbuchattacken gegen das Root-Login. Um das etwas einzuschränken, habe ich ein paar zusätzliche Regeln in der Firewall definiert:

setup_services_input()
{
echo "setup_services_input()" >>$DEBUG_FILE
exec_cmd "iptables -N SERVICES_INPUT"
exec_cmd "iptables -F SERVICES_INPUT"

ssh_port=`nvram get ssh_port`
[ "$ssh_port" = "Failed" ] && ssh_port="22"

tcp_ports=`nvram get fw_services_tcp`
[ "$tcp_ports" = "Failed" ] && tcp_ports="22"
for port in $tcp_ports
do
if [ "$ssh_port" = "$port" ]; then
exec_cmd "iptables -A SERVICES_INPUT -p tcp --dport $port -m state --state NEW -m recent --name SSH_SCAN --rsource --update --seconds 60 --hitcount 3 -j LOG --log-level info --log-prefix \"SSH_SCAN blocked:\""
exec_cmd "iptables -A SERVICES_INPUT -p tcp --dport $port -m state --state NEW -m recent --name SSH_SCAN --rsource --update --seconds 60 --hitcount 3 -j DROP"
exec_cmd "iptables -A SERVICES_INPUT -p tcp --dport $port -m state --state NEW -m recent --name SSH_SCAN --rsource --set"
fi
exec_cmd "iptables -A SERVICES_INPUT -p tcp --dport $port -m state --state NEW -j ACCEPT"
done
udp_ports=`nvram get fw_services_udp`
[ "$udp_ports" = "Failed" ] && udp_ports=""
for port in $udp_ports
do
exec_cmd "iptables -A SERVICES_INPUT -p udp --dport $port -m state --state NEW -j ACCEPT"
done

#return the rest to INPUT chain
exec_cmd "iptables -A SERVICES_INPUT -j RETURN"
}

Man muß das recent Modul im Kernel und bei iptables aktivieren.

Gruß
amd-65

Discussion

  • Patrick Schmidt

    Patrick Schmidt - 2009-10-30

    Schöne Sache, gefällt mir gut. Hab allerdings noch das Intervall und Limit dynamisch gemacht.

     
  • Patrick Schmidt

    Patrick Schmidt - 2009-10-30
    • status: open --> closed-accepted
     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks