% % & ' % ' ' ( ) ' ' * )+' ', " '' % & )+ $ '" % & -./ $ '$ 0&) ) $ '1 0 2*3 4 '1 ) 4 '1 *&,3 5

Full text

(1)
(2)

%

%

&

'

%

'

'

( )

'

'

*

)+

'

'

,

"

' '

%

&

)+

$

' "

%

&

-./

$

' $

0

& )

)

$

' 1

0

2

*

3

4

' 1

)

4

' 1

*

&

,

3

5

' 4

/

, )

' 4

& )

' 4

/

, )

' 4

/

, )

.

' 4 '

/

, )

,

' 5

0

& )

' 5

' 5

-' 5

0 ,

'

6

'

'

/

'

'

&

'

'

(

7

"

'

'

6

*

&

"

'

"

0

"

'

$

/

+

66!

$

'

1

! )

$

"

6

66!

1

"

,

1

"

0

& )

1

"

0

& )

4

$

)

.8.

1

,

4

0

2

*

)

4

%

. .

4

%

/ "

5

6

,

*

,

9: ,

& )

*

*

3

"

%

%

"

%

;#

#

< =

"

%

;#

# )

=

"

,

&

"

!

&

$

9: ,

& )

66!

1

8

&

1

%

&

1

%

&

66!

2

*

3

&

1

%

&

66!

4

8

<

.8. >

:

,

5

8

?

(3)

1. Préambule

0

,

! ;

>##<<< )

)#

@ & #&

,

=

0

,

)

A

%

%

B

,

,

C

!

0

,

D

E

*

B

?

*

,

!

,

*

&

:

%

,

?

?

,

&

)

.

,,

F

@

,

G

:H)

,

2. A.N.F.A.

!*%.- !I J 0

I%& ?

;

<<<

&

)

=

,

* & ,

?

J 0

%& ?

)

3. Définition

7

?

,

)

&

7

!*

)

7

;

,, / +

9=

&

;)

,

)

,

,

@

, ?

F

, )

&

) =

0

&

,

8JJ. ;8@

J : J

&

.

=

- 0

$ $

F

$4

5'" ;

>##<<< & ?

)# & # &

$ $

,

=

(4)

4. Apache

4.1. Origines

%

7

(

,

;$ K

,

,

7

? B

&

,

=

, 3

&

55"

:

,

06% ;

0

&

6

,

)

%

?

*

)

,

,

)

7

> /

=

%

,

%

6 & <

&

555 ?

A

&

&

&

F

)

)

7

%

!

A

&

7

F &

F

&

&&

?

,,

)

,

& ,

%

A

*

?

,

I& ,

)

,

:

!

*%

'' ?

L

1 ?

3

A

L ?

!

*

?

)

,

L

,

%M

L *

, )

4.2. Installation avec l’archive tgz

%

/usr/local/apache

,

!

?

F

& )

,

,

6

? *

, F

J

)

*%

& ,

)+

)#

<

)

;

G

1

)+=F

&

*

)

;

: =F

,

;

N+:&=F

%

G

1F

9:

,,

>

./configure --prefix=/usr/local/apache

?

,

F

0 ,

,,

make

F

6

?

; =F

,,

make install

F

-

&

,

)

>

ln –s /usr/local/apache/bin/apachectl /etc/init.d/httpd

F

,

<

,,

service httpd start,

6

F

(5)

J

<

)

<

;

>##

1

>4 4 #

F

&

,

4 4

:@=

- , ?

>

7

%

,

*%

4.3. Installation avec les rpms

6

? *

, F

J

)

,

*%

>## ,&

>

o

I

1I , O "4$

,

o

I

,,

I

1I , O "4$

,

o

I

&I

1I , O "4$

,

o

I,

I

1I , O "4$

,

o

I,

I

1I , O "4$

, ;

=

o

I

I

1I , O "4$

, ;

=F

o

I

I$

4$

, ;

.8.

=F

o

,

G

I

I

4$

, ;

.

=F

o

,

G

I 4

I , O

, ;

66!

=F

&

*

)

-./ ;

:

=F

6

?

; =F

, >

Rpm –ivh apache-1.3.27-2mdk.i586.rpm \ apache-common-1.3.27-1mdk.i586.rpm \ apache-conf-1.3.27-2mdk.i586.rpm \ apache-modules-1.3.27-1mdk.i586.rpm \ mod_perl-1.21-20.i386.rpm \ mod_ssl-2.8.12-1mdk.rpm

(6)

,

<

,,

service httpd start,

6

F

J

<

)

<

;

>##

1

>4 4 #

F

&

,

4 4

:@=

4.4. Arborescence des fichiers en installation tgz

/usr/local/apache/bin

>

:

|cgi-bin

>

&

) ,,

)

| de

)

@

, ?

0

|conf

>

& )

|htdocs

>

&

<

,

*

|icons

> A

* 2

&

)

<

|include

> &

*

,

)

|libexec

>

* :

*

;

,,

=

|logs

> &

A

:

|man

>

,

,

|proxy

>

,

:@ ?

,

4.5. Arborescence des fichiers en installation RPM

/etc/httpd/conf

>

& )

/usr/bin

>

:

/sbin

>

:

/lib/apache

>

* :

%

/share/man

>

,

,

/share/doc

>

,

/var/log/apache

> &

A

:

/www/

>

racin

<

&

,

8J/!

/www/cgi-bin

>

&

) ,,

)

)

@

, ?

0

4.6. Configuration générale

!

&

& )

*

,

" >

& > &

& )

F

& > &

&

2

*

3

:

<

F

, ,

@

>

&

@

, ,

;

@

&

:

F

>##<<<I

,

I

) & #P Q#/ /9

,

:

, , =F

, )

>

&

,

*

&

@

, ,

*

&

;

@

& :

=F

,

& > &

& )

?

*

A

*

!

&

,

&

& 0

I

& ,

*

&

:

,,

>

(.J (

%!9

-•

R690J ( ST R#690J ( S

(7)

9

,

&

&

F

& )

B

)

,,

service http reload ou service http restart

!

& )

<

*%

&

;

>##

1

>4 4 #

=

0

?

?

!

>

>

&

>

> 4 4 >

&

,

0

&

.

,

0

!

,,

*

,

4 ,

B

,

>

& >

,

,

@

.

*

.

0

!

>

& >

,

<

.

J0.

!

@

:

!

H .>

.

!

.

#

J0. 0

,

, ) ;

=

>

@ >

)

*

?

B

:

;

*

@

: U

,

*

= %

F

&

)

!*

?

3

:

)

7

&

)

?

I

*

?

?

V<

V

User web

>

@ > ,B,

?

,

)

?

* :

%

>

, H

,G

G

>

,

<

,

0

&&

)

*

>

,G

6G

G

>

,

;

<<< ,

,

,

=

&

,

0

W

, 8

> #

#

#

#

> 0

,

&

C

O

<

> #

#

#

> 0

,

C

0

,

& )

! "

>

,

&

& ?

*

0

2

*

3

#

$

>

) #

G ) >

A

)

&

9

@

)F

A

)

&

1

@

) 9 &

3

XF

& :

)

) ,,

?

3

3

X

%& '

>

) #

O >

)

,,

(8)

& '

>

) #

>

C

O

,

3

*%

0 &

)

@ 3,

,

*

*%

@

)

:

& '

>

) #

G

>

,,

&&

*%

(

>

*

*%

> -

?

@ 3,

O

&

)

*%

(

$

> #

#

#

# ) #

G )

,,

>

? B

&

!

@

:

chemin_vers_le_fichier règle_de_formatage_des_traces

! & ,

)

&

3)

! ) ,

&

,,

)

,

&&

4.7. Contrôle d’accès

4.7.1. Directives générales

!

)

,

&

&

R

@S ?

3

&&

)

*

>

:

,

:

, >

* )

*

&

& ?

,

&

)

&

?

? B

;<<< ,

,

,#

<<< ,

,

,#

:

,= 9

)

?

&

9

,

&

?

&

*

F

+

>

&

F

*

,

&

2

*

3 ,

&

&

9

>

% >

& /

< F

<6@,! O >

*

@,

?

F

9: 0

>

* :

0

F

>

@

6

I6

I

F

(9L90 >

, ,

0

U :

U

F

:

>

*

)

*

&

&

,

@

: *

;

=F

/

< > . ,

&

)

&

@

,

,

I

?

,

&

,

, 3

;

,

:

= .

F

6@,

O &(<

/

>

,

<6@,! O ,

&

?

&

,B,

'' ,+

>

&

?

,3

B

,

&

7

Y

&

;

%

, =

)

0

>

% >

,

&

F

>

&

)

F

(9)

%

0

& ) > %

Z

)

%

+

?

,

,

&

;

%

Q/

F

%

Q/

F

%

F

%

, F %

J@

F %

F - ?

F

,

*%

=F

& > %

Z

)

2

Z

3

:

@

,

;

%

9

)F

%

!

)

) F

%

J@

F

&

J@

F

9

,

F

!

)

) .

@F

,

*%

=F

:

> . ,

&

*

:

* &&

)

)

*

: ;

%

F %

F %

Q@9

)F %

Q@J@

F

&

F

@

:F

@

: )F 8

, F

: )

F

:(

F

-

,

, F

,

*%

=F

! , > %

Z

)

2

3

2

;

<F

@

=

(

> %

Z

)

2

&

& ?

;

)

(

,

%

LQ 8 O=

& '

>

>

,

&

&

?

*

3

4.7.2. Directives d’authentification et de limitation des accès

!

B

R

@S

,,

I

&

&

3

- , ?

>

?

R

@S *

?

F

&

*

?

? *

?

'' ,"

-

%

< & , %

>

&

,

*

3

&

;%

<

& ,

,

,=F

+

-

@F %

< >

&

*

?

@

%

<

!

>

@F %

< > *

3

&

F

?

*

W

@

?

W

<

F

%

<F

@ > *

3

?

&

F

?

*

W

<

?

W

@

?

F

/

I&

>

< ,

?

@

0

,

%

<F

@

!

*

&

,3

&

& )

*%

>

>

:

?

*

?

*

&

0 ,

)

W

&

B

) #,

&

*

*

?

)

* )

,

*

,

)

* & ,

)

,

.

> Q

>

&

,

*

&

!

Q

)

!*

&

Q

)

$'

*

&

)

/ " 9

3)

)

F *

Q

&&

(10)

& '

> #

#

G

> &

?

,

?

0 &

,

) ,,

< ;

= ! &

B

%

!

@

:

&

>

! )

>,

G @

! )

>,

G @

& '

> #

#

G)

> &

?

)

?

&&

!

)

,

B

&

! &

B

%

!

@

:

&

>

>

>

/

>

&

!

&&

@

:

>

- ?

>

&

F

- ?

)

)

>

)

&

F

- ?

I

>

&

F

- ?

&

I <

> *

B

&

*

@ 3,

,B,

)

B

&

F

- ?

&

I)

>

, &

I <

,

)

)

@ 3,

!

&

)

) ,,

<

;

*

%

= >

0

&

>

htpasswd –c /etc/apache_users username

>

&

G

,

,

,

,

%A

*

#,

&

*

,

>

htpasswd /etc/apache_users

username

> A

*

,

,

6

*

>

&

;

=

,

)

*

! &

*

:

?

: ,

2

*

3

:

4.8. Multihoming

4.8.1. Directives de configuration

! ,

, )

)

,B,

)

!

>

'

> %

#

, G

G

G&

>

,

&

*

J

? B

>##<<<

,

,#

)

, G

G

G&

(11)

'

> 6

%

,

, [

,

, >

,

&

,

J

? B

&

,

,

)

& )

?

)3

,

, 9

,

8

0

'1

>

,

8

1

>4 >

,

*

)

,

, )

&

,

<

. !

&

J0. *

)

*

A O

[

,

, )

.

0

'1

2) -

! "0

'1

>

&

*

*

.

!*

.

B

,

[

;

,

, )

,

=

3

3

>

& )

)

.

,3

)

4.8.2. Multihoming par arborescence

!

&&

)

,B,

.

,B,

,

,

&&

0

& )

& ?

)3

2

*

3

R

@S

&

& >

Alias /site1 /meswebs/site1 Alias /site2 /meswebs/site2 Alias /site3 /home/user_site3

4.8.3. Multihoming par adresse IP ou par port

!

&&

&&

.

#

!

8

Listen 192.168.1.1 :80 Listen 192.168.1.1 :443 Listen 192.168.1.2 :80 <VirtualHost 192.168.1.1:80> ServerName www.mondomaine.com DocumentRoot /mesweb/mondomaine.com </VirtualHost> <VirtualHost 192.168.1.1:443> ServerName www.mondomaine.com DocumentRoot /mesweb/mondomaine_secure.com </VirtualHost> <VirtualHost 192.168.1.2:80> ServerName www.trucmuche.com DocumentRoot /mesweb/tructmuche.com </VirtualHost>

!

>

!

<<< ,

,

,

*

5

$4

F

&

#, <

#,

,

,F

(12)

!

<<<

,

,

*

5

$4

F

&

#, <

#

,

,

!

<<< ,

,

,

*

5

$4

66! ;

'' =F

&

#, <

#,

,

G

,

%

>

,

?

6

,

B

6

4.8.4. Multihoming par nom

!

&&

)

,B,

.

,B,

,

&&

,

&

&

& )

)

,

8

&

8

NameVirtualHost * <VirtualHost *> ServerName www.mondomaine.com DocumentRoot /mesweb/mondomaine.com </VirtualHost> <VirtualHost *> ServerName www.tructmuche.com DocumentRoot /mesweb/trucmuche.com </VirtualHost> <VirtualHost *> ServerName www.bazar.com

ServerAlias bazaar.com *.bazar.com DocumentRoot /mesweb/bazar.com </VirtualHost>

!

>

!

<<< ,

,

,

3

:

&

#, <

#,

,

,F

!

<<<

,

,

3

:

&

#, <

#

,

,F

J

[

+

,

3

: &

#, <

#

+

,

%

>

,

?

6

,

B

6

- , ?

>

,

&

)

*

F

,

8

4.9. Configuration avancée

4.9.1. Directives

1

%

>

&& >

,

&

6

?

&

&

?

, &

*

. 0

)

3

&

)

6

*

?

?

;

A

&&

? *

*

3

,

(13)

4 *

>

>

&

,

&

?

B

:

? B

!

? * @

&

?

F

A ? *

4

> " >

&

,

,

, ,

&

?

*

? B

4 *('

> "$ >

,

, : , ,

? B

,

?

B

,

, : , ,

&

?

,B,

,

!

? B

,

4 *

/

( '

>

,

, : , ,

? B

? *

&

%

F

0

,

*

,

& Y

%

,

)

3 ,

&

!

5

'

>

>

,

\

%

8JJ.

?

,

? B

:

J0. &

* ,

& ,

4 *5

'

/

>

>

&

,

, : , ,

? B

?

*

,B,

\

%

!

,

.

+

>

>

&

,

, : , ,

?

%

*

4

'

> !

/

,

G

,

: #

>

,

)

,

@

, ?

* A

&

!

&

:

*%

9: ,

> !

/

,

G

: #,

G

! ,

*

%

/

4

'

> %

/

,

G

, >

,

*

,

) ;

,

%

F

)

!

/

!

('

4

'

,

,

,

)

)64

'

' 7

! ")64

'

>

,

&

& )

*

*

,

4.9.2. Répertoires utilisateurs

,

%

,

G

I

>

AddModule mod_userdir.c

&

?

C

O

)

,

>

R

IfModule mod_userdir.c> UserDir public_html </IfModule>

!

? B

>##<<< ,

,#P

#

3

: &

O

P

#

G ,

4.9.3. Compilation avancée

!

*

,

; #

& )

=F

B

>

88

6 *9"

"'

'"

>

,

&

C

%

]

(14)

88

' 8

' 9

' 7

>

*

,

]

88

' 8

9

' 7

>

,

& ,

*

@

, ?

]

88

8

' 9

8

8' 8

>

3)

,

%

]

88

' 8

' 9

' 7

>

*

,

&

*%

]

88

' 8

*

>

) ,,

:

?

,

%

)

*

* :

;

)

:F

=

4.10. Sécurisation

?

@ 3, !

:

A

)

;

F

,

F

?

) &

?

B

,

*

)

=

4.10.1.

Modules à désactiver

!

)

,

@

F ,

: *

F

&

, : , ,

,

,

*

–-disable-module

*

*

,

–-disable-module=all

?

,

*

,

,

,

?

,

&

?

;

B

&

= >

,

G

,

&

* -!

,

G <

* -!

,

G

@ 3, ;

7

=

,

G

:

&

)

;

: =

,

G

6

6

;66 =

,

G )

0 ,,

< @

&

;0

= ;

&

+ .8.=

,

G

0

& ,

)

^

*

%

;

,=

,

G

,

* & ,

*

,

G ,

, )

?

2

&

)

,

,

7

&

;

,

?

<<<

)

=

4.10.2.

Droits sur les fichiers

%

*

: &

? *

,

F &

*

)

*

?

F

&

?

*

?

:

%

)

*

*

3

&

?

,

,B,

& Y

)

7

B

#

%

;

: ,

)

I <

=

*

? *

,

F

* :

?

?

) F

)

7

B

:

(15)

!

*%

;

=

B

,

&

*

?

:

%

! ,

&

,,

*

3

# :

%

,

F

+

*

3

* :

*%

F

&

?

I

)

<

F *

%

,

*

:

F

<III:II:

mkdir /usr/local/apache cd /usr/local/apache mkdir bin conf logs chown 0 . bin conf logs chgrp 0 . bin conf logs chmod 755 . bin conf logs

#Suivez la procédure d’installation chown 0 /usr/local/apache/bin/httpd chgrp 0 /usr/local/apache/bin/httpd chmod 511 /usr/local/apache/bin/httpd

4.10.3.

Options sur le site Web

6

& :

F

&

%

<(

?

?

,3

&

)

,

& )

B

,

&

,

&

&

?

*

3

&

?

& ?

+

?

)

>

<Directory /> AllowOverride None Order Deny,Allow Deny from all </Directory>

.

: &

@ 3, ;

?

#

#

< =

<Directory /usr/local/apache/htdocs> AllowOverride None

Order Deny,Allow Allow from all </Directory>

/

<

&

!

: F

< @,

O

B

,

6

& + *

@

: &

*B

) ?

)

&

4.10.4.

Support de l’authentification

6

)

C

F

&

,

,

,

*

&

2

*

3

4.10.5.

CGIs

!

0

7

@

, ?

,

,

:

3,

0*

?

F

3

B

(16)

6

F

& +

) ,,

? *

,

&& I

& <

,

3)

2

,3

&&

;0

6

6

)

: ,

=

6

F

)

+

?

?

,

* :

?

*

,

2

4.10.6.

Mettez en place le support de SSL

6

+

*

@

:

)

7

66!

A

4.10.7.

Utilisez mod_security

,

,

G

@F %

,

2

&

&

*

?

,

;

<<< ,

@

)

=

%

+

,

*

AddModule mod_security.c ;

0

& )

,

&

>

<IfModule mod_security.c> AddHandler application/x-httpd-php .php SecAuditEngine On SecAuditLog logs/audit_log SecFilterScanPOST On SecFilterEngine On </IfModule>

+

R# &/

S

)

,

&

*

?

066 >

SecFilterDefau

ltAction "deny,log,status:500" SecFilte

r "<(.|\n)+>"

0

*

? *

: ,

& )

F

,

G

@

* & ,

A

4.10.8.

Logs

*

+

*

,

A

:

&

3)

O ) F

*

)

*

@

0

:I

+

+

* :

4.10.9.

Chroot

!

)

*%

,

,

* :

*%

!

: !

)

%

*

3 ? *

: &

?

,

,

*

&

#

#

<

@ 3,

:

&

*%

0

,

*

)

*

*

,

@ 3,

0

;

@ 3, = > ,O

#

#<

0

@ 3, >

(17)

cd /chroots/web

mkdir bin dev etc sbin tmp usr var usr/lib usr/share usr/share/local usr/share/zoneinfo chmod +rwxogu tmp chmod +t tmp

0

&

&

,

*%

,

;

,

F

&

,

?

F A

+

,,

N = >

#création d’un device /dev/null mknod –m 666 dev/null c 1 3 #paramétrage de la zone

cp –pi /usr/share/zoneinfo/[VOTREZONE] usr/share/zoneinfo cd etc

#paramétrage de l’heure

ln –s ../usr/share/zoneinfo/[VOTREZONE] localtime cd ..

cp –a /usr/share/locale/[VOTRELOCALE] usr/share/locale #copie de quelques libs utiles

cp -pi /lib/libtermcap.so.2 /lib/ld-linux.so.2 /lib/libc.so.6 lib/ #copie d’un shell

cp -pi /bin/sh /bin/cat bin/

#création des fichiers d’utilisateurs touch etc/passwd etc/group etc/shadow chmod 400 etc/shadow

#creation d’un utilisateur pour l’exécution d’Apache (aucun utilisateur root ne sera créé)

echo 'www:x:888:888:Web Account:/webhome:/usr/bin/false' > etc/passwd echo 'www:x:888:' > etc/group

echo 'www:*:10882:-1:99999:-1:-1:-1:134537804' > etc/shadow cp –pi /bin/false bin

#les fichiers binaires sont en exécution seule chmod 111 bin/*

chmod 111 usr/local/apache/bin/* #libs nécessaires au DNS

cp -pi /lib/libnss_files.so.2 lib/ cp -pi /lib/libnss_dns.so.2 lib/

0

& )

6F

+

&

>

#

<

&

passwd: files shadow: files group: files hosts: files dns

#

&

domain mondomaine.com

# adresse du DNS (ici un cache local)

nameserver 127.0.0.1

#

127.0.0.1 localhost loopback #adresse IP interne du serveur

192.168.196.2 ns.mondomaine.com ns www

0

&

*%

>

Cp –pi /usr/local/apache usr/local/apache

#quelques libs nécessaires au fonctionnement d’Apache

cp -pi /lib/libdl.so.2 /lib/libm.so.6 /lib/libcrypt.so.1 /lib/libdb.so.3 lib/

cp -pi lib/

0

7

>

&

&

?

?

(18)

,

%

*

,

;

? *%

#

#<

#

#

#

= >

chroot /chroots/web /usr/local/apache/bin/apachectl start

6

+

.8.

,@6M!

F

*

.8.

O

#

# , #,@ ?

O

,@6M!

&

* :

*

,

.

3,

+

:

>

6

,

#

# , #,@ ?

O

,B,

@ ?

F

+

@ ?

?

&

?

,@6M!

,

>

#

# , #,@ ?

O

#

#<

#

# , #,@ ?

O

6

F

+

& )

.8.

,@6M!

.

?

& )

,@6M!

. ;

&

<

=

- , ?

>

& )

F

&

*%

9

)

;

=

B

,

F

*

,

?

&

?

?

3?

,

&

,

?

+

(19)

5. Sécurité avec SSL

5.1. Installation de modssl

&

*

O ) (

66! ;

<<<

)

=

&

,

66!

,

G

;

<<< ,

)

=

6

J

)

&

,

G

I 4

I

1 )+

<<< ,

)

&

)

,

&

*%

;

#

,

=

%

,

G

>

cd mod_ssl-2.8.12-1.3.27 •

0

& )

,

G

>

./configure --with-apache=../apache_1.3.27 --with-ssl=chemin_openssl \ --with-crt=/usr/local/apache/conf/ssl.crt/server.crt \ --with-key=/usr/local/apache/conf/ssl.key/server.key \ --prefix=/usr/local/apache

.

*

*%

- , ?

>

,,

*

,

,

<<< ,

)

5.2. Configuration du serveur

&

&

66!

& )

*%

.

F

,

66!

%

& )

)

66! ;

: ,

& )

&

: =

AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl

0

,

%

W

&

,,

&

)

&

66!

' $

>

>

?

%

C

;

=

?

3)

&

7

!*

?

?

*

,

,

)

*%

(

>

,>#

#

#

# ) #

G

> & ,

&

C

O

66!

(

.

>

>

4

*

>

file:/usr/local/apache/logs/ssl_mutex :

& ,

&

C

O

,

?

3)

3

66!

>

> @

)

Q

)

(

66!

0

B

& )

,

)

*%

;66!-

,6

=

:

;66!-

,6

=

$

> V#

#

#

# ) #

G

)

G )V > &

A

,

66! ;&

,

,

66!=

$

'

>

& >

A

,

66!

(20)

!

& ?

<

?

66!

B

8

?

& ?

)

3 66!

J0. ''

# $

>

>

66! J

:

&

66!

(

> %!!>_% 8>_9L."$>-0'`-6%>`8

8>`/9

/>`!(7>`66!

>`9L.>`

!! >

@

)

(

6 6

& '

> #

#

#

#

&#

#

> &

?

&

(

6

5

& '

> #

#

#

#

&#

O @#

O @ > &

?

&

(

6

(

& '

> #

#

#

#

&#

#

>

&

?

W

, 3

&

( (

6

>#

#

#

#

&#

>

,

*

3

&

*%

0

&

?

)3

( (

6

& '

>#

#

#

#

&#

#

> &

?

&

*%

0

&

?

)3

(

> #

#

#

#

&#

>

,

?

)3

&

,

!*

,,

)

/

& >

SetEnvIf User-Agent ".*MSIE.*" \

nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0

5.3. Configuration des répertoires

!*

& )

&

&

&

.

>

/

>

> ,

*

3

66!

*

0

*

? *

66!

0

6 ('

>

>

# ?

>

,

*

*

&

66!

?

&

2 ? *

)

,

(

,

*

&

?

*

- ?

:

*

&

;?

)

0%

=

+

> `6 9

>

,

&

&

,

66! !

;

:

= >

`6 9

>

&

*

,

?

,,

?

:

0

*

66!

`6

- ?

&

2

*

66! ?

66!- ?

66!

(21)

` O Q

%

>

,

&

Q

*

&

66!

&

2

*

3

2

*

3

%

;

=

.

F

&

A

&

%

)

&

!

,

*

,

,

&

V0 a

#(a/ 0%#( a/

#

,

%

a

H

,

,V ! ,

*

B

V

<

V

/

> Kb66!G0! 9 JG6G

G0 c

bV

Vc >

,

&

&

?

*

&

66!

* : ,

F

0 ,,

,

&

B

: ,

:

(22)

6. Intégration PHP

!

3

)

@

, ?

.8. ;

<<<

=

B

,

3

>

6

J

)

3

.8.

<<<

&

*

)

*

)

,

*

.

,

.8.

./configure --with-apache=../${SRC_APACHE} --with-mysql=/usr/

,

:

,

B

)

.8.

?

,

,@ ?

–with-mysql=/usr

;

?

/@6M!

-./

=

.8.

* & ,

*

)

)

0 ,

,,

, O

6

.8.

,,

, O

%

.8.

%

>

,

&

&

&

A

>

o

LoadModule php4_module libexec/libphp4.so

>

)

3?

.8.

o

AddModule mod_php4.c

>

,

o

IfModule mod_mime.c

F A

V

AddType

application/x-httpd-php .application/x-httpd-php .application/x-httpd-php3 .application/x-httpd-php4

V ?

& )

/ ,

&

.8.

6

I

0

& )

*

.8.

,

0

>

<Directory /monsiteweb/scriptsphp> #Directives générales

DirectoryIndex index.php index.php3 #charge par défaut la page index.php <IfModule mod_php4.c> #configuration spécifique au module PHP

php_value include_path '/usr/local/lib/php:.' # répertoires dans lesquels sont stockés des bilbiothèques de scripts php

php_flag magic_quotes_gpc Off #pour la sécurité php_flag track_vars On #pour la sécurité

</IfModule> </Directory>

J

<

;

&

:

,

?

.8.

: =

7. Documentation

' -

,,,:

:

$

6

) ,

, >

>##<<<

,

- 0 >

>##<<< & ?

)# & #

.8. >

<<<

(

66! >

<<<

)

/

66! >

<<< ,

)

/ , >

>##<<<I

,

I

) & #P Q#/ /9

,

,

&

Y

>

>##

5

:& , @

)#

:#

:

'd

) a

,

!%/. >

>##<<<

:&

)#

#

,

#

1

,

/

G

@ >

>##<<< ,

@

)

(23)

8. Contrôle de l’intégrité des sources

8.1. Avec PGP

J

)

& . . *%

;

>##<<<

)#

#

#\9e6

=

J

)

)

F

I

1 >

---BEGIN PGP SIGNATURE--- Version: PGP 6.5.1i iQA/AwUAPZrvg4s6YB8IyXXlEQKkpgCeOxSBEXlgyuzEwf6MlZD/5+sjrPcAoNn6 q7jvnn1yVfN4T3JOoy2Xm9Zg =JeQp ---END PGP SIGNATURE---

&

)

&

,B,

?

C

+

>

% pgpk -a KEYS % pgpv apache_1.3.27.tar.gz.asc % pgp -ka KEYS % pgp apache_1.3.27.tar.gz.asc % gpg --import KEYS % gpg --verify apache_1.3.27.tar.gz.asc

8.2. Avec MD5

9:

,,

% md5sum apache_1.3.27.tar.gz

0 ,

*

0

I

1 >

$" 45 $" $"

1

''

'4$

(24)

9. Script de compilation d’apache avec php et modssl

!

I

,

F ,

F

? *

,

;

=

,@ ? ;?

B

=

.8.

,

)

F &

@

;

@

=F +

F A

)F

)

)

;

B

=

%

,

,

@

, ?

,

,

G

,

&

* -!

,

G <

* -!

,

G

@ 3, ;

7

=

,

G

:

&

)

;

: =

,

G

6

6

;66 =

,

G )

0 ,,

< @

&

;0

=

,

G

0

& ,

)

^

*

%

,

G

,

* & ,

*

,

G ,

, )

?

2

#!/bin/sh

#repertoires ou telecharger les sources #www.openssl.org #www.modssl.org #www.apache.org #ftp://ftp.cac.washington.edu/mail/ #www.php.net BUILD_OPENSSL=1 CONFIG_MODSSL=1 CONFIG_APACHE=1 BUILD_IMAP=1 BUILD_PHP=1 BUILD_APACHE=1 SRC_APACHE=apache_1.3.27 SRC_OPENSSL=openssl-0.9.7 SRC_MODSSL=mod_ssl-2.8.12-1.3.27 SRC_IMAP=imap-2002 SRC_PHP=php-4.3.0 DST_APACHE=/usr/local/apache DST_OPENSSL=/usr/local/ssl DST_MODSSL=mod_ssl-2.8.8-1.3.24 DST_IMAP=imap-2002 DST_PHP=php-4.2.1 APACHE_DISABLED_MODULES=--disable-module=proxy \ --disable-module=mod_alias \ --disable-module=mod_rewrite \ --disable-module=mod_userdir \ --disable-module=mod_autoindex \ --disable-module=mod_include \ --disable-module=mod_status \

(25)

if [ ! -d ./Logs ]; then mkdir ./Logs

fi

if [ $BUILD_OPENSSL -eq 1 ]; then echo Openssl

cd ${SRC_OPENSSL} echo " Config"

./config --prefix=${DST_OPENSSL} shared >& ../Logs/openssl_config.log || exit 1 echo " Fin : Config"

echo " Compil" ; make >& ../Logs/openssl_compil.log || exit 1 echo " Fin : Compil"

echo " Install" ; make install >& ../Logs/openssl_install.log || exit 1 echo " Fin : Install"

echo "Openssl fin" cd ..

else

echo Openssl : ignore fi

if [ $CONFIG_MODSSL -eq 1 ]; then echo mod_ssl cd ${SRC_MODSSL} echo " Config" ./configure --with-apache=../${SRC_APACHE} \ --with-ssl=${DST_OPENSSL} \ --with-crt=${DST_APACHE}/conf/ssl.crt/server.crt \ --with-key=${DST_APACHE}/conf/ssl.key/server.key \

--prefix=${DST_APACHE} >& ../Logs/modssl_config.log || exit 1 echo " Fin : Config"

echo "mod_ssl fin" cd ..

else

echo mod_ssl : ignore fi

if [ $CONFIG_APACHE -eq 1 ]; then echo "Apache (preparation)"

cd ${SRC_APACHE} echo " Config"

./configure --prefix=${DST_APACHE} >& ../Logs/apache.log || exit 1 echo " Fin : Config"

echo "Apache fin" cd ..

else

echo "Apache (preparation) : ignore" fi

if [ $BUILD_IMAP -eq 1 ]; then echo imap

cd ${SRC_IMAP} echo " Compil"

make slx >& ../Logs/imap-compil.log || exit 1 echo " Fin : Compil"

echo "imap fin" cd ..

else

echo imap : ignore fi

if [ $BUILD_PHP -eq 1 ]; then echo PHP

(26)

CFLAGS='-O2 -I${DST_OPENSSL}/include' echo " Config" ./configure --with-apache=../${SRC_APACHE} \ --with-gettext \ --with-freetype-dir \ --with-mysql=/usr/ \ --enable-memory-limit=yes \ --with-imap=../${SRC_IMAP} \ --with-zlib-dir=/usr \ --with-jpeg-dir \ --with-png-dir \

--with-gd >& ../Logs/php_config.log || exit 1 echo " Fin : Config"

echo " Compil" ; make >& ../Logs/php_compil.log || exit 1 echo " Fin : Compil"

echo " Install" ; make install >& ../Logs/php_install.log || exit 1 echo " Fin : Install"

echo PHP fin cd ..

else

echo PHP : ignore fi

if [ $BUILD_APACHE -eq 1 ]; then echo Apache cd ${SRC_APACHE} SSL_BASE=${DST_OPENSSL}/include/ EAPI_MM=../mm-1.1.x echo " Config" ./configure --enable-module=ssl \ --enable-shared=ssl \ --prefix=${DST_APACHE} \ --activate-module=src/modules/php4/libphp4.a \ --enable-shared=php4 \

${APACHE_DISABLES_MODULES} >& ../Logs/apache_config.log || (exit 1) echo " Fin : Config"

echo " Compil" ; make >& ../Logs/apache_compil.log || exit 1 echo " Fin : Compil"

echo " Install" ; make install >& ../Logs/apache_install.log || exit 1 echo " Fin : Install"

echo "Apache fin" echo Fin

cd .. else

echo Apache : ignore fi

(27)

10. Exemple de configuration d’une restriction d’accès

10.1. Fichiers AuthUserFile et AuthGroupFile

.

: ,

F

&

*

&

>

10.1.1.

AuthUserFile (/etc/htpasswd)

!

,

@

,

LLL

!

V#0a -#6Ja1"TV

&

66!

;

: ,

66!=

joe:XXX bob:XXX alice:XXX /C=FR/ST=75/O=Maison/OU=Maison Users/CN=homme/emailAddress=homme@home.com:XXX /C=FR/ST=75/O=Maison/OU=Maison Users/CN=femme/emailAddress=femme@home.com:XXX root:XXX

10.1.2.

AuthGroupFile (/etc/htgroups)

Utilisateurs_ssl: "/C=FR/ST=75/O=Maison/OU=Maison Users/CN=homme/emailAddress=ho mme@home.com" "/C=FR/ST=75/O=Maison/OU=Maison Users/CN=femme/emailAddress=femme@ home.com"

Utilisateurs_web1: "/C=FR/ST=75/O=Maison/OU=Maison Users/CN=homme/emailAddress=h omme@home.com" alice joe

Utilisateurs_misc: joe bob

10.2. Globalement dans access.conf

-

*

3

A

>

<Directory /usr/local/apache/htdocs/secure> AllowOverride None

DirectoryIndex index.htm Order allow,deny

Allow from all

AuthName "Acces restreint" AuthType Basic

AuthUserFile /etc/htpasswd require user joe bob alice </Directory>

!

@

:

,B,

<Directory /usr/local/apache/htdocs/secure> AllowOverride None DirectoryIndex index.htm Order allow,deny

Allow from all

AuthName "Acces restreint" AuthType Basic

AuthUserFile /etc/htpasswd AuthGroupFile /etc/htgroups require user alice

require group Utilisateurs_misc </Directory>

(28)

<Directory /usr/local/apache/htdocs/secure> AllowOverride None

DirectoryIndex index.htm Order allow,deny

Allow from all

AuthName "Acces restreint" AuthType Basic AuthUserFile /etc/htpasswd require valid-user </Directory>

9 &

@

:

,

*

&

;

=

<Directory /usr/local/apache/htdocs/secure>

AllowOverride AuthConfig # activation du support de fichier htaccess DirectoryIndex index.htm

Order allow,deny Allow from all

#il est possible de definir un controle d’acces qui pourra etre modifier par un fichier htaccess s’il existe

</Directory>

10.3. Locale via un fichier .htaccess

0

,B,

?

&

& ,

C

>

.

: ,

A

F

&

>

Order allow,deny Allow from all

AuthName "Acces restreint" AuthType Basic

AuthUserFile /etc/htpasswd AuthGroupFile /etc/htgroups

(29)

11. Exemple de configuration SSL

11.1. Httpd.conf

? *

&

? *

&

)

=

<IfDefine SSL> AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl </IfDefine> <IfModule mod_ssl.c> SSLPassPhraseDialog builtin SSLSessionCache dbm:/usr/local/apache/logs/ssl_scache SSLSessionCacheTimeout 300 SSLMutex file:/usr/local/apache/logs/ssl_mutex SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

SSLLog /usr/local/apache/logs/ssl_engine_log SSLLogLevel info </IfModule> <IfDefine SSL> Listen 443 <VirtualHost *:443> DocumentRoot "/usr/local/htdocs" ServerName www.mondomaine.com ServerAdmin www@mondomaine.com ErrorLog /usr/local/apache/logs/www_ssl_error_log TransferLog /usr/local/apache/logs/www_ssl_access_log SSLEngine on SSLCipherSuite ALL:!ADH:!EXP56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /usr/local/apache/conf/ssl.crt/www.mondomaine.com.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/www.mondomaine.com.key SSLCertificateChainFile /usr/local/apache/conf/ssl.crt/ca.crt SSLCACertificatePath /usr/local/apache/conf/ssl.crt SSLCACertificateFile /usr/local/apache/conf/ssl.crt/ca.crt SSLCARevocationPath /usr/local/apache/conf/ssl.crl <Files ~ "\.(cgi|shtml|phtml|php|php3?)$"> SSLOptions +StdEnvVars </Files>

SetEnvIf User-Agent ".*MSIE.*" \

nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog /usr/local/apache/logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> </IfDefine>

11.2. Access.conf

11.2.1.

Authentification SSL avec contrôle d’accès dans des

fichiers .htaccess

<Directory /usr/local/apache/htdocs/secure AllowOverride AuthConfig

DirectoryIndex index.htm Order allow,deny

(30)

Allow from all <IfDefine SSL> SSLRequireSSL

SSLVerifyClient optional # il est possible de se connecter sans certificats pour de simples utilisateurs declares dans htacccess par exemple SSLOptions +StdEnvVars +StrictRequire +FakeBasicAuth

</IfDefine> </Directory>

&

&

%

A

&

)

>

CN=root/O=MaCA/OU=Maison/emailAddress=root@home.com:xxj31ZMTZzkVA

!

::A

f/Jf+O %

,

D

<

E

@

&

%

&&

*

3

&

,,

>

Order allow,deny Allow from all

AuthName "Acces restreint" AuthType Basic

AuthUserFile /etc/htpasswd

require user "CN=root/O=MaCA/OU=Maison/emailAddress=root@home.com"

11.2.2.

Authentification SSL avec contraintes

*

3

*

&

F

` O Q

%

*

.

&

)

0%

7

, *

<Directory /usr/local/apache/htdocs/secure> AllowOverride None

DirectoryIndex index.php # pages dynamiques générées par PHP Order allow,deny

Allow from all

<IfModule mod_php4.c> # configuration de PHP php_value include_path '/usr/local/lib/php:.' php_flag magic_quotes_gpc Off

php_flag track_vars On </IfModule>

<IfDefine SSL> SSLRequireSSL

SSLVerifyClient require # il n’est pas possible de se connecter sans certificat

SSLOptions +StdEnvVars +StrictRequire

SSLRequire %{SSL_CLIENT_S_DN_CN} in {"root"} # le Common Name doit être root

</IfDefine> </Directory>

(31)

12. Helloworld PHP : index.html

<html> <head> <title>Exemple</title> </head> <body> <?php

write "Bonjour, je suis un script PHP!" ?>

</body> </html>

(32)

13. Historique des version

F '#

#

> . , 3

!

F

#

#

>

,

&

*

:

Figure

Updating...

References

Updating...