Ero sivun ”Tiedonsiirto www-palvelimelle” versioiden välillä
LP (keskustelu | muokkaukset) (→Normaalikäyttäjät: lukuoikeudet palvelimelle: kaksi tapaa; cron-chmod) |
Pb (keskustelu | muokkaukset) pEi muokkausyhteenvetoa |
||
Rivi 1: | Rivi 1: | ||
Tiedostojen siirton WWW-palvelimelle on useampia tapoja, joista tietty palvelin tai palveluntarjoaja (tietylle asiakkaalle) sattaa tarjota yhtä tai useampia. Useimille protokollille on sekä | Tiedostojen siirton WWW-palvelimelle on useampia tapoja, joista tietty [[palvelin]] tai palveluntarjoaja (tietylle asiakkaalle) sattaa tarjota yhtä tai useampia. Useimille protokollille on sekä [[komentorivi]]pohjaisia että [[GUI|graafisia]] [[GUI|edustaohjelmia]]. | ||
* [[SSH]]-pohjainen tiedonsiirto, useimmiten [[SCP|scp]]- tai [[SFTP|sftp]]-ohjelmien kautta. Myös [[rsync]] voi käyttää SSH:ta. SSH käyttää salakirjoitusta sekä salasanojen että itse datan välittämiseen. Palvelin tunistetaan julkisen avaimen avulla ja asiakas (yleensä) joko julkisella avaimella tai salasanalla. SSH on nykyään yleisin suositeltava yhteystapa. | * [[SSH]]-pohjainen tiedonsiirto, useimmiten [[SCP|scp]]- tai [[SFTP|sftp]]-ohjelmien kautta. Myös [[rsync]] voi käyttää SSH:ta. SSH käyttää salakirjoitusta sekä salasanojen että itse datan välittämiseen. Palvelin tunistetaan julkisen avaimen avulla ja asiakas (yleensä) joko julkisella avaimella tai salasanalla. SSH on nykyään yleisin suositeltava yhteystapa. | ||
Rivi 25: | Rivi 25: | ||
Jos WWW-sivustolle tiedostoja siirtävillä käyttäjillä on lupa kirjautua palvelimelle normaaleina käyttäjinä, SSH on luontevin vaihtoehto. Unix-maailmassa kopiointiohjelmia [[SCP|scp]] ja [[SFTP|sftp]] käytetään yleensä komentoriviltä, mutta graafisia edustaohjelmia voi halutessaan käyttää (esim. [[nautilus]], [[gftp]] tai [[filezilla]]). Windowsissa asiakasohjelmat joutuu yleensä erikseen asentamaan (esim filezilla tai WinSCP). | Jos WWW-sivustolle tiedostoja siirtävillä käyttäjillä on lupa kirjautua palvelimelle normaaleina käyttäjinä, SSH on luontevin vaihtoehto. Unix-maailmassa kopiointiohjelmia [[SCP|scp]] ja [[SFTP|sftp]] käytetään yleensä komentoriviltä, mutta graafisia edustaohjelmia voi halutessaan käyttää (esim. [[nautilus]], [[gftp]] tai [[filezilla]]). Windowsissa asiakasohjelmat joutuu yleensä erikseen asentamaan (esim filezilla tai WinSCP). | ||
Palvelinpuolella ei tarvitse tehdä mitään, kunhan käyttäjille kertoo minne tiedostot kuuluu asentaa (usein /home/käyttäjä/public_html tai /srv/www/mitälie) ja huolehtii [[tiedoston oikeudet|tiedostojen oikeuksista]]. Jälkimmäisen osalta artikkeli [[Kansion yhteiskäyttö ryhmässä|Hakemiston yhteiskäyttö]] voi olla lukemisen arvoinen. Yleensä joko annetaan kaikille tiedostojen lukuoikeus ja hakemistojen suoritusoikeus ([[umask]] 022 tai [[chmod]] a+rX) tai asetetaan hakemiston [[ryhmä]]ksi palvelimen ryhmä ([[chgrp]] httpd, apache tms.) ja asetetaan hakemistolle [[Tiedoston oikeudet#Erikoisoikeudet|sgid]]-bitti (chmod g+s), jolloin hakemistoon luotavat tiedostot | Palvelinpuolella ei tarvitse tehdä mitään, kunhan käyttäjille kertoo minne tiedostot kuuluu asentaa (usein /home/käyttäjä/public_html tai /srv/www/mitälie) ja huolehtii [[tiedoston oikeudet|tiedostojen oikeuksista]]. Jälkimmäisen osalta artikkeli [[Kansion yhteiskäyttö ryhmässä|Hakemiston yhteiskäyttö]] voi olla lukemisen arvoinen. Yleensä joko annetaan kaikille tiedostojen lukuoikeus ja hakemistojen suoritusoikeus ([[umask]] 022 tai [[chmod]] a+rX) tai asetetaan hakemiston [[ryhmä]]ksi palvelimen ryhmä ([[chgrp]] httpd, apache tms.) ja asetetaan hakemistolle [[Tiedoston oikeudet#Erikoisoikeudet|sgid]]-bitti (chmod g+s), jolloin hakemistoon luotavat tiedostot niin ikään saavat tämän ryhmän. Tällöin lukuoikeuksia ei tarvitse antaa kuin ryhmälle. | ||
Tarvittaessa tiedostojen oikeuksia ja omistajuuksia voi muuttaa cron-työllä, mutta tämä sattaa yllättää käyttäjän, joka jostakin syystä tarkoituksella poistaa lukuoikeuden tietyltä tiedostolta. | Tarvittaessa tiedostojen oikeuksia ja omistajuuksia voi muuttaa [[cron]]-työllä, mutta tämä sattaa yllättää käyttäjän, joka jostakin syystä tarkoituksella poistaa lukuoikeuden tietyltä tiedostolta. | ||
===Erilliset palvelimet=== | ===Erilliset palvelimet=== | ||
Mikäli käyttäjille ei haluta antaa varsinaista käyttöoikeutta palvelinkoneelle, erillisen tiedostopalvelimen asentaminen | Mikäli käyttäjille ei haluta antaa varsinaista käyttöoikeutta palvelinkoneelle, voi erillisen tiedostopalvelimen asentaminen olla tarpeen. Myös tavallisen SSH-palvelimen voi säätää niin, että tietyt käyttäjät voivat käyttää sitä vain WWW-tiedostojen hallintaan ([[#ssh-chroot|alla]] selitetään erillisen tähän tarkoitukseen säädetyn palvelimen asentaminen). | ||
Perinteiset FTP-palvelimet on suunniteltu myös tätä käyttöä silmälläpitäen ja käyttäjien rajoittaminen tiettyyn hakemistoon (chroot) yms. ja mahdollisten anonyymikäyttäjien käsittely on yleensä helpoilla asetuksilla toteutettavissa. FTP:tä käytettäessä on huolehdittava siitä, että palvelin käyttää salakirjoitettua kanavaa (FTPS tms.). | Perinteiset FTP-palvelimet on suunniteltu myös tätä käyttöä silmälläpitäen ja käyttäjien rajoittaminen tiettyyn hakemistoon ([[chroot]]) yms. ja mahdollisten anonyymikäyttäjien käsittely on yleensä helpoilla asetuksilla toteutettavissa. FTP:tä käytettäessä on huolehdittava siitä, että palvelin käyttää salakirjoitettua kanavaa (FTPS tms.). | ||
==Tarkempia ohjelmakohtaisia ohjeita== | ==Tarkempia ohjelmakohtaisia ohjeita== | ||
Rivi 45: | Rivi 45: | ||
SSH sallii oletuksena sekä tiedonsiirron, että normaalin järjestelmään kirjautumisen. Jos www-palvelimelle tiedostoja siirtäviä ei tahdo järjestelmän normaaleiksi käyttäjiksi, SSH:ta on rajoitettava. "chroot jail" sulkee käyttäjät varsinaisesta järjestelmästä eristettyyn osaan tiedostojärjestelmää. | SSH sallii oletuksena sekä tiedonsiirron, että normaalin järjestelmään kirjautumisen. Jos www-palvelimelle tiedostoja siirtäviä ei tahdo järjestelmän normaaleiksi käyttäjiksi, SSH:ta on rajoitettava. "chroot jail" sulkee käyttäjät varsinaisesta järjestelmästä eristettyyn osaan tiedostojärjestelmää. | ||
FTP:ssä "chroot jail" on vakio-ominaisuus ja helposti otettavissa käyttöön, mutta ftp käyttää selväkielistä liikennettä, josta salakuuntelijan on helppo poimia salasanat (myös yhteyden kaappaaminen on mahdollista). | |||
===Proftpd=== | ===Proftpd=== | ||
Asennus ja käyttöönotto | Asennus ja käyttöönotto Red Hatissa ja joissakin muissa jakeluissa, muissa soveltaen: | ||
yum install proftpd | yum install proftpd | ||
chkconfig –level 35 proftpd on | chkconfig –level 35 proftpd on | ||
Rivi 55: | Rivi 55: | ||
setupilla ftp (portti 21) auki: | setupilla ftp (portti 21) auki: | ||
Lisää /etc/sysconfig/iptables-config tiedostoon | Lisää <tt>/etc/sysconfig/iptables-config</tt>-tiedostoon | ||
IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp" (riville 6)<br> | IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp" (riville 6)<br> | ||
Anna komennot: | Anna komennot: | ||
modprobe ip_nat_ftp | [[modprobe]] ip_nat_ftp | ||
modprobe ip_conntrack_ftp | modprobe ip_conntrack_ftp | ||
service iptables restart | service iptables restart | ||
Testaa | Testaa. | ||
===ssh-chroot=== | ===ssh-chroot=== | ||
SSH-vankilan takoituksena on mahdollistaa tietojen suojattu siirtäminen ja yhteyden otto palvelimeen (salasanat kulkevat kryptattuna eivätkä tekstimuodossa kuten | SSH-vankilan takoituksena on mahdollistaa tietojen suojattu siirtäminen ja yhteyden otto palvelimeen (salasanat kulkevat kryptattuna eivätkä tekstimuodossa kuten FTP:llä), kuitenkin niin ettei käyttäjä pääse pois omasta hakemistostaan eikä antamaan muita kuin siirrossa tarvittavia komentoja. Vankilan voi tehdä itse käsin (työläs ja erittäin vaativa operaatio), käyttämällä maksullista (oppilaitoksille ilmainen) SSH Communicationin (http://ssh.com/products/tectia/server/) ssh-palvelinohjelmistoa (käyttö selostettu kirjassa: http://www.itpress.fi/vanhat/doc/kirjat/linux-koulutuspaketti.html) tai esimerkiksi alla esitellyllä scponly sovelluksella. | ||
*Asenna kääntäjä (sovelluksesta ei ole valmista binaaria): | *Asenna kääntäjä (sovelluksesta ei ole valmista binaaria): | ||
Rivi 94: | Rivi 94: | ||
ssh -e none käyttäjänimi@palv.kon.ip.num "echo -n xsftp : sftp-server" | ssh -e none käyttäjänimi@palv.kon.ip.num "echo -n xsftp : sftp-server" | ||
*Nähdäksesi tarvittavat | *Nähdäksesi tarvittavat [[kirjasto]]t anna komento | ||
ldd /usr/libexec/openssh/sftp-server | ldd /usr/libexec/openssh/sftp-server | ||
Rivi 113: | Rivi 113: | ||
ln -s libdl-2.3.5.so libdl.so.2 | ln -s libdl-2.3.5.so libdl.so.2 | ||
*Tarkista | *Tarkista esimerkiksi GFTP-ohjelmalla ja komentorivillä vankilan toimivuus. | ||
[[Luokka:Palvelimet]] | [[Luokka:Palvelimet]] | ||
[[Luokka:Ohjeet]] | [[Luokka:Ohjeet]] | ||
[[Luokka:Opetusmateriaalit]] | [[Luokka:Opetusmateriaalit]] |
Nykyinen versio 13. toukokuuta 2009 kello 00.58
Tiedostojen siirton WWW-palvelimelle on useampia tapoja, joista tietty palvelin tai palveluntarjoaja (tietylle asiakkaalle) sattaa tarjota yhtä tai useampia. Useimille protokollille on sekä komentorivipohjaisia että graafisia edustaohjelmia.
- SSH-pohjainen tiedonsiirto, useimmiten scp- tai sftp-ohjelmien kautta. Myös rsync voi käyttää SSH:ta. SSH käyttää salakirjoitusta sekä salasanojen että itse datan välittämiseen. Palvelin tunistetaan julkisen avaimen avulla ja asiakas (yleensä) joko julkisella avaimella tai salasanalla. SSH on nykyään yleisin suositeltava yhteystapa.
- FTP oli ennen (1990-luvulle saakka) yleisin tiedostonsiirtoprotokolla. Vakiomuodossaan yhteys on selväkielinen myös salasanojen osalta. FTPS on FTP:n muunnos, jossa yhteys salataan SSL/TLS:n avulla. Monet palveluntarjoajat eivät tarjoa kuluttaja-asiakkaille kuin FTP-tiedonsiirtoa tai eivät kerro muista vaihtoehdoista. Useat FTP-asiakasohjelmat osaavat nykyään käyttää myös salattuja yhteyksiä (FTPS, SFTP yms.).
- Telnet-protokollaa voi käyttää myös tiedonsiirtoon. Telnet on normaalisti selväkielinen myös salasanojen osalta, mutta laajennoksien avulla yhteyden voi saada salatuksi. Telnet-palvelimia on enää harvassa.
- Rsync on ohjelma, joka luo ja ylläpitää hakemistorakenteesta kopiota, haluttaessa toisella koneella. Dataa pyritään siirtämään vain siltä osin kuin se on muuttunut. Rsync käyttää yleensä SSH:ta yhteyden salaamiseen. Ohjelma voi käyttää etäkoneen rsync-ohjelmaa komentoriviltä (normaalin käyttäjätunnuksen kautta) tai erillistä rsync-palvelinta (jolloin käyttäjille ei tarvitse antaa lupaa muuten kirjautua koneelle).
- WWW-selainpohjaiset tiedostonsiirtovaihtoehdot, käytössä monella "sisällönhallintajärjestelmän" avulla ylläpidettävällä sivustolla. Yhteys voi olla salattu (https) tai salaamaton (http). Tiedonsiirtoon käytetään HTML-lomakkeita ja HTML:ään sisältyvää upload-toimintoa.
Asiakasohjelmia yllämainituille siirtotavoille löytyy vakiona yleisistä jakeluista. Joitakin niistä mainitaan alla.
Palvelin[muokkaa]
Sisällönhallintajärjestelmällä[muokkaa]
Jos käytössä on sisällönhallintajärjestelmä, sen tiedostonsiirto-ominaisuuksiin kannattaa tutustua. Niiden avulla hoituvat yleensä tarvittavat linkitykset yms. automaattisesti. Salatun yhteyden mahdollisuutta (https) kannattaa harkita. Selväkielisellä yhteydellä käyttäjien ja palvelimen lähiverkkojen käyttäjät voivat yleensä kohtuuhelposti poimia salasanat liikenteen seasta ja todennäköisesti myös kaapata yhteyden.
Salattu yhteys (https) vaatii palvelimelle "sertifikaatin", joko itsetehdyn tai tunnetulta taholta ostetun. Itsetehty sertifikaatti ei suojaa huijauspalvelimilta ellei sertifikaattia asenneta asiakaskoneelle, ja siksi selaimet yleensä varoittavat käyttäjiä. Sertifikaatin ostaminen tai itsetehdyn sertifikaatin asentaminen ja asentamiseen kehottaminen on suositeltavaa; varsinkaan kouluissa ei pidä totuttaa oppilaita olemaan välittämättä varoituksista.
Salatulla yhteydellä voi salasanojen sijaan käyttää tunnistukseen asiakaspuolen sertifikaatteja. Tätä vaihtoehtoa käytetään harvoin.
Normaalikäyttäjät[muokkaa]
Jos WWW-sivustolle tiedostoja siirtävillä käyttäjillä on lupa kirjautua palvelimelle normaaleina käyttäjinä, SSH on luontevin vaihtoehto. Unix-maailmassa kopiointiohjelmia scp ja sftp käytetään yleensä komentoriviltä, mutta graafisia edustaohjelmia voi halutessaan käyttää (esim. nautilus, gftp tai filezilla). Windowsissa asiakasohjelmat joutuu yleensä erikseen asentamaan (esim filezilla tai WinSCP).
Palvelinpuolella ei tarvitse tehdä mitään, kunhan käyttäjille kertoo minne tiedostot kuuluu asentaa (usein /home/käyttäjä/public_html tai /srv/www/mitälie) ja huolehtii tiedostojen oikeuksista. Jälkimmäisen osalta artikkeli Hakemiston yhteiskäyttö voi olla lukemisen arvoinen. Yleensä joko annetaan kaikille tiedostojen lukuoikeus ja hakemistojen suoritusoikeus (umask 022 tai chmod a+rX) tai asetetaan hakemiston ryhmäksi palvelimen ryhmä (chgrp httpd, apache tms.) ja asetetaan hakemistolle sgid-bitti (chmod g+s), jolloin hakemistoon luotavat tiedostot niin ikään saavat tämän ryhmän. Tällöin lukuoikeuksia ei tarvitse antaa kuin ryhmälle.
Tarvittaessa tiedostojen oikeuksia ja omistajuuksia voi muuttaa cron-työllä, mutta tämä sattaa yllättää käyttäjän, joka jostakin syystä tarkoituksella poistaa lukuoikeuden tietyltä tiedostolta.
Erilliset palvelimet[muokkaa]
Mikäli käyttäjille ei haluta antaa varsinaista käyttöoikeutta palvelinkoneelle, voi erillisen tiedostopalvelimen asentaminen olla tarpeen. Myös tavallisen SSH-palvelimen voi säätää niin, että tietyt käyttäjät voivat käyttää sitä vain WWW-tiedostojen hallintaan (alla selitetään erillisen tähän tarkoitukseen säädetyn palvelimen asentaminen).
Perinteiset FTP-palvelimet on suunniteltu myös tätä käyttöä silmälläpitäen ja käyttäjien rajoittaminen tiettyyn hakemistoon (chroot) yms. ja mahdollisten anonyymikäyttäjien käsittely on yleensä helpoilla asetuksilla toteutettavissa. FTP:tä käytettäessä on huolehdittava siitä, että palvelin käyttää salakirjoitettua kanavaa (FTPS tms.).
Tarkempia ohjelmakohtaisia ohjeita[muokkaa]
Miten käyttäjä saa tiedot siirrettyä www-palvelimelle?
- Telnet mahdollistaa hallinnan (komentokehoite) portti 23, yhteys selväkielinen.
- FTP mahdollistaa tiedostojen siirrot, portti 21, yhteys selväkielinen.
- SSH mahdollistaa molemmat salakirjoitusta käyttäen (salasanojen tai itse yhteyden kaappaaminen vaikeampaa), portti 22.
Telnet voidaan tässä yhteydessä unohtaa kokonaan, koska ssh on olemassa.
SSH sallii oletuksena sekä tiedonsiirron, että normaalin järjestelmään kirjautumisen. Jos www-palvelimelle tiedostoja siirtäviä ei tahdo järjestelmän normaaleiksi käyttäjiksi, SSH:ta on rajoitettava. "chroot jail" sulkee käyttäjät varsinaisesta järjestelmästä eristettyyn osaan tiedostojärjestelmää.
FTP:ssä "chroot jail" on vakio-ominaisuus ja helposti otettavissa käyttöön, mutta ftp käyttää selväkielistä liikennettä, josta salakuuntelijan on helppo poimia salasanat (myös yhteyden kaappaaminen on mahdollista).
Proftpd[muokkaa]
Asennus ja käyttöönotto Red Hatissa ja joissakin muissa jakeluissa, muissa soveltaen:
yum install proftpd chkconfig –level 35 proftpd on service proftpd start
setupilla ftp (portti 21) auki:
Lisää /etc/sysconfig/iptables-config-tiedostoon
IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp" (riville 6)
Anna komennot:
modprobe ip_nat_ftp modprobe ip_conntrack_ftp service iptables restart
Testaa.
ssh-chroot[muokkaa]
SSH-vankilan takoituksena on mahdollistaa tietojen suojattu siirtäminen ja yhteyden otto palvelimeen (salasanat kulkevat kryptattuna eivätkä tekstimuodossa kuten FTP:llä), kuitenkin niin ettei käyttäjä pääse pois omasta hakemistostaan eikä antamaan muita kuin siirrossa tarvittavia komentoja. Vankilan voi tehdä itse käsin (työläs ja erittäin vaativa operaatio), käyttämällä maksullista (oppilaitoksille ilmainen) SSH Communicationin (http://ssh.com/products/tectia/server/) ssh-palvelinohjelmistoa (käyttö selostettu kirjassa: http://www.itpress.fi/vanhat/doc/kirjat/linux-koulutuspaketti.html) tai esimerkiksi alla esitellyllä scponly sovelluksella.
- Asenna kääntäjä (sovelluksesta ei ole valmista binaaria):
yum install gcc
- Hae tarvittava paketti scponly-4.3.tgz osoitteesta http://www.sublimation.org/scponly/
- Pura paketti tar -xvzf scponly-4.3.tgz
- Lue INSTALL tiedosto
- Muuta ennen asennusta helper.c tiedoston koodia poistamalla extern sanan int optreset edestä (muuten koodin kääntäminen make kohdassa kaatuu virheilmoitukseen).
- Asenna:
./configure -–enable-chrooted-binary make make install
- Lisää kuoret (/etc/shells tiedostoon scponly ja scponlyc koko polulla, updatedb ja slocate auttaa -> /usr/local/bin/scponly ja /usr/local/sbin/scponlyc)
- Kommentoi rivit 70-77 setup_chroot.sh tiedostosta (muuten make jail kaatuu virheeseen).
- Luo uusi käyttäjä, joka on chrootattu antamalla komento: make jail (kirjoituskansioksi public_html)
- Anna make jail ajon lopussa ehdotettu cp groups /ho... komento
- Valitettavasti kirjastot eivät vielä löydy. Voit todeta kirjastojen puuttumisen yrittämällä kirjautua komennolla:
ssh -e none käyttäjänimi@palv.kon.ip.num "echo -n xsftp : sftp-server"
- Nähdäksesi tarvittavat kirjastot anna komento
ldd /usr/libexec/openssh/sftp-server
- Kopioi tarvittavat kirjastot käyttäjän kotihakemiston alla olevaan lib hakemistoon ja luo niihin tarvittavat symboliset linkit:
ln -s libresolv-2.3.5.so libresolv.so.2 ln -s libcrypto.so.0.9.7f libcrypto.so.5 ln -s libutil-2.3.5.so libutil.so.1 ln -s libz.so.1.2.2.2 libz.so.1 ln -s libnsl-2.3.5.so libnsl.so.1 ln -s libcrypt-2.3.5.so libcrypt.so.1 ln -s libgssapi_krb5.so.2.2 libgssapi_krb5.so.2 ln -s libkrb5.so.3.2 libkrb5.so.3 ln -s libk5crypto.so.3.0 libk5crypto.so.3 ln -s libkrb5support.so.0.0 libkrb5support.so.0 ln -s libcom_err.so.2.1 libcom_err.so.2 ln -s libc-2.3.5.so libc.so.6 ln -s libdl-2.3.5.so libdl.so.2
- Tarkista esimerkiksi GFTP-ohjelmalla ja komentorivillä vankilan toimivuus.