web-dev-qa-db-fra.com

IPTABLES: Autoriser l'accès SSH uniquement, rien d'autre dans ou arrière

Comment configurez-vous les iptables pour que ce soit seulement Autoriser SSH dans, et laisser aucun autre trafic in ou out?] ==?

Toute précaution de sécurité Tout le monde peut recommander?

J'ai un serveur que je croire a été migré de Godaddy avec succès et je croire n'est plus utilisé.

Mais je veux m'assurer que ... tu ne sais jamais. :)

Notez qu'il s'agit d'un serveur dédié virtuel de GoDaddy ... Cela signifie aucune sauvegarde et pratiquement aucun support.

11
Disco

Vous devez simplement définir la stratégie par défaut pour déposer sur les chaînes d'entrée et de sortie.

Pour permettre à SSH, vous avez besoin des commandes suivantes:

$ Sudo iptables -P INPUT DROP
$ Sudo iptables -P OUTPUT DROP
$ Sudo iptables -A INPUT -i lo -j ACCEPT
$ Sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
$ Sudo iptables -A OUTPUT -o lo -j ACCEPT
$ Sudo iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

Les deux dernières commandes autorisent le trafic de bouclage car cela est requis par certaines applications pour fonctionner correctement. Vous pouvez limiter l'accès SSH à partir d'une adresse IP spécifique à l'aide de -s source_ip option.

Exécution des commandes dans l'ordre, comme indiqué ci-dessus, la session SSH actuelle sera suspendue. En effet, les commandes IPTABLES prennent effet immédiatement. Vous devez les exécuter dans un script shell pour éviter de perdre la possibilité de vous connecter à votre machine lorsque vous les exécutez à distance.

13
Khaled

Quelque chose comme ça:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -j REJECT  # or iptables -P INPUT DROP

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j REJECT # or iptables -P OUTPUT DROP
4
Mikel