- ivar
- Medlem ●
- Stockholm
Hej!
Ett väldigt uttjatat ämne det här med ftp-servers men jag har letat och letat utan att finna informationen jag söker.
Okej, har förstått att vanlig FTP är rätt kasst då login och passwords skickas i klartext så man bör köra SFTP.
Jag har använt mig av crushFTP och det har inte fungerat så jätte bra. Filer där åäö ingått har inte gått att hämta hem. Servern har stängt av sig så fort en användare laddat färdigt en fil... ibland inte.
Jag läste en tråd här och hamnade till slut här. Jag installerade pure-ftpd men förstår fortfarande inte riktigt hur allt går ihop.
Mitt mål:
- FTP-servern ligger osynlig i bakgrunden.
- ej vanlig FTP utan SFTP(säkerhetsbrister)
- Vill ha allt tillhörande FTPn i en och samma mapp. Alla användare skall använda samma mappar.
- Vill enkelt kunna se hur många som är inne för tillfället och gärna märka av när någon ny ansluter sig.
Jag funderade ett tag på om jag skulle kombinera pure-ftpd med MySQL men jag väntar tills jag hört om det finns enklare lösningar.
EDIT:
okej, hittade att man kan skriva pure-ftpwho och se tillfredställande info. Vill dock se/höra när någon ansluter till servern.
Vad är egentligen sftp?
Är det att man ansluter via FTP till SSH eller att man via SSH ansluter till en FTP eller hur fungerar det?
Vad jag saknar nu är att öka säkerheten så lösenorden inte skickas i klartext samt jag vill inte ha en mapp per användare i min /Users .... någon som kan hjälpa mig?
SFTP är SSH. En SFTP-klient är "bara" ett program som kan ansluta över ssh och hantera filer.
Jag tror att det där med att få användarna att bara se en viss mapp är svårt att göra med SSH, om det inte finns någon särskild SFTP-(SSH-)server som har den funktionen... Nån annan har säkert bra idéer.
För FTP kör jag proftpd som har en sån där "lås-till-hem-mapp"-funktion. Försöker att bara använda den med konton som inte har behörighet att göra så mycket annat på servern, med tanke på säkerhetsrisken.
Eller varför inte använda en mer logisk grupp som `ftp` ?
Okej, då ska jag genast kika på det.
Men om man har en ftpserver som pure-ftpd kan man kringå det här med att lösenorden skickas i klartext?
Jag vill inte ha någon nybörjar server som är lätt att hacka
OK, vad som är viktigast just nu.
Jag vill slå på någon form av krypteringsfunktion så personers lösenord inte skickas i klartext.
Främst av säkerhetsskäl (för mig & användaren. Vem vet, lösenordet kanske används på fler ställen) men även för jag är intresserad och vill lära mig hur det går till.
--with-encryption eller något borde ju finnas. Inget som vet hur jag kan få pure-ftpd att inte hantera lösenorden i klartext?
Om man vill köra vanlig FTP med krypterade lösenord finns en standard som heter "S/Key password encryption".
Tyvärr har jag inte hittat någon server som stödjer S/Key under OS X.
Något som däremot funkar under OS X är Glub Tech's Secure FTP Wrapper. Det är en "add-on" för vilken FTP server som helst. (t ex pure-ftp)
För att sedan lösa problemet med var du ska hamna så kan du ju helt enkelt använda dig av chroot för att användarna inte ska kunna komma åt resten av disken. Samt förstås fixa så att alla de tänkta användarna har samma hemkatalog via netinfo.
För att starta pure-ftp med den funktionaliteten och som en bakgrundsprocess skriver du
/usr/local/sbin/pure-ftpd -A -E -B
vid prompten, eller byter ut raden
ftp stream tcp nowait root /usr/libexec/tcpd ftpd -l
i [/i]/etc/inetd.conf[/i] mot
ftp stream tcp nowait root /usr/libexec/tcpd /usr/loc
al/sbin/pure-ftpd -A -E -B
För den som är intresserad så stödjer pure-ftp dessa växlar:
-1 Add the PID to the syslog output. Ignored if -f none is set.
-4 Listen only for IPv4 connections. MANDATORY FOR IPV NETWORKS ON OPENBSD.
-A Chroot() everyone, but root.
-a gid Regular users will be chrooted to their home directories, unless they belong to the specified gid.
Note that root is always trusted, and that chroot() occurs only for anonymous ftp without this option.
-b Be broken. Turns on some compatibility hacks for shoddy clients, and for broken Netfilter gateways.
-B Start the standalone server in background (daemonize).
-c clients Allow a maximum of clients to be connected. clients must be at least 1, and if you combine it with -p it will be forced down to half the number of ports specified by -p. If more than clients are connected, new clients are rejected at once, even clients wishing to upload, or to log in as normal users. Therefore, it is advisable to use -m as primary overload protection. The default value is 50.
-C max connection per ip Limit the number of simultanous connections coming from the same IP address. This is yet another very effective way to prevent stupid denial of services and bandwidth starvation by a single user. It works only when the server is launched in stan dalone mode (if you use a super-server, it is sup posed to do that). If the server is launched with -C 2 , it doesn't mean that the total number of connection is limited to 2. But the same client, coming from the same machine (or at least the same IP), can't have more than two simultaneous connections. This features needs some memory to track IP addresses, but it's recommended to use it.
-d turns on debug logging. Every command is logged, except that the argument to PASS is changed to "<password>". If you repeat -d , responses too are logged.
-e Only allow anonymous users to log in.
-E Only allow authenticated login. Anonymous users are prohibited.
-F fortunes file Display a funny random message in the initial login banner. The random cookies are extracted from a text file, in the standard fortune format. If you installed the fortune package, you should have a directory (usually /usr/share/fortune ) with binary files ( xxxx.dat ) and text files (without the .dat extension).
-f facility makes ftpd use facility for all syslog(3) messages. facility defaults to ftp. The facility names are normally listed in /usr/include/sys/syslog.h. Note that if -f is not the first option on the command line, a couple of messages may be logged to local2 before the -f option is parsed. Use -f none to disable logging.
-h pidfile In standalone mode, write the pid to that file in instead of /var/run/pure-ftpd.pid.
-H Don't resolve host names ("213.41.14.252" will be logged instead of "www.toolinux.com"). It can significantly speed up connections and reduce bandwidth usage on busy servers. Use it especially on public FTP sites.
-k percentage Disallow upload if the partition is more than per centage full. Example: -k 95 will ensure that your disk will never get filled more than 95% by FTP users.
-K Allow users to resume and upload files, but NOT to delete them. Directories can be removed, but only if they are empty.
-I timeout Change the maximum idle time. The timeout is in minutes, and defaults to 15.
-i Disallow upload for anonymous users, whatever directory permissions are. This option is espe- cially useful for virtual hosting, to avoid your users create warez sites in their account.
-j If the home directory of an user doesn't exist, automatically create it. The newly created home directory belongs to the user, and permissions are set according to the current directory mask. To
avoid local attacks, the parent directory should never belong to an untrusted user.
-L max files:max depth Avoid denial-of-service attacks by limiting the number of displayed files in a 'ls' and the maximum depth of a recursive 'ls'. Defaults are 2000:5 (2000 files displayed for a single 'ls' and walk
through 5 subdirectories max).
-l authentication:file Enable a new authentication method. It can be one of : -l unix For standard (/etc/passwd) authentica- tion. -l pam For PAM authentication. -l ldap:LDAP config file For LDAP directories. -l mysql:MySQL config file For MySQL databases. -l pgsql:Postgres config file For Postgres databases. -l puredb:PureDB database file For PureDB databases. -l extauth:path to pure-authd socket For external authentication handlers. Different authentication methods can be mixed together. For instance if you run the server with -lpuredb:/etc/pwd.pdb -lmysql:/etc/my.cf -lunix Accounts will first be authenticated from a PureDB database. If it fails, a MySQL server will be asked. If the account is still not found is the database, standard unix accounts will be scanned. Authentication methods are tried in the order you give the -l options. See the README.LDAP and README.MySQL files for info about the built-in LDAP and SQL directory support.
-M Allow anonymous users to create directories.
-m load Do not allow anonymous users to download files if the load is above load when the user connects. Uploads and file listings are still allowed, as are downloads by real users. The user is not told about this until he/she tries to download a file.
-N NAT mode. Force active mode. If your FTP server is behind a NAT box that doesn't support applicative FTP proxying, or if you use port redirection with- out a transparent FTP proxy, use this. Well... the previous sentence isn't very clear. Okay: if your network looks like this: FTP--NAT.gateway/router--Internet and if you want people coming from the internet to have access to your FTP server, please try without this option first. If Netscape clients can connect without any problem, your NAT gateway rulez. If Netscape doesn't display directory listings, your NAT gateway sucks. Use -N as a workaround.
-n maxfiles:maxsize Enable virtual quotas When virtual quotas are enabled, .ftpquota files are created, and the num- ber of files for an user is restricted to 'max- files'. The max total size of his directory is also restricted to 'maxsize' Megabytes. Members of the trusted group aren't subject to quotas.
-o Enable pure-uploadscript.
-O format:log file Record all file transfers into a specific log file, in an alternative format. Currently, three formats are supported : CLF, Stats and W3C. If you add -O clf:/var/log/pureftpd.log to your starting options, Pure-FTPd will log trans- fers in /var/log/pureftpd.log in a format similar to the Apache web server in default configuration. If you add -O stats:/var/log/pureftpd.log to your starting options, Pure-FTPd will create accurate log files designed for traffic analys software like ftpStats. If you add -O w3c:/var/log/pureftpd.log to your starting options, Pure-FTPd will create W3C-conformant log files . For security purposes, the path must be absolute (eg. /var/log/pureftpd.log , not ../log/pureftpd.log ) .
-P [i]ip address[(i] Force the specified IP address in reply to a PASV/EPSV/SPSV command. If the server is behind a masquerading (NAT) box that doesn't properly handle stateful FTP masquerading, put the ip address of that box here.
-p first:last Use only ports in the range R first to last inclu- sive for passive-mode downloads. This means that clients will not try to open connections to TCP ports outside the range R first - last , which makes pure-ftpd more compatible with packet fil- ters. Note that the maximum number of clients (specified with -c) is forced down to R ( last +1- first )/2 if it is greater, as the default is. (The syntax for the port range is, conveniently, the same as that of iptables).
-q upload:download Enable an upload/download ratio for anonymous users (ex: -q 1:5 means that 1 Mb of goodies have to be uploaded to leech 5 Mb).
-Q upload:download Enable ratios for anonymous and non-anonymous users. If the -a option is also used, users from the trusted group have no ratio.
-r Never overwrite existing files. Uploading a file whoose name already exists cause an automatic rename. Files are called xyz.1, xyz.2, xyz.3, etc.
-R Disallow users (even non-anonymous ones) usage of the CHMOD command. On hosting services, it may pre- vent newbies from doing mistakes, like setting bad permissions on their home directory. Only root can use CHMOD when this switch is enabled.
-s Don't allow anonymous users to retrieve files owned by "ftp" (generally, files uploaded by other anonymous users).
-S [{ip address|hostname}] [,{port|service name}] This option is only effective when the server is launched as a standalone server. Connections are accepted on the specified IP and port. IPv4 and IPv6 are supported. Numeric and fully-qualified host names are accepted. A service name (see /etc/services) can be used instead of a numeric port number.
-t bandwidth or -t upload bandwidth:download bandwidth Enable process priority lowering and bandwidth throttling for anonymous users. Delay should be in kilo- bytes/seconds.
-T bandwidth or -T upload bandwidth:download bandwidth Enable process priority lowering and bandwidth throttling for *ALL* users. Pure-FTPd should have been explicitely compiled with throttling support to have these flags work. It is possible to have different bandwidth limits for uploads and for downloads. '-t' and '-T' can indeed be followed by two numbers delimited by a column (':'). The first num- ber is the upload bandwidth and the next one applies only to downloads. One of them can be left blank which means infinity. A single number with- out any column means that the same limit applies to upload and download.
-U umask files:umask dirs Change the mask for creation of new files and directories. The default are 133 (files are readable -but not writable- by other users) and 022 (same thing for directory, with the execute bit on). If new files should only be readable by the user, use 177:077. If you want uploaded files to be executable, use 022:022 (files will be readable by other people) or 077:077 (files will only be readable by their owner).
-u uid Do not allow uids below uid to log in (typically, low-numbered R uid s are used for administrative accounts). -u 100 is sufficient to deny access to all administrative accounts on many linux boxes, where 99 is the last administrative account. Anonymous FTP is allowed even if the uid of the ftp user is smaller than uid. -u 1 denies access only to root accounts. The default is to allow FTP access to all accounts.
-V ip address Allow non-anonymous FTP access only on this specific local IP address. All other IP addresses are only anonymous. With that option, you can have routed IPs for public access, and a local IP (like 10.x.x.x) for administration. You can also have a routable trusted IP protected by firewall rules, and only that IP can be used to login as a nonanonymous user.
-w Enable support for the FXP protocol, for non-anonymous users only.
-W Enable the FXP protocol for everyone. FXP IS AN UNSECURE PROTOCOL. NEVER ENABLE IT ON UNTRUSTED NETWORKS.
-x In normal operation mode, authenticated users can read/write files beginning with a dot ('.'). Anonymous users can't, for security reasons (like changing banners or a forgotten .rhosts). When '-x' is used, authenticated users can download dot-files, but not overwrite/create them, even if they own them. That way, you can prevent hosted users from messing
-X This flag is identical to the previous one (writing dot-files is prohibited), but in addition, users can't even *read* files and directories beginning with a dot (like "cd .ssh").
-z Allow anonymous users to read files and directories starting with a dot ('.').
-Z Add safe guards against common customer mistakes (like chmod 0 on their own files)
Tack och hej. Det var allt ifrån SM i långa inlägg
/arvid
Jag kan då undra ifall någon fått igång ncftpd på en OS X maskin... jag lyckas fasen inte. Jag vill ha den gående.
Hur gör jag?
Måste erkänna att jag skrev fel ftp server... Visserligen finns ncftpd men det är inte den jag tänkte installera utan det är proftpd jag vill ha installerat.
Skillnaden vet jag inte. Jag har läst mycket om proftpd och härt mycket om den. Det är en mycket bra och kompetent ftp server med mängder av inställningsmöjligheter. Kraftfull och en sak som inte krashar så lätt.
I förlängningen tänkte jag även installera så att proftpds användare sköts via mysql men det är en senare fråga först in med själv servern.
ncftp är en ruggigt bra ftp klient, den kan jag verkligen rekommendera.
Vill du ha sftp kan du lika gärna lära sig kommandot scp. Vilket jag använder när jag ska skicka via ssh. Visserligen terminal men vad gör det.
Man måste vara lite hardcore ibland.
Jag kan lära mig scp men vad hjälper det mina användare till FTPn ?
Jag vill ha en FTP för ca 10 personer och jag vill att de ska använda samma mappar. Säg att jag vill ha tex
>Incoming
>Projects
>News
3 mappar och samtliga användare skall använda dessa 3 (och jag vill undvika att ha en mapp/konto i /Users).
scp kan jag använda när jag vill ansluta till en sftp server, men nu har jag ingen sådan
Återupplivar tråden.
Just nu undrar jag hur jag skapar användare för min FTP som jag sedan samlar under samma mapp.
Jag vill kunna se vem som skickat och tankat vad från FTPn.
Alla användare ska använda sig av samma mapp.
/Users/ftp
Kan någon sätta ihop en kort liten tutorial för hur man skapar användare till FTPn och samlar dessa under samma mapp som även används som ftpns chroot?