Cette annexe décrit une méthode qui permet de prévenir les attaques par déni de service (DoS/Denial of Service) sur le serveur STA. Suivez ces procédures uniquement une fois que la configuration initiale de la bibliothèque a été effectuée avec succès. Après la configuration des IPTables, vous devez vous assurer que STA surveille toujours vos bibliothèques.
Cette annexe comprend les sections suivantes :
Remarque:
Les procédures décrites dans cette annexe sont facultatives et fournies uniquement à titre informatif. La sécurité du site reste du ressort du client.Pour protéger le serveur des attaques par déni de service, configurez le logiciel Linux pour les IPTables afin d'établir les règles qui filtrent les ports et/ou les adresses IP. Sur la base de la configuration de STA, Oracle recommande d'attribuer des règles au port UDP 162 et aux valeurs de port sur lesquelles les serveurs gérés par STA sont exécutés.
Remarque:
Reportez-vous au Guide d'installation et de configuration de STA pour obtenir des informations sur les ports, notamment les valeurs de port par défaut qu'utilise STA.L'Exemple de script d'IPTables peut être utilisé pour définir une règle d'entrée sur le serveur afin de bloquer les hôtes qui tentent de se connecter à partir des critères suivants :
Une interface Ethernet spécifique
Un port spécifique
Un protocole spécifique
Le nombre de demandes sur une période définie
Si le nombre de demandes de connexion émanant d'un hôte est dépassé durant cette période, cet hôte est bloqué et interdit de connexion pendant le reste de cette période.
Pour configurer les règles d'IPTables :
Copiez la source de l'Exemple de script d'IPTables dans un éditeur de texte.
Modifiez les variables suivantes pour les adapter à votre environnement :
INTERFACE : définit l'interface Ethernet sur laquelle surveiller les attaques.
PORT : définit le numéro de port sur lequel surveiller les attaques.
PROTO : définit le protocole (TCP ou UDP).
HITS et TIME : déterminez des valeurs raisonnables pour le nombre de demandes de connexion (HITS) réalisées sur une période donnée (TIME), exprimée en secondes, avant qu'un hôte soit bloqué.
Sauvegardez le script sur votre système et exécutez-le.
Les nouvelles règles sont ajoutées aux IPTables et prennent effet immédiatement.
Voici un exemple de script d'IPTables.
# The name of the iptable chain
CHAIN=INPUT
# The ethernet interface to watch for attacks
INTERFACE=eth0
# The port number to watch for attacks
PORT=80
# The protocol (tcp or udp)
PROTO=tcp
# A server that sends HITS number of requests within TIME seconds will be blocked
HITS=8
TIME=60
# Log filtered IPs to file
touch /var/log/iptables.log
grep iptables /etc/syslog.conf 1>/dev/null 2>&1
if [$? -ne 0 ]; then
echo kern.warning /var/log/iptables.log >>
/etc/syslog.conf
echo touch /var/log/iptables.log >> /etc/syslog.conf
/etc/init.d/syslog restart
fi
# Undo any previous chaining for this combination of chain, proto, hits, and time
/sbin/iptables -L $CHAIN |grep $PROTO |grep $HITS |grep $TIME 1>/dev/null 2>&1
if [$? -eq 0 ]; then
R=0
while [$R -eq 0 ]; do
/sbin/iptables -D $CHAIN 1 1>/dev/null 2>&1
R=$?
done
fi
# Logging rule
/sbin/iptables --append $CHAIN --jump LOG --log-level 4
# Interface rule
/sbin/iptables --insert $CHAIN --proto $PROTO --dport $PORT --in-interface $INTERFACE --match state --state NEW --match recent --set
# Blocking rule
/sbin/iptables --insert $CHAIN --proto $PROTO --dport $PORT --in-interface $INTERFACE --match state --state NEW --match recent --update --seconds $TIME --hitcount $HITS --jump DROP