Web-palvelin

Tänne ohjelmat
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Web-palvelin

Viesti Kirjoittaja eero »

Hallinta tapahtuu ssh:n yli. Ei muuten. Käyttiksenä on Debian 7

Asennetaan normaaliin tapaan
sudo apt-get install apache2 php5 apache2.2-common libapache2-mod-auth-mysql php5-mysql mysql-server
sudo apt-get install php5-gd

Poistetaan turha virhe RAID:sta koska systeemi on Vmwaressa:
/etc/init.d/mpt-statusd stop
apt-get remove mpt-status

Asennetaan moduulit ohjaus ja ssl-salaus päälle:
sudo a2enmod rewrite
sudo a2enmod ssl


Aennetaan imagemagick:
sudo apt-get install imagemagick

Otetaan php:ssä käyttöön:
sudo apt-get install php5-imagick

Asennetaan phpmyadmin
sudo apt-get install phpmyadmin
Lisätään polkuun /etc/phpmyadmin/apache.conf rivi
NameVirtualHost *:443
Alias /phpmyadmin /usr/share/phpmyadmin

Pakotetaan salaus päälle /etc/phpmyadmin/config.inc.php lisäämällä rivi
$cfg['ForceSSL'] = TRUE;


Kopioidaan tarvittavat tiedostot polkuun /var/www/poytyankunta
Viedään kantaan vanhat tiedot phpmyadmin-liittymällä. Muista zipata tietokanta.

Luodaan hakemistoon /etc/apache2/sites-available tiedosto poytyankunta

Tiedoston sisältö:

Koodi: Valitse kaikki

    <VirtualHost *:80>
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !80
    RewriteRule ^/(.*)$ http://www.poytya.fi/$1 [R,L]

#    RewriteEngine on
#    RewriteCond %{SERVER_PORT} !443
#    RewriteRule ^/intranet/(.*)$ https://www.poytya.fi/intranet/$1 [R,L]

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !443
    RewriteRule ^/verkot/(.*)$ https://www.poytya.fi/verkot/$1 [R,L]

       ServerAdmin webmaster@localhost
       ServerName www.poytya.fi
       ServerAlias poytya.fi

       DocumentRoot /var/www/poytyankunta
       <Directory />
          Options FollowSymLinks
          AllowOverride None
       </Directory>
       <Directory /var/www/poytyankunta/>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride None
          Order allow,deny
          allow from all
       </Directory>

       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
       <Directory "/usr/lib/cgi-bin">
          AllowOverride None
          Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
          Order allow,deny
          Allow from all
       </Directory>

       ErrorLog /var/log/apache2/poytyankunta_error.log

       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn

       CustomLog /var/log/apache2/poytyankunta_access.log combined

        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>

    </VirtualHost>
Aktivoidaan sivusto:
sudo a2ensite poytyankunta

Käynnistetään apache uusiksi
/etc/init.d/apache2 restart

Samalla tavalla luodaan muut sivustot. Esimerkkinä terkkari.
Kopioidaan tiedostot polkuun /var/www/terkkari/
Luodaat tiedosto terkkari polkuun /etc/apache2/sites-available
Tiedosto:

Koodi: Valitse kaikki

    <VirtualHost *:80>
       ServerAdmin eero.lehtinen@poytya.fi
       ServerName www.tk.poytya.fi
       ServerAlias tk.poytya.fi

       DocumentRoot /var/www/terkkari
       <Directory />
          Options FollowSymLinks
          AllowOverride None
       </Directory>
       <Directory /var/www/terkkari/>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride None
          Order allow,deny
          allow from all
       </Directory>

       ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
       <Directory "/usr/lib/cgi-bin">
          AllowOverride None
          Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
          Order allow,deny
          Allow from all
       </Directory>

       ErrorLog /var/log/apache2/terkkari_error.log

       # Possible values include: debug, info, notice, warn, error, crit,
       # alert, emerg.
       LogLevel warn

       CustomLog /var/log/apache2/terkkari_access.log combined

        Alias /doc/ "/usr/share/doc/"
        <Directory "/usr/share/doc/">
            Options Indexes MultiViews FollowSymLinks
            AllowOverride None
            Order deny,allow
            Deny from all
            Allow from 127.0.0.0/255.0.0.0 ::1/128
        </Directory>
    </VirtualHost>
Sallitaan sivusto:
sudo a2ensite terkkari

Käynnistetään apache uusiksi
/etc/init.d/apache2 restart

Jos halutaan estää sivusto
sudo a2dissite terkkari
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Hakemisto-oikeudet

Viesti Kirjoittaja eero »

phpbb3 hakemisto-oikeudet
config.php
666 before installation
644 after installation
All other files - 644
All directories - 755
There are some exceptions when it comes to directory permissions,
The files directory - 777
The cache directory - 777
The store directory - 777
The images/avatars/upload directory - 777

CMS Made Simple:

tmp/templates_c/ - 757
tmp/cache/ - 757
config.php - 646
uploads/ - 757
uploads/images - 757
modules - 757
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Sertifikaatit

Viesti Kirjoittaja eero »

Tarvittavat sertifikaattitiedostot ja polut:

/etc/apache2/poytya.fi.key
/etc/apache2/poytya.fi.intermediate.crt
/etc/apache2/poytya.fi.crt
Sertifikaatit.zip
default-ssl:

Koodi: Valitse kaikki

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/poytyankunta
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/poytyankunta/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

	#   SSL Engine Switch:
	#   Enable/Disable SSL for this virtual host.
	SSLEngine on

	SSLCertificateKeyFile /etc/apache2/poytya.fi.key
	SSLCertificateChainFile /etc/apache2/poytya.fi.intermediate.crt
	SSLCertificateFile /etc/apache2/poytya.fi.crt


	<FilesMatch "\.(cgi|shtml|phtml|php)$">
		SSLOptions +StdEnvVars
	</FilesMatch>
	<Directory /usr/lib/cgi-bin>
		SSLOptions +StdEnvVars
	</Directory>

	BrowserMatch "MSIE [2-6]" \
		nokeepalive ssl-unclean-shutdown \
		downgrade-1.0 force-response-1.0
	# MSIE 7 and newer should be able to use keepalive
	BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

FTP-palvelin

Viesti Kirjoittaja eero »

Asennetaan FTP-palvelin:
sudo apt-get install proftpd

Avataan tiedosto /etc/proftpd/proftpd.conf

Poistetaan ipv6 käytöstä
UseIPv6 off

Lisätään tiedoston loppuun:
<Global>
RequireValidShell off
</Global>
DefaultRoot ~ ftpkayttajat
<Limit LOGIN>
DenyGroup !ftpkayttajat
</Limit>


Käynnistetään palvelu uusiksi:
/etc/init.d/proftpd restart

Nyt on kirjautuminen ilman tunnuksia estetty.

Luodaan käyttäjäryhmä ftpkayttajat
addgroup ftpkayttajat

Luodaan käyttäjä ftptesti jonka root-hakemisto on terkkari
adduser ftptesti -shell /bin/false -home /var/www/terkkari

Liitetään käyttäjä ftptesti käyttäjäryhmään ftpkayttajat
adduser ftptesti ftpkayttajat

Sitten pitää vielä antaa oikeus ladata tiedostoja palvelimelle
chown -R ftptesti /var/www/terkkari

Sitten muistin virkistämiseksi:
Salasanan vaihto:
passwd ftptesti
Käyttäjän poisto:
userdel ftptesti
Käyttäjän poisto ryhmästä:
deluser user group

Anonyymikirjautumista ei sallita
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Postin lähetys

Viesti Kirjoittaja eero »

Asennetaan sendmail
sudo apt-get sendmail-bin sendmail

Lisää tiedostoon /etc/php5/apache2/php.ini polku /usr/sbin/sendmail -t -i ja posta riviltä kommenttimerkki. Rivi näyttää sen jälkeen tältä:
sendmail_path = /usr/sbin/sendmail -t -i

Jos hluaa testata niin luo tiedoston ja siirtyy sivulle ja posti kulkee...

Koodi: Valitse kaikki

<?php 
   mail('eero.lehtinen@elehtinen.fi', 'Testiposti', 'Toimiiko??? Entä ääkköset?');
   echo 'Lähetetty matkaan'; // I use this to check that script is end the execution 
?>
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Salasanakysely intranet-sivuille

Viesti Kirjoittaja eero »

Lisää polkuun /etc/apache2/apache2.conf tiedostoon:
  • # OMA LISAYS ALKAA
    <Directory /var/www/poytyankunta/intranet/>
    Options Indexes FollowSymLinks
    AllowOverride all
    </Directory>
    #OMA LISAYS LOPPUU
Luo polkuun /var/www/poytyankunta/intranet tiedosto .htaccess
Tiedoston sisältö on:
  • order deny,allow
    deny from all
    # Sallitaan liikenne verkoista ilman salasanakyselyä
    allow from 192.168.31.0/24
    allow from 192.168.41.0/24
    allow from 192.168.45.0/24
    allow from 192.168.51.0/24
    allow from 192.168.60.0/24
    # allow from 62.121.36.122
    AuthType Basic
    AuthUserFile /var/tunnukset/.kayttajat-intranet
    AuthName "Intranet-sivusto vaatii kirjautumisen"
    require valid-user
    Satisfy any
    # ErrorDocument 401 http://www.poytya.fi/401.html
Lopuksi luodaan vielä polkuun /var/tunnukset/.kayttajat-intranet Käyttäjätunnus:Salasanalista
Komento on htpasswd -c /var/tunnukset/.kayttajat-intranet ekakayttaja

ÄLÄ LAITA SALASANAA. EI TOIMI. Sitä kysytään.

Muut käyttäjät luodaan komennolla htpasswd /var/tunnukset/.kayttajat-intranet tokakayttaja

ÄLÄ LAITA SALASANAA. EI TOIMI. Sitä kysytään.

Määrityksiä salasanoille:
  • -c luo uuden tiedoston (Jos on jo tiedosto, niin ÄLÄ KÄYTÄ)
    -m kryptaa MD5-muotoon
    -d cryptaa salasanan (Oletus. Ei välttämättä tarvi)
    -p ei kryptaa salasanaa (Ei toimi muuta kuin m$:ssä)
    -D poistaa käyttäjän
Jos joutuu muuttamaan käyttäjän salasana niin kannattaa poistaa käyttäjä ja luoda uusiksi.
eero
Site Admin
Viestit: 329
Liittynyt: 07 Marras 2007 20:17

Varmistus

Viesti Kirjoittaja eero »

Varmistukset otetaan root-hakemistoon ja kopioidaan sieltä ftp:llä varmistuskoneelle.
Scripti varmistus.sh ajetaan joka yö kello 12:00

Scripti on:

Koodi: Valitse kaikki

#!/bin/sh

NOW=$(date +"%d-%m-%Y")

### Web-palvelimen tallennushakemisto ###
varmistushakemisto="/root/varmistus"

### Poistetaan ja luodaan varmistushekemisto ###
rm -R $varmistushakemisto
mkdir $varmistushakemisto

### Hakemistot jotka varmistetaan ###
DIRS="/etc /var/www"
BACKUP=/root/varmistus
INCFILE="/root/tar-inc-backup.dat"
DAY=$(date +"%a")

### MySQL asetukset ###
MUSER="root"
MPASS="salasana"
MHOST="localhost"
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"

### FTP palvelimen asetukset. Asiakasohjelmana ncftp ###
 FTPU="varmistus"
 FTPP="varmistus"
 FTPS="192.168.60.19"
 NCFTP="$(which ncftpput)"

### Varmistetaan tiedostot ###
 FILE="tiedostot.tar.gz"
 tar -zcvf $BACKUP/$FILE $DIRS

### Varmistetaan kannat. Jokaiselle kannalle tulee oma paketti ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
 FILE=$BACKUP/$db.gz
 $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 > $FILE
done


### Siirretaan varmistukset varmistusasemalle ###
### Kaytetaan ncftp###
ncftp -u"$FTPU" -p"$FTPP" $FTPS<<EOF
 mkdir $NOW
 mkdir $FTPD/$NOW
 cd $FTPD/$NOW
 lcd $varmistushakemisto
 mput *
 quit
 EOF
Scriptille annetava suoritusoikeudet komennolla:
chmod a+x varmistus.sh

Ajastetaan suoritettavaksi keskiyöllä:
gedit /var/spool/cron/crontabs/root

Lisätään rivi:
@midnight /root/varmistus.sh
Vastaa Viestiin