août
6
2008
Installation d’un serveur maison sous Ubuntu
 
Un serveur pour la maison sous Ubuntu Hardy 
Popularité:  12 %
 

Nous allons voir comment mettre en place un serveur/firewall pour la maison. Évidement nous allons essayer de garder une machine assez légère. Je suis partie d’une installation avec Hardy Serveur i386. En effet je devais à l’origine installer GentooLinux 2008. Mais malheureusement, il y a un bug avec le noyau et ma carte mère KT6. Je me suis donc tourné pour le moment vers Ubuntu, mais peut-être pas pour longtemps.

Nos besoins

  • Serveur DHCP (Dhcpd)
  • Serveur DNS (DnsMasq)
  • Serveur FTP (Proftpd)
  • Serveur Partage (Samba)
  • Serveur NTP (ntp)
  • Serveur Proxy (Tinyproxy)
  • Serveur SSH (OpenSSH)
  • Serveur d’impression (CUPS)
  • Firewall (Firehol)

Situation

  • R : Interface internet eth1
  • G : Interface intranet eth0

Je pars d’une situation assez simple. Je suis chez Free avec la Freebox configurée sans Wifi ni Routeur, donc côté interface R nous configurons l’interface en dhcp. Et côté interface G nous configurons une IP fixe.

PNG - 6.7 ko

Configuration

Accès Root

Personnellement je préfère travailler sous root. Faites donc :

sudo passwd

Vous pourrez maintenant vous connecter sous root

Sources.list

deb http://archive.ubuntu.com/ubuntu/ hardy main restricted
deb http://security.ubuntu.com/ubuntu hardy-security main restricted
deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted

# Dépôts de sources (uniquement utiles pour télécharger les sources avec apt-get source. Dans ce cas enlever les #)
# deb-src http://archive.ubuntu.com/ubuntu/ hardy main restricted
# deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted
# deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted


deb http://archive.ubuntu.com/ubuntu/ hardy universe multiverse
deb http://security.ubuntu.com/ubuntu hardy-security universe multiverse
deb http://archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse

# Dépôts de sources (uniquement utiles pour télécharger les sources avec apt-get source. Dans ce cas enlever les #)
# deb-src http://archive.ubuntu.com/ubuntu/ hardy universe multiverse
# deb-src http://archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse
# deb-src http://security.ubuntu.com/ubuntu hardy-security universe multiverse

Serveur OpenSSH

Nous allons installer OpenSSH-server pour pouvoir travail depuis une station graphique :

apt-get install openssh-server

Le Réseau

/etc/network/interfaces
# The loopback network interface
auto lo
iface lo inet loopback

# Internet
auto eth1
iface eth1 inet dhcp

#Intranet
auto eth0
iface eth0 inet static
        name NOM
        address 10.18.2.1
        netmask 255.255.255.0
        broadcast 10.18.2.255
        network 10.18.2.0
       gateway 10.18.2.1

/etc/sysctl.conf

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

# Uncomment the next line to enable packet forwarding for IPv6
net.ipv6.ip_forward=1

Serveur Dhcpd

apt-get install dhcpd

/etc/default/dhcp

INTERFACES="eth0"

/etc/dhcpd.conf

option domain-name "VOTRE_NOM_DE_DOMAINE";
# Mettez ici l'adresse de votre serveur, où celles fournies par votre FAI
# qui se trouvent dans le fichier /etc/resolv.conf
option domain-name-servers VOS_SERVEURS_DNS;
option routers 10.18.2.1;
default-lease-time 3600;
max-lease-time 7200;
authorative;
log-facility local7;
ddns-update-style ad-hoc;

subnet 10.18.2.0 netmask 255.255.255.0 {
        authoritative;
        range 10.18.2.2 10.18.2.49;
        option broadcast-address 10.18.2.255;
}

DNSMASQ

apt-get install dnsmasq

/etc/dnsmasq.conf

dhcp-range=10.18.2.2,10.18.2.49
interface=eth0
/etc/init.d/dnsmasq restart

Firewall

apt-get install firehol

/etc/default/firehol

#To enable firehol at startup set this everything != NO
START_FIREHOL=YES

/etc/firehol/firehol.conf

version 5

interface eth0 home
       policy accept

interface eth1 internet
       protection strong
        # Serveurs auxquels on peut acceder depuis Internet
       server "imap imaps smtp http ftp ssh dns" accept
        # Sorties autorisees a partir du serveur
       client "squid http https ftp smtp smtps ssh dns ping rsync ntp" accept

router home2internet inface eth0 outface eth1
       route "ftp jabber telnet time cups ping pop3 pop3s dhcp dns http https rsync rtp icmp imap imaps nntp ntp smtp smtps ssh squid sip" accept
        masquerade

#redirection Proxy
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
/etc/init.d/firehol restart

Serveur Proxy

apt-get install tinyproxy

/etc/tinyproxy/tinyproxy.conf

#
# Port to listen on.
#
Port 3128

Allow 127.0.0.1
Allow 10.18.2.0/25
/etc/init.d/tinyproxy restart

Serveur NTP

apt-get install ntp

Serveur FTP

apt-get install proftpd

/etc/proftpd/proftpd.conf

ServerType                        standalone

MultilineRFC2228                on

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances                        30

# Some logging formats
LogFormat         default "%h %l %u %t \"%r\" %s %b"
LogFormat                        auth    "%v [%P] %h %t \"%r\" %s"
LogFormat                        write   "%h %l %u %t \"%r\" %s %b"

# Global settings
<Global>

DeferWelcome                        off

#DefaultServer                        on
#ShowSymlinks                        on
ListOptions                        "-l"
DenyFilter                        \*.*/

DisplayConnect                         before.msg
DisplayLogin                    welcome.msg
DisplayFirstChdir               .message

MaxLoginAttempts        2
RequireValidShell        no
MaxClients                50

# Umask 022 interdit l'écriture et la creation de fichier et de répertoire.
Umask                                022  022
TimeoutLogin                         120
TimeoutNoTransfer                900
TimeoutStalled                        3600
TimeoutIdle                        600

# utilisateur et groupe du serveur.
User                                ftp
Group                        nogroup

# Chroot PROFTPD
DefaultRoot ~

# Logging options
TransferLog                        /var/spool/syslog/proftpd/xferlog.legacy

<Limit WRITE>
        DenyAll
</Limit>

Serveur CUPS

apt-get install hpijs-ppds linuxprinting.org-ppds hpijs cupsys

/etc/cups/cupsd.conf

# Only listen for connections from the local machine.
# Listen localhost:631
Port 631

# Show shared printers on the local network.
Browsing On

# Restrict access to the admin pages...
<Location /admin>
 Order allow,deny
 Allow localhost
 Allow @LOCAL
</Location>
/etc/init.d/cupsys restart

Serveur Samba

/etc/samba/smb.conf (exemple Ubuntu)
#remplacez "nomd'utilisateur" par le nom de l'utilisateur qui héberge les dossiers
#tapez whoami pour connaître ce nom d'utilisateur si vous n'êtes pas sûr
#Ces dossiers sont en lecture seule mais cela peut être modifié grâce à
#l'option "read only"

[global]
   workgroup = workgroup
   netbios name = %h
   server string = serveur %h (Samba %v, Ubuntu)
   security = share
   hide dot files = yes
   socket options = TCP_NODELAY

[Musique]
   comment = Musique
   path = /home/nomd'utilisateur/Musique
   force user = nomd'utilisateur
   force group = nomd'utilisateur
   guest ok = yes
   read only = yes
   browseable = yes

[Videos]
   comment = Videos
   path = /home/nomd'utilisateur/Videos
   force user = nomd'utilisateur
   force group = nomd'utilisateur
   guest ok = yes
   read only = yes
   browseable = yes

[Upload et Sauvegardes]
   comment = Upload
   path = /home/nomd'utilisateur/Upload
   force user = nomd'utilisateur
   force group = nomd'utilisateur
   guest ok = yes
   read only = no
   browseable = yes
/etc/init.d/samba restart

Conclusion

Voilà c’est fini. Cependant sachez qu’il existe des solutions logiciels pour facilité tous cela, comme SME Serveur ou eBox. D’ailleurs, je suis de très prés le projet eBox, j’attends avec impatience la prochaine release.

PNG - 46.6 ko
status

Sources

L’article n’est pas fini, je vais compléter sous peu ;)

Portfolio
components

« Gentoo 2008.0 est sortie - Installation d’Ebox sur Ubuntu Linux »

RSS forum2 Commentaire(s)

# Par le_dahu le 27 septembre 2009 à 11:14

Salut,
je viens de tomber sur ton tuto en cherchant un truc sur l’ami google.

pourquoi installes-tu dhcpd alors que dnsmasq peut faire office de serveur dns et dhcp ?

Répondre à ce message


RSS forum
 
# Par LIETART Frédéric le 27 septembre 2009 à 11:36

Salut,

Si tous est bien configuré, DHCPD s’occupe d’attribuer les adresses sur le réseau, et DNSMASQ mais en cache et s’occupe du DNS sur ce même réseau. Mais il me semble effectivement que DNSMASQ peut faire les deux en même temps, mais la configuration doit être plus light, comme définir des adresses PXE...

Répondre à ce message


RSS forum
 

Ajouter un commentaire

Un message, un commentaire ?
  • (Pour créer des paragraphes, laissez simplement des lignes vides.)

Qui êtes-vous ? (optionnel)