OVH Community, votre nouvel espace communautaire.

Bloquer accès root


lxwfr
23/06/2016, 22h32
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

Samaf
22/06/2016, 14h58
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 ?

buddy
22/06/2016, 12h09
Citation 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.

Abazada
22/06/2016, 12h03
Citation 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.

Samaf
22/06/2016, 12h01
Citation 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.

AlexR
22/06/2016, 11h46
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

Nowwhat
22/06/2016, 11h20
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.

Samaf
22/06/2016, 10h51
Citation 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, 09h55
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.

Samaf
22/06/2016, 09h44
Merci pour cette info.
Suis-je obligé de créer un nouveau topic ou je peux continuer ici pour un problème sur iptables ?

Abazada
22/06/2016, 07h59
Citation 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'.

Citation 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)

Citation 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.

lxwfr
22/06/2016, 01h00
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

buddy
21/06/2016, 13h28
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 +.

Samaf
21/06/2016, 12h59
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