montextealternatif

Linux : Préparation d'un Server Debian


Rédigé par admin le 3 commentairese


Lorsque j'ai voulu partager mes quelques experiences dans ce metier (comme tant d'autres le font déjà..), je me suis dit que ce serait finalement
une bonne idée de me créer mon propre server Linux (Debian en l'occurence) et d'y heberger ce site.

Ayant de base peu d'experience dans ces differents aspects, j'ai consulté une multitude de site, pour essayer de faire "bien" , de faire quelque chose de "carré" , comprehensible, reproductible ..

Pas simple ...
                                

Cette page recapitule et détaille les différents points mis en oeuvre.

Tout retour constructif sera le bienvenu !!

 

 
1) Installation de base
    En préparation ...
 
2) Configuration
  • Parametrage de la liste des Dépôts : 
- Ajout des Repository souhaités ... : 
root@debian7:~# vi /etc/apt/sources.list

               # deb cdrom:[Debian GNU/Linux 7.1.0 _Wheezy_ - Official i386 CD Binary-1 20130615-21:54]/ wheezy main
               # deb cdrom:[Debian GNU/Linux 7.1.0 _Wheezy_ - Official i386 CD Binary-1 20130615-21:54]/ wheezy main

              # deb-src http://security.debian.org/ wheezy/updates main
              # deb-src http://ftp.debian.org/debian/ wheezy-updates main

             # le reposytory "Contrib" permet de disposer de "openVMTools" et de "apt-get update"
             deb http://ftp.debian.org/debian/ wheezy main contrib
             deb http://ftp.debian.org/debian/ wheezy-updates main
             deb http://security.debian.org/ wheezy/updates main

- Prise en compte : 
root@debian7:~# aptitude update

 

  • Parametrage @IP Statique :

- Ayant soucrit un "VPS (Virtual Private Server) chez un Hebergeur (OVH), je n'ai pas eu à gérer ce point.

- La théorie :

Le prametrage IP peut s'effectuer :
           - En ligne de commande (exemple ..) :
                 /root@Debian7:~# /sbin/ifconfig eth0 192.168.10.12 netmask 255.255.255.0 broadcast 192.168.10.255
               ---> attention, ce parametrage sera temporaire (jusqu'au prochain reboot), mais permettra par exemple
                      de se connecter en PUTTY pour copier/coller par exemple son parametrage pré-préparé ..

    et/ou  - Manuellement via certains fichiers de Config (si on souhaite un parametrage STATIC ) :   
                * /etc/network/interfaces/
                              eth0 .... static    # par defaut, c'est l'idication "dhcp" qui devait être spécifié

                              address 10.99.0.222
                              netmask 255.255.255.0
                              network 10.99.0.0
                              broadcast 10.99.0.255
                              gateway 10.99.0.254
                              dns-nameservers 10.x.x.x
                              dns-search NomDomaine.fr    # optionnel

             * "resolv.conf" : (je crois neanmoins qu'il est construit dynamiquement..)
                              search NomDomaine.fr
                               nameserver 10.1.0.10 


           *  Autres Fichiers interessants :
/etc/udev/rules.d/70-persistent-net.rules Couplage interfaces (eth) – adresses MACs
               - /etc/network/interfaces Configuration IP des interfaces 
               - /etc/resolv.conf : Adresse du serveur DNS, Nom de Domaine 
               - /etc/hosts : Résolution locale des Noms
               -  /etc/hostname : Nom de la machine 
               - /etc/sysctl.conf : (optionnel) Activation du routage si nécessaire. 


La prise en compte (...que le parametrage ait été effectué en ligne de commande ou via les fichiers) : 
         - arrêt/redémarrage d'une interface reseau en particulier :  
                        root@debian7:~# /sbin/ifdown eth0 
      suivi de    root@debian7:~# /sbin/ifup eth0 

 ou    - arrêt/redémarrage du Service (donc de toutes les interfaces de la machine) : /etc/init.d/networking restart


 Liens : 
wiki.chezlefab.net
 - www.howtoforge.com 
- webadonf.net


 

 

  • Parametrage Editeur VIM :
root@debian7:~# aptitude install vim
root@debian7:~# vim /etc/vim/vimrc
                          * Decommenter ligne 20 ["syntax on"] , pour activer la coloration dans les fichiers 

voir aussi : http://artisan.karma-lab.net/configurer-vim

 

  • (Optionel) : Suppression des "Bips" 
- Prise en compte pour la session : 
root@debian7:~# rmmod  pcspkr 

- Prise en compte pour toutes les sessions : 
root@debian7:~# vim /etc/rc.local
             * rajouter la commande "rmmod pcspkr" (avant le "exit 0")
 
  • (Optionel,) Couleurs pour les bachs " 
root@debian7:~# vim /root/.bashrc  (RQ :  on est DANS le profil du root ici)
                      * decommenter les lignes ...

root@debian7:~# source .bashrc   [Permet de rechager le profil sans fermer/réouvrir la sesion root.
                                                        Se positionner dans le rept "home" de root]

                           
 
  • caracteres accentués [...de « /usr/bin/vim.basic » ...:
Dans PUTTY :
PUTTY \ Category "Windows" \ "Translation" \"Character set translation on received data" = UTF-8


Dans DEBIAN
 http://www.commentcamarche.net/forum/affich-19425823-probleme-apache2
https://howto.biapy.com/fr/debian-gnu-linux/systeme/ovh/configuration-dun-serveur-dedie-ovh

echo "fr_FR ISO-8859-1 fr_FR.UTF-8 UTF-8 fr_FR.UTF-8@euro UTF-8 fr_FR@euro ISO-8859-15" > '/etc/locale.gen'
command sed -i -e 's/^LANG=.*/LANG=fr_FR.UTF-8/' '/etc/default/locale'
command sed -i -e 's/^LANG=.*/LANG=fr_FR/' '/etc/environment'
command locale-gen
 
- Mise à jour globale :  http://elliptips.info/guide-debian-7-partie-6-limportance-des-mises-a-jour/
root@debian7:~# aptitude update && aptitude dist-upgrade

apt-get update        :  met à jour les sources des logiciels (Indiquées dans le fichier sources.list)
apt-get dist-upgrade  :  met à jour les Paquages dejà installés via le repository online (equivalent à du windows update)                            
 
 
 
3) Installations Supplémentaires (Minimun) :
  • Install Srv SSH :
- Install Srv SSH :
     * Chercher paquet :    root@debian7:~# apt-cache search open ssh
     * Infos sur paquets :  root@debian7:~# apt-cache show openssh-server
     * Install :                   root@debian7:~# aptitude install -G openssh-server


- Securisation de l'accès ssh (site source)
     * Creation d'un grp contenant les users autorisés à se connecter en ssh : root@debian7:~# groupadd sshusers
     * Creation d'un user :
                       root@debian7:~# useradd -m xxxxx 
                       root@debian7:~# passwd xxxxx    
   * Ajout de ce user dans le groupe autorisé pour faire du SSH
                      root@debian7:~# usermod -a -G sshusers xxxxx   // verif : "root@debian7:~# cat /etc/group"


- Parametrage SSH : ( site source )

   root@debian7:~# vim /etc/ssh/sshd_config  [attention, il existe un ssh_config !!!!]

             Port 1234            # changement du port par défaut  [eviter attaque automatisées]
             PermitRootLogin no    # compte root non autorisé à se connecter directement depuis SSH
                                                  ["..Normal users can use su or sudo (recommended) to gain root level access.."]
             AllowGroups sshusers  # Accès reservés uniquement au groupe sshusers 
             Protocol 2            # Only Use SSH Protocol 2  
             ClientAliveInterval 300 
             ClientAliveCountMax 0
             IgnoreRhosts yes      # Disable .rhosts Files (Don't read the user's ~/.rhosts and ~/.shosts files)
             HostbasedAuthentication no   #   Disable Host-Based Authentication
             xxxxx                        #   Chroot SSHD (Lock Down Users To Their Home Directories)
             PermitEmptyPasswords no  #     Disable Empty Passwords


root@debian7:~# /etc/init.d/ssh restart

À ce stade, ne surtout pas fermer l’ancienne connexion, au risque de ne plus pouvoir se reconnecter par la suite.
--->  Ouvrir un nouvel onglet dans le terminal (PUTTY par exemple) et tester la connexion avec le port et l’utilisateur adéquat.
      [l'autre reste ouverte !!]

- Utilisation quotidienne  : (Connexion SSH, en PUTTY par exemple, pointant sur l'@IP du Serveur Debian)
                               

                                             
  • IpTable :

Intro :
cette partie est assez complexe..., puisqu'il est question de filtrage de ports, donc de Firewall.
Les éléments en jeu sont ici NetFilter (Module Linux) et IpTables (Lignes de commandes pour NetFilter) :
               ----> On peut creer des regles à la volée, mais aussi les integrer dans un script qui se lancera au demmarage.
                       C'est cette 2eme solution que j'ai préféré mettre en oeuvre ... 

Exemple ... :
to accept connection only from 192.168.1.0/24 and 202.54.1.5/29, enter:
 -A RH-Firewall-1-INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 22 -j ACCEPT
 -A RH-Firewall-1-INPUT -s 202.54.1.5/29 -m state --state NEW -p tcp --dport 22 -j ACCEPT 
.

Principes et Nomenclatures  : 

En cours de rédaction ...



Mise en oeuvre du Script :  http://webadonf.net/2011/03/regles-de-filtrage-avec-iptables/
- Créqtion du fichier lui-même : 
Sous PUTTY, lancer "vim NomFichier" et y copier les lignes de script
 


- Le faire prendre en compte au demarage : 
          * soit copier le script dans /etc/init.d/ 
          * soit, passer par "update-rc.d" qui crer des liens symboliques du script dans les dossiers/etc/rcX.dcorrespondants.  


- Droits d'accès sur le script  : Donner les droits au script et Iptables pour s'excuter en mode root :
 chmod+x NomFichier (ou) chmod u=rwx,g=rx,o=rx NomFichier 
               Avant, par defaut : -rw-r--r-- 1  root root 758 juil. 13 18:14 NomFichier 
               Apres :                   -rwxr-xr-x 1 root root 758 juil. 13 18:14 NomFichier 


Attention !!! : Ne jamais lancer la commande stop sur une connexion distante, car elle aurait pour effet de couper tot
                     alement l'accès au serveur (refuser tout le trafic entrant).


 


http://webadonf.net/2011/03/regles-de-filtrage-avec-iptables/

### BEGIN INIT INFO
# Provides: NomFichierFirewall
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Demarrage du script lors de la sequence de boot
# Description: Ajout des regles de parefeu
### END INIT INFO

#!/bin/sh
case "$1" in
start)

########## lancement Script ... ##########
echo - Initialisation du firewall :
# Vidage des tables et des regles personnelles
iptables -t filter -F
iptables -t filter -X
echo - Vidage des regles et des tables : [OK]

# Interdire toutes connexions entrantes et sortantes
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
echo - Interdire toutes les connexions entrantes et sortantes : [OK]

# Ne pas casser les connexions etablies
# Par exemple si vous êtes connecté en SSH à votre serveur, il serait dommage de perdre la connexion déjà ouverte :
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
echo -Ne pas casser les connexions établies : [OK]

## ---------- Regles -----------##

# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# Autoriser le ping
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# Autoriser SSH
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT

# Autoriser DNS
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT

# Autoriser NTP
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

# Autoriser HTTP et HTTPS
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT


########## Consulter la Liste des regles... ##########
;;
status)
echo - Liste des regles :
iptables -n -L

########## Stopper le Firewall ##########
;;
stop)

# Vidage des tables et des regles personnelles
iptables -t filter -F
iptables -t filter -X
echo - Vidage des regles et des tables : [OK]

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo - Autoriser toutes les connexions entrantes et sortantes : [OK]

########## exit ##########

;;
esac

exit 0
 
  •  fail2ban :

En cours ..

http://elliptips.info/guide-debian-7-partie-58-fail2ban-gardien-de-votre-serveur/
http://www.cyberciti.biz/tips/linux-unix-bsd-openssh-server-best-practices.html
               to prevents brute force attacks against SSH, use the following softwares:
               ... Fail2ban is a similar program that prevents brute force attacks against SSH.


 

DClassé dans : Linux ,Mots clés : aucun

A propos de l'auteur, admin:

3 commentaires

serrurier-meudon-services.fr a dit : #1

Votre site est il à jour ? je souhaite mettre un lien sur mon site serrurier-meudon-services.fr http://serrurier-meudon-services.fr

serrurier meudon a dit : #2

Merci très beaucoup pour cet extrait de littérature. Merci.

CABLES & CHARGERS a dit : #3

These days, various experts in neuro-scientific music are reachable through internet and you need to not
miss this one-time only chance at all. One effective way to transfer HD interface from HD source to an alternative HD
device is to apply a HDMI splitter cable. Keep in mind that
your network cabling is in all likelihood the key part of
one's business.

rFil RSS des commentaires de cet article


Écrire un commentaire