consolidated newbie steps for a samba and ftp server

The Pogoplug Pro, Video, V3 (P21), and POGO-B01/02/03/04 are completely different than all other plugs before them.

consolidated newbie steps for a samba and ftp server

Postby mikeng » Thu May 31, 2012 6:02 pm

This is meant as a simple consolidated steps to install Arch Linux ARM to the Black Pogoplug Pro version as well as configurations. This is meant for Newbies from a newbie. If anyone has a step by step on configuring dovecot or an smtp server that can be used by the qsee camera, let me know. Gmail seems to limit the rate at which email can be sent. The following are what I installed and are unique to my needs and hopes it helps someone:

1. Arch Linux ARM
2. samba (window sharing)
3. proftpd (ftp server)
4. webmin (web base graphical server management)

The Pogoplug uses a 2GB noname flash drive and is connected to two external drives. I have a Q-See DVR that uses the ftp servers to upload to the ftp sites. I also wanted to configure Q-See to send mail using my own smtp server but that has not worked yet. The msmtp only allows mail to be sent from command line or from the system iteself. Not sure how to configure dovecot or sendmail.

1. Arch Linux ARM

Follow the installation steps here:
http://archlinuxarm.org/platforms/armv6/pogoplug-provideov3

However, on the last step where it tells you to update the system; be aware of this issue. This may be a non issue in new installation but I am writing this with a pre-existing installation:
http://archlinuxarm.org/forum/viewtopic.php?f=29&t=2690

Basically:
Code: Select all
 pacman -Syu (no to pacman first)
         pacman -Syu
         pacman Sf udev-oxnas openssl


You should also add some additional users for your share files. You can also use webmin once you have that installed.

Code: Select all
 useradd <username1>
 passwd <username1>
   


2. samba

Follow the installation steps here:
http://archlinuxarm.org/support/guides/applications/samba

These are the settings I used to get it to work and share the drives/folders:

Code: Select all
   #/etc/samba/smb.conf
    [global]
  workgroup = HOME
  server string = MediaServer
  #list allowed servers address here, not sure it it takes wild or whole network range
  hosts allow = 192.168.1.1 192.168.2
  netbios name = ALARM
  #security = share
  security = user
  encrypt passwords = yes
  load printers = no
  printing = bsd
  printcap name = /dev/null
  disable spoolss = yes
  log file = /var/log/samba/%m.log
  max log size = 50
  dns proxy = no
  client ntlmv2 auth = yes
  #disable netbios = yes
  socket options = TCP_NODELAY SO_KEEPALIVE SO_RCVBUF=17520 SO_SNDBUF=17520 IPTOS_LOWDELAY

 [drive1]
   path = /media/drive1
   valid users = username1
   read only = no
   public = no
   writable = yes
   force user = username1
   delete readonly = yes
   oplocks = yes
 [drive2]
   path = /media/drive2
   valid users = username1
   read only = no
   public = no
   writable = yes
   force user = username1
   delete readonly = yes
   oplocks = yes

 [Movies]
   path = /media/drive1/Media/Movies/
   read only = yes
   valid users = username1 username2
   write list = username1
   public = yes
   force user = username2
   delete readonly = yes
   oplocks = yes
 [Itunes]
   path = /media/drive2/Media/Itunes/
   read only = yes
   valid users = username1 username2
   write list = username1
   public = yes
   force user = username2
   delete readonly = yes
   oplocks = yes
 [Public]
   path = /media/drive1/Media/Public/
   read only = no
   writable = yes
   write list = username1 username2
   public = yes
   printable = no
   valid users = username1 username2
   delete readonly = yes
   oplocks = yes


External Drives:
If you have two drives and they are of the same make and model. They may the same volume names. It's simpler to rename these in windows environment to have different volume names.
http://archlinuxarm.org/forum/viewtopic.php?f=29&t=2064

If you have your external drives plugged in, you will have to mount them.
1. check where your device is at
Code: Select all
df

2. create the mount point, can be anywhere.
Code: Select all
mkdir media/drive1
 mkdir media/dirve2
         

3. mount
Code: Select all
         mount /dev/sdb1 /media/drive1
         mount /dev/sdc1 /media/drive2
         


To start the service:

Code: Select all
rc.d start samba


3. proftpd

There are lots of sites and forum that shows you how to setup your configuration files that is secured and is similar to what I have below (unless I F it up).

This is a good thread:
http://ubuntuforums.org/showthread.php?t=79588

Ignore step 1 on there, to install use:

Code: Select all
pacman -S proftpd


Also, the instructions created ftp folders in your linux home directory. I made mine in the external drives as in /media/drive1 which is the mount location I made earlier.

Basic steps are creating the ftp directories as shown in the thread above. You create another user for ftp usage as shown in the thread. Then you edit the configuration files. Restart the server and test. See below for troubleshoot.

Issues:

You will probably run into some sort of permission denied issues. Part of step 2 where you do chmod. I am not sure how relevant it's if you are trying to share a windows base partition. Some sites suggests that the ftp folders need to be own by the ftpusers or what not. This is not so, atleast not on the windows base drives/folders. I can't attest the same to a linux shared ftp drives/folders.

Also the ftpusers that you created which shouldn't have a home directory needs to have a secondary group of "users" otherwise you will run into permission issues. I wrestled with this problems for a while until I tried that. Not sure if there are other work arounds.

Code: Select all
 usermod -a -G ftp-users,users <username>


Unique issues: Also, my Qsee camers ftp uploads wanted to create folders within the uploads folder. Instead of having the ftpusers for Qsee uses the root ftp folder as the home folder. I had to make the upload folder the home folder. Otherwise, it can't create that folder automatically. It's not smart enough to create it in the upload folder eventhough I specified the upload folder as the "remote folder" once it logged in.


Code: Select all
# edit configuration file /etc/proftpd.conf
ServerName         "ftpservername"
ServerType         standalone
DefaultServer         on
RequireValidShell       off
UseFtpUsers          off
AllowRetrieveRestart       on

# Port 21 is the standard FTP port.
Port            21

# Don't use IPv6 support by default.
UseIPv6            off

# 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 under which the server will run.
User            ftpJohn
Group            ftp-users

ExtendedLog /var/log/ftp.log auth,all


DenyFilter \*.*/

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~

# Normally, we want files to be overwriteable.
AllowOverwrite      on

# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
  DenyAll
</Limit>

<Directory /media/drive1/FTP>
Umask 022 022
AllowOverwrite off
        <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
        DenyAll
        </Limit>
</Directory>

<Directory /media/drive1/FTP/Downloads/*>
Umask 022 022
AllowOverwrite off
        <Limit MKD STOR DELE XMKD RNEF RNTO RMD XRMD>
        DenyAll
        </Limit>
</Directory>
<Directory  /media/drive1/FTP/Uploads/*>
Umask 022 022
AllowOverwrite on
   <Limit MKD XMKD RNRF RNTO DELE RMD XRMD STOR>
   AllowAll
   </Limit>
</Directory>


To start the service:

Code: Select all
rc.d start proftpd


4. webmin

This was a pretty easy setup.

https://wiki.archlinux.org/index.php/Webmin


Auto load the services on bootup:


Code: Select all
nano /etc/rc.conf


Scroll to the bottom and add the three services configured earlier:

Code: Select all
 DAEMONS=(.. vsftpd webmin samba proftpd)


Common files and commands (assuming you are root):

Code: Select all
nano /etc/rc.conf
nano /etc/proftpd.conf
nano /etc/samba/smb.conf
nano /etc/webmin/miniserv.conf

rc.d start samba
rc.d restart samba
rc.d stop samba

shutdown -h now
reboot
mikeng
 
Posts: 12
Joined: Sun Dec 11, 2011 4:13 am

Return to Pogoplug Pro/Video/V3/B0x

Who is online

Users browsing this forum: No registered users and 5 guests