1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344
|
<!doctype linuxdoc system>
<!-- Nagekeken door Nine Matthijssen, smurfin@nl.linux.org -->
<linuxdoc>
<article>
<titlepag>
<!-- Title Info -->
<title>FTP Setup Tips </title>
<author><name>Will Harris, <tt>wil@redhat.com</tt> <newline>
Vertaler: Reggy Ekkebus, <tt>reggy@zeelandnet.nl</tt></name></author>
<date>v1.1, 20 april 1999.</date>
<!-- Copyright 1999, Red Hat Software -->
</titlepag>
<toc>
<sect><heading>Inleiding</heading>
<p>"Red Hat Tips" is documentatie die bedoeld is om Red Hat gebruikers te
helpen met bepaalde taken. Enkele van deze documenten zijn voor beginnende
gebruikers, andere zijn voor gevorderde gebruikers. Als je een bijdrage wilt
leveren, zend die dan naar <tt>tech-sup@redhat.com</tt>. Als je veranderingen
hebt voor een individueel Tips document, zend die dan naar de auteur van dat
document.</p>
</sect>
<sect><heading>Introductie</heading>
<p>Dit document beschrijft de configuratie voor wu-ftpd en proftpd voor
gewone gebruikers en anonieme gebruikers.
Je moet root zijn voor dit gehele proces.
Het eerste deel gaat over het instellen van wu-ftpd en anonieme ftp.
Het tweede deel gaat over het instellen van proftpd.</p>
</sect>
<sect><heading>Voorbereiding</heading>
<p>Installeer de NetKit-B en anonftp RPM's. NetKit-B heeft de FTP server
daemon; anonftp heeft de binaries, libraries en dingen die in de FTP directory
gaan.
/home/ftp is de root directory van je FTP server. Anonftp zet het meeste
voor je op, maar er zijn nog een paar dingen die je zelf moet doen.
Je moet een kopie van <tt>/etc/passwd</tt> en <tt>/etc/group</tt> in
<tt>/home/ftp/etc</tt> zetten, zodat het <tt>/ls</tt> commando de
gebruikersnamen en groepnamen ook weergeeft.
Voor de veiligheid van je systeem moet je de gecodeerde wachtwoorden
vervangen door sterretjes. Om <tt>/etc/passwd</tt> naar
<tt>/home/ftp/etc/passwd</tt> te kopieëren en de wachtwoorden te vervangen
door sterretjes, gebruik je dit commando:
<tscreen><verb>
sed -e 's/:[^:]*:/:*:/' /etc/passwd >~ftp/etc/passwd
</verb></tscreen>
In <tt>/etc/group</tt> staan onder Red Hat Linux geen wachtwoorden, dus
deze kun je gewoon kopieëren:
<tscreen><verb>
cp /etc/group ~ftp/etc/group
</verb></tscreen>
Een andere optie (en een goed idee voor veiligheid) is het gebruik van
shadow passwords. Onder linux kun je dit doen door simpelweg het volgende
uit te voeren:
<tscreen><verb>
pwconv
</verb></tscreen>
Dit commando converteert het password bestand naar shadow, vernieuwt de
pam libs om shadow passwords te gebruiken en een permissie te zetten
op <tt>/etc/shadow</tt>.
Als je dit doet, dan kun je gewoon de bestanden <tt>/etc/passwd</tt> en
<tt>/etc/group</tt> kopieëren:
<tscreen><verb>
cp /etc/passwd /etc/group ~ftp/etc/
</verb></tscreen>
Dat is dat, kijk het voor de zekerheid nog even na voor je verder gaat.
Notitie: De enige regels die we eigenlijk nu nodig hebben zijn die van de root.
</p></sect>
<sect><heading>Beveiligen</heading>
<p>De anonftp RPM plaatst enkele binaries en libraries in de <tt>/home/ftp</tt>
directory om Ftp gebruikers dingen te laten doen zoals:
automatisch bestanden unzippen als ze worden opgehaald of het ophalen van
een hele directory met tar bestanden. Er zijn een paar extra bestanden
geplaatst door de anonftp RPM die bijna nooit gebruikt worden en die moeten
worden verwijderd om de veiligheid te bevorderen.
<tscreen><verb>
cd /home/ftp/bin
rm cpio sh zcat
cd ../etc
rm ld.so.cache
cd ../lib
rm ld.so* libtermcap*
</verb></tscreen>
Tot slot moet je de permissies van bestanden veranderen om de veiligheid
te bevorderen.
<tscreen><verb>
chmod 111 ~ftp/bin/* ~ftp/bin ~ftp/etc ~ftp/lib
chmod 444 ~ftp/etc/*
chmod 555 ~ftp ~ftp/lib/*
</verb></tscreen>
Als je klaar bent moet je het volgende hebben:
<tscreen><verb>
bin:
total 164
---x--x--x 1 root root 14776 Oct 31 09:54 compress
---x--x--x 1 root root 45277 Oct 29 21:59 gzip
---x--x--x 1 root root 22977 Oct 29 20:07 ls
---x--x--x 1 root root 77873 Oct 25 17:49 tar
</verb></tscreen>
<tscreen><verb>
etc:
total 2
-r--r--r-- 1 root root 495 Mar 20 19:46 group
-r--r--r-- 1 root root 921 Mar 20 19:45 passwd
</verb></tscreen>
<tscreen><verb>
lib:
total 702
-r-xr-xr-x 1 root root 20994 Oct 30 18:58 ld-linux.so.1
-r-xr-xr-x 1 root root 20994 Oct 30 18:58 ld-linux.so.1.7.5
lrwxrwxrwx 1 root root 13 Mar 20 19:43 libc.so.5 -> libc.so.5.0.9
-r-xr-xr-x 1 root root 669157 Oct 30 19:53 libc.so.5.0.9
</verb></tscreen>
Als er bestanden ontbreken, begin dan opnieuw en herinstalleer de anonftp
RPM. Om de permissies te zien als hierboven typ:
<tscreen><verb>
ls -al
</verb></tscreen>
Nu alles veilig is moet je de <tt>/pub</tt> directory aanmaken
waar je de bestanden zet voor de anonieme ftp.
<tscreen><verb>
mkdir ~ftp/pub
chmod 555 ~ftp/pub
</verb></tscreen>
Plaats elk bestand dat je wilt aanbieden via FTP in de <tt>/pub</tt>
directory. Je mag ook subdirectory's aanmaken in de <tt>/pub</tt> directory.
Voor de veiligheid en om zeker te weten dat anonieme gebruikers ook
de bestanden kunnen lezen, doe dan dit met elk bestand en elke directory:
<tscreen><verb>
chmod 444 (naam van het bestand)
chmod 555 (naam van de directory)
</verb></tscreen>
Een 'incoming' directory is af te raden, omdat je dan last kunt hebben van
software piraterij. Sommige mensen zetten dan software op je site, waar je voor
moet betalen en de houder van de site krijgt dan een bekeuring, omdat die
verantwoordelijk is voor de dingen die op de site staan. Als het echt
nodig is doe dan dit:
<tscreen><verb>
mkdir ~ftp/incoming
chmod 333 incoming
</verb></tscreen>
De mode 333 betekent dat ze alleen in de directory kunnen schrijven en niet
lezen.
Dat was het! Voor de veiligheid: zorg dat alles in <tt>/home/ftp</tt>
niet te schrijven is.
<tscreen><verb>
chmod -R a-w ~ftp
</verb></tscreen>
(Je mag als root nog wel in de directory schrijven).
</p></sect>
<sect><heading>ProFTPd Setup</heading>
<p> OK, voor degenen die ProFTPd willen: eerst kijken of je de nieuwste
versie hebt.
<tt><url url="ftp://ftp.proftpd.org"name="ProFTPd"></tt>
voor de RPM (Opmerking: Deze worden niet onderhouden door RedHat Software).
<tt><url url="ftp://rhcn.redhat.com/pub/rhcn/RPMS/"name="ProFTPd
RPM"></tt>
Als je het pakket eenmaal gedownload en geïnstalleerd hebt via een van de
methoden.
(Onthoud: Om proftpd te installeren via rpm moet je de wu-ftpd en anonftp wegdoen.)
Je moet het configuratiebestand aanpassen voor je site.
Als je de RHCN rpm gebruikte, staat het configuratiebestand in
<tt>/etc/proftpd.conf</tt>. Als je hem zelf gecompileerd hebt, staat het
configuratiebestand in: <tt>/usr/local/etc/proftpd.conf</tt>.
Nu voor de configuratie: open het configuratiebestand met een editor naar keuze.
Het bestand ziet er ongeveer uit als hieronder:
<tscreen><verb>
# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
# Port 21 is the standard FTP port.
Port 21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances 30
# Set the user and group that the server normally runs at.
User nobody
Group nogroup
# Normaal gesproken willen we dat bestanden overschrijfbaar zijn.
<Directory /*>
AllowOverwrite on
</Directory>
# A basic anonymous configuration, no upload directory's.
<Anonymous ~ftp>
User ftp
Group ftp
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Beperk het aantal anonieme logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
</verb></tscreen>
Het eerste wat we doen is onze server configureren voor onze eigen site. We
beginnen met de volgende regel:
<tscreen><verb>
ServerName "ProFTPD Default Installation"
</verb></tscreen>
Verander het in een zelfgekozen server naam. Bijvoorbeeld "Reggy's Ftpsite".
Dan zal het er zo uitzien:
<tscreen><verb>
ServerName "Reggy's Ftpsite""
</verb></tscreen>
Daarna gaan we kijken welk servertype we nemen. Je kunt kiezen tussen een
die altijd draait of een net als de inetd deamon, dat betekent dat de server
start en stopt als de connecties komen en gaan. inetd heeft mijn voorkeur,
dus ik verander het en dan ziet het er zo uit:
<tscreen><verb>
ServerType inetd
</verb></tscreen>
Onthoud: Als je het wilt starten met inetd dan moet je ook een regel aanmaken
in <tt>/etc/inetd.conf</tt>:
<tscreen><verb>
ftp stream tcp nowait root /usr/sbin/proftpd proftpd
</verb></tscreen>
Voor stand alone moet je jezelf hier niet druk over maken. Je moet niets
veranderen aan de Port en Umask, het mag wel. Ik laat de User nobody en
verander de group ook in nobody. Dus dit gaat er zo uitzien:
<tscreen><verb>
User nobody
Group nobody
</verb></tscreen>
Nu moet je een beslissing nemen over de bestanden. Ik vind het niet
leuk dat bestanden overschrijfbaar zijn, dus ik verander het in:
<tscreen><verb>
<Directory /*>
AllowOverwrite off
</Directory>
</verb></tscreen>
De setup voor anonymous laat ik met rust. Dit staat standaard aan, zonder dat ze
kunnen schrijven.Er zijn nog veel meer andere opties voor ProFTPd. Kijk in de overige
documentatie voor meer opties.</p>
</sect>
<sect><heading>Overige documentatie</heading>
<p>Zie Garfinkel en Spafford, ``Practical Unix Security'' <tt><url
url="http://www.oreilly.com"name="O'Reilly and Associates."></tt>, 1996, pagina's
487-494 voor meer info. En
<tt><url url="http://www.landfield.com/wu-ftpd/"name="wu-FTPd"></tt>
<tt><url url="http://www.proftpd.org/"name="ProFTPd"></tt>
</p>
</sect>
<sect><heading>Copyright Gegevens</heading>
<p>Dit document is auteursrechtelijk beschermd. Copyright (C) 1999 door de auteur.
Herdistributie van dit document mag alleen als de inhoud hetzelfde
blijft. Met andere woorden, je mag dit document afdrukken en herdistribueren.
</p>
</sect>
</article>
</linuxdoc>
|