Popularité:

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.
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 multiverseServeur 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=1Serveur 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.
Sources
L’article n’est pas fini, je vais compléter sous peu ;)


Ma problématique était de mettre en place un serveur de monitoring, rapidement et relativement souple. En effet, une de mes contraintes étaient le monitoring de serveur Mac OSX, j'ai donc pris mon ami Google, et suis tombé sur un projet sur lequel j'étais passé il y a quelque temps : Zabbix. Je vais vous faire ici une bref présentation, vous pourrez retrouver des complément d'information dans liens plus (...)
A Partir de Xorg 1.4, la configuration du serveur est légèrement différentes. En effet, il s'appuie d'avantage sur HAL, pour détecter les périphériques. Nous allons voir comment cela se passe.
Voici un petit article qui vous donnera je l’espère toutes les réponses aux questions que vous vous posez sur Linux.
Articles RSS 1.0
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
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