Glftpd

Instalacja serwera FTP na przykladzie GlFTPd

wchodzimy na strone:

http://glftpd.com/

sciagamy i rozpakowujemy paczke

$ cd glftpd-LNX_2.00

$ su

podajemy haslo

# sh installgl.sh

na poszczegolne pytania mozemy od np. tak:

Use tcpd? [Y]es [N]o: y

Use a jailed environment? [Y]es [N]o: y

Please enter the private directory to install glftpd inside [/jail]: /jail

Use a private group? [Y]es [No]: y

What would you like your private group to be called? : glftpd

Who should have access to glftpd? (separate with ,): yaro

Please enter the directory inside /jail to install glftpd to : /glftpd

Press <enter> for the default (glftpd)> glftpd

Failed to compile: /jail/glftpd/bin/sources/glupdate.c

tym sie nie trzeba przejmowac (chyba? :P )

Enter the port you would like glftpd to listen on [21]: 21

This is for glftpd's 'reset' binary (see docs for more info) [Y/N]: y

Please specify location, inside /jail/glftpd,

to install the cert (ftpd-dsa.pem) [/etc]: /etc

Please specify a generic name for this certificate.

This can be any name but should say something about the ftp server

like the name for it perhaps (press enter for glftpd): SirYaroFTP

obcialem wiekszosc komunikatow ale najwazniejsze jest podane

teraz bedzie generowal klucz wiec to troche potrwa... (1-3 minuty)

serwer sam wstanie i bedzie dzialal, sprawdzmy to:

# nmap localhost|grep 21

Starting nmap 3.75 ( http://www.insecure.org/nmap/ ) at 2005-04-21 14:21 CEST

21/tcp open ftp

przeedytujmy (jesli chcemy) konfig:

# mcedit /jail/glftpd.conf

shutdown 0

okresla czy serwer jest wlaczony czy nie

0 -tak

1-tylko dla admina

!*-wylaczony

linia zakomentowana - serwer wlaczony dla wszystkich

sitename_long MY[:space:]SITE[:space:]NAME

dluga nazwa serwera spacje zastepujemy [:space:]

sitename_short MSN

krotka nazwa serwera

email root@127.0.0.1

pod jakim mejlem mozna dorwac admina

rootpath /jail/glftpd

gdzie lezy serwer (nie trzeba zmieniac)

PONIZSZE zostawmy niezmienione:

-----------------------------------------

# Path relative to the ROOTPATH.

datapath /ftp-data

welcome_msg /ftp-data/misc/welcome.msg *

goodbye_msg /ftp-data/misc/goodbye.msg *

newsfile /ftp-data/misc/newsfile *

banner /ftp-data/misc/banner

# TLS enforcements.

userrejectsecure !*

userrejectinsecure !*

denydiruncrypted !*

denydatauncrypted !*

-----------------------------------------

color_mode 0

czy wyswietlac w kosloli listingi z uzyciem kolorow

wylaczamy - tylko problemy

postawmy znak # przedlinia

site_cmd LOCATE EXEC /bin/locate.sh

free_space 20

minimalnie ile miesjca musi byc aby zezwolono na upload

max_users 15 5

ilu userow moze jednoczesnie byc na serwie

total_users 300

ilu kont moze byc max na serwerze

# dupecheck how many days? ignore file case like Windows?

dupe_check 7 no

sprawdzanie czy plik juz istnieje na serwerze

przy dobrych laczach przydatne i to bardzo przy marnych robi problemy i to duze

wiec wylaczam je tak:

dupe_check 0 no

nodupecheck *

dl_incomplete 0

zakazujemy sciagania nie skonczonych plikow

min_homedir /site

powyzej tego katalogu nie mozna przejsc

teraz pare przykladow dodatkowej konfiguracji:

upload /site/katalog/* *

kazdy moze uploadowac do ww katalogu

upload /site/katalog/Encore/* -seem

do ww katalogu moze uploadowac tylko user seem

upload * -yaro -admin

wszedzie moze uploadowac tylko yaro i admin

download * *

sciagac moze kazdy z kazdego miejsca

rename * 1 =STAFF

globalnie zmieniac nazwy moze tylko user z ustawiona flaga 1 i grupa STAFF

renameown * *

zmieniac nazwy wlasnych plikow moze kazdy i wszedzie

delete * 1

globalnie kasowac nazwy moze tylko user z ustawiona flaga 1

privpath /site/Upload/by.Blaster -yaro 1 -blaster

ww katalog bedzie widoczny tylko dla usera yaro, blaster i usera z ustawiona flaga 1

to chyba wszystkie takie dodstawowe opcje...

teraz logujemy sie na serwer (login glftpd, haslo glftpd)

# ftp 127.0.0.1

Connected to 127.0.0.1.

220 MY SITE NAME (glFTPd 2.00 Linux+TLS) ready.

Name (127.0.0.1:root): glftpd

331 Password required for glftpd.

Password:

230- _____

230- `-----( Type 'site onel MESSAGE' to enter your message )-----'

230 User glftpd logged in.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp>

informacje o userze glftpd

ftp> site user glftpd

200- User Comment: glftpd

200- +=======================================================================+

200- | Username: glftpd Created: 0 |

200- | Added by: Expires: Never |

200- | Time On Today: 00:00 Last seen: Thu Apr 21 14:44:15 2005|

200- | Flags: 1 Idle time: Disabled |

200- | Ratio: 1:3 Credits: 4.9 MB |

200- | Total Logins: 2 Current Logins: 1 |

200- | Max Logins: 2 From same IP: Unlimited |

200- | Max Sim Uploads: Unlimited Max Sim Downloads: Unlimited |

200- | Max Upload Speed: 0.0 K/s Max Download Speed: 0.0 K/s |

200- | Times Nuked: 0 Bytes Nuked: 0 MB |

200- | Weekly Allotment: 0 MB Messages Waiting: N |

200- | Time Limit: 0 minutes. (0 = Unlimited) |

200- | Tagline: Glftpd default user |

200- | Groups: |

200- | Priv Groups: |

200- +-----------------------------------------------------------------------+

200- | IP0: *@127.0.0.1 IP1: |

200- | IP2: IP3: |

200- | IP4: IP5: |

200- | IP6: IP7: |

200- | IP8: IP9: |

200- +=======================================================================+

200 Command Successful.

ftp>

na dole jest podane z jakiego ip mozna sie logowac na to konto

aby zezwolic z kazdego nalezy wprowadzic jako ip *@*

widac tez tutaj ta wczesniej wspominana flage 1

dla ciekawych opis poszczegolnych flag:

Flagname Flag Description

-------------------------------------------------------------

SITEOP 1 User is siteop.

GADMIN 2 User is Groupadmin of one of his/her groups

(doesn't work for private groups).

GLOCK 3 User cannot change group.

EXEMPT 4 Allows to log in when site is full. Also allows

user to do "site idle 0", which is the same as

having the idler flag. Also exempts the user

from the sim_xfers limit in config file.

COLOR 5 Enable/Disable the use of color (toggle with "site color").

DELETED 6 User is deleted.

USEREDIT 7 "Co-Siteop"

ANON 8 User is anonymous (per-session like login).

wywolujemy informacje o istniejacych uzytkownikach:

tworzymy uzytkownika:

ftp> site adduser

200- .-------------------------------------------------------.

200- | USAGE: SITE ADDUSER <username> <password> <IP#1 - 5> |

200- | |

200- | <username> The username to add. |

200- | <password> The password to set for this user. |

200- | <IP#1 - 5> Optional: Up to 5 ips may be specified here. |

200- | |

200- | After you add a user, use "SITE ADDIP" to add IP's to |

200- | the new account. |

200- `-------------------------------------------------------'

200 Command Successful.

ftp> site adduser test test *@*

200- User created, now adding IPs...

200- IP '*@*' successfully added to test.

200-

200 User (test) successfully added.

ftp>

zmieniamy mu ustawienia (moze sciagac tylko 1 rzecz na raz i jest operatorem FTP)

ftp> site change

200- -----------------------------------------------------------

200- SITE CHANGE <username> <field> <value>

200- SITE CHANGE { <user1> <user2> } <field> <value>

200- SITE CHANGE =<group> <field> <value>

200- SITE CHANGE * <field> <value>

200- -----------------------------------------------------------

200-

200- Fields: ratio

200- sratio

200- wkly_allotment [#,]#

200- max_dlspeed

200- max_ulspeed

200- max_sim_down

200- max_sim_up

200- timeframe # #

200- credits

200- flags

200- homedir

200- idle_time

200- startup_dir

200- num_logins # [#]

200- time_limit

200- tagline

200- comment

200- expires [yyyy-mm-dd]

200- -----------------------------------------------------------

200 Command Successful.

ftp> site change test max_sim_down 1

200 Command Successful.

ftp> site change test flags +1

200 Command Successful.

ftp>

wyswietlmy te informacje:

ftp> site user test

200- User Comment: Added by glftpd

200- +=======================================================================+

200- | Username: test Created: 04-21-05 |

200- | Added by: glftpd Expires: Never |

200- | Time On Today: 00:00 Last seen: Thu Apr 21 14:52:41 2005|

200- | Flags: 13 Idle time: Disabled |

200- | Ratio: 1:3 Credits: 14.6 MB |

200- | Total Logins: 0 Current Logins: 0 |

200- | Max Logins: 2 From same IP: Unlimited |

200- | Max Sim Uploads: Unlimited Max Sim Downloads: 1 |

200- | Max Upload Speed: 0.0 K/s Max Download Speed: 0.0 K/s |

200- | Times Nuked: 0 Bytes Nuked: 0 MB |

200- | Weekly Allotment: 0 MB Messages Waiting: N |

200- | Time Limit: 0 minutes. (0 = Unlimited) |

200- | Tagline: No Tagline Set |

200- | Groups: |

200- | Priv Groups: |

200- +-----------------------------------------------------------------------+

200- | IP0: *@* IP1: |

200- | IP2: IP3: |

200- | IP4: IP5: |

200- | IP6: IP7: |

200- | IP8: IP9: |

200- +=======================================================================+

200 Command Successful.

ftp>

widac teraz ze ma flagi 1 i 3 oraz ze jest juz mozliwosc sciagania tylko w 1 sesji

jak beda jakies dodatkowe pytania to na nie odpowiem jednak zasadniczo wszystko jest w pliku

/jail/glftpd/docs/glftpd.docs

obszerny jak cholera praktycznie wszystko w nim jest

praktycznie wszystko w /jail/glftpd/site moze miec prawa 777 poniewaz serwer sam sie zajmuje kontrola uprawnien

w innym wypadku musimy zadbac aby serwer mial prawa do pisania po swoich katalogach

jesli chcemy udostepnic jakis katalog lezacy po za /jail/glftpd/site musimy to zrobic juz na poziomie systemu

mount --bind /katalog/zrodlowy/ /jail/glftpd/site/katalog/docelowy/

i dopisac to np do /etc/rc.local

serwer ma wiecej mozliwosci niz bedziemy kiedykolwiek potrzebowac....

wszystkie dostepne polecenia otrzymamy po wydaniu na serwerze polecenia

ftp> SITE HELP