Ubuntu:Edgy th/Servers
From
Servers
Ubuntu Edgy LAMP Server
- Ubuntu Edgy LAMP Server Installation with Screenshots Simple Step by Step Installation Guide for Ubuntu Users
AntiVirus Server
How to install ClamAV AntiVirus Server
- Read #General Notes
- Read #How to add extra repositories
sudo apt-get install clamav
How to manually update virus databases
sudo freshclam
How to manually scan files/folders for viruses
sudo clamscan -r /location_of_files_or_folders
How to automatically scan files/folders for viruses
- e.g. Automatically scan files/folders for viruses at midnight everyday
- * * * * * means minute hour date month year
export EDITOR=gedit && sudo crontab -e
- Append the following line at the end of file
00 00 * * * sudo clamscan -r /location_of_files_or_folders
- Save the edited file
Monitoring Server
- Read #General Notes
- Read #How to add extra repositories
If you want to monitor your Ubuntu servers and clients like memory usage,CPU usage,Load average,Disk usage,Mysql monitoring, Network Monitoring,Processes Monitoring this is for you
Monitor your Ubuntu Servers and Clients using Munin
Print Server (cupsd)
- Read #General Notes
- Read #How to add extra repositories
How to install cupsd
- Cupsd should be automatically installed during standard instaltion. Checkout if there is a file "/etc/init.d/cupsys". If you want to manually install it, do
sudo apt-get install cupsys*
How to add a printer
- Go to System -> Administration -> Printing.
- Choose "Add printer".
- "Add printer wizard" should start and tell you what to do.
How to print on remote Ubuntu machine from another Ubuntu machine
- Make sure your local printer is well configured.
- Enable local printer sharing - System -> Administration -> Printing -> Global Settings menu -> Share printers
- Server ip address: 192.168.0.1
- Client ip address: 192.168.0.23
- Server configuration
sudo cp /etc/cups/cupsd.conf /etc/cups/cupsd.conf.backup gksudo gedit /etc/cups/cupsd.conf
- find the block
<Location /> ... Allow localhost ... </Location>
- and add the following line into it.
Allow 192.168.0.23
- Restart cups.
sudo /etc/init.d/cupsys restart
- Client configuration
sudo cp /etc/cups/client.conf /etc/cups/client.conf.backup gksudo gedit /etc/cups/client.conf
- And add the following line into it.
ServerName 192.168.0.1
- Restart cups.
sudo /etc/init.d/cupsys restart
- Now try "lpq" and you should see something like
vitek@lightfox:~$ lpq HPLJ6P is ready no entries
How to print on remote Ubuntu machine from a Windows machine
- Read #How to install Samba Server for files/folders sharing service
- Read #How to print on remote Ubuntu machine via samba
Samba Server
How to install Samba Server for files/folders sharing service
- Read #General Notes
- Read #How to add extra repositories
sudo apt-get install samba smbfs
How to add/edit/delete network users
- Read #General Notes
- Read #How to install Samba Server for files/folders sharing service
- To add network user
sudo smbpasswd -a system_username gksudo gedit /etc/samba/smbusers
- Insert the following line into the new file
system_username = "network username"
- Save the edited file
- To edit network user
sudo smbpasswd -a system_username
- To delete network user
sudo smbpasswd -x system_username
How to share home folders with read only permission (Authentication=Yes)
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gksudo gedit /etc/samba/smb.conf
- Find this line
... ; security = user ...
- Replace with the following lines
security = user username map = /etc/samba/smbusers
- Save the edited file
- Read #How to add/edit/delete network users
sudo testparm sudo /etc/init.d/samba restart
How to share home folders with read/write permissions (Authentication=Yes)
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gksudo gedit /etc/samba/smb.conf
- Find this line
... ; security = user ...
- Replace with the following lines
security = user username map = /etc/samba/smbusers
- Find this section
... # By default, the home directories are exported read-only. Change next # parameter to 'yes' if you want to be able to write to them. writable = no ...
- Replace with the following lines
# By default, the home directories are exported read-only. Change next # parameter to 'yes' if you want to be able to write to them. writable = yes
- Save the edited file
- Read #How to add/edit/delete network users
sudo testparm sudo /etc/init.d/samba restart
How to share group folders with read only permission (Authentication=Yes)
sudo mkdir /home/group sudo chmod 777 /home/group/ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gksudo gedit /etc/samba/smb.conf
- Find this line
... ; security = user ...
- Replace with the following lines
security = user username map = /etc/samba/smbusers
- Append the following lines at the end of file
[Group] comment = Group Folder path = /home/group public = yes writable = no valid users = system_username1 system_username2 create mask = 0700 directory mask = 0700 force user = nobody force group = nogroup
- Save the edited file
- Read #How to add/edit/delete network users
sudo testparm sudo /etc/init.d/samba restart
How to share group folders with read/write permissions (Authentication=Yes)
sudo mkdir /home/group sudo chmod 777 /home/group/ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gksudo gedit /etc/samba/smb.conf
- Find this line
... ; security = user ...
- Replace with the following lines
security = user username map = /etc/samba/smbusers
- Append the following lines at the end of file
[Group] comment = Group Folder path = /home/group public = yes writable = yes valid users = system_username1 system_username2 create mask = 0700 directory mask = 0700 force user = nobody force group = nogroup
- Save the edited file
- Read #How to add/edit/delete network users
sudo testparm sudo /etc/init.d/samba restart
How to share public folders with read only permission (Authentication=Yes)
sudo mkdir /home/public sudo chmod 777 /home/public/ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gksudo gedit /etc/samba/smb.conf
- Find this line
... ; security = user ...
- Replace with the following lines
security = user username map = /etc/samba/smbusers
- Append the following lines at the end of file
[public] comment = Public Folder path = /home/public public = yes writable = no create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
- Save the edited file
- Read #How to add/edit/delete network users
sudo testparm sudo /etc/init.d/samba restart
How to share public folders with read/write permissions (Authentication=Yes)
sudo mkdir /home/public sudo chmod 777 /home/public/ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gksudo gedit /etc/samba/smb.conf
- Find this line
... ; security = user ...
- Replace with the following lines
security = user username map = /etc/samba/smbusers
- Append the following lines at the end of file
[public] comment = Public Folder path = /home/public public = yes writable = yes create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
- Save the edited file
- Read #How to add/edit/delete network users
sudo testparm sudo /etc/init.d/samba restart
How to share public folders with read only permission (Authentication=No)
sudo mkdir /home/public sudo chmod 777 /home/public/ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gksudo gedit /etc/samba/smb.conf
- Find this line
... ; security = user ...
- Replace with the following line
security = share
- Append the following lines at the end of file
[public] comment = Public Folder path = /home/public public = yes writable = no create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
- Save the edited file
sudo testparm sudo /etc/init.d/samba restart
How to share public folders with read/write permissions (Authentication=No)
sudo mkdir /home/public sudo chmod 777 /home/public/ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup gksudo gedit /etc/samba/smb.conf
- Find this line
... ; security = user ...
- Replace with the following line
security = share
- Append the following lines at the end of file
[public] comment = Public Folder path = /home/public public = yes writable = yes create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup
- Save the edited file
sudo testparm sudo /etc/init.d/samba restart
How to print on remote Ubuntu machine via samba
- Read #Print Server (cupsd)
- Make sure your Ubuntu printers are configured properly.
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup gedit /etc/samba/smb.conf
- Find the following lines
... # printing = cups # printcap name = cups ...
- and uncomment them.
printing = cups printcap name = cups
- Restart cups server
sudo /etc/init.d/cupsys restart
- Now printers working on your Ubuntu machine should be acessible via samba.
Samba Web Administration Tool (SWAT)
How to install INETD Superserver
- Read #General Notes
- Read #How to add extra repositories
sudo apt-get install netkit-inetd
How to install SWAT for Samba daemon
- Read #General Notes
- Read #How to add extra repositories
- Read #How to install Samba Server for files/folders sharing service
- Read #How to install INETD Superserver
sudo apt-get install swat
- Open inetd daemon configuration
sudo gksu gedit /etc/inetd.conf
- If string is:
<#off#> swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat
- Change to:
swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat
- Restart daemon
sudo /etc/init.d/inetd restart
SSH Server
How to install SSH Server for remote administration service
- Read #General Notes
- Read #How to add extra repositories
sudo apt-get install ssh
How to SSH into remote Ubuntu machine
- Read #General Notes
- e.g. Assumed that remote Ubuntu machine have installed SSH Server service
- Read #How to install SSH Server for remote administration service
- Remote Ubuntu machine: 192.168.0.1
ssh username@192.168.0.1
How to copy files/folders from remote Ubuntu machine into local machine (scp)
- Read #General Notes
- e.g. Assumed that remote Ubuntu machine have installed SSH Server service
- Read #How to install SSH Server for remote administration service
- Remote Ubuntu machine: 192.168.0.1
- Remote files/folders location: /home/username/remotefile.txt
- Local machine save location: . (current directory)
scp -r username@192.168.0.1:/home/username/remotefile.txt .
How to copy files/folders from local machine into remote Ubuntu machine (scp)
- Read #General Notes
- e.g. Assumed that remote Ubuntu machine have installed SSH Server service
- Read #How to install SSH Server for remote administration service
- Local files/folders location: localfile.txt
- Remote Ubuntu machine: 192.168.0.1
- Remote Ubuntu machine save location: /home/username/
scp -r localfile.txt username@192.168.0.1:/home/username/
How to copy files/folders from remote Ubuntu machine into local machine (rsync)
- Read #General Notes
- e.g. Assumed that remote Ubuntu machine have installed SSH Server service
- Read #How to install SSH Server for remote administration service
- Remote Ubuntu machine: 192.168.0.1
- Remote files/folders location: /home/username/remotefile.txt
- Local machine save location: . (current directory)
rsync -v -u -a --delete --rsh=ssh --stats username@192.168.0.1:/home/username/remotefile.txt .
How to copy files/folders from local machine into remote Ubuntu machine (rsync)
- Read #General Notes
- e.g. Assumed that remote Ubuntu machine have installed SSH Server service
- Read #How to install SSH Server for remote administration service
- Local files/folders location: localfile.txt
- Remote Ubuntu machine: 192.168.0.1
- Remote Ubuntu machine save location: /home/username/
rsync -v -u -a --delete --rsh=ssh --stats localfile.txt username@192.168.0.1:/home/username/
How to mount remote folders into local Ubuntu machine (sshfs)
- Read #General Notes
- e.g. Assumed that remote machine has installed SSH Server service
- Read #How to install SSH Server for remote administration service
- Remote machine: 192.168.0.1
- Remote machine folder location: /media/music
- Install sshfs
sudo apt-get install sshfs
- Load kernel driver for sshfs
sudo modprobe fuse
- Join the 'fuse' user group
sudo adduser your_user_name fuse
- Logout and login for this to take effect.
- Create local mountpoint in your home directory
mkdir ~/remote_music
- Mount the remote folder into ~/remote_music
sshfs 192.168.0.1:/media/music ~/remote_music
How to SSH into remote Ubuntu machine via Windows machine
- Read #General Notes
- e.g. Assumed that remote Ubuntu machine have installed SSH Server service
- Read #How to install SSH Server for remote administration service
- Download PuTTY: Here
How to copy files/folders from/into remote Ubuntu machine via Windows machine
- Read #General Notes
- e.g. Assumed that remote Ubuntu machine have installed SSH Server service
- Read #How to install SSH Server for remote administration service
- Download FileZilla: Here
How to limit the user accounts that can connect through ssh remotely
- Read #General Notes
- e.g. If you enable the SSH server, then any user with a valid account can connect remotely
- This can lead to security risks, as there exist remote password cracking tools that
- try common username/password pairs.
- Keep a backup of the ssh server configuration file with
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ORIGINAL
- Edit the configuration file
gksudo gedit /etc/ssh/sshd_config
- Change the parameter PermitRootLogin from yes to no. The superuser must not be able to connect directly from remote.
- Add the parameter AllowUsers and specify the usernames (space separated) that can connect remotely.
- You can also use DenyUsers for fine-grained selection of users.
- If you enable the openssh server and you have no intention for now to enable remote connections, you may add AllowUsers nosuchuserhere to disable anyone connecting.
DHCP Server
How to install DHCP Server for automatic IP addresses assignment
- Read #General Notes
- Read #How to add extra repositories
- e.g. Assumed that "eth0" is the interface for network card
- IP Address Range: 192.168.0.100 to 192.168.0.200
- Subnet Mask: 255.255.255.0
- DNS Servers: 202.188.0.133, 202.188.1.5
- Domains: tm.net.my
- Gateway Address: 192.168.0.1
sudo apt-get install dhcp3-server sudo cp /etc/default/dhcp3-server /etc/default/dhcp3-server_backup gksudo gedit /etc/default/dhcp3-server
- Find this line
... INTERFACES=""
- Replace with the following line
INTERFACES="eth0"
- Save the edited file
sudo cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_backup gksudo gedit /etc/dhcp3/dhcpd.conf
- Find this section
... # option definitions common to all supported networks... option domain-name "example.org"; option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600; max-lease-time 7200; ...
- Replace with the following lines
# option definitions common to all supported networks... #option domain-name "example.org"; #option domain-name-servers ns1.example.org, ns2.example.org;
#default-lease-time 600; #max-lease-time 7200;
- Find this section
...
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
...
- Replace with the following lines
# A slightly different configuration for an internal subnet.
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option domain-name-servers 202.188.0.133, 202.188.1.5;
option domain-name "tm.net.my";
option routers 192.168.0.1;
option broadcast-address 192.168.0.255;
default-lease-time 600;
max-lease-time 7200;
}
- Save the edited file
sudo /etc/init.d/dhcp3-server restart
Database Server
How to install MYSQL Database Server
- Read #General Notes
- Read #How to add extra repositories
sudo apt-get install mysql-server
- MySQL initially only allows connections from the localhost (127.0.0.1). We'll need to remove that restriction if you wish to make it accessible to everyone on the internet. Open the file /etc/mysql/my.cnf
gksudo gedit /etc/mysql/my.cnf
- Find the line bind-address = 127.0.0.1 and comment it out
... #bind-address = 127.0.0.1 ...
- MySQL comes with no root password as default. This is a huge security risk. You'll need to set one. So that the local computer gets root access as well, you'll need to set a password for that too. The local-machine-name is the name of the computer you're working on. For more information see here
mysqladmin -u root password your-new-password mysqladmin -h root@local-machine-name -u root -p password your-new-password sudo /etc/init.d/mysql restart
MySQL Database backup using AutoMySQLBackup
- AutoMySQLBackup is a script to take daily, weekly and monthly backups of your MySQL databases using mysqldump.
- AutoMySQLBackup Script Features
- Backup mutiple MySQL databases with one script. (Now able to backup ALL databases on a server easily. no longer need to specify each database seperately)
- Backup all databases to a single backup file or to a seperate directory and file for each database.
- Automatically compress the backup files to save disk space using either gzip or bzip2 compression.
- Can backup remote MySQL servers to a central server.
- Runs automatically using cron or can be run manually.
- Can e-mail the backup log to any specified e-mail address instead of “root”. (Great for hosted websites and databases).
- Can email the compressed database backup files to the specified email address.
- Can specify maximun size backup to email.
- Can be set to run PRE and POST backup commands.
- Choose which day of the week to run weekly backups.
- Download from here
- AutoMySQLBackup Requirements
The AutoMySQLBackup script only requires mysqldump (A standard utility provided with the mysql client) and gzip or bzip2 for compression of the backup files. If you would like to have the log emailed to you then you will need to have permission to execute the “mail” program. If you want the compressed backup files mailed to you then Mutt must be available on the server. Finally you will need a bash shell and the standard system tools and utilities (all these requirements should be the default on most linux system.)
- What AutoMySQLBackup does
Every day AutoMySQLBackup will run (if setup in /etc/cron.daily) and using mysqldump and gzip will dump your specified databases to the /backups/daily directory, it will rotate daily backups weekly so you should never have more than 7 backups in there..
Every Saturday AutoMySQLBackup will again backup the databases you have chosen but they will be placed into /backups/weekly, these will be rotated every 5 weeks so there should never be more than 5 backups in there..
Every 1st of the month AutoMySQLBackup will create a backup of all databases and place them into /backups/monthly. These will never be rotated so it will be up to you to do your own house keeping. I would suggest taking a copy of this offline every month or two so that if you have a hard drive failure you will be able to restore your database
- AutoMySQLBackup Installation
The install is as simple as editing a few variables in the AutoMySQLBackup file. The full setup is documented in the AutoMySQLBackup script file below the variables section.
- Download automysqlbackup.sh and place it into your /etc/cron.daily directory or your home directory.
- Edit (at least) the following lines :
... USERNAME=dbuser PASSWORD=password DBNAMES=”DB1 DB2 DB3″ ...
- Note:The user must have at least select privileges to the databases and make sure to keep the quotes ” ” otherwise it won’t work
- Make the file executable :
sudo chmod u+rwx
- Create the following directory
./backups
- That’s it...Now you can run it using the command line “./automysqlbackup.sh” or if it is in /etc/cron.daily it will run each day when cron
How to install MYSQL Administrator
sudo apt-get install mysql-admin
- Read #How to refresh GNOME panel
- Applications -> System Tools -> MySQL Administrator
How to install Oracle Database XE
- Read #General Notes
- Read #How to add extra repositories
- Read http://www.oracle.com/technology/tech/linux/install/xe-on-kubuntu.html
- Add the following repository to your /etc/apt/sources.list:
deb http://oss.oracle.com/debian unstable main non-free
- Install the software using apt-get
sudo apt-get update sudo apt-get install oracle-xe
- Add your login to the 'dba' group (where your login name is username)
sudo usermod -G dba -a username
Apache HTTP Server
How to install Apache HTTP Server for HTTP (Web) Server service
- Read #General Notes
- Read #How to add extra repositories
sudo apt-get install apache2
How to install PHP for Apache HTTP Server
How to install PHP4
- Read #General Notes
- Read #How to add extra repositories
- Read #How to install Apache HTTP Server for HTTP (Web) Server service
sudo apt-get install php4 sudo apt-get install libapache2-mod-php4 sudo /etc/init.d/apache2 restart
- To test if php4 installed correctly
gksudo gedit /var/www/testphp.php
- Insert the following line into the new file
<?php phpinfo(); ?>
- Save the edited file
- http://localhost/testphp.php
- Be sure to remove the file afterwards, as it may pose a security risk
How to install PHP5
- Read #General Notes
- Read #How to add extra repositories
- Read #How to install Apache HTTP Server for HTTP (Web) Server service
sudo apt-get install php5 sudo apt-get install libapache2-mod-php5 sudo /etc/init.d/apache2 restart
- To test if php5 installed correctly
gksudo gedit /var/www/testphp.php
- Insert the following line into the new file
<?php phpinfo(); ?>
- Save the edited file
- http://localhost/testphp.php
- Be sure to remove the file afterwards, as it may pose a security risk
How to install MYSQL for Apache HTTP Server
- Read #General Notes
- Read #How to add extra repositories
- Read #How to install Apache HTTP Server for HTTP (Web) Server service
- Read #How to install PHP for Apache HTTP Server
- Read #How to install MYSQL Database Server
sudo apt-get install libapache2-mod-auth-mysql
- Select either php4-mysql or php5-mysql depending on which version of PHP you installed
sudo apt-get install php<version-number>-mysql sudo apt-get install phpmyadmin
- To get PHP to work with MySQL, open the file (where <version> is either 4 or 5 depending on which PHP you installed)
gksudo gedit /etc/php<version>/apache2/php.ini
- You'll need to uncomment the ";extension=mysql.so" line so that it looks like this
... extension=mysql.so ...
- Save the file then exit
sudo /etc/init.d/apache2 restart
How to install Python for Apache 2
sudo aptitude install python sudo aptitude install libapache2-mod-python
How to map URLs to folders outside /var/www/
gksudo gedit /etc/apache2/conf.d/alias
- Insert the following lines into the new file
Alias /URL-path /location_of_folder/
<Directory /location_of_folder/> Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
- Save the edited file
sudo /etc/init.d/apache2 restart
- When you get "403 - Permission denied", you might try:
chmod o+x /location_of_folder/
- If that doens't work, the following might help:
chmod o+r,o+x /location_of_folder/
How to change the default port number for Apache HTTP Server
- e.g. Assumed that new port number is 78
sudo cp /etc/apache2/ports.conf /etc/apache2/ports.conf_backup gksudo gedit /etc/apache2/ports.conf
- Find this line
Listen 80
- Replace with the following line
Listen 78
- Save the edited file
sudo /etc/init.d/apache2 restart
How to parse RSS into PHP for Apache HTTP Server
- Read #General Notes
- Read #How to install Apache HTTP Server for HTTP (Web) Server service
- Read #How to install PHP for Apache HTTP Server
- e.g. Assumed that RSS is DistroWatch.com - News
wget -c http://easylinux.info/uploads/magpierss-0.71.1.tar.gz sudo mkdir /var/www/feeds sudo tar zxvf magpierss-0.71.1.tar.gz -C /var/www/feeds/ sudo mv /var/www/feeds/magpierss-0.71.1/* /var/www/feeds/ sudo rm -fr /var/www/feeds/magpierss-0.71.1/ sudo chown -R www-data:root /var/www/feeds/ gksudo gedit /var/www/feeds/index.php
- Insert the following lines into the new file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>DistroWatch.com - News</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<style type="text/css">
/*<![CDATA[*/
/*
DEFAULT TAG STYLES
*/
body {
background: #ffffff;
margin-left: 20px;
font-family: bitstream vera sans,sans-serif;
font-size: 9pt;
}
h1 {
font-family: luxi sans,sans-serif;
font-size: 15pt;
}
/*]]>*/
</style>
</head>
<body>
<?php
require_once 'rss_fetch.inc';
error_reporting(E_ERROR);
$url = 'http://distrowatch.com/news/dw.xml';
$rss = fetch_rss($url);
if ($rss) {
echo "<h1>";
echo "<a href=$url>", $rss->channel[title], "</a><br/>";
echo "</h1>";
foreach ($rss->items as $item ) {
$url = $item[link];
$title = $item[title];
$description = $item[description];
echo "<li>";
echo "<b>Topic:</b> <a href=$url><b><u>$title</u></b></a><br/><br/>";
echo "$description<br/><br/>";
echo "</li>";
}
}
else {
echo "<a href=$url>", $url, "</a> - Server Down!<br/>";
}
?>
</body>
</html>
- Save the edited file
- http://localhost/feeds/index.php
FTP Server
How to install FTP Server for File Transfer service
- Read #General Notes
- Read #How to add extra repositories
sudo apt-get install proftpd
How to configure FTP user to be "jailed" (chrooted) into their home directory
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup gksudo gedit /etc/proftpd/proftpd.conf
- Find this section
... DenyFilter \*.*/ ...
- Add the following line below it
DefaultRoot ~
- Save the edited file
sudo /etc/init.d/proftpd restart
How to configure FTP Server to allow anonymous FTP user to read only
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup gksudo gedit /etc/proftpd/proftpd.conf
- Append the following lines at the end of file
<Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir .message <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
- Save the edited file
sudo /etc/init.d/proftpd restart
How to configure FTP Server to allow anonymous FTP user to read/write
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup gksudo gedit /etc/proftpd/proftpd.conf
- Append the following lines at the end of file
<Anonymous ~ftp> User ftp Group nogroup UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir .message </Anonymous>
- Save the edited file
sudo /etc/init.d/proftpd restart
How to map anonymous FTP user to folders outside /home/ftp/
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup gksudo gedit /etc/proftpd/proftpd.conf
- Append the following lines at the end of file
<Anonymous /location_of_folder/> User ftp Group nogroup UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir .message <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>
- Save the edited file
sudo /etc/init.d/proftpd restart
How to change the default port number for FTP Server
- e.g. Assumed that new port number is 77
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup gksudo gedit /etc/proftpd/proftpd.conf
- Find this line
Port 21
- Replace with the following line
Port 77
- Save the edited file
sudo /etc/init.d/proftpd restart
How to ftp into remote Ubuntu machine via Windows machine
- Read #General Notes
- e.g. Assumed that remote Ubuntu machine have installed FTP Server service
- Read #How to install FTP Server for File Transfer service
- Download FileZilla: Here
Streaming Media Server
How to install GNUMP3d for Streaming Media Server service
- Read #General Notes
- Read #How to add extra repositories
- Read #How to install Apache HTTP Server for HTTP (Web) Server service
- e.g. /var/music/ is the directory containing multimedia files
sudo apt-get install gnump3d
How to change the default directory containing multimedia files for GNUMP3d
- e.g. Assumed that new directory containing multimedia files is /home/music/
sudo cp /etc/gnump3d/gnump3d.conf /etc/gnump3d/gnump3d.conf_backup gksudo gedit /etc/gnump3d/gnump3d.conf
- Find this line
root = /var/music
- Replace with the following line
root = /home/music
- Find this line
user = gnump3d
- Replace with the following line
user = root
- Save the edited file
sudo /etc/init.d/gnump3d restart
How to change the default port number for GNUMP3d
- e.g. Assumed that new port number is 7878
sudo cp /etc/gnump3d/gnump3d.conf /etc/gnump3d/gnump3d.conf_backup gksudo gedit /etc/gnump3d/gnump3d.conf
- Find this line
port = 8888
- Replace with the following line
port = 7878
- Save the edited file
sudo /etc/init.d/gnump3d restart
Image Gallery Server
- For a comparison between Gallery1 and Gallery2 see here
Gallery1
How to install Gallery1 for Image Gallery Server service
- Read #General Notes
- Read #How to add extra repositories
- Read #How to install Apache HTTP Server for HTTP (Web) Server service
- Read #How to install PHP for Apache HTTP Server
sudo apt-get install gallery (when prompted to restart Apache, choose No or Cancel) sudo apt-get install imagemagick sudo apt-get install jhead sudo apt-get install libjpeg-progs sudo /etc/init.d/apache2 restart sudo sh /usr/share/gallery/configure.sh
- http://localhost/gallery/setup/index.php
- Gallery Configuration
Gallery Configuration Wizard: Step 1 Next Step ->
Gallery Configuration Wizard: Step 2 General settings Tab -> Admin password: Specify the password Locations and URLs Tab -> Album directory: /var/www/albums/ Temporary directory: /tmp/ Gallery URL: http://localhost/gallery Albums URL: http://localhost/albums Next Step -->
Gallery Configuration Wizard: Step 3 Next Step -->
Gallery Configuration Wizard: Step 4 Save Config ->
How to configure Gallery1 to be accessible via Internet (Hostname or fix IP) or LAN (fix IP)
- e.g. Assumed that network and internet connections have been configured properly
- Internet (Hostname or fix IP) or LAN (fix IP): http://www.url.com
sudo cp /etc/gallery/config.php /etc/gallery/config.php_backup gksudo gedit /etc/gallery/config.php
- Find this section
... $gallery->app->photoAlbumURL = "http://localhost/gallery"; $gallery->app->albumDirURL = "http://localhost/albums"; ...
- Replace with the following lines
$gallery->app->photoAlbumURL = "http://www.url.com/gallery"; $gallery->app->albumDirURL = "http://www.url.com/albums";
- Save the edited file
- http://www.url.com/gallery/albums.php
How to configure Gallery1 to be accessible via LAN (dynamic IP)
- e.g. Assumed that network connections have been configured properly
- LAN (dynamic IP): 192.168.0.1
sudo cp /etc/gallery/config.php /etc/gallery/config.php_backup gksudo gedit /etc/gallery/config.php
- Find this section
... $gallery->app->photoAlbumURL = "http://localhost/gallery"; $gallery->app->albumDirURL = "http://localhost/albums"; ...
- Replace with the following lines
$gallery->app->photoAlbumURL = "/gallery"; $gallery->app->albumDirURL = "/albums";
- Save the edited file
- http://192.168.0.1/gallery/albums.php
How to backup/restore Gallery1 data
- Read #General Notes
- To backup Gallery data
sudo tar zcvf gallery.tgz /var/www/albums/ /etc/gallery/
- To restore Gallery data
sudo tar zxvf gallery.tgz -C /
Gallery2
How to install Gallery2
How to configure Gallery2
How to install Subversion version control server (svnserve)
- Read #General Notes
- Install Subversion and Internet services daemon
sudo apt-get install subversion xinetd
- Create user that will own the repositories
sudo adduser --system --no-create-home --home /var/svn --group --disabled-login svn
- Create directory that will hold the repositories
sudo mkdir /var/svn sudo chown svn:svn /var/svn
- Create file /etc/xinetd.d/svnserve with the following content
service svn
{
port = 3690
socket_type = stream
protocol = tcp
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /var/svn
}
- Restart xinetd
sudo /etc/init.d/xinetd restart
- Create the first repository
sudo -u svn svnadmin create /var/svn/testrepo
- It should be possible to check out the repository and work on it
svn co svn://localhost/testrepo

