OpenBSD grundinstallation med Apache, PHP, MySQL

Instruktionerna uppdaterade för version 4.6 (1 Nov 2009)

Översätt / translate
Svenska English German French Spanish Finnish Russian 

ProFTPd

http://www.proftpd.org/
ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3rc1.tar.gz

En hyffsat säker FTP server är aldrig fel att ha. För lite extra säkerhet, så kan det vara en bra idé att i pf.conf bestämma vilka IPs som får gå igenom brandväggen:

pass in log quick on $ext_if proto TCP from $allowed_in to $ext_if port 21
pass in on $ext_if proto tcp from $allowed_in to $ext_if port >= 10000

Eller om du vill tillåta vem som helst utifrån att göra inloggningsförsök på FTP servern:

pass in on $ext_if proto TCP from any to any port 21 keep state
pass in on $ext_if proto tcp from any to any port >= 10000 keep state

I och med att mysql finns installerat på servern, så är det enklare och mer flexibelt att lägga FTP användarna i en MySQL databas.

cd /usr/local/src
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3rc1.tar.gz
tar xfz proftpd-1.3.3rc1.tar.gz
cd proftpd-1.3.3rc1 
./configure --prefix=/usr/local --with-modules=mod_sql:mod_sql_mysql:mod_tls \
--with-includes=/usr/local/mysql/include/mysql \
--with-libraries=/usr/local/mysql/lib/mysql
make
sh sample-configurations/PFTEST.install
./proftpd -n -d 5 -c /tmp/PFTEST/PFTEST.conf

Testa att ProFTPd fungerar (gör det från ett annat shell på samma dator):

# echo > testfil "aaaaaaaaaa"
# ftp localhost 2021
Trying ::1...
ftp: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.bsd-guide.net.
220 ProFTPD 1.3.3rc1 Server (ProFTPD TEST Installation) [127.0.0.1]
Name (localhost:root): proftpd
331 Password required for proftpd
Password:
230 User proftpd logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put testfil
local: testfil remote: testfil
150 Opening BINARY mode data connection for testfil
100% |***********************************************|    11       00:00
226 Transfer complete
11 bytes sent in 0.20 seconds (0.05 KB/s)
ftp> get testfil
local: testfil remote: testfil
150 Opening BINARY mode data connection for testfil (11 bytes)
100% |***********************************************|    11       00:00
226 Transfer complete
11 bytes received in 0.19 seconds (0.05 KB/s)
ftp> quit
221 Goodbye.
#
Exemplet ovan körs från ett annat shell på samma dator. Om du kan logga in med "proftpd" användaren och det fungerar att ladda upp och ner filer, så är det bara att installera (stoppa först ProFTPd genom att trycka ctrl-c i shellet den körs):
make install

Konfigurationsfilen hamnar i /usr/local/etc (proftpd.conf) ändra/lägg till:

ServerName              "Min FTP server"        // redigera

För att SQL auth ska fungera (lägg in ex. efter DefaultServer on

SQLAuthenticate on
SQLAuthTypes    Backend Plaintext
SQLConnectInfo  proftpd@localhost proftpd proftpd
RequireValidShell       off

PassivePorts    10000 60000     // för att gå genom brandväggen
IdentLookups    off             // lägg till - snabbar upp inloggning

ScoreboardFile  /var/run/proftpd.score
PIDFile         /var/run/proftpd.pid

LogFormat       extend          "%t %l@%h \(%a\) %m %F %s %b %T"
ExtendedLog     "/var/log/proftpd_xfer.log" read,write extend

Ändra ev. umask, så att grupp får skrivrättighet:

Umask           002

Ändra ev. MaxInstances för att tillåta fler samtidiga användare

MaxInstances    100

Lås fast användaren i sin hemkatalog

DefaultRoot ~

Kommentera bort SITE_CHMOD begränsning (tillåt användare att ändra accessmod)

#<Limit SITE_CHMOD>
#  DenyAll
#</Limit>

Ta ev bort hela <Anonymous> sektionen för att inte ha FTP servern öppen för alla.

Skapa databaesen 'proftpd' (använd mysql klienten):

/usr/local/mysql/bin/mysql -u root -pditt_password
Inne i MySQL klienten skriver du sen:
create database proftpd;
grant all on proftpd.* to proftpd@localhost identified by 'proftpd';
flush privileges;
use proftpd;

skapa tabeller

CREATE TABLE `groups` (
  `groupname` varchar(30) NOT NULL default '',
  `gid` int(11) NOT NULL default '0',
  `members` varchar(255) default NULL
);

CREATE TABLE `users` (
  `userid` varchar(30) NOT NULL default '',
  `passwd` varchar(80) NOT NULL default '',
  `uid` int(11) NOT NULL default '0',
  `gid` int(11) default '3000',
  `homedir` varchar(255) default NULL,
  `shell` varchar(255) default '/bin/false',
  UNIQUE KEY `userid` (`userid`),
  UNIQUE KEY `uid` (`uid`)
);

lägg in en användare för test

insert into groups values("ftpuser",3000,'');
insert into users values("webmaster", password("07web2007"),
 3001,3000, "/home/www","/bin/false");
quit;

För att FTP användaren ska kunna ladda upp filer måste du se till att de befintliga filerna i det som sätts till 'homedir' ägs av den användare du skapat:

chown -R 3001:3000 /home/www

Ovanstående användare är tänkt att kunna komma åt allt inne i /home/www, med skrivrättigheter. För att detta ska fungera måste gruppen (ftpusers) ha rätt att skriva överallt. Detta måste också uppdateras då det läggs till fler vhosts på servern:

chmod -R g+w /home/www

Om du skapar fler FTP konton, och dessa konton ska ha rätt att ändra i sina filer för sin virtualhost, så måste du se till att ägaren (uid) på alla filer är satt till samma som FTP användarens uid.

 
 
Visar de 30 senaste vägarna in till guiden. Visa alla
G o o g l e (www.google.se), sökning efter 'guide till dns'
G o o g l e (www.google.se), sökning efter 'www.webmail.dataphone.se/src/logi'
G o o g l e (www.google.se), sökning efter 'tomas+awenmark+olin'
G o o g l e (www.google.se), sökning efter 'openbsd apache2'
G o o g l e (www.google.com), sökning efter 'openbsd filserver hÃ¥rdvara'
G o o g l e (www.google.se), sökning efter 'cgi to check openbsd pf status'
G o o g l e (www.google.se), sökning efter 'openbsd apache2'
G o o g l e (www.google.se), sökning efter 'openbsd apache php'
G o o g l e (www.google.se), sökning efter 'mysql guide'
G o o g l e (www.google.se), sökning efter 'mysql guide'
G o o g l e (www.google.se), sökning efter 'sinterad'
G o o g l e (www.google.se), sökning efter 'php.ini openbsd'
G o o g l e (www.google.se), sökning efter 'php.ini openbsd'




G o o g l e (www.google.se), sökning efter 'openbsd apache ssl php'
G o o g l e (www.google.se), sökning efter 'max_allowed_packed mysql'
G o o g l e (www.google.se), sökning efter 'named openbsd'
G o o g l e (www.google.se), sökning efter 'openbsd bind'
G o o g l e (www.google.se), sökning efter 'apache ssl guide'
G o o g l e (www.google.se), sökning efter 'DNS bind guide'
http://translate.googleusercontent.com/translate_c?hl=en&sl=sv&tl=en&u=http://www.bsd-guide.net/openbsd-base/index.php&rurl=translate.google.com&usg=ALkJrhgJ_xi2pu9ZiILk9lw8PU40Bu1m1w
G o o g l e (www.google.se), sökning efter 'openbsd install problem'
G o o g l e (www.google.se), sökning efter 'openbsd apache'
G o o g l e (www.google.se), sökning efter 'inurl:index.php?userID='
G o o g l e (www.google.se), sökning efter 'inurl:index.php?userID='
G o o g l e (www.google.se), sökning efter 'Domain Name server med bind'
G o o g l e (www.google.se), sökning efter 'Domain Name server med bind'