Welcome to Coding : Sécurité Programmation Réseaux

Search   in  

 Create an Account Home | Submit News Your Account Content | Topics | Top 10  


Accueil
· Home
· Listing des Articles
· Top 10
· Repository des Exploits

Les sujets / parties
· C / C ++
· Visual Basic
· Asm
· Reseaux
· Java
· Securite
· Divers

Utile
· Listing des Articles

· Telecharger
· Le Forum
· Liens
· Proposer un article

Top20 des Downloads
· 1: Etude des reseaux generalites et protocoles
· 2: Cheval de troie en VB avec sources
· 3: Netcat 1.1
· 4: Keylogger
· 5: Etudes des reseaux hauts debits architectures et protocoles
· 6: Ecoute de port
· 7: Etude du Smart Spoofing
· 8: Win Packet Capture Utils
· 9: Tutorial on Traffic Interception on Switched Lan using ARP spoofing
· 10: Cours de C

User Info
Welcome, Anonymous
Nickname
Password
(Register)
Membership:
Latest: trapcodien
New Today: 1
New Yesterday: 0
Overall: 2207

People Online:
Visitors: 40
Members: 1
Total: 41

Online Now:
01: trapcodien

  
Tutorial sur les services HTTP FTP sendmail NFS samba ipfw DNS DHCP sous FreeBSD
Posted on Wednesday, April 27 @ 21:33:48 CEST
Topic: Linux
Linux

	Tutorial sur les services (HTTP FTP sendmail NFS samba ipfw DNS DHCP) sous FreeBSD

Subsections Services courants Pour ceux qui continuent à lire, ici, on s'attaque à des services réseaux plus élaborées, mais qui sont classiques sur tous les réseaux dignes de ce nom. Il s'agit des serveurs de noms, des serveurs web, FTP... Comme nous voulons que cela marche, nous nous plaçons toujours dans le cas de notre machine sous FreeBSD ;-) Les services peuvent être soit lancés soit dans /etc/inetd.conf soit dans les scripts de démarrage. Un bon endroit pour placer ces scripts est dans /usr/local/etc/rc.d où tous les scripts placés dans ce répertoire sont lancé au démarrage. HTTP Le service le plus connu (du grand public du moins), est le serveur HTTP, là où on peut mettre ses "pages web" Pour cela, je ne saurais trop vous conseiller apache, serveur HTTP très connu et très facile à mettre en oeuvre. Lors de l'installation par défaut, ses fichiers de configurations se trouvent dans /usr/local/etc/apache/conf et par défaut toujours, les pages web se trouvent dans /usr/local/www/ éditez les fichiers de config (très lisible du reste) afin de les adapter à vos besoins, et lancez le démon apache : /usr/local/sbin/apachectl start que vous pouvez mettre comme tous les scripts de démarrage dans le répertoire /usr/local/etc/rc.d. FTP Transferts de fichiers, # dans /etc/inetd.conf ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l sendmail Typiquement, sur votre PC, vous pouvez configurer votre messagerie pour envoyer ou recevoir du courrier. Pour cela, sendmail est le démon de messagerie le plus couramment utilisé. # dans /etc/rc.conf sendmail_enable="YES" # Run the sendmail daemon (or NO). sendmail_flags="-bd -q30m" # -bd is pretty mandatory. Pour l'écriture du sendmail.cf, soit vous vous aidez du fichier sendmail.cf donné par défaut dans /etc/sendmail.cf, mais il est beaucoup plus facile d'utiliser un configurateur plus "humain" comme le kit-jussieu
(http://www.prism.uvsq.fr/~pda/kit-jussieu). Configuration du kit-jussieu Host='pc' Domaine='societe4.com' ListeDomaines="$Domaine" # seuls les courriers destinés à host.domaine oivent rester sur cette # machine AdressesLocales='HOST' # tout ce qui n'est pas local doit être envoyé à notre relais AdressesInternes='RIEN' ReecritureAdressesLocales=$Domaine MailerLocal='/bin/mail DFMPlmnrs mail -d $u' Aliases='/etc/aliases' SendmailSt='/var/log/sendmail.st' SendmailHf='/usr/share/misc/sendmail.hf' Mqueue='/var/spool/mqueue' Lancez ensuite : # ../configurateur societe.config regles.vide > sendmail.cf # cp sendmail.cf /etc/ # killall -TERM sendmail # /usr/sbin/sendmail -bd -q2m NFS NFS (Network File System) est un protocole de partage de fichiers permettant à des systèmes serveurs de partager des répertoires avec des machines clientes. Le fichier /etc/exports donne la liste des systèmes de fichiers exportés, et est décrit dans le manuel. Pour activer NFS au démarrage, éditez dans le fichier /etc/rc.conf : # dans le fichier /etc/rc.conf nfs_client_enable="YES" # This host is an NFS client (or NO). nfs_client_flags="-n 4" # Flags to nfsiod (if enabled). nfs_access_cache="2" # Client cache timeout in seconds nfs_server_enable="YES" # This host is an NFS server (or NO). nfs_server_flags="-u -t -n 4" # Flags to nfsd (if enabled). mountd_flags="-r" # Flags to mountd (if NFS server enabled). nfs_reserved_port_only="YES" # Provide NFS only on secure port (or NO). La machine serveur NFS partagera par exemple ses répertoires /users, /public, /var/mail. # /etc/export /users -maproot=0:1001:800 -network 192.168.10 -mask 255.255.255.0 /public -maproot=0:1001:800 -network 192.168.10 -mask 255.255.255.0 /var/mail -maproot=0:1001:800 -network 192.168.10 -mask 255.255.255.0 Une machine cliente voulant accèder à ses ressources, utilisera une commande de type : mount -t nfs shuriken.dojo.ici:/users /repertoire_de_montage On encore pour le monter dès le démarrage, en éditant un fichier /etc/fstab : # /etc/fstab shuriken:/users /users nfs rw 0 0 samba Samba permet aussi de faire du partage de fichiers, mais plus orienté dans un contexte Microsoft. Le lancement du serveur Samba se fait en éditant d'abord un fichier de configuration /usr/local/etc/smb.conf : server string = Samba Server hosts allow = 192.168.10.1 192.168.10.2 192.168.10.3 guest account = pcguest log file = /var/log/log.%m max log size = 50 # # Securite au niveau utilisateur # security = user # # Serveur de domaine # domain master = yes # # Client europeen # client code page=850 ; ; je prefere garder un fichier de log pour chaque client, c'est plus propre. ; si je supprime (ou commente) la ligne ca fera UN seul fichier avec ; tout mis pele-mele ; log file = /var/log/samba/log.%m ; ; pour garder une coherences des fichiers entre les utilisateurs, on lock. ; le repertoire qui gere les locks est : ; lock directory = /usr/local/samba/var/locks share modes = yes ; ; Pour gerer le montage des repertoires utilisateurs ; [homes] comment = Home Directories browseable = yes writable = yes read only = no create mode = 0755 ; ; les impressions... ; [printers] comment = All Printers browseable = no printable = yes public = no writable = no create mode = 0700 ; ; repertoire public ; [public] path = /users/public Pour lancer le serveur automatiquement au démarrage, éditez un fichier /usr/local/etc/rc.d/smb.sh. # Fichier /usr/local/etc/rc.d/smb.sh # script de lancement du demon /usr/local/sbin/smbd -D /usr/local/sbin/smbd -D Pour pouvoir accèder à un serveur samba via un client samba sous UNIX on peut taper en ligne de commande : smbclient smbclienthomes%dntt Pour pouvoir accèder à un serveur samba via depuis Windows : 1. [Menu démarrer ->Lancer Commande ->explorer] 2. [Options ->Monter un lecteur réseau] 3. Puis dans la [boîte de dialogue] : (a) choisir une lettre, par exemple Y: (b) Monter le répertoire avec la syntaxe hoteservice%login par exemple pour accèder au répertoire "maison" de l'ordinateur shuriken sous le login 'dntt', je remplirais la case par : shurikenhomes%dntt Attention, Windows NT fait (enfin) un peu de "chiffrement" sur les mots de passe. Mais pour que cela puisse être pris en compte, modifier dans la base de registre : [Menu démarrer ->Lancer Commande ->regedit] HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesRdrParameters "EnablePlainTextPassword"=dword:00000001 Évidement, si vous avez des besoins de sécurité, vous documenter quand aux options de chiffrement de samba. ipfw L'utilitaire ipfw permet de filtrer les paquets IP transitant par les différentes interfaces de votre machine. Pour chaque paquet reçu et pour chaque paquet prêt à être envoyé, ipfw teste un ensemble de règles numérotées dans un ordre précis. Dès qu'une règle est vérifiée, l'action correspondante est alors appliquée et le paquet suivant peut alors être traité. Le fichier /etc/services contient les informations sur les ports officiellement enregistrés. Recompiler le noyau avec options IPFIREWALL #firewall options IPFIREWALL_VERBOSE #print information about options IPFIREWALL_FORWARD #enable xparent proxy support options "IPFIREWALL_VERBOSE_LIMIT=100" #limit verbosity #options IPFIREWALL_DEFAULT_TO_ACCEPT #allow everything by default options IPDIVERT #divert sockets options IPFILTER #kernel ipfilter support options IPFILTER_LOG #ipfilter logging #options IPFILTER_LKM #kernel support for ip_fil.o LKM Puis modifier le fichier # /etc/rc.conf firewall_enable="YES" # Set to YES to enable firewall functionality firewall_type="UNKNOWN" # Firewall type (see /etc/rc.firewall) firewall_quiet="YES" # Set to YES to suppress rule display Pour relancer le script il faut taper sh /etc/rc.firewall Afin de voir comment les règles ont été considérées, on tape : ipfw -a list Suivant que vous ayez activé IPFIREWALL_DEFAULT_TO_ACCEPT (tout accepter par défaut) ou non dans la config du noyau, il vous faudra faire un fichier de règles permettant de faire exception à cette règle en permettant certains services (cas restrictifs) ou en interdisant (cas permissif). Dans le cas d'une à-peu-près bonne sécurité, nous avons un noyau en mode restrictif, ce qui fait que les règles seront des exceptions de permissions : On édite le script /etc/rc.firewall pour modifier ou rajouter des règles de filtrage. Dans le cas d'un firewall complètement ouvert en mode permissif, on peut avoir par exemple : # ipfw list 00100 allow ip from any to any via lo0 00200 deny ip from any to 127.0.0.0/8 65535 allow ip from any to any Dans le cas d'un firewall un peu plus restrictif : # La commande ipfw fwcmd="/sbin/ipfw" # tout ce qui passe par l'interface de loopback (lo0) est acceptee $fwcmd add 100 pass all from any to any via lo0 # un paquet à destination du réseau réservé au loopback (127.0.0.0/) # mais ne provenant pas de l'interface lo0 (sinon il aurait été # récupéré par la règle précédente) est invalide. On le rejette donc. $fwcmd add 200 deny all from any to 127.0.0.0/8 # Configuration des parametres du réseau "interne" iif="xl0" inet="192.168.7.0" imask="255.255.255.0" iip="192.168.7.1" # Configuration des parametres du réseau "externe" oif="xl1" onet="193.51.7.0" omask="255.255.255.0" oip="193.51.7.2" # Arreter le "spoofing" $fwcmd add deny all from ${inet}:${imask} to any in via ${oif} $fwcmd add deny all from ${onet}:${omask} to any in via ${iif} # Arreter les paquets de la RFC 1918 $fwcmd add deny all from 192.168.10.0:255.255.0.0 to any via ${oif} $fwcmd add deny all from any to 192.168.10.0:255.255.0.0 via ${oif} $fwcmd add deny all from 172.16.0.0:255.240.0.0 to any via ${oif} $fwcmd add deny all from any to 172.16.0.0:255.240.0.0 via ${oif} $fwcmd add deny all from 10.0.0.0:255.0.0.0 to any via ${oif} $fwcmd add deny all from any to 10.0.0.0:255.0.0.0 via ${oif} # Une connexion TCP etablie est definitivement acceptee. $fwcmd add pass tcp from any to any established # Courrier entrant et sortant accepte $fwcmd add pass tcp from any to ${oip} 25 setup # Accès à notre DNS autorise $fwcmd add pass tcp from any to ${oip} 53 setup # Accès au Web $fwcmd add pass tcp from ${inet}:${imask} to any 80 setup $fwcmd add pass tcp from ${oip} to any 80 setup # Requêtes DNS autorisees $fwcmd add pass udp from any 53 to ${oip} $fwcmd add pass udp from ${oip} to any 53 # Autorisation des pings et traceroute $fwcmd add pass icmp from any to any $fwcmd add pass udp from ${oip} to any # Tout paquet non reconnu est rejete (politique restrictive) $fwcmd add 65000 deny all from any to any

1#1 Pour une description plus détaillée sur IPFW consultez le guide annexe sur ipfw DNS En général, pour un petit réseau, il n'est pas nécessaire de mettre en place un serveur DNS. Le serveur DNS du fournisseur d'accès suffit amplement. Mais on peut vouloir identifier les machines du réseau interne par leur petit nom plutot que par une adresse interne. Une première solution serait d'utiliser des correspondances statiques par l'utilisation du fichier /etc/hosts, par exemple : # Petites configurations pour le fichier /etc/hosts # Definition de l'hote local. 127.0.0.1 localhost # les machines de dojo.ici 192.168.10.1 nunchaku.dojo.ici nunchaku 192.168.10.3 shuriken.dojo.ici shuriken 192.168.10.5 tonfa.dojo.ici tonfa en le reportant sur chacune des machines. Mais cela peut poser des problèmes de mise à jour à chaque ajout de machine ou changement de noms, sans compter certains systèmes (comme Windows 95 par exemple) où l'utilisation d'un fichier hosts n'est pas évident. Pour cela on peut vouloir lancer un petit serveur DNS pour pouvoir répondre à ces besoins. A ce serveur, on lui demandera simplement de pouvoir faire la correspondance des adresses DNS/IP des machines du réseau local, et d'interroger le serveur DNS extérieur pour toute autres adresses. Il suffit pour cela d'éditer un fichier du type : # fichier /etc/resolv.conf search dojo.ici nameserver 127.0.0.1 nameserver 192.168.10.3 Afin de mettre en place un serveur DNS, on commence par éditer un fichier /etc/namedb/named.conf comme suit : ; fichier named.conf options { directory "/etc/namedb"; forward only; ; les adresses extérieurs seront résolu par le serveur ; DNS de notre fournisseur d'accës. forwarders { 172.16.0.1; 172.16.0.2 ; }; }; zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "localhost.rev"; }; zone "dojo.ici" { type master; file "db.dojo.ici"; }; zone "0.168.192.in-addr.arpa" { type master; file "dojo.ici.rev"; }; Puis un fichier de résolution nom ->adresse IP /etc/namedb/db.dojo.ici ; fichier /etc/namedb/db.dojo.ici ; Definition de la zone dojo.ici dojo.ici. IN SOA shuriken.dojo.ici. dntt.dojo.ici. ( 19981226 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum ; serveur de nom IN NS shuriken.dojo.ici. ; MX record IN MX 50 shuriken.dojo.ici. ; Host nunchaku IN A 192.168.10.1 katana IN A 192.168.10.2 shuriken IN A 192.168.10.3 bokken IN A 192.168.10.4 tonfa IN A 192.168.10.5 localhost IN A 127.0.0.1 ; alias www IN CNAME shuriken ftp IN CNAME shuriken mailhost IN CNAME shuriken ; Information sur le systeme nunchaku IN HINFO "Cyrix P150+" "Windows 98 / FreeBSD 2.2.6" katana IN HINFO "Intel 486 DX2 66" "Windows 98 / FreeBSD 2.2.6 " shuriken IN HINFO "Intel Dual Pentium Pro 200" "FreeBSD 3.0 Rele ase" bokken IN HINFO "AMD K6 233" "Windows 98 / FreeBSD 2.2.6" tonfa IN HINFO "Sparc Station 2 (sun 4c)" "Solaris 2.2.6 " Enfin un fichier de résolution adresse IP ->nom : /etc/namedb/dojo.ici.rev @ IN SOA shuriken.dojo.ici. root.shuriken.dojo.ici. ( 19981226 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS shuriken.dojo.ici. 1 IN PTR nunchaku.dojo.ici. 2 IN PTR katana.dojo.ici. 3 IN PTR shuriken.dojo.ici. 4 IN PTR bokken.dojo.ici. 5 IN PTR tonfa.dojo.ici.

1#1 Pour une description plus détaillée sur le DNS consultez le guide annexe sur le DNS DHCP DHCP (Dynamic Host Configuration Protocol) permet d'assigner une configuration réseau à une machine cliente. Parmi les fonctionnalités relatives à DHCP, notons : 1. une allocation statique ou dynamique des adresses IP suivant des plages IP prédéfinies ; 2. renouvellement de bail (lease) automatique ; 3. configuration IP complète (IP, DNS, routeurs...). Configuration du serveur DHCP, fichier /etc/dhcpd.conf subnet 192.168.42.0 netmask 255.255.255.0 { range 192.168.42.1 192.168.42.126; default-lease-time 1200 max-lease-time 2400; option subnet-mask 255.255.255.0; option routers 192.168.42.254; option domain-name-servers 192.168.42.200; option domain-name "isty2.tp"; } On lance le serveur DHCPD avec : # /usr/local/sbin/dhcpd Internet Software Consortium DHCP Server 2.0 Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved. Please contribute if you find this software useful. For info, please visit http://www.isc.org/dhcp-contrib.html Listening on BPF/xl1/00:60:08:6f:74:fe/192.168.42.0 Sending on BPF/xl1/00:60:08:6f:74:fe/192.168.42.0 Sending on Socket/fallback/fallback-net Si vous voulez utiliser un client DHCP, le plus souvent un simple dhclient suffira. Sinon, l'édition d'un fichier /etc/dhclient.conf # /etc/dhclient.conf # timeout 60; # temps au bout duquel le client decide qu'il n'y a pas de serveur DHCP retry 60; # reboot 10; # le client prend la premiere adresse IP dispo (au cas ou il y aurait # plusieurs serveurs DHCP) select-timeout 0; # initial-interval 2; # interface "ed1" { send host-name "shuriken.dojo.ici"; send dhcp-client-identifier 00:00:e8:e1:f2:33 send dhcp-lease-time 3600; supersede domain-name "budo.ici"; prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name; require subnet-mask, domain-name-servers; script "/etc/dhclient-script"; #media "media 10baseT/UTP", "media 10base2/BNC"; } Puis du lancement de la commande dhclient effectuera ce qu'il faut. Ceci aura pour effet de modifier les paramètres réseaux de votre clients suivant la configuration envoyée par votre serveur. Il vous suffira ensuite de recourir aux commandes habituelles (netstat, ifconfig...) afin de vérifier les nouveaux paramètres réseaux de votre client. C'est fini... Temps écoulé : 1h. Bon, en principe, vous n'aurez peut-être pas besoin de tous ces services, donc ça peut prendre moins de temps que ça à installer... ou alors plus si vous voulez affiner ou adapter ces exemples.

1#1 Pour une description plus détaillée sur DHCP consultez le guide annexe sur dhcp

 
Liens connexes
· Plus à propos de Linux
· Nouvelles transmises par Romain_Le_Guen


L'article le plus lu à propos de Linux:
Tutoriel Partage de Fichier avec Samba sous debian / mandrake


Article Rating
Average Score: 3
Votes: 2


Please take a second and vote for this article:

Excellent
Very Good
Good
Regular
Bad


Options

 Format imprimable Format imprimable


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.97 Seconds