Pokazywanie postów oznaczonych etykietą apache. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą apache. Pokaż wszystkie posty

czwartek, 28 października 2010

Generowanie kluczy ssl do apache


Tworzenie klucza:
#openssl req -new > new.cert.csr

Usuwanie hasła z klucza:
#openssl rsa -in privkey.pem -out new.cert.key

Podpisanie klucza:
#openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 365

Dopisanie do httpd.conf:
SSLEngine on
SSLCertificateFile /sciezka/do/new.cert.cert
SSLCertificateKeyFile /sciezka/do/new.cert.key

wtorek, 14 września 2010

session cache & accept filter error apache

Podczas uruchamiania serwera apache pod freebsd, można spotkać 2 problemy, które wymieniłem w temacie. 'Session cache' rozwiążemy edytując /etc/hosts (dodajemy ip + nazwę hosta serwera), a następnie w httpd.conf w ServerName wstawiamy nazwę hosta + można dodać port na którym serwerek nasłuchuje.

'accept filter error' rozwiążemy dodająć odpowiedni moduł do kernela:
#kldload accf_http
aby moduł ładował się przy starcie systemu, należy w pliku /boot/loader.conf umieścić następujący wpis accf_http_load="yes".

poniedziałek, 13 września 2010

httpd.conf

Krótki opis opcji httpd.conf

ServerRoot "/usr/local" #Górna granica drzewa katalogów, gdzie znajdują się pliki konifguracyjne, błędów oraz logi.

Listen 80 #Opcja ta daje nam możliwość przypisania serwera apache do konkretnego portu czy też adresu IP.

LoadModule authn_file_module libexec/apache22/mod_authn_file.so (..)#Wsparcie modułów DSO (Dynamic Shared Object). Składnia: LoadModule nazwa_modułu ścieżka_do_modułu. Moduły pozwalają nam na rozszerzenie funkcjonalności serwera, możemy je statycznie wkompilowac w httpd lub skompilowac jako DSO, dzięki czemu będą one oddzielone od httpd. Moduły DSO możemy skompilować podczas budowy serwera lub w późniejszym czasie z wykorzystaniem apxs (apache extension tool). Aby móc w ogóle skorzystać z DSO, nalezy podczas kompilacji serwera dodać obsługę mod.so (--enable-module=shared). Jeżeli dodamy moduł w httpd.conf, musimy zrestartować serwer by dany moduł został uruchomiony.

User www
Group www #Zmiana użytkownika i grupy dla demona httpd.

ServerAdmin mail@domena.com #Mail administratora serwera.

ServerName www.example.com:80 #Nazwa oraz port serwera w celu własnej identyfikacji, w przypadku braku zarejestrowanej nazwy hostu w DNS, wstawiamy adres IP

DocumentRoot "/usr/local/www/apache22/data" #Katalog z którego będziemy udostępniać dokumenty.

#Konfiguracja praw dostępu dla katalogów w których apache udostępnia poszczególne usługi. Przykład z httpd.conf polityki domyślnego blokowania:

<Directory />
  AllowOverride None
  Order deny, allow
  Deny from all
</Directory>

#Przykładowa kontrola udostępniania /usr/local/www/apache22/data
<Directory "/usr/local/www/apache22/data">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#Options odpowiada za to jakie cechy będą dostępne dla wybranego katalogu. Możemy wybrać następujące opcje: None (brak cech), All, ExecCGI (zezwalamy wykonywania skryptów CGI), FollowSymLinks (Serwer będzie podążać za symbolicznymi linkami w katalogu), Includes ('inkludownie' po stronie serwera jest dozwolone), IncludesNOEXEC (jak wcześniej tylko, że ze zezwalamy na użycie #exec cmd / #exec cgi), Indexes (jeżeli nastąpiło żadanie URLa, który mapuje do katalogu, a nie mamy zdefiniowanej dyrektywy DirectoryIndex, która informuje serwer o zasobach jakie ma szukać w przypadku gdy klient zażąda listowania katalogu np. jakisadres.pl/download/ to opcja Indexes spowoduje, że serwer sam wygeneruje listing żadania.), MultiViews (zezwalamy na użycie, wykorzystując moduł mod_negotiation), SymLinksIfOwnerMatch (serwer będzie podąrzać tylko za symbolicznymi linkami, których docelowe katalogi/plik są własnością użytkownika o takim samym id linku).
Opcje nie łączą się, wybierana jest najbardziej odpowiednia. Wyjątkiem jest gdy postawimy '+' lub '-' przed opcją. Domyślną wartością jest 'All'.

DirectoryIndex index.html #wspomniałem wyżej o tej opcji..

ErrorLog "/var/log/httpd-error.log" #Miejsce docelowe logu z błędami

LogLevel warn #Kontrola informacji, które znajdują się w error-log, możemy określić następujący poziom: debug, info, notice, warn, error, crit, alert, emerg

ErrorDocument XXX odpowiedź #Określamy własną odpowiedź na wybrany błąd serwera ("XXX"). Mamy 3 możliwości: zwykły tekst, lokalne przekierowanie, zewnętrzne przekierowanie. Na przykład:
ErrorDocument 404 /brak.html
ErrorDocument 404 "Brak strony"
ErrorDocument 404 http://www.google.pl
ErrorDocument 404 "/cgi-bin/jakassciezka.pl"

EnableNMAP off
EnableSendfile off #Zwiększa wydajność serwera jeżeli system obsługuje transport plików te metody (pliki dostarczane są za pomocą 'memory-mapping' albo 'sendfile syscall').

Dodatkowa konfiguracja opisana w pliku httpd.conf dotyczy głównie modułów, które znajdziemy w katalogu 'extra'. Dołączamy je za pomocą opcji Include, na przykład:
Include etc/apache22/extra/httpd-mpm.conf

Dużo podstawowych modułów możemy skonfigurować za pomocą tagów <IfModule id_modułu></IfModule> na przykład moduł alias:
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/usr/local/www/apache22/cgi-bin/"
</IfModule>

Szczegółowy spis modułów znajdziemy na stronie tutaj.

edit:
Po wgraniu i skonfigurowaniu php5 na nasz serwer należy dodać do httpd.conf opcję, która pozwoli prawidłowo wyświetlać zawartość *.php, czyli:
AddType application/x-httpd-php-source phps (testowane pod debianem)
 
Bardzo fajny moduł, który powoduje, że jeśli udostępniamy miejsce na
naszym serwerze innym użytkownikom, by mogli sami założyć własną witrynę
powinniśmy skorzystać z modułu UserDir. Szczegółowy opis znajduje się tutaj. 
Zgodnie z zaleceniami trzeba pamiętać by zablokować taką 
możliwośc dla konta root:
UserDir disabled root

Natomiast wpis:
UserDir public_html /lub/ UserDir /home/*/public_html
sprawi, że user posiadjący w swoim domowym katalogu katalog public_html
będzie mógł w nim opublikować swoją stronę www.