FTP
FTP je výborná věc,pokud chcete někomu poslat nějaký velký soubor,nebo chcete,aby jej někdo poslal vám.
V práci jsem se setkal s tím,že jedna účetní(nevím čím to je ,že účetní bývají nejméně počítačově gramotní)chtěla tej druhej poslat
obsah celého harddisku mailem.Naštěstí mám na serveru omezení na 10MB,takže jsem jen měl telefon,že ta "pitomá pošta"
zase nefunguje.Díky FTP můžete poslat kámošovi v GB třeba celou sbírku DVD,pokud vám to rychlost spojení umožní,aby jste u toho
nestrávili mládí a kus důchodu.Stejně tak si můžete poslat na svůj server milion šest fotek z vašeko 8MPx fotáku jak skotačíte v Thajsku
s místníma babama a nemusíte mít strach,že si je omylem vymažete až vám bude docházet místo na kartě.
Možná máte pocit že FTP je něco nelegálního(jak se nás snaží přesvědčit různá OSA a podobné paskvily),ale není to tak.
Je to služba jako každá jiná.
OBSAH
Instalace
Konfigurační volby
Šifrované ftp
Ftp s databázi Mysql a webovým rozhraním
User manager pro PureFTP
Sledování ftp přes web
Net2ftp
Instalace
cd /usr/ports/ftp/pure-ftpd
make install clean
pokud chcete šifrování TSL ,nespouštějte tento příkaz,ale koukněte na bod 1.4
pokud chcete mít virtuální účty(doporučuji) v Mysql ,koukněte na bod 13.1
konfigurace ftp portu
make config (zaskrtat prislusne volby)
Šifrované ftp
pokud chceme TLS ,pridat nasledujici volby příkazem
make WITH_CERTFILE=/usr/local/etc/pure-ftpd/pure-ftpd.pem WITH_LANG=czech install
pokud nechceme TLS ,preskocime
dále
musi byt nainstalovano OpenSSL
mkdir /usr/local/etc/pure-ftpd/
cd /usr/local/etc/pure-ftpd/
openssl req -x509 -nodes -newkey rsa:1024 -keyout pure-ftpd.pem -out pure-ftpd.pem
POZOR-je to na jedné řádce
chmod 600 /usr/local/etc/pure-ftpd/*.pem
openssl req -new -key /usr/local/etc/pure-ftpd/pure-ftpd.pem -out ftp-cert.csr
zapnuti TLS
/usr/local/sbin/pure-ftpd --tls=1 &
#- With "--tls=0", SSL/TLS je vypnuto. Toto je default.
#- With "--tls=1", Klienti se mohou přihlásit tradičně nebo přes SSL/TLS vrstvu.
#- With "--tls=2", cleartext je blokováno a povoleno pouze přihlášení přes SSL/TLS
povolit v
/etc/rc.conf
zapsat zde
pureftpd_enable="YES"
zeditovat konfigurák
je v
usr/local/etc/pure-ftpd.conf.sample,tento soubor zkopírovat jako pure-ftpd.conf
cd /usr/local/etc
cp pure-ftpd.conf.sample pure-ftpd.conf
spustit
/usr/local/etc/rc.d/pure-ftpd start
Konfigurace firewall systému pro Ftp
ipfw add allow tcp from any 20,21 to any out
ipfw add allow tcp from any to any 20,21 in
ipfw add pass tcp from any to any setup
FXP protokol
umožnuje spojení pomocí ftp protokolu přímo mezi dvěma servery bez nutnosti trasovat data přes klientský počítač.
Pro Pure FTP se zapíná v configu.
ee /usr/local/etc/pure-ftpd.conf
a změníme volbu "no" na "yes"
AllowUserFXP yes
Pokud se zdá se, že FXP protokol podporuje pouze práci v lokálním prostředí, ale je nedostupný ze sítě Internet.
Pravděpodobně to má co dělat s NATd procesem v kombinaci s konfigurací firewall systému. Umístěte dvě následující řádky pravidel PŘED NATd pravidly firewall systému.
Konfigurace firewall systému pro FXP:
ipfw add allow tcp from any 20,21 to any out
ipfw add allow tcp from any to any 20,21 in
Poznámka: NATd firewall pravidlo bude vypadat takto:
divert 8668 ip from any to any via xl0
K tomuto výpisu se dostanete snadno příkazem
ipfw show
Konfigurační volby
Nechají se nastavit i z příkazového řádku.V tabulce budou tyto volby uzavřeny v závorce
(-A) ChrootEveryone yes | Uzavře všechny klienty v jejich domovských adresářích |
(-a) TrustedGID 100 | Jestliže předchozí volba je „no“ uživatelé v následující skupině nebudou uzavřeni. Ostatní ano! Pokud nechceme nikoho omezovat, zakomentujeme obě volby ChrootEveryone i TrustedGID. |
(-b) BrokenClientsCompatibility no | Podpora pro broken klienty |
(-c) MaxClientsNumber 50 | maximální počet současně připojených klientů |
(-B) Daemonize yes | Pracovat na pozadí „jako démon“ |
(-C) MaxClientsPerIP 3 | Maximální počet připojení z jedné IP adresy |
(-d) VerboseLog no | Jestliže chceme logovat veškeré příkazy od klientů zvolíme "yes". Pokud bude tato volba duplikována budou logovány i odezvy ftp serveru |
(-D) DisplayDotFiles yes | Zobrazit skryté soubory |
(-e) AnonymousOnly yes | mohou se přihlásit pouze anonymní uživatelé a žádní registrovaní |
(-E) NoAnonymous no | mohou se přihlásit pouze registrovaní uživatelé ažádní anonymní |
(-f) SyslogFacility ftp | syslog možnosti: (auth, authpriv, daemon, ftp, security, user, local*). Defaultně nastaveno "ftp". "none" vypne logování. |
(-F) Display fortune cookies | Odkomentujeme pokud chceme při přihlášení zobrazovat citace „fortune cookies“. Jako parametr je nutné zadat cestu k citacím |
FortunesFile /usr/share/fortune/zippy | cesta k „fortune cookies“ |
(-H) DontResolve yes | Volba „yes“ vypne zápis hostitelských jmen „klientů“ do logu. Logy budou méně přehledné, ale šetří to připojení. NO=dotaz na DNS server na jméno klienta |
(-I) MaxIdleTime 15 | Při nečinnosti je klient automaticky odpojen po x minutách |
(-l) LDAPConfigFile /etc/pure-ftpd/pureftpd-ldap.conf | cesta ke konfigu při použití LDAP pro přihlášení na ftp server |
(-l) MySQLConfigFile /etc/pure-ftpd/pureftpd-mysql.conf | cesta ke konfigu při použití MYSQL pro přihlášení na ftp server |
(-l) PGSQLConfigFile /etc/pure-ftpd/pureftpd-pgsql.conf | cesta ke konfigu při použití Posgres pro přihlášení na ftp server |
(-l) PureDB /etc/pure-ftpd/pureftpd.pdb | cesta k PureDB databázy virtuálních registrovaných uživatelů |
(-l) ExtAuth /var/run/ftpd.sock | cesta k pure-authd socket |
(-l) PAMAuthentication yes | pokud použijete k ověření uživatelů PAM, tak odkomentujte tuto řádku |
(-l) UnixAuthentication yes | pokud použijete k ověření uživatelů unix db (/etc/passwd) , tak odkomentujte tuto řádku |
(-L) LimitRecursion 2000 8 | První číslo určuje maximální počet zobrazovaných souborů. Druhé číslo určuje max. hloubku adresářové struktury na ftp serveru |
(-M) AnonymousCanCreateDirs no | povolení pro anonymní uživatele vytvářet nové adresáře |
(-m) MaxLoad 4 | Pokud je systém vytížen více než je zadaná hodnota, bude anonymním uživatelům zakázán download |
(-p) PassivePortRange 30000 50000 | Rozsah portů, které bude využívat ftp server v pasivním režimu. - pro firewall |
(-P) ForcePassiveIP 192.168.0.1 | Vnutí IP adresu „bránu“ při PASV/EPSV/SPSV odpovědi. - pro NAT. Pro bránu s dynamickou IP adresou jsou také přijímána symbolická hostitelská jména |
(-q) AnonymousRatio 1 10 | poměr upload/download pro anonymní uživatele |
(-Q) UserRatio 1 10 | poměr upload/download pro všechny uživatele |
(-s) AntiWarez yes | Zamezí stažení souborů nahraných vlastníkem "ftp". Stažení bude umožněno, až po „potvrzení“ administrátorem. |
(-S) Bind 127.0.0.1,21 | Naslouchat na IP adresa/port: (default=všechny IP adresy a port 21) |
(-t) AnonymousBandwidth 8 | Maximální propustnost pro anonymní uživatele v KB/s. |
(-T) UserBandwidth 8 | Maximální propustnost pro všechny uživatele (včetně anonymních) v KB/s |
(-U) Umask 133:022 | Nastaví masku pro nové soubory a adresáře na ftp serveru |
(-u) MinUID 40 | Ověření uživatelé, kteří se chtějí přihlásit musejí mít UID min. následující hodnoty |
(-w) AllowUserFXP no | Povolí FXP přenosy pouze pro ověřené uživatele |
(-W) AllowAnonymousFXP no | Povolí anonymní FPX přenosy pro anonymní i neanonymní uživatele |
(-x) ProhibitDotFilesWrite yes | Zakázat odstraňování a vytváření souborů s tečkou na začátku i pro jejich vlastníky? Pokud je povolena proměnná TrustedGID, bude umožněn těmto uživatelům přístup i k těmto souborům |
(-X) ProhibitDotFilesRead no | Zakázat čtení souborů začínajících tečkou? (.history, .ssh...) |
(-r) AutoRename yes | Nikdy nepřepisovat soubory?. Pokud se na serveru již nachází soubor se stejným jménem jako je nahrávaný soubor, má být automaticky nový soubor přejmenován? (file.1, file.2, .....) |
(-i) AnonymousCantUpload yes | Zamítnout anonymním uživatelům nahrávat nové soubory? (no = upload je povolen) |
(-V) TrustedIP 10.1.1.1 | Zde můžeme zadat důvěryhodné IP adresy z kterých může být vytvořeno anonymní připojení. Například zde můžeme povolit třeba jen přístup lokálním neroutovaným IP adresám (10.x.x.x) |
(-1) LogPID yes | Pokud chcete přidat informace o PID do logu odkomentujte následující parametr. |
(-O) AltLog clf:/var/log/pureftpd.log | Odkomentujte pokud chcete vytvořit dodatečný log. soubor v Apache-like formátu. fw.c9x.org - jedi [13/Dec/1975:19:36:39] "GET /ftp/linux.tar.bz2" 200 21809338. Tento log může být zpracováván ve www traffic analyzeru |
(-O) AltLog stats:/var/log/pureftpd.log | Odkomentujte pokud chcete vytvořit dodatečný log. soubor ve formátu optimalizovaném pro statistické záznamy |
(-O) AltLog w3c:/var/log/pureftpd.log | Odkomentujte pokud chcete vytvořit dodatečný log. soubor ve standardu W3C Formát kompatibilní s většinou komerčních log analyzerů |
(-R) NoChmod yes | Pokud odkomentujete zakážete tím používání CHMOD příkazů. Uživatelé nebudou schopni měnit práva u svých souborů |
(-K) KeepAllFiles yes | Povolí uživatelům navazovat a nahrávat soubory, ale zároveň jim zakáže je odstraňovat |
(-j) CreateHomeDir yes | Vytvářet automaticky domovské adresáře pokud chybí |
(-n) Quota 1000:10 | „yes“ aktivuje virtuální kvóty. První číslo je max. možný počet souborů na ftp serveru. Druhé číslo je max. velikost v Mb. Takže 1000:10 značí limit pro všechny uživatele nastavený na 1000 souboru a 10Mb |
(-g) PIDFile /var/run/pure-ftpd.pid | Pokud byl pure-ftpd zkompilován pro samostatný běh, můžeme zde změnit umístění pid souboru |
(-o) CallUploadScript yes | Jestliže server byl zkompilovaný s podporou pure-uploadscript, tak pure-ftpd bude schopen vytvořit soubor /var/run/pure-ftpd.upload.pipe do kterého bude zapisovat informace o uploadovaných souborech a aplikovat ne ně pure-uploadscript |
(-k) MaxDiskUsage 99 | Tato volba je vhodná pro anonymní FTP servery kde je upload povolen. Pokud by nahrávaný soubor přesáhl nastavenou kvótu zaplnění disku, bude upload přerušen |
(-G) NoRename yes | Nastavíme „yes“ pokud nechceme, aby uživatelé mohli přejmenovávat soubory. (no = přejmenování bude umožněno) |
(-Z) CustomerProof yes | Tento parametr nás ochrání před obyčejnými chybami uživatelů a zabrání tak zahlcení technické podpory. Pokud proměnnou nastavíme na „yes“ nebudou moci uživatelé nastavit chmod tak, aby jim byl zakázán přístup k souborům nebo adresářům. Jestliže jste poskytovatelem služeb, rozhodně nastavte „yes“ |
(-Y) PerUserLimits 3:20 | Tato volba bude použitelná pouze pokud FTP server byl zkompilován s parametrem --with-peruserlimits. Tato konkrétní volba povoluje současně připojit 3 registrované uživatele a 20 anonymních |
(-0) NoTruncate yes | Pokud se nahrávaný soubor již nachází na FTP serveru, nebude zkrácen ani přemazáván. Až při dokončení uploadu bude starý soubor automaticky nahrazen novým!
Vždy bude na FTP serveru nabízen starý soubor až do doby dokud nebude nový kompletně uploadován. Tato volba je neslučitelná s virtuálními kvótami |
(-Y) TLS 1 | Tato volba má tři možnosti:
0 : vypne SSL/TLS šifrování (default)
1 : ftp server bude schopen přijmout oba způsoby šifrování jak SSL tak TLS
2 : nepoužívat šifrování na anonymní a odmítnutá sezení „jinak ano“
Tuto volbu zaktivujte, jen pokud víte co děláte!
- ftp server musí být zkompilovaný s volbou (--with-tls)
- musíte mít platný certifikát
- pouze kompatibilní klienti se budou moci připojit |
(-4) IPV4Only yes | Při odkomentování bude ftp server podporovat pouze IPv4 adresování, ale pouze pokud je spuštěn v režimu standalonne „samostatného běhu“ |
(-6) IPV6Only yes | stejné jako předcházející jen pro IPV6 |
FileSystemCharset big5 | dokáže nastavit charset souborového systému na serveru na UTF-8-Lze nastavit pouze pokud pure-ftpd byl zkompilován s parametrem --with-rfc2640 |
ClientCharset big5 | nastaví defaultní charset na vzdálených klientech pokud používají UTF-8-Lze nastavit pouze pokud pure-ftpd byl zkompilován s parametrem --with-rfc2640 |
(-N) v konfigu není | vnutí FTP serveru aktivní mód |
#############################
Ftp s databazi mysql a webovym rozhranim
jsou 2 druhy uzivatelu
Shell users:uzivatele,kteri existuji v systemu
Virtual users:uzivatele,kteri existuji pouze v databazi
Ftp s databázi Mysql a webovým rozhraním
nainstalujeme MYSQL server
viz zde
nainstalovat FTP-viz bod 1-5
je nutno vybrat podporu mysql
cd /usr/ports/ftp/pure-ftpd && make config
make install
nebo
make reinstall
pokud uz bylo ftp nainstalovaný bez teto volby
vytvoreni DB
cd /usr/local/etc/pure-ftpd
edit script.mysql
vlozime následující text pomocí
shift + Ins
-- This mysql script is made by M.Mastenbroek 2002 - 2005
-- For more info look at http://machiel.generaal.net
-- Version 2.0
--
-- You don't need this script when you already have the database
-- or when you use the install.php configuration script successfully.
--
-- Example how to execute this script from command line:
--
-- mysql -u root -ppassword -h 127.0.0.1 < script.mysql
--
--
-- Host: localhost Database: ftpusers
---------------------------------------------------------
-- Server version 3.23 or 4.x
-- Script version 1.4.0
--
--
--
-- Create MySQL user called 'ftp'
-- Login = ftp
-- Password = tmppasswd
-- Host = 127.0.0.1
--
INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES('127.0.0.1','ftp',PASSWORD('tmppasswd'),'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');
FLUSH PRIVILEGES;
CREATE DATABASE ftpusers;
USE ftpusers;
--
-- Table structure for table 'admin'
--
CREATE TABLE admin (
Username varchar(35) NOT NULL default '',
Password char(32) binary NOT NULL default '',
PRIMARY KEY (Username)
) TYPE=MyISAM;
--
-- Data for table 'admin'
--
INSERT INTO admin VALUES ('Administrator',MD5('tmppasswd'));
--
-- Table structure for table 'users'
--
CREATE TABLE `users` (
`User` varchar(16) NOT NULL default '',
`Password` varchar(32) binary NOT NULL default '',
`Uid` int(11) NOT NULL default '14',
`Gid` int(11) NOT NULL default '5',
`Dir` varchar(128) NOT NULL default '',
`QuotaFiles` int(10) NOT NULL default '500',
`QuotaSize` int(10) NOT NULL default '30',
`ULBandwidth` int(10) NOT NULL default '80',
`DLBandwidth` int(10) NOT NULL default '80',
`Ipaddress` varchar(15) NOT NULL default '*',
`Comment` tinytext,
`Status` enum('0','1') NOT NULL default '1',
`ULRatio` smallint(5) NOT NULL default '1',
`DLRatio` smallint(5) NOT NULL default '1',
PRIMARY KEY (`User`),
UNIQUE KEY `User` (`User`)
) TYPE=MyISAM;
--
-- Data for table 'users'
--
INSERT INTO ftpusers.users VALUES ('ftpuser_1',MD5('tmppasswd'),65534, 31, '/usr', 100, 50, 75, 75, '*', 'Ftp user (for example)', '1', 0, 0);
-----------------------------------------------------
spustit script kterej vytvori db
mysql -u root -pnejakyheslo < script.mysql
nebo jej stahnout z webu
fetch "http://machiel.generaal.net/files/pureftpd/v2.x/script.mysql"
mysql -u root -pnejakyheslo < script.mysql
konfigurace ftp
jsou potřeba 2 konfiguráky
/usr/local/etc/pure-ftpd.conf
/usr/local/etc/pureftpd-mysql.conf
zkopirovat pure-ftpd.conf.sample do pure-ftpd.conf
cd /usr/local/etc && cp pure-ftpd.conf.sample pure-ftpd.conf
stahnout
pureftpd-mysql.conf z
fetch "http://machiel.generaal.net/files/pureftpd/v2.x/pureftpd-mysql.conf"
nebo následujici text ulozit jako
/usr/local/etc/pureftpd-mysql.conf postupem viz níže
############################################################################
############################################################################
# #
# PureFTPd MySQL configuration file. #
# Generated by the installation script of the ‘User manager for PureFTPd’ #
# See http://machiel.generaal.net for more info #
# or read the README.MySQL for explanations of the syntax. #
# #
############################################################################
# Optional : MySQL server name or IP. Don't define this for unix sockets.
MYSQLServer 127.0.0.1
# Optional : MySQL port. Don't define this if a local unix socket is used.
# MYSQLPort 3306
# Optional : define the location of mysql.sock if the server runs on this host.
MYSQLSocket /tmp/mysql.sock
# Mandatory : user to bind the server as.
MYSQLUser ftp
# Mandatory : user password. You must have a password.
MYSQLPassword tmppasswd
# Mandatory : database to open.
MYSQLDatabase ftpusers
# Mandatory : how passwords are stored
# Valid values are : "cleartext", "crypt", "md5" and "password"
# ("password" = MySQL password() function)
# You can also use "any" to try "crypt", "md5" *and* "password"
MYSQLCrypt md5
# In the following directives, parts of the strings are replaced at
# run-time before performing queries :
#
# \L is replaced by the login of the user trying to authenticate.
# \I is replaced by the IP address the user connected to.
# \P is replaced by the port number the user connected to.
# \R is replaced by the IP address the user connected from.
# \D is replaced by the remote IP address, as a long decimal number.
#
# Very complex queries can be performed using these substitution strings,
# especially for virtual hosting.
# Query to execute in order to fetch the password
MYSQLGetPW SELECT Password FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Query to execute in order to fetch the system user name or uid
MYSQLGetUID SELECT Uid FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : default UID - if set this overrides MYSQLGetUID
#MYSQLDefaultUID 1000
# Query to execute in order to fetch the system user group or gid
MYSQLGetGID SELECT Gid FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : default GID - if set this overrides MYSQLGetGID
#MYSQLDefaultGID 1000
# Query to execute in order to fetch the home directory
MYSQLGetDir SELECT Dir FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : query to get the maximal number of files
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : query to get the maximal disk usage (virtual quotas)
# The number should be in Megabytes.
# Pure-FTPd must have been compiled with virtual quotas support.
MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : ratios. The server has to be compiled with ratio support.
MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Optional : bandwidth throttling.
# The server has to be compiled with throttling support.
# Values are in KB/s .
MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L" AND Status="1" AND (Ipaddress = "*" OR Ipaddress LIKE "\R")
# Enable ~ expansion. NEVER ENABLE THIS BLINDLY UNLESS :
# 1) You know what you are doing.
# 2) Real and virtual users match.
# MySQLForceTildeExpansion 1
# If you upgraded your tables to transactionnal tables (Gemini,
# BerkeleyDB, Innobase...), you can enable SQL transactions to
# avoid races. Leave this commented if you are using the
# traditionnal MyIsam databases or old (< 3.23.x) MySQL versions.
# MySQLTransactions On
############################################################################
edit /usr/local/etc/pureftpd-mysql.conf
shift + ins
upravit pure-ftpd.conf
edit /usr/local/etc/pure-ftpd.conf
a povolit nasledujici
# MySQL configuration file (see README.MySQL)
MySQLConfigFile /etc/pureftpd-mysql.conf
AltLog clf:/var/log/pureftpd.log
spustit ftp
/usr/local/etc/rc.d/pure-ftpd.sh start
nebo(restartovat)
/usr/local/etc/rc.d/pure-ftpd.sh restart
User manager pro PureFTPd
(webovy rozhrani pro editaci uživatelů)
instalace apache viz
zde
stazeni php scriptu
cd /usr/local/www/ && fetch "http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz" && tar -xvzf ftp_v2.1.tar.gz && cd ftp && chown www config.php
POZOR-je to na jedné řádce
nastavit autentizaci
htpasswd -c /usr/local/www/ftp/.htpasswd admin
dát heslo
ee /usr/local/www/ftp/.htaccess
AuthUserFile /usr/local/www/ftp/.htpasswd
AuthGroupFile /dev/null
AuthName "FTP administrace sekce"
AuthType Basic
<limit GET POST/>
require valid-user
</limit>
nastavime práva na soubory .ht*
chown www:www /usr/local/www/ftp/.ht* && chmod 750 /usr/local/www/ftp/.ht*
Nastavíme apache aby věděl kde má hledat soubory
ee /usr/local/etc/apache22/Includes/ftpadmin.conf
Alias /ftpadmin "/usr/local/www/ftp"
<Directory "/usr/local/www/ftp">
Options Indexes
AllowOverride AuthConfig #pokud nechame None,nebude autentifikace fungovat
Order deny,allow
allow from all
# allow from 127.0.0.1
</Directory>
reload apache
/usr/local/etc/rc.d/apache22 restart
Pozor-pokud to bude řvát chybu po spuštění něco o
\n"); $LFile = "english.php"; } require("language/".$LFile); // Read the language file ?>
upravte v /usr/local/www/apache22/ftp/language/index.php
<? na <?php
spustit script,ktery si zkontroluje,zda ma vse co potrebuje
http://192.168.0.1/ftp/install.php
IP si doplnte podle potřeby
klikni na
step 2
New Instalation,
create a new database.
pokud je vse OK jdeme na nasledujici krok,v kroku 4 si jen zmenime heslo a IP adresu serveru podle potreby
zafajfkujeme Quota a Ratio support(pokud je chceme) ulozime a jdeme na dalsi krok
zmenime heslo pro administratora a ulozime
nasledujici krok preskocime
Hotovo
je treba nastavit prava na soubor
/usr/local/www/ftp/install.php,
aby se nemoh nechat spoustet neatorizovanimi osobami
chown root /usr/local/www/ftp/install.php && chmod 700 /usr/local/www/ftp/install.php
Sledování ftp přes web
vytvoř soubor
/usr/local/www/apache22/cgi-bin/ftpstatus.c
edit /usr/local/www/apache22/cgi-bin/ftpstatus.c
zapis do nej nasledujici
#include <stdlib.h>
int main(int argc, char *argv[])
{
system("/usr/local/sbin/pure-ftpwho -H -w");
return 0;
}
pozn-na konci musi byt odentrovano
zkompiluj zdrojak a nastav prava
cd /usr/local/www/apache22/cgi-bin/
cc -Wall -o ftpstatus ftpstatus.c && chmod 755 ftpstatus && chmod ug+s ftpstatus
zdrojak
ftpstatus.c uz neni potreba a muze se smazat
rm /usr/local/www/apache22/cgi-bin/ftpstatus.c
stav FTP serveru se zjisti
http://192.168.0.1/cgi-bin/ftpstatus
FAQ
I’m also running a firewall on my FreeBSD server, must I have to change the configuration?
This is depending on your current configuration of your firewall rules but if you add the following 3 lines into your firewall, the ftp server can handle active and passive ftp clients. Of course you must watch out that other firewall rules doesn’t overrule this 3 new settings
Firewall config:
ipfw add allow tcp from any 20,21 to any out
ipfw add allow tcp from any to any 20,21 in
ipfw add pass tcp from any to any setup
It seems that FXP support only work locally and that it’s not available from the internet?
Probably this had to do with your natd process in combination with the firewall configuration. Place the following 2 firewall rules BEFORE the natd firewall rules.
Firewall config voor FXP:
ipfw add allow tcp from any 20,21 to any out
ipfw add allow tcp from any to any 20,21 in
Hint: The natd firewall rule will look like this when you execute the command 'ipfw show’.
'divert 8668 ip from any to any via xl0'
How can I change the password of the MySQL user ‘ftp’ ?
Use your MySQL client and login as the MySQL root user. After that change the password from the ftp users.
To do this try the following 2 lines. Change the text ‘newpassword’ for your own new password.
Shell:
mysql -u root -p
set password for ftp@"127.0.0.1" = Password('newpassword');
flush privileges;
Warning: If you change the password of the database user ftp you must also have to change the configuration file of PureFTPd called ‘pureftpd-mysql.conf’ and if you are making use of the web application you must also have to change ‘config.php’ file
How can I change, remove, back-up or upgrade my MySQL database?
It’s impossible to give you all the answers on those questions. If you want to learn how to work with SQL and MySQL there are many websites where you can find information about this subject. But I will show you a few quick MySQL/SQL tricks to help you on your way.
Backup all table structures and table data from the 'ftpusers' database to a MySQL script.
Shell:
mysqldump -h localhost -uroot -pchrchel ftpusers > databasebackup.mysql
Replace the text 'secret' for your own password.
Remove your MySQL user called 'ftp' and delete the 'ftpusers' database.
Shell:
mysql -u root -p
drop database ftpusers;
delete from mysql.user where User='ftp';
flush privileges;
Create a MySQL user called 'ftp' an create the 'ftpusers' database.
Shell:
mysql -u root -p
INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES('127.0.0.1','ftp',PASSWORD('tmppasswd'),'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N');
flush privileges;
create database ftpusers;
In Step 2 of this document you can find a example how to import a MySQL script.
The installation of the MySQL server failed because the hostname isn’t correct?
A frequent problem by the installation of the MySQL server is an incorrect hostname. The installation procedure failed and the following error appears.
...
Sorry, the host '???????' could not be looked up.
Please configure the 'hostname' command to return a correct hostname.
If you want to solve this at a later stage, restart this script with
the --force option
*** Error code 1
...
To solve this problem you must first check the current hostname. This can be done by executing the commando hostname. The output of this command will show you the current hostname. If it doesn’t show anything, you must first give your system a new hostname. You can do this by placing a new hostname after the hostname command. For example if your new hostname is 'server', you must execute the following line:
Shell:
hostname server
Add the line (If it isn’t already done) 'hostname="server" into the '/etc/rc.conf' file.
After this the hostname must represent the ip-address of the system. This can be done by adding an extra line into the '/etc/hosts' file. In this line you must make a relation between the name of the hostname and the ip-address. For example, if your hostname is 'server' and your ip-address is '192.168.0.1' the following line must be added.
vi /etc/hosts:
192.168.0.1 server
Now it’s possible to check the hostname. You can di this by executing the following line.
Shell:
ping $(hostname)
If the system response, you can continue your MySQL installation.
How do I install PureFTPd on Linux?
The installation procedure of a PureFTPd package can differ by the different Linux distributions. Also the most PureFTPd packages for Linux doesn't have necessary MySQL support included. To handle this problem it's also possible to install PureFTPd by downloading the source code. After that the source code must be compiled with the necessary options, when succeed it could be installed on the system. This all can be done by following the next steps.
Download the latest version of PureFTPd, this could be found here:
ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/
Extract the file, compile the source code and install PureFTPd.
Shell:
./configure --with-everything --with-paranoidmsg --with-virtualchroot --with-tls --with-largefile --with-mysql
make
make install
After this PureFTPd is installed on your system with all the necessary options.
original text na
http://machiel.generaal.net/index.php?subject=pureftpd&language=eng
je tam i pár dalších šikovných návodů,bohužel některý jsou vlámsky,
ale pokud umíte německy a anglicky,tak se tomu nechá rozumět
Net2ftp
instalace weboveho rozhrani pro stahovani souboru z ftp-Net2ftp
31.0.
stahnout soubory z webu a nakopirovat soubory do adresare
/usr/local/www/
cd /usr/local/www/
fetch http://www.net2ftp.com/download/net2ftp_v0.96.zip
unzip net2ftp_v0.96.zip
mv /usr/local/www/net2ftp_v0.96/files_to_upload/ /usr/local/www/net2ftp
chmod -R 777 /usr/local/www/net2ftp/temp/
rm /usr/local/www/net2ftp_v0.96.zip && rm -r /usr/local/www/net2ftp_v0.96/
vytvoření DB
edit /usr/local/www/net2ftp/script_net2ftp.mysql
vlozit nasledujici radky
-- Create MySQL user called 'ftp'
-- Login = ftp
-- Password = tmppasswd
-- Host = 127.0.0.1
--nasledujici odstavec odkomentovat,pokud jsme nepouzili jmeno a heslo stejny jako webovy rozhrani ftp
--INSERT INTO mysql.user (Host, User, Password, Select_priv,Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv,Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) --VALUES('127.0.0.1','ftp',PASSWORD('tmppasswd'),'Y','Y','Y','Y','--N','N','N','N','N','N','N','N','N','N');
--FLUSH PRIVILEGES;
CREATE DATABASE if not exists net2ftp;
USE net2ftp;
DROP TABLE IF EXISTS `net2ftp_logAccess`;
DROP TABLE IF EXISTS `net2ftp_log_access`;
CREATE TABLE `net2ftp_log_access` (`date` date NOT NULL default '0000-00-00',`time` time NOT NULL default '00:00:00',`remote_addr` text NOT NULL,`remote_port` text NOT NULL,`http_user_agent` text NOT NULL,`page` text NOT NULL,`ftpserver` text NOT NULL,`username` text NOT NULL,`state` text NOT NULL,`state2` text NOT NULL,`screen` text NOT NULL,`directory` text NOT NULL,`entry` text NOT NULL,`http_referer` text NOT NULL,KEY `index1` (`date`,`time`,`ftpserver`(100),`username`(50))) TYPE=MyISAM;
DROP TABLE IF EXISTS `net2ftp_logError`;
DROP TABLE IF EXISTS `net2ftp_log_error`;
CREATE TABLE `net2ftp_log_error` (`date` date NOT NULL default '0000-00-00',`time` time NOT NULL default '00:00:00',`ftpserver` text NOT NULL,`username` text NOT NULL,`message` text NOT NULL,`backtrace` text NOT NULL,`state` text NOT NULL,`state2` text NOT NULL,`directory` text NOT NULL,`remote_addr` text NOT NULL,`remote_port` text NOT NULL,`http_user_agent` text NOT NULL,KEY `index1` (`date`,`time`,`ftpserver`(100),`username`(50))) TYPE=MyISAM;
DROP TABLE IF EXISTS `net2ftp_logConsumptionFtpserver`;
DROP TABLE IF EXISTS `net2ftp_log_consumption_ftpserver`;
CREATE TABLE `net2ftp_log_consumption_ftpserver`(`date` date NOT NULL default '0000-00-00',`ftpserver` varchar(255) NOT NULL default '0',`dataTransfer` int(10) unsigned default '0',`executionTime` mediumint(8) unsigned default '0',PRIMARY KEY (`date`,`ftpserver`)) TYPE=MyISAM;
DROP TABLE IF EXISTS `net2ftp_logConsumptionIpaddress`;
DROP TABLE IF EXISTS `net2ftp_log_consumption_ipaddress`;
CREATE TABLE `net2ftp_log_consumption_ipaddress`(`date` date NOT NULL default '0000-00-00',`ipaddress` varchar(15) NOT NULL default '0',`dataTransfer` int(10) unsigned default '0',`executionTime` mediumint(8) unsigned default '0',PRIMARY KEY (`date`,`ipaddress`)) TYPE=MyISAM;
DROP TABLE IF EXISTS `net2ftp_users`;
CREATE TABLE `net2ftp_users` (`ftpserver` varchar(255) NOT NULL default '0',`username` text NOT NULL,`homedirectory` text NOT NULL,KEY `index1` (`ftpserver`,`username`(50))) TYPE=MyISAM;
grant all on net2ftp.* to ftp@localhost identified by 'tmppasswd';
-----------------------------
spustit script kterej vytvori db
cd /usr/local/www/net2ftp
mysql -u root -pVAseheslo < script_net2ftp.mysql
upravit
settings.inc.php:
ee settings.inc.php
nastavit heslo pro
*admin* jinak tato volba neni dostupna
nastavit
$net2ftp_settings["max_filesize"] = "200000000"; // in Bytes, default 2 MB^ na minimalne 200000000 tj 200MB
nastavit
settings.inc.php dle nasledujiciho vzorového
souboru
upravit
settings_authorizations.inc.php
$net2ftp_settings["allowed_ftpservers"][1] = "localhost"; // pouze pro localhost
//pokud chcete použít program i pro jiný ftpservery ,dejte tam ALL
//$net2ftp_settings["allowed_ftpservers"][1] = "ALL";
//$net2ftp_settings["allowed_ftpservers"][2] = "192.168.1.1";
//$net2ftp_settings["allowed_ftpservers"][3] = "ftp.mydomain2.org";
v tomto souboru se nechaji nastavit i bany
nastavit prava na
/usr/local/www/net2ftp/temp na 777
chmod 777 /usr/local/www/net2ftp/temp
přejmenovat
/usr/local/www/net2ftp/htacces.txt na .htacces, pokud chceme uploadovat větší
soubory-zde se nastavují velikosti
mv /usr/local/www/net2ftp/htaccess.txt /usr/local/www/net2ftp/.htaccess
vytvoříme config pro apache
ee /usr/local/etc/apache22/Includes/net2ftp
a vložíme do něj
Alias /webftp "/usr/local/www/net2ftp"
<Directory "/usr/local/www/net2ftp">
Options Indexes
AllowOverride all #pokud budem branit autentifikaci-nastavte na AuthConfig
Order deny,allow
allow from all
# allow from 127.0.0.1
</Directory>
upravit
/usr/local/etc/php.ini
;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
memory_limit = 8M ; Maximum amount of memory a script may consume (8MB)
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =
; Maximum allowed size for uploaded files.
upload_max_filesize = 200M