Zaczynamy od instalacji serwera ftp.
Kod: Zaznacz cały
sudo apt-get install proftpd
Kod: Zaznacz cały
sudo mcedit /etc/proftpd/proftpd.conf
Zapisujemy konfigurację (F2) po czym restartujemy serwer ftp:Include /etc/proftpd/modules.conf
UseIPv6 off
ServerName "FTP SERWER"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DefaultRoot ~
#DisplayLogin welcome.msg
#DisplayFirstChdir .message
ListOptions "-l"
DenyFilter \./
UseReverseDNS off
IdentLookups off
RequireValidShell off
AuthUserFile /home/ftpd.passwd
Port 21
MaxInstances 30
User serwer
Group ftpusers
Umask 022 022
AllowOverwrite on
TransferLog /var/log/proftpd/xferlog
SystemLog /var/log/proftpd/proftpd.log
<IfModule mod_tls.c>
TLSEngine off
</IfModule>
<IfModule mod_quota.c>
QuotaEngine on
</IfModule>
<IfModule mod_ratio.c>
Ratios on
</IfModule>
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine on
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine on
</IfModule>
# A basic anonymous configuration, no upload directories.
<Anonymous ~ftp>
User ftp
Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
#
RequireValidShell off
#
# # Limit the maximum number of anonymous 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
<Directory /home/ftp>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
#
# # Uncomment this if you're brave.
# # <Directory incoming>
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# # <Limit READ WRITE>
# # DenyAll
# # </Limit>
# # <Limit STOR>
# # AllowAll
# # </Limit>
# # </Directory>
#
</Anonymous>
Kod: Zaznacz cały
sudo /etc/init.d/proftpd restart
Kod: Zaznacz cały
sudo addgroup ftpusers
Kod: Zaznacz cały
sudo adduser serwer --ingroup ftpusers --shell /bin/false --no-create-home
Kod: Zaznacz cały
sudo mkdir /home/serwer
Kod: Zaznacz cały
sudo chown serwer:ftpusers /home/serwer
Kod: Zaznacz cały
sudo chmod 751 /home/serwer
Do dzieła:
Kod: Zaznacz cały
sudo mcedit /home/ftp
(pamiętajmy aby odpowiednio uzupełnić --uid oraz --gid gdyż numery usera i grupy podane w skrypcie pasują do mojego użytkownika. Musicie wpisać w to miejsce numer swojego użytkownika serwer i grupy ftpusers. Znajdziecie to w pliku /etc/passwd)#!/bin/sh
ftpasswd --shell /bin/false --home /home/serwer/$1 -p --name $2 --uid 1013 --gid 1008
mkdir /home/serwer/$1
chown -R serwer:ftpusers /home/serwer/$1
chmod 751 /home/serwer/$1
echo "Gotowe, dodano użytkownika: $2"
Zapisujemy (F2) i nadajemy prawa wykonywania
Kod: Zaznacz cały
sudo chmod +x /home/ftp
Przykładowe wykorzystanie skryptu.
Kod: Zaznacz cały
./ftp katalog_janka janek
Jeśli już wszystko zrobiliśmy, nie pozostaje nam nic innego jak odblokowanie portu 21 na którym działać będzie nasz serwer FTP i sprawdzenie poprawności naszej konfiguracji poprzez próbę połączenia.
Kod: Zaznacz cały
sudo iptables -I INPUT -p tcp --dport 21 -j ACCEPT
Nowych użytkowników robimy jak już napisałem wyżej
przechodząc do home
Kod: Zaznacz cały
cd /home
Kod: Zaznacz cały
./ftp folder login (wtedy skrypt zapyta o hasło dla nowego usera, po wpisaniu wciskamy enter i konto zostało utworzone).