Bloquer accès root
ou changer de port ssh + iptable non ouverte 22 et xx au choix (ouvert)
docs avoir plus de détaille https://wiki.centos.org/HowTos/Network/IPTables
J'ai suivis ce tuto pour une protection minimal:
https://openclassrooms.com/courses/s...-serveur-linux
Voici le contenu de mon fichier /etc/init.d/firewall:
Code:
#!/bin/bash
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Démarre les règles iptables
# Description: Charge la configuration du pare-feu iptables
### END INIT INFO
#!/bin/sh
# Réinitialise les règles
sudo iptables -t filter -F
sudo iptables -t filter -X
# Bloque tout le trafic
sudo iptables -t filter -P INPUT DROP
sudo iptables -t filter -P FORWARD DROP
sudo iptables -t filter -P OUTPUT DROP
# Autorise les connexions déjà établies et localhost
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -t filter -A INPUT -i lo -j ACCEPT
sudo iptables -t filter -A OUTPUT -o lo -j ACCEPT
# ICMP (Ping)
sudo iptables -t filter -A INPUT -p icmp -j ACCEPT
sudo iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# SSH
sudo iptables -t filter -A INPUT -p tcp --dport 3680 -j ACCEPT
sudo iptables -t filter -A OUTPUT -p tcp --dport 3680 -j ACCEPT
# DNS
sudo iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
sudo iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# HTTP
sudo iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# FTP
sudo iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
sudo iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
# Mail SMTP
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
# Mail POP3
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
# Mail IMAP
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
# NTP (horloge du serveur)
sudo iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
# Déni de service (Flood)
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
# Scan de ports
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Teamspeak Licence
iptables -t filter -A INPUT -p tcp --dport 2008 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 2008 -j ACCEPT
# Teamspeak Voix par défaut
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 9987 -j ACCEPT
# Teamspeak ServerQuery
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 10011 -j ACCEPT
# Teamspeak File Transfer
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 30033 -j ACCEPT
J'ai redémarré le serveur et quand je fais:
nmap -v localhost
J'ai beaucoup de port ouvert, voici le résultat:
Code:
Not shown: 983 closed ports
PORT STATE SERVICE
1/tcp open tcpmux
25/tcp open smtp
79/tcp open finger
111/tcp open rpcbind
119/tcp open nntp
143/tcp open imap
631/tcp open ipp
1080/tcp open socks
1524/tcp open ingreslock
2000/tcp open cisco-sccp
6667/tcp open irc
12345/tcp open netbus
31337/tcp open Elite
32771/tcp open sometimes-rpc5
32772/tcp open sometimes-rpc7
32773/tcp open sometimes-rpc9
32774/tcp open sometimes-rpc11
Ai-je fait quelques choses de pas bien ?
Envoyé par
Samaf
C'est justement ce que je compte faire car je veux garder mon SSH.
Je vais donc enlever la connexion en root.
tu peux quand même mettre fail2ban aussi çà limitera le bruteforce pour rien sur root et au bout d'un moment ils se lassent normalement.
Envoyé par
Nowwhat
Puis le top ultra nec : complément interdire l'authentification avec un mot de passe.
Euh... Et comment te connectes-tu en KVM
si tu n'as pas au moins un user qui dispose d'un accès par mot de passe ?
Bien entendu, ça ne doit pas être root.
Envoyé par
AlexR
Bonjour,
Je tenais à rectifier un élément qui a été annoncé.
Tu peux parfaitement désactiver le service SSH si tu le souhaites (ce que je ne recommande pas du tout) le KVM n'utilise pas du tout le protocole SSH.
Il s'agit d'un module branché à la carte mère de la machine pour que tu y accèdes en local.
En revanche ce que je conseille et qui a d'ailleurs été suggéré, c'est de simplement passer le RootLogin à no puis de créer un user lambda sur la machine.
De cette manière il sera possible de se connecter avec l'identifiant et de devenir root par la suite avec l'élévation Su.
Cordialement, Alexandre R.
Technicien Support IT – Cloud / Infrastructure
C'est justement ce que je compte faire car je veux garder mon SSH.
Je vais donc enlever la connexion en root.
Bonjour,
Je tenais à rectifier un élément qui a été annoncé.
Tu peux parfaitement désactiver le service SSH si tu le souhaites (ce que je ne recommande pas du tout) le KVM n'utilise pas du tout le protocole SSH.
Il s'agit d'un module branché à la carte mère de la machine pour que tu y accèdes en local.
En revanche ce que je conseille et qui a d'ailleurs été suggéré, c'est de simplement passer le RootLogin à no puis de créer un user lambda sur la machine.
De cette manière il sera possible de se connecter avec l'identifiant et de devenir root par la suite avec l'élévation Su.
Cordialement, Alexandre R.
Technicien Support IT – Cloud / Infrastructure
Puis le top ultra nec : complément interdire l'authentification avec un mot de passe.
C'est l’installation par défaut pour tout OS moderne (sauf l'install d'un OS par OVH : exceptionnellement nos serveurs sont livrés avec auth mot de passe pour permettre de prendre possession de notre serveur sans communiquer un clé privé).
Garder le auth avec un mot de passe est un faille.
Envoyé par
ptitoliv
Bonjour,
Pour ce cas d'utilisation, il est tout à fait possible de modifier la configuration SSH avec le parameter PermitRootLogin à no. Ainsi, l'accès SSH à root sera systèmatiquement refusé et celà n'empêche pas un accès console.
Merci pour cette info
J'ai suivis ce tuto pour une protection minimal:
https://openclassrooms.com/courses/s...-serveur-linux
Voici le contenu de mon fichier /etc/init.d/firewall:
Code:
#!/bin/bash
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Démarre les règles iptables
# Description: Charge la configuration du pare-feu iptables
### END INIT INFO
#!/bin/sh
# Réinitialise les règles
sudo iptables -t filter -F
sudo iptables -t filter -X
# Bloque tout le trafic
sudo iptables -t filter -P INPUT DROP
sudo iptables -t filter -P FORWARD DROP
sudo iptables -t filter -P OUTPUT DROP
# Autorise les connexions déjà établies et localhost
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -t filter -A INPUT -i lo -j ACCEPT
sudo iptables -t filter -A OUTPUT -o lo -j ACCEPT
# ICMP (Ping)
sudo iptables -t filter -A INPUT -p icmp -j ACCEPT
sudo iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# SSH
sudo iptables -t filter -A INPUT -p tcp --dport 3680 -j ACCEPT
sudo iptables -t filter -A OUTPUT -p tcp --dport 3680 -j ACCEPT
# DNS
sudo iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
sudo iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# HTTP
sudo iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# FTP
sudo iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
sudo iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
# Mail SMTP
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
# Mail POP3
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
# Mail IMAP
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
# NTP (horloge du serveur)
sudo iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
# Déni de service (Flood)
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
# Scan de ports
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
# Teamspeak Licence
iptables -t filter -A INPUT -p tcp --dport 2008 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 2008 -j ACCEPT
# Teamspeak Voix par défaut
iptables -t filter -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 9987 -j ACCEPT
# Teamspeak ServerQuery
iptables -t filter -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 10011 -j ACCEPT
# Teamspeak File Transfer
iptables -t filter -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 30033 -j ACCEPT
J'ai redémarré le serveur et quand je fais:
nmap -v localhost
J'ai beaucoup de port ouvert, voici le résultat:
Code:
Not shown: 983 closed ports
PORT STATE SERVICE
1/tcp open tcpmux
25/tcp open smtp
79/tcp open finger
111/tcp open rpcbind
119/tcp open nntp
143/tcp open imap
631/tcp open ipp
1080/tcp open socks
1524/tcp open ingreslock
2000/tcp open cisco-sccp
6667/tcp open irc
12345/tcp open netbus
31337/tcp open Elite
32771/tcp open sometimes-rpc5
32772/tcp open sometimes-rpc7
32773/tcp open sometimes-rpc9
32774/tcp open sometimes-rpc11
Ai-je fait quelques choses de pas bien ?
ptitoliv
22/06/2016, 08h55
Bonjour,
Pour ce cas d'utilisation, il est tout à fait possible de modifier la configuration SSH avec le parameter PermitRootLogin à no. Ainsi, l'accès SSH à root sera systèmatiquement refusé et celà n'empêche pas un accès console.
Merci pour cette info.
Suis-je obligé de créer un nouveau topic ou je peux continuer ici pour un problème sur iptables ?
Envoyé par
Samaf
Je voudrais savoir si je bloque l'accès à root à partir de ssh est-ce qu'on pourra tout de même y accéder à partir du KVM de l'interface web d'OVH ?
Tu pourras te connecter via KVM, mais pas via 'root' s'il est bloqué. Se connecter 'admin' ou autre puis utiliser 'su'.
Envoyé par
Samaf
Le KVM utilises-t-il le protocole ssh ou un autre protocole pour se connecter ?
Autre. (cf réponse de AlexR plus bas)
Envoyé par
lxwfr
oui, c'est pas vraiment bloquer autorisé just votre ip pour accédé en ssh en iptable (il fodra utilisé putty si fonctionne pa depui kvm) et dotre méthod
La langue utilisée sur ce forum est le français. Merci de faire un effort; ton charabia est totalement incompréhensible.
oui, c'est pas vraiment bloquer autorisé just votre ip pour accédé en ssh en iptable (il fodra utilisé putty si fonctionne pa depui kvm) et dotre méthod
Quel intêret ?
désactive Root, créer un autre utilisateur et installe fail2ban pour bannir ceux qui tente d'accèder au serveur par bruteforce SSH (et modifie le bantime par défaut sur fail2ban qui est de 300s soit 5 min, mets plutôt 100000 secondes ou +.
Bonjour,
Je voudrais savoir si je bloque l'accès à root à partir de ssh est-ce qu'on pourra tout de même y accéder à partir du KVM de l'interface web d'OVH ?
Le KVM utilises-t-il le protocole ssh ou un autre protocole pour se connecter ?
Merci d'avance
Samaf :P