1 dokumentacja bftpd jezyk polski] 2 napisana przez Max-Wilhelm Bruker <brukie@gmx.net> 3 4 5 Ten dokument stanowi dokumentacje serwera bftpd. 6 ______________________________________________________________________ 7 8 Table of Contents 9 10 11 1. Wprowadzenie 12 2. Instalacja 13 2.1 Kompilacja 14 2.2 Uruchamianie serwera 15 16 3. Konfiguracja 17 3.1 Zarzadzanie uzytkownikami 18 3.2 Plik konfiguracji (/etc/bftp.conf) 19 3.2.1 Sekcja globalna 20 3.2.2 Sekcja uzytkownikow 21 3.2.3 Sekcja grup uzytkownikow 22 3.2.4 Sekcja katalogow 23 24 4. FAQ 25 4.1 Problemy z kompilacja 26 4.1.1 Nie moge skompilowac bftpd 27 4.1.2 Wystepuja dziwne ostrzezenia 28 4.1.3 Make mowi ze nie moge uzywac wtmp 29 4.2 Problemy przy uruchamianiu 30 4.2.1 Otrzymuje komunikat "Could not get peer IP address." 31 4.2.2 Dostaje blad "Bind failed: Address already in use." 32 4.3 Problemy podczas sesji FTP 33 4.3.1 Mam blad podobny do "500 Unknown command: 'foo'" 34 4.3.2 Sesja sie konczy bledem 421 35 4.4 Rozne 36 4.4.1 Jak dziala kompresja w locie? 37 4.4.2 Moje opcje dla polaczen anonymous nie dzialaja 38 4.4.3 Dlaczego dokumentacja jest tak uboga? 39 40 5. Credits 41 5.1 Testowanie na roznych platformach 42 5.2 Pomysly, uwagi& fragmenty kodu 43 5.3 Pisanie dokumentacji 44 5.4 Inne 45 46 47 ______________________________________________________________________ 48 49 11.. WWpprroowwaaddzzeenniiee 50 51 bfptd jest serwerem FTP dla Linuxa, BSD/OS, FreeBSD, Solarisa, DG-UXa 52 oraz Tru64 (nie wiem czy dziala on na innych systemach, jesli 53 probowales, napisz do mnie). Uruchamiany moze byc poprzez inetd badz w 54 trybie standalone (demon). 55 56 bftpd stara sie byc bardzo elastycznym przy zachowaniu malego rozmiaru 57 oraz swojej szybkosci. Mozesz wprowadzac wartosci domyslne dla kazdej 58 opcji w konfiguracji a nastepnie nadpisywac je poprzez lokalne 59 parametry. 60 61 Do zalet bftpd zaliczyc mozna: 62 63 +o Prosta konfiguracje 64 65 +o Predkosc 66 67 +o Obsluge wiekszosci komend FTP RFC 68 69 +o Kompresje w locie do archiwow .tar.gz 70 71 +o Bezpieczenstwo poprzez proste wprowadzenie chroota 72 73 +o Brak koniecznosci udostepniania basha oraz innych komend w 74 srodowisku chroot 75 76 +o Logowanie do wtmp oraz do pliku badz demona syslogd 77 78 +o Obsluge PAM oraz hasel passwd/shadow 79 80 +o Obsluge komend SITE CHOWN/CHMOD 81 82 83 22.. IInnssttaallaaccjjaa 84 85 22..11.. KKoommppiillaaccjjaa 86 87 Najpierw uruchom nastepujace polecenia (zamieniajac x.x.x na wersje, 88 ktora instalujesz): 89 90 91 tar xzf bftpd-x.x.x.tar.gz 92 cd bftpd-x.x.x 93 ./configure 94 make 95 make install [wymaga roota] 96 97 98 99 Wiedz, ze jesli upgradujesz bftpd ze starszej wersji, musisz recznie 100 skopiowac plik bftpd.conf do katalogu /etc, poniewaz polecenie 'make 101 install' nie nadpisuje pliku konfiguracyjnego. 102 103 Uwaga: Jesli chcesz korzystac z opcji kompresji w locie do .tar.gz, 104 musisz sciagnac kody zrodlowe gzipa oraz paxa i rozpakowac je do 105 katalogu zrodlowego bftpd. Nastepnie, zamiast uruchomic "./configure", 106 wykonaj "./configure --enable-pax=katalog-z-paxem --enable- 107 gzip=katalog-z-gzipem". 108 109 22..22.. UUrruucchhaammiiaanniiee sseerrwweerraa 110 111 Do wyboru masz uruchamianie bftpd poprzez inetd oraz w trybie 112 standalone (demon). 113 114 JJeessllii cchhcceesszz kkoorrzzyyssttaacc zz iinneettdd:: 115 Dodaj nastepujacy wpis do /etc/inetd.conf: 116 117 ftp stream tcp nowait root /usr/sbin/bftpd bftpd 118 119 120 121 Wyslij inetdowi sygnal HUP lub zrestartuj system. Od tego momentu 122 bftpd powinien pracowac. 123 124 JJeessllii cchhcceesszz uurruucchhoommiicc bbffttppdd jjaakkoo ddeemmoonnaa ((ssttaannddaalloonnee)):: 125 Kaz systemowi uruchamiac: 126 127 128 129 /usr/sbin/bftpd -d 130 131 132 133 przy starcie. 134 135 33.. KKoonnffiigguurraaccjjaa 136 137 33..11.. ZZaarrzzaaddzzaanniiee uuzzyyttkkoowwnniikkaammii 138 139 Mozesz obslugiwac konta uzytkownikow w bardzo prosty sposob, edytujac 140 plik /etc/passwd oraz, jesli Twoj system to obsluguje, /etc/shadow. 141 Kazdy uzytkownik wystepujacy w /etc/passwd moze sie polaczyc z 142 serwerem jesli poda haslo i spelni wymagania konfiguracji serwera 143 bftpd. Mozna rowniez zalozyc konto anonymous, ustawiajac zmienna 144 ANONYMOUS_USER na yes. bftpd obsluguje rowniez PAM. 145 146 33..22.. PPlliikk kkoonnffiigguurraaccjjii ((//eettcc//bbffttpp..ccoonnff)) 147 148 33..22..11.. SSeekkccjjaa gglloobbaallnnaa 149 150 W tej sekcji mozesz nadawac wartosci opcjom konfiguracji. Skladnia 151 jest nastepujaca: 152 153 154 global { 155 nazwa1=wartosc1 156 nazwa2=wartosc2 157 } 158 159 160 161 33..22..22.. SSeekkccjjaa uuzzyyttkkoowwnniikkooww 162 163 W konfiguracji wystepuje rowniez sekcja uzytkownikow, w ktorej mozesz 164 nadpisywac wartosci globalne dla poszczegolnych uzytkownikow. 165 Przyklad: 166 167 168 global { 169 nazwa1=wartosc1 170 nazwa2=wartosc2 171 } 172 user foo { 173 nazwa1=wartosc3 174 } 175 176 177 178 Jesli uzytkownik foo sie zaloguje, to nazwa pierwsza bedzie miala 179 wartosc3. Jesli zalogowany jest inny uzytkownik, nazwa1 ma warosc1, 180 natomiast nazwa2 ma zawsze wartosc2. 181 182 183 33..22..33.. SSeekkccjjaa ggrruupp uuzzyyttkkoowwnniikkooww 184 185 Mozesz takze definiowac konfiguracje grupom uzytkownikow - podobnie 186 jak dla jednego uzytkownika, tylko mozesz przydzielic ich kilku pod 187 postacia grupy. Mozesz rowniez umieszczac w konfiguracji grupy 188 systemowe dodajac do ich nazwy znak @. Przyklad: 189 190 191 192 group foo,bar,@baz { 193 nazwa1=wartosc1 194 } 195 196 197 198 Te opcje oddzialuja na uzytkownikow foo i bar oraz na kazdego z grupy 199 systemowej baz. 200 201 33..22..44.. SSeekkccjjaa kkaattaallooggooww 202 203 Mozesz ustalac opcje, ktore beda wazne tylko dla uzytkownikow 204 znajdujacych sie w danym katalogu, badz jego podkatalogach. Wez pod 205 uwage, ze musisz umiescic te struktury w opcjach globalnych, 206 uzytkownikow oraz grup. W ten sposob mozesz takze nadpisywac 207 specyficzne ustawienia katalogu dla danych uzytkownikow. Przykladowo: 208 209 210 global { 211 nazwa=wartosc1 212 directory /foo { 213 nazwa1=wartosc2 214 } 215 } 216 user bar { 217 directory /foo { 218 nazwa1=wartosc3 219 } 220 } 221 222 223 224 Tutaj, nazwa1 bedzie miala warosc3 jesli uzytkownik bar bedzie w kata- 225 logu /foo. Natomiast wartosc2 przybierze jesli inny uzytkownik zna- 226 jdzie sie w katalogu /foo. Kazdy inny przypadek spowoduje nadanie 227 nazwie1 wartosci1. 228 229 Wyjasnienie tych opcji znajdziesz w pliku konfiguracyjnym bftpd (jesli 230 nie upgradowales bftpd, plik zostal juz skopiowany do /etc). 231 Zmodyfikuj oczywiscie plik do twoich potrzeb. Jednak domyslna 232 konfiguracja tez powinna byc w porzadku. 233 234 44.. FFAAQQ 235 236 44..11.. PPrroobblleemmyy zz kkoommppiillaaccjjaa 237 238 44..11..11.. NNiiee mmooggee sskkoommppiilloowwaacc bbffttppdd 239 240 Daj mi znac. Powiedz na jakim systemie i architekturze go 241 kompilowales, przeslij tez wyjscie calego procesu kompilacji 242 (configure i make). Nie dostaje ton poczty, wiec postaram sie 243 rozwiazac Twoj problem. Jesli natomiast nie odpowiem, prawie 244 zapomnialem o Twoim mailu, wiec go ponow :) 245 246 44..11..22.. WWyysstteeppuujjaa ddzziiwwnnee oossttrrzzeezzeenniiaa 247 248 To jest calkiem mozliwe na platformach, na ktorych nie testowalem 249 bftpd. Nawet jesli bftpd skompiluje sie prawidlowo i dziala bez 250 zarzutu, prosze, przeslij mi informacje na ten temat, gdyz kompilator 251 moze powodowac niezauwazalne na pierwszy rzut oka problemy. 252 253 254 255 44..11..33.. MMaakkee mmoowwii zzee nniiee mmooggee uuzzyywwaacc wwttmmpp 256 257 Prawdopodobnie uzywasz Solarisa. Poniewaz nie mam dostepu do takiej 258 maszyny, nigdy nie moglem sprawdzic jej wtmp. Jesli otrzymujesz taki 259 komunikat i nie wiesz czym jest w ogole wtmp, nie martw sie o to. 260 Jesli jest inaczej, pomoz mi rozwiazac problem. 261 262 44..22.. PPrroobblleemmyy pprrzzyy uurruucchhaammiiaanniiuu 263 264 44..22..11.. OOttrrzzyymmuujjee kkoommuunniikkaatt ""CCoouulldd nnoott ggeett ppeeeerr IIPP aaddddrreessss.."" 265 266 Uruchomiles bftpd przez konsole. Jesli chcialbys z niego korzystac w 267 trybie standalone, musisz dodac opcje "-d". Jesli jednak ustawiles go 268 jako usluge inetd, sprawdz to przez: 269 270 271 hostname:~$ ftp localhost 272 273 274 275 44..22..22.. DDoossttaajjee bbllaadd ""BBiinndd ffaaiilleedd:: AAddddrreessss aallrreeaaddyy iinn uussee.."" 276 277 Ten blad oznacza, ze inny proces juz wykorzystuje port, na ktorym 278 chcesz uruchomic serwer bftpd. Mozesz zmienic numer portu bftpd w 279 pliku konfiguracyjnym (bftpd.conf) - opcja PORT w strukturze 280 globalnej. Domyslnie ustawiony jest na 21. Jesli nie zmieniales tego 281 portu, prawdopodobnie zapomniales wylaczyc swoj stary serwer FTP. 282 Zajrzyj do /etc/inetd.conf oraz do wydruku polecenia "ps aux | grep 283 ftp". 284 285 44..33.. PPrroobblleemmyy ppooddcczzaass sseessjjii FFTTPP 286 287 44..33..11.. MMaamm bbllaadd ppooddoobbnnyy ddoo ""550000 UUnnkknnoowwnn ccoommmmaanndd:: ''ffoooo''"" 288 289 Twoj program wyslal komende, ktorej bftpd nie rozpoznal. To jest moj 290 blad, chyba ze rzeczywiscie wyslales nieistniejace polecenie. Sprawdz 291 czy sie nie pomyliles przy jego wpisywaniu i wyslij mi raport, jesli 292 masz pewnosc, ze komenda byla dobra. 293 294 44..33..22.. SSeessjjaa ssiiee kkoonncczzyy bblleeddeemm 442211 295 296 Jesli porobujesz sie zalogowac ze zlym haslem, bftpd zerwie 297 polaczenie. Jesli sie zalogowales zanim blad sie pojawil, badz blad 298 wystapil przed zalogowaniem, to na pewno jest moj blad. Powiedz mi o 299 tym. 300 301 44..44.. RRoozznnee 302 303 44..44..11.. JJaakk ddzziiaallaa kkoommpprreessjjaa ww lloocciiee?? 304 305 Zalozmy, ze masz katalog nazywajacy sie foo. Nawet jesli nie ma pliku 306 o nazwie foo.tar.gz, mozesz jednak uzyc polecenia RETR i bedzie on 307 zaweral zawartosc katalogu foo, tar-gzipowana. Mozesz rowniez sciagac 308 pliki: 309 310 +o dirname.tar 311 312 +o filename.gz 313 314 Jesli chcesz korzystac z tej opcji, wkompiluj ja najpierw (patrz: 315 instalacja) 316 317 318 319 44..44..22.. MMoojjee ooppccjjee ddllaa ppoollaacczzeenn aannoonnyymmoouuss nniiee ddzziiaallaajjaa 320 321 Jesli w strukturze jest opcja ALIAS=...., nie musisz uzupelniac jej 322 opcjami. Zamiast tego, zrob to w sekcji, do ktorej sie alias odnosi. 323 324 44..44..33.. DDllaacczzeeggoo ddookkuummeennttaaccjjaa jjeesstt ttaakk uubbooggaa?? 325 326 Odpowiedz jest prosta, nikt niczego nie napisal :) 327 Nigdy nie wiem co napisac, wiec jesli masz jakas wizje wzbogacenia 328 dokumentacji, prosze, poinformuj mnie o tym. To samo dotyczy tlumaczen 329 na inne jezyki. Jesli chcialbyc cos stworzyc, zrob to, jednak zwracaj 330 uwage na bledy stylistyczne i literowki. 331 332 55.. CCrreeddiittss 333 334 55..11.. TTeessttoowwaanniiee nnaa rroozznnyycchh ppllaattffoorrmmaacchh 335 336 337 +o David L. Nicol (david@kasey.umkc.edu) testowal bftpd na Tru64. 338 339 +o JackRipper (vic@altoona.net) testowal bftpd na BSD/OS oraz DG-UX. 340 341 +o Christian Beyerlein (christian@beyerlein.de) testowal bftpd na 342 FreeBSD i Solarisie. 343 344 +o Ludzie z kanalu #linux (IRCNet) sprawdzali bftpd na roznych 345 systemach. 346 347 55..22.. PPoommyyssllyy,, uuwwaaggii&& ffrraaggmmeennttyy kkoodduu 348 349 350 +o Josh Woodcock (josh@hamparts.com) podzielil sie kiloma uwagami - 351 Solaris 8. 352 353 +o Floh (floh@maflohsoft.de) zasugerowal wbudowac obsluge ASCII. 354 355 +o Erik Hensema (erik@hensema.xs4all.nl) znalazl blad w netfilterze 356 2.4.0 wplywajacy na bftpd. 357 358 +o Heiko Rother (rother@cmsnet.de) mial wiele dobrych pomyslow (patrz 359 changelog). 360 361 +o Christophe Bailleux (cb@grolier.fr) wprost uwielbia znajdowac 362 problemy w listingowaniu katalogow. Poza tym mial wiele uwag i 363 podeslal wiele fragmentow kodu. 364 365 +o Jonathan Heusser (jonathanheusser@gyml.unibas.ch) znalazl blad 366 przepelnienia bufora. 367 368 +o Christian Beyerlein (christian@beyerlein.de) zaproponowal aliasy 369 uzytkownikow. 370 371 +o Elmusafir (jslmarti@campus.cem.itesm.mx) doniosl o bledzie we 372 wspolpracy ze Staroffice, ktory naprawiono w wersji 1.0.8. 373 374 +o Alex Madden (alexm@immstudios.com) oraz Daniel Mack 375 (daniel.mack@nextra.de) napisali o niekompatybilnosci z Solarisem - 376 naprawiono w 1.0.8. 377 378 +o Daniel Mack (daniel.mack@nextra.de) podeslal duzego patcha (patrz 379 changelog). 380 381 55..33.. PPiissaanniiee ddookkuummeennttaaccjjii 382 383 384 385 +o Radek Michalski (radek@end.p-s.com.pl) przetlumaczyl dokumentacje 386 bftpd na jezyk polski. 387 388 55..44.. IInnnnee 389 390 391 +o Kilka pomyslow struktry kodu zaczerpnalem z betaftpd Steinera H. 392 Gutersona. Ale to raptem kilka linii. 393 394 395 396