jak uruchomić serwer WWW Apache w osobnym środowisku




LinuxPub - HowTo - Apache chroot









Orginal znajduje sie pod adresem : www.linuxpub.w.pl

Apache chroot mini HOWTO
Autor: Grzegorz Ciepłucha
grzegorz.cieplucha@up.gov.pl
v 1.1, 27 Październik 2000



Dokument opisuje w jak najprostszy sposób uruchomić serwer WWW Apache w
osobnym środowisku.
Rozwiązanie to zwiększa bezpieczeństwo naszego systemu. Opis oparty na
przykładzie standardowej dystrybucji Redhat 6.2




1.System
2.Instalacja

2.1 Zatrzymanie Apache'a
2.2 Tworzenie użytkownika
2.3 Tworzenie katalogów
2.4 Biblioteki
2.5 Kopiowanie plików i bibliotek
2.6 Modyfikacja plików
2.7 Zabezpieczanie plików
2.8 Usuwanie plików i katalogów
2.9 Restart syslog'a, Start Apache'a
3.0 Test


4.Uwagi







1. System
Standardowa instalacja dystrybucji RedHat 6.2, Jądro 2.2.14, Apache 1.3.12.





2. Instalacja


2.1 Zatrzymanie Apache'a
Jeżeli mamy uruchomiony serwer to zatrzymujey go:

[root@linuks /]# /etc/rc.d/init.d/httpd stop



2.2 Tworzenie użytkownika
Tworzymy nowego użytkownika 'www':

[root@linuks /]# useradd -c "Apache Server" -u 80 -s /bin/false -r -d
/home/httpd www 2>/dev/null ||:


2.3 Tworzenie katalogów
Tworzymy nową strukturę katalogów w której będzie działał nasz Apache:


[root@linuks /]# mkdir /chroot
[root@linuks /]# mkdir -p /chroot/httpd/dev
[root@linuks /]# mkdir -p /chroot/httpd/lib
[root@linuks /]# mkdir -p /chroot/httpd/etc
[root@linuks /]# mkdir -p /chroot/httpd/usr/sbin
[root@linuks /]# mkdir -p /chroot/httpd/var/run
[root@linuks /]# mkdir -p /chroot/httpd/var/lock
[root@linuks /]# mkdir -p /chroot/httpd/var/log/httpd
[root@linuks /]# mkdir -p /chroot/httpd/home/httpd


Nadajemy prawa do katalogu

[root@linuks /]# chmod 750 /chroot/httpd/var/log/httpd


2.4 Biblioteki
Sprawdzamy z jakich bibliotek korzysta Apache:


[root@linuks /]# ldd /usr/sbin/httpd

Powinieneś otrzymać podobną listę do tej:

libm.so.6 => /lib/libm.so.6 (0x4001b000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4003a000)
libdb.so.3 => /usr/lib/libdb.so.3 (0x40067000)
libdl.so.2 => /lib/libdl.so.2 (0x40121000)
libc.so.6 => /lib/libc.so.6 (0x40124000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)


2.5 Kopiowanie plików i bibliotek
Kopiujemy wszystkie wymagane pliki przez Apache'a i biblioteki do katalogów
które przed chwilą utworzyliśmy:


[root@linuks /]# cp -r /etc/httpd /chroot/httpd/etc/
[root@linuks /]# cp -r /home/httpd/cgi-bin /chroot/httpd/home/httpd
[root@linuks /]# cp -r /home/httpd/html /chroot/httpd/home/httpd
[root@linuks /]# cp -r /home/httpd/icons /chroot/httpd/home/httpd
[root@linuks /]# cp /usr/sbin/httpd /chroot/httpd/usr/sbin/
[root@linuks /]# cp /lib/libm.so.6 /chroot/httpd/lib/
[root@linuks /]# cp /lib/libcrypt.so.1 /chroot/httpd/lib/
[root@linuks /]# cp /lib/libdb.so.3 /chroot/httpd/lib/
[root@linuks /]# cp /lib/libdl.so.2 /chroot/httpd/lib/
[root@linuks /]# cp /lib/libc.so.6 /chroot/httpd/lib/
[root@linuks /]# cp /lib/ld-linux.so.2 /chroot/httpd/lib/
[root@linuks /]# cp /lib/libnss_compat* /chroot/httpd/lib/
[root@linuks /]# cp /lib/libnss_dns* /chroot/httpd/lib/
[root@linuks /]# cp /lib/libnss_files* /chroot/httpd/lib/
[root@linuks /]# cp /etc/passwd /chroot/httpd/etc
[root@linuks /]# cp /etc/group /chroot/httpd/etc
[root@linuks /]# cp /etc/mime.types /chroot/httpd/etc
[root@linuks /]# cp /etc/resolv.conf /chroot/httpd/etc
[root@linuks /]# cp /etc/hosts /chroot/httpd/etc
[root@linuks /]# cp /etc/nsswitch.conf /chroot/httpd/etc
[root@linuks /]# cp /etc/localtime /chroot/httpd/etc


Tworzymy specjalny plik i nadajemu mu odpowiednie prawa:


[root@linuks /]# mknod /chroot/httpd/dev/null c 1 3
[root@linuks /]# chmod 666 /chroot/httpd/dev/null


2.6 Modyfikacja plików
Modyfikujemy pliki (możesz użyć swojego ulubionego edytora vi, joe, mcedit
...):



[root@linuks /]# joe /chroot/httpd/etc/httpd/conf/httpd.conf

Odszukujemy linie:

User nobody
Group nobody

i zmieniamy na:

User www
Group www



[root@linuks /]# joe /chroot/httpd/etc/passwd

Usuwamy wszystkie wpisy z wyjątkiem tego:
www:x:80:80::/home/httpd:/bin/false


[root@linuks /]# joe /chroot/httpd/etc/group

Usuwamy wszystkie wpisy z wyjątkiem tego:
www:x:80:

Musimy teraz poinformować demona syslogd o poczynionych zmianach:


[root@linuks /]# joe /etc/rc.d/init.d/syslog


Odszukujemy linię:
daemon syslogd -m 0

i zmieniamy ją na:
daemon syslogd -m 0 -a /chroot/httpd/dev/log


[root@linuks /]# joe /etc/logrotate.d/apache

Ustawiamy nowe ścieżki do logów:


/chroot/httpd/var/log/httpd/access_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null ||
true
endscript
}

/chroot/httpd/var/log/httpd/agent_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null ||
true
endscript
}

/chroot/httpd/var/log/httpd/error_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null ||
true
endscript
}

/chroot/httpd/var/log/httpd/referer_log {
missingok
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null ||
true
endscript
}



Modyfikujemy skrypt uruchamiający Apache'a:


[root@linuks /]# joe /etc/rc.d/init.d/httpd


Odszukujemy linię:
daemon httpd

i zmieniamy ją na:
/usr/sbin/chroot /chroot/httpd /usr/sbin/httpd

Szukamy również linii:
rm -f /var/run/httpd.pid

i zmieniamy ją na:
rm -f /chroot/httpd/var/run/httpd.pid


2.7 Zabezpieczanie plików
Zabezpieczamy pliki konfiguracyjne:

[root@linuks /]# chattr +i /chroot/httpd/etc/passwd
[root@linuks /]# chattr +i /chroot/httpd/etc/group
[root@linuks /]# chattr +i /chroot/httpd/etc/resolv.conf
[root@linuks /]# chattr +i /chroot/httpd/etc/hosts
[root@linuks /]# chattr +i /chroot/httpd/etc/nsswitch.conf
[root@linuks /]# chattr +i /chroot/httpd/etc/httpd/conf/httpd.conf



2.8 Usuwanie plików i katalogów
Usuwamy niepotrzebne już pliki i katalogi:

[root@linuks /]# rm -rf /var/log/httpd/
[root@linuks /]# rm -rf /etc/httpd
[root@linuks /]# rm -rf /home/httpd
[root@linuks /]# rm -f /usr/sbin/httpd



2.9 Restart syslog'a, Start Apache'a
Na koniec restartujemy syslog'a i uruchamiamy Apache'a, i sprawdzamy czy
działa już we własnym środowisku:

[root@linuks /]# /etc/rc.d/init.d/syslog restart
[root@linuks /]# /etc/rc.d/init.d/httpd start



3.0 Test
Sprawdzamy listę procesów:

[root@linuks /]# ps ax | grep httpd

23993 ? S 0:01 httpd
23994 ? S 0:01 httpd
23995 ? S 0:01 httpd
23996 ? S 0:00 httpd


Wydajemy polecenie:

[root@linuks /]# ls -la /proc/numer_procesu/root/


np:

[root@linuks /]# ls -la /proc/23993/root/



Jeżeli polecenie zwróci Ci taką listę:

dev
etc
home
lib
usr
var


to znaczy, że wszystko działa !!! I Apache działa już we własnym środowisku.





4. Uwagi
Jeżeli wykonasz wszystkie czynności opisane w tym dokumencie a Apache nie
bedzię chciał się uruchomić, dokładnie
czytaj komunikaty które będzie wyświetlał podczas startu. Z reguły Apache
podaje jakich plików mu brakuje. Wystarczy
wtedy odszukać plik którego potrzebuje i skopiować go do identycznego katalogu
tylko że znajdującego się już w katalogu
/chroot. Na przykład, jeżeli masz skompilowanego Apache'a z obslugą modułu
mod_perl musisz skopiować wszystkie pliki wymagane przez ten moduł do
odpowiednich katalogów w /chroot (tj. "/usr/lib/perl5" do katalogu
"/chroot/httpd/usr/lib/perl5/", nie zapomij o stworzeniu wcześniej
katalogu "/chroot/httpd/usr/lib/perl5").

Powyższy opis można wykorzystać również w innych dystrybucjach, należy tylko
pamiętać, że dystrybucje mogą mieć opisywane pliki w innych katalogach, część
plików może inaczej się nazywać.








Wyszukiwarka

Podobne podstrony:
Modyfikacje Win Xp Jak Postawić Serwer Www
02 Linux Konfiguracja serwera WWW APACHE
Apache Zabezpieczenia aplikacji i serwerów www
04 Zadanie serwer WWW
Definiowanie katalogów wirtualnych serwera WWW
Jak Stworzyc Serwer FTP
jak uruchomić program jako usługę w xp
Czym sa srodowiskowe siły społeczne jak można je wykorzystać dla zintegrowania srodowiska(1)
Czym sa srodowiskowe siły społeczne jak można je wykorzystać dla zintegrowania srodowiska(1)
instalacja serwera www cwiczenia
jak zrobic witraz (www instrukcja pl)
Corel Paint Shop Pro Photo x2 Instrukcja jak uruchomić bez rejestracjisDokument tekstowy (2)
05 WAI serwery www 13

więcej podobnych podstron