Difference between revisions of "COMP 3000 2011 Report: Zentyal"

From Soma-notes
Jump to navigation Jump to search
 
(41 intermediate revisions by the same user not shown)
Line 3: Line 3:
==Background==
==Background==


[[File:Desktop2.png|thumb]]
[[File:Desktop2.png|thumb|Default desktop]]


Zentyal was formerly known as the eBox Platform that is based on Ubuntu server 10.04. It is an open source unified network server software package (or unified platform) developed by a Spanish company called eBox Technologies to provide easy and affordable enterprise level computer networks to small and medium businesses in order to improve the reliability and security of their network infrastructure and because it is an open source alternative to a Windows small business server it helps reduce operational costs impressively. It provides various networking services such as acting as a gateway to enforce security access and improve efficiency to users connecting to the internet via the gateway configurations. It also provides various networking tools that pertain to the operation, administration and maintenance of network systems or unified communications server or even an office server that can manage printer sharing or file sharing.  
Zentyal was formerly known as the eBox Platform which is built on top of Ubuntu server 10.04. It is an open source unified network server software package (or unified platform) developed by eBox Technologies to provide easy and affordable computer networks for small to medium businesses in order to improve reliability and security of their network infrastructure. Since it is also an open source alternative to a Windows server it helps reduce operational costs for businesses.  


Zentyal can be freely obtained from their site (zentyal.org) by downloading from their server. It's approximately 625,000 KB big and the file is in disk image format. You can make a purchase for additional add on or server subscriptions (in euro).
It provides various networking services such as acting as a gateway to enforce security access and improve efficiency to users connecting to the internet via the gateway configurations. It also provides various networking tools that pertain to the operation, administration and maintenance of network systems or unified communications server or even an office server that can manage printer sharing or file sharing.
 
Zentyal can be freely obtained from their site ([http://zentyal.org Zentyal's Official Site]) by downloading from their server. It's approximately 625,000 KB big and the file is in disk image format. You can make a purchase for additional add on or server subscriptions.


==Installation/Startup==
==Installation/Startup==


[[File:Virtualbox.png|thumb]]
Zentyal can be installed on the main machine or on a virtual machine. Both go through the same installation process but a few more steps if you're installing on a virtual machine. If you are using VMware Player for installing Zentyal on a virtual machine, it is preferred <b>not</b> to use the 'easy install' method.
[[File:Desktop1.png|thumb]]
 
[[File:Boot_from_cd.png|thumb|Devices > CD/DVD Devices > Choose a virtual CD/DVD disk file...]]
For this report, I installed it on a virtual machine using VirtualBox.
[[File:zentyal_boot_menu.png|thumb]]
 
 
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">


Zentyal's disk image was downloaded from the official site and then installed on VirtualBox. I used the default settings for creating a virtual machine on VirtualBox:
<tr>
<td><center>Setting up VirtualBox</center></td>
</tr>


;Welcome page
<tr>
<td>[[File:Virtualbox.png|thumb|center|VirtualBox with Zentyal installed]]</td>
</tr>
 
<tr>
<td><center>New Virtual Machine Wizard Setup</center></td>
</tr>
 
<tr>
<td>
;&nbsp;Welcome page
: Nothing needed to be done here
: Nothing needed to be done here
;VM name and OS type
;&nbsp;VM name and OS type
: Name: Zentyal
: Name: Zentyal
: Operating System: Linux
: Operating System: Linux
: Version: Other linux
: Version: Other linux
;Memory
;&nbsp;Memory
: 256MB
: 256MB
;Virtual Hard Disk
;&nbsp;Virtual Hard Disk
: Have the start up disk checked then create new hard disk
: Start up disk should be checked then create new hard disk
;Welcome to virtual disk creation wizard
;&nbsp;Welcome to virtual disk creation wizard
: select VDI
: Select VDI
;Virtual disk storage details
;&nbsp;Virtual disk storage details
: Dynamically allocated
: Dynamically allocated
;Virtual disk file location and size
;&nbsp;Virtual disk file location and size
: The default setting is fine
: The default setting is fine</td>
</tr>
</table>


[[File:Boot_from_cd.png|thumb|left|Devices > CD/DVD Devices > Choose a virtual CD/DVD disk file...]]
After you have successfully created a virtual machine, power it on and since this is the first time you power on your virtual machine, it will ask you what you want to boot up since there's nothing installed onto your virtual machine. You then boot up the Zentyal disk image (this is the same as popping in the CD into your CD drive but you are actually "mounting" the .iso file onto your virtual CD drive) that you downloaded from the Zentyal site.
After you have successfully created a virtual machine, power it on and since this is the first time you power on your virtual machine, it will ask you what you want to boot up since there's nothing installed onto your virtual machine. You then boot up the Zentyal disk image (this is the same as popping in the CD into your CD drive but you are actually "mounting" the .iso file onto your virtual CD drive) that you downloaded from the Zentyal site.


If for some reason, you aren't prompt for that option, you can mount the file using VirtualBox instead by going to VirtualBox's menu bar and selecting Devices>CD/DVD Devices>Choose a virtual CD/DVD disk file... and browse for your Zentyal's disk image file. If your menu bar isn't shown, press "Host + C". Afterwards, reboot your virtual machine and it will automatically boot from your virtual CD drive. It will then prompt you for a language then the boot menu will be displayed. Now, You have two options for installation:
If for some reason, you aren't prompt for that option, you can mount the file using VirtualBox instead by going to VirtualBox's menu bar and selecting Devices>CD/DVD Devices>Choose a virtual CD/DVD disk file... and browse for your Zentyal's disk image file. If your menu bar isn't shown, press "Host + C". Afterwards, reboot your virtual machine and it will automatically boot from your virtual CD drive. It will then prompt you for a language then the boot menu will be displayed. Now, You have two options for installation:


;Install Zentyal (delete all disk)
 
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">
 
<tr>
<td><center>Installing Zentyal</center></td>
</tr>
 
<tr>
<td>[[File:zentyal_boot_menu.png|thumb|center|Boot menu]]</td>
</tr>
 
<tr>
<td>
;&nbsp;Install Zentyal (delete all disk)
: This is the default mode, it deletes all disk contents and creates the necessary configurations to run Zentyal
: This is the default mode, it deletes all disk contents and creates the necessary configurations to run Zentyal
;Install Zentyal (expert mode)
;&nbsp;Install Zentyal (expert mode)
: This option allows the user to manually configure specifications for Zentyal
: This option allows the user to manually configure specifications for Zentyal
</td>
</tr>
</table>


I installed Zenyal using the default mode then went through the installation process. The installation process was quick, it didn't take me a long time as it did with Ubuntu.
I installed Zenyal using the default mode then went through the installation process. The installation process was quick, it didn't take me a long time as it did with Ubuntu.
When I finished installing Zentyal and rebooting it, it automatically started up Firefox; this is used as a web interface that allows easy access to various networking administrative tools. There weren't many softwares installed, namely, only a few text editing programs (gedit and leafpad), an archive program, file managing program and Firefox.
When I finished installing Zentyal and rebooting it, it automatically started up Firefox; this is used as a web interface that allows easy access to various networking administrative tools. There weren't many softwares installed, namely, only a few text editing programs (gedit and leafpad), an archive program, file managing program and Firefox.
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">
<tr>
<td><center>Starting up Zentyal for the first time</center></td>
</tr>
<tr>
<td>[[File:Desktop1.png|thumb|center|Zentyal's User interface]]</td>
</tr>
</table>
The first thing that shows up is the Firefox browser that asks for the Username and Password (the credentials you put in during the installation process), it will act as the user interface that will be used to set up and manage the network services.


==Basic Operation==
==Basic Operation==


[[File:Zentyal_activity1.png|thumb]]
Zentyal can be used to act as a gateway to enforce access rules for internet connection or configure settings to improve efficient access to the internet (in other words, speed up the connection speed by various methods such as proxy caching or traffic shaping). So, after starting up Zentyal for the first time, you will find that there are barely anything installed.
 
Firefox (actually called Zentyal Administration) will automatically start up every time you start up the Linux and prompt you for credentials (username and password). The username and password are the same ones you had put in during the installation process. This web interface allows you to have access to network administrative tools and configurations as well as modules that you can install with ease.
 
 
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">
 
<tr>
<td><center>Dashboard without any modules installed</center></td>
</tr>
 
<tr>
<td>[[File:Zentyal_initialDashboard.png|thumb|center]]</td>
</tr>
 
</table>


Zentyal can be used to act as a gateway to enforce access rules for internet connection or configure settings to improve efficient access to the internet (in other words, speed up the connection speed by various methods such as proxy caching or traffic shaping). So, after starting up Zentyal for the first time, you will find that there are barely anything installed.


Firefox will automatically start up every time you start up the Linux and prompt you for credentials (username and password). The username and password are the same ones you had put in during the installation process. This web interface allows you to have access to network administrative tools and configurations as well as modules that you can install with ease.  
After the initial login, you are automatically directed to an Installation wizard as depicted above. There are many variety of modules that can be downloaded and installed. You can click on the 'More info' under each package(Gateway, UTM, Infrastructure, Office and Communications) to see which packages would be best fit for the current task. When you found the package that you want, simply click on the logo of that package, and various modules are selected automatically with regards to that package then click install.
 
If you decide to skip the installation process, you can do so by clicking on skip install. If you want to go back to the Installation wizard, select Software Management on the left hand side menu then select Zentyal Components. You will see a list of available modules for installation, then click on view basic mode and it will take you back when you initially start up the Zentyal Administration. Another alternative of installing modules can be done by using sudo apt.
 
 
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">
 
<tr>
<td><center>Package Details</center></td>
</tr>
 
<tr>
<td>
Gateway: Providing system administrators the tools to configure a firewall and routing rules for multiple internet connections. It allows system administrators to increase internet speed by caching web pages and enhance security by blocking dangerous web threats.
 
Some features that this package provides includes Transparent Caching, Load Balancing and Availability, Traffic Shaping and QoS, and Web Content Filter.
 
</td>
</tr>
 
<tr>
<td>
UTM (Unified Threat Management): Provides system administrators tools to configure a VPN (virtual private network) to allow users to have remote access to a local area network over the internet.
 
Some features includes Firewall, Content Filter, Virtual Private Network and Intrusion Detection.
 
</td>
</tr>
 
<tr>
<td>
Infrastructure: Allowing system administrators to manage the network infrastructure.
 
Some features provided in this package includes DHCP Server, Web Server (powered by Apache), DNS Server and Certification Authority that allows you to create your own certificates.
 
</td>
</tr>
 
<tr>
<td>
Office: Allowing system administrators to manage the users or groups of users as well as the server for file and printer sharing.
 
Some features includes Directory Services that allows you to manage your users, Groupware (similar to Microsoft Sharepoint), File and Printer Sharing, and Data Backup.
 
</td>
</tr>
 
<tr>
<td>
Communications: Provides system administrators tools to easily configure a communication server.
 
This package includes Email, Instant messaging using the XMPP/Jabber protocol, Groupware and VoIP.
 
</td>
</tr>
 
</table>
 
 
I found a couple of tutorials on how to configure Zentyal as a gateway, and configuring a Jabber server for instant messaging or VoIP. I decided to try to set up a Jabber server and trying to connect to that server using Empathy chat client installed on Ubuntu by following this [http://www.youtube.com/watch?v=OyXaGc-wg-I Tutorial].
I went and installed the Communications package which has all the necessary modules to set up a Jabber server. After installing, the configuration wizard follows and you have a choice whether to configure the settings now or skip and configure later.
The setup I used were:
 
Configure Interface types: Internal
Network configuration for external interfaces: DHCP
Type of server: Standalone server
Setting up a virtual mail domain: Zentyal
Subscribing to Zentyal Cloud: You have a choice to subscribe or not, it's not really needed
 
When you make any changes to the configuration, you <b>must</b> save changes to your modules. When you're done, go to your Dashboard, it shows the system status. The next step would be to create users. Go to the left hand menu and select Users and Groups which will show more options. Select users and enter in credentials then save changes, the user information should appear under after you press the add button:
 
User name: Internalfire
First name:
Last name:
Comment: optional
Password: password
Retype password: password
 
Now go to the left hand menu again and select Jabber. I used the following setup to set up a Jabber server:
 
Jabber domain: u-jabber.com
SSL support: Allow SSL
Enable MUC is checked
 
Setting up the server is finished. I proceeded to test the Jabber server by setting up a chat client on Ubuntu using the Empathy chat client. For the user account, I used the following setup:
 
Account: Internalfire@u-jabber.com
password: password
Encryption required is checked
Ignore SSL certification errors is checked
Server IP: The IP under eth0 from your Zentyal dashboard
 
 
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">
 
<tr>
<td><center>Jabber server</center></td>
</tr>
 
<tr>
<td>[[File:Zentyal_Jabber.png|thumb|center|Network error]]</td>
</tr>


There are many variety of modules that can be downloaded and installed, and it may be confusing for some. I found it confusing as to which to download and install, so I selected the option to view as packages (which is a group of modules that will be used for a specific task). Instead of having 50 modules to look at, I have 5 packages to choose from: Gateway, UTM (Unified Threat Management), Infrastructure, Office and Unified Communications.
</table>


'''Gateway'''
<br>This package provides system administrators tools configure a firewall and routing rules for multiple internet connections. It allows system administrators to increase internet speed by caching web pages and enhance security by blocking dangerous web threats.


'''UTM'''
After I have configured my first user account on Empathy, I tried to connect to my Jabber server and got a Network error and wouldn't allow me to connect to my Jabber server. I am not exactly sure why this happened.
<br>This package provides system administrators to configure a VPN (virtual private network) to allow users to have remote access to a local area network over the internet.


'''Infrastructure'''
<br>This package allows system administrators to manage the network infrastructure.


'''Office'''
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">
<br>This package allows system administrators to manage the users or groups of users as well as the server for file and printer sharing.


'''Unified Communications'''
<tr>
<br>This package provides system administrators tools to easily configure a communication server.
<td><center>Dashboard after installing modules</center></td>
</tr>


In an attempt to create and configure an instant messaging server, I installed the Unified Communication package then enabled the modules via the web interface. But I was unable to successfully set up the instant messaging server as it seems like I was missing some required components that allows such set up (the Ubuntu server was needed to be installed).
<tr>
<td>[[File:Zentyal_activity1.png|thumb|center|Dashboard showing system status]]</td>
</tr>
 
</table>
<br>


==Usage Evaluation==
==Usage Evaluation==
Line 78: Line 245:
Zentyal is a good distribution with regards in managing networking or server activities. It is made to ease the configurations for both network and server settings as well as setting them up quickly. Although, having a necessary amount of knowledge about networking principles would be required to use Zentyal as well as optimizing the use of the features available.
Zentyal is a good distribution with regards in managing networking or server activities. It is made to ease the configurations for both network and server settings as well as setting them up quickly. Although, having a necessary amount of knowledge about networking principles would be required to use Zentyal as well as optimizing the use of the features available.


It was a bit cumbersome for me to set up a simple instant messaging server and network activity monitoring system because I only had a limited amount of understanding of networking principles as well as I needed to install other components from Ubuntu. There are variety of tutorials that can be found on the internet but it would be better to have a good general understanding of how networks or server works, even though Zentyal provided a web interface, it is likely that it is not as flexible as configuring settings using a terminal.
It was a bit cumbersome for me to set up a simple instant messaging server and network activity monitoring system because I only had a limited amount of understanding of networking principles which lead to a networking issues. There are variety of tutorials that can be found on the internet but it would be better to have a good general understanding of how networks and server works. Even though Zentyal provided a graphical interface, it is likely that it is not as flexible as configuring settings using a terminal.


=Part 2=
=Part 2=
Line 84: Line 251:
==Software Packaging==
==Software Packaging==


Zentyal is built on top of Ubuntu which is derived from Debian. Zentyal's packaging format is .deb and the utility that manages its packages is dpkg (package management for Debian). It also includes a RPM (Red Had Package Manager) package manager that manages .rpm format files but will focus on dpkg since packages are mainly in .deb format.
Zentyal has two different package management system installed and there are three ways of installing packages. It has dpkg (Debian package management system) and APT (Advanced Packaging Tool) to install, remove and provide information about .deb packages. Another way of installing packages is by using the Zentyal's Administration that uses Firefox as a graphical user interface.


Commands:
Please note that the package-name used in the following commands is the name of the Debian software package.
  dpkg -l will display a list of packages
 
  dpkg -r will remove an installed package
 
  dpkg -i will install a package
To install a .deb package using dpkg and APT, the following commands are used:
 
dpkg -i package-name
apt-get install package-name
 
Installing using the graphical interface by opening up Zentyal Administration then going to the left hand menu, select Software Management which shows you more options regarding Software Management. Select Zentyal Components and it will show you all the different types of modules that you can install. If you click on 'View basic mode' it will show you different packages (Office, Gateway, etc) where when you click on either packages, it will highlight several modules with regard to that particular package. When you're satisfied with which modules to install, on the bottom right hand corner, there should be an 'install' button. Click that, and modules will be installed.
 
 
To remove a package using dpkg and APT, the following commands are used:
 
dpkg -r package-name
apt-get --purge remove package-name
 
It is not advised to use <code>apt-get --purge remove</code> as it may cause some problems later on but it will remove the whole package from the system and using <code>apt-get remove</code> will remove the package from the system but it leaves configuration files behind.
I don't think you can uninstall modules using the graphical interface in Zentyal, but you can disable them.
 
 
To list the packages using dpkg, we use the command:
 
dpkg -l [optional]
 
The graphic interface will not show everything that is installed, it will only show modules that you have installed via the Zentyal Administration. To view the modules, go to the left side menu and select 'Module Status' it will show you a list of modules that's installed as well as which ones are enabled and which ones are disabled.


==Major Package Versions==
==Major Package Versions==
There are a wide range of packages installed in Zentyal. But I've only chosen a few of them out of the list for a more detailed description.


[http://www.gnu.org/software/bash/ <b>Bash</b>]<br>
There are a wide range of packages installed in Zentyal. But I have only chosen a few of them for comparison relative to their stable release version.
Bash is a shell (command language interpreter, it stands for Bourne-Again SHell) for the GNU operating system. The current version that Zentyal has right now is <code>4.1-2ubuntu3</code> and the current stable release is <code>4.2</code>. So, the version in Zentyal is not far from the current stable release. By the look of the previous versions of Bash, it's been heavily modified by the distribution authors as it's been updated and patched up every year since 1994. This package was chosen for this distribution's standard install because Bash became a <i>de facto standard</i>, since it was used in early versions of the Unix operating system. <br>
 
[ftp://ftp.gnu.org/gnu/bash/ Bash version history]
 
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="700" cellpadding="0" cellspacing="0">
 
<tr>
<td WIDTH="100"><center>Package</center></td>
<td WIDTH="200"><center>Version</center></td>
<td><center>Source</center></td>
</tr>
 
<tr>
<td><center>Bash</center></td>
<td>
&nbsp;current version: 4.1-2ubuntu3 <br>
&nbsp;stable release: 4.2 <br>
</td>
<td>
&nbsp;source: http://www.gnu.org/software/bash/<br>
&nbsp;version history: ftp://ftp.gnu.org/gnu/bash/
</td>
</tr>
 
<tr>
<td><center>debconf</center></td>
<td>
&nbsp;current version: 1.5.28ubuntu4 <br>
&nbsp;stable release: 1.5.41 <br>
</td>
<td>
&nbsp;source: http://kitenet.net/programs/debconf/<br>
&nbsp;version history: https://launchpad.net/ubuntu/+source/debconf/+publishinghistory
</td>
</tr>


<tr>
<td><center>dpkg</center></td>
<td>&nbsp;current version: 1.15.5.6ubuntu<br>
&nbsp;stable release: 1.15.72<br>
</td>
<td>
&nbsp;source: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html<br>
&nbsp;version history: -
</td>
</tr>


[http://kitenet.net/programs/debconf/ <b>debconf</b>]<br>
<tr>
debconf is a software utility for performing system-wide configuration tasks on Unix operating systems. It is closely integrated with the Debian's package management, dpkg. The current version installed is 1.5.28ubuntu4 and the stable release is 1.5.41.<br>
<td><center>BusyBox</center></td>
[https://launchpad.net/ubuntu/+source/debconf/+publishinghistory debconf publishing history]
<td>&nbsp;current version: 1.13.3-1ubuntu11<br>
&nbsp;stable release: 1.19.22<br>
</td>
<td>
&nbsp;source: http://www.busybox.net/<br>
&nbsp;version history: http://git.busybox.net/busybox/
</td>
</tr>


<tr>
<td><center>FireFox</center></td>
<td>&nbsp;current version: 3.6.23+build+<br>
&nbsp;stable release: 8.0<br>
</td>
<td>
&nbsp;source: http://www.firefox.com/<br>
&nbsp;version history: http://en.wikipedia.org/wiki/History_of_Firefox
</td>
</tr>


[http://www.debian.org/doc/FAQ/ch-pkgtools.en.html <b>dpkg</b>]<br>
<tr>
dpkg also known as Debian package Management System is used to manage (install, remove and provide information) .deb packages. The current version installed on Zentyal is 1.15.5.6ubuntu and the stable release is 1.15.72. This is the main package management for Zentyal even though RPM is also included in this distribution. I was unable to find the release history for this package.<br><br>
<td><center>Openbox</center></td>
<td>&nbsp;current version: 3.4.10-1ubuntu<br>
&nbsp;stable release: 3.5.0<br>
</td>
<td>
&nbsp;source: http://www.openbox.org/<br>
&nbsp;version history: http://git.openbox.org/?p=dana/openbox.git;a=tags
</td>
</tr>


<tr>
<td><center>LXDE</center></td>
<td>&nbsp;current version: 0.5.0-3ubuntu2<br>
&nbsp;stable release: 0.5.0-4ubuntu3<br>
</td>
<td>
&nbsp;source: http://lxde.org/<br>
&nbsp;version history: https://launchpad.net/ubuntu/+source/lxde-common/+publishinghistory
</td>
</tr>


[http://www.busybox.net/ <b>BusyBox</b>]<br>
<tr>
BusyBox is a mix of tiny versions of many common UNIX utilities into a single small executable, thus the name "The Swiss Army Knife of Embedded Linux". It provides a fairly complete environment for any small or embedded system. The current version installed on Zentyal is <code>1.13.3-1ubuntu11</code> and the current stable release is <code>1.19.2</code>. BusyBox was first released in 1999, so it's a fairly new package and there are probably a heavy load of modifications by the authors as it may have had a lot of bugs that needed to be patched up.<br>
<td><center>Netcat-openbsd</center></td>
[http://git.busybox.net/busybox/ BusyBox version history]
<td>&nbsp;current version: 1.89-3ubuntu2<br>
&nbsp;stable release: 1.103<br>
</td>
<td>
&nbsp;source: http://nc110.sourceforge.net/<br>
&nbsp;version history: https://launchpad.net/ubuntu/+source/netcat
</td>
</tr>


<tr>
<td><center>Apache</center></td>
<td>&nbsp;current version: 2.2.14-5ubuntu<br>
&nbsp;stable release: 2.2.21<br>
</td>
<td>
&nbsp;source: http://httpd.apache.org/<br>
&nbsp;version history: http://www.apachehaus.com/index.php?option=com_content&view=article&id=119:history-releases-apache&catid=41:catagory-change-logs&Itemid=93
</td>
</tr>


[http://www.firefox.com/ <b>FireFox</b>]<br>
<tr>
Firefox is the main web browser in Zentyal used as the main web interface to manage network capabilities for a more efficient usage (easier to set up and manage networking functions). The current version that's installed in Zentyal is 3.6.23+build+ and the current stable release is 8.0. By the look of the Mozilla Firefox timeline, it's been heavily modified over the years (there are big differences between both the UI and logo's early release to the present). <br>
<td><center>Xorg</center></td>
[http://en.wikipedia.org/wiki/History_of_Firefox Firefox release history]
<td>&nbsp;surrent version: 1:7.5+5ubuntu1<br>
&nbsp;stable release: 1.11.2<br>
</td>
<td>
&nbsp;source: http://www.x.org/<br>
&nbsp;version history: http://www.x.org/wiki/Releases
</td>
</tr>


</table>


[http://www.openbox.org/ <b>Openbox</b>]<br>
Openbox is a free window manager for the X Window System. It was derived from Blackbox 0.65.0 but it's now rewritten in C instead of C++. Since version 3.0, it has officially detached itself from Blackbox. It is designed to be small and fast and it also supports many features such as menus where users can control applications or displaying various dynamic information such as CPU usage, this is especially useful for system administrators to monitor network data flows more efficiently. The current version that is installed on Zentyal is 3.4.10-1ubuntu and the stable release version is 3.5.0, the currently installed version is not very far from the stable release. <br>
[http://git.openbox.org/?p=dana/openbox.git;a=tags Openbox release history]


The current release of Zentyal that is installed on my virtual machine is <code>2.2-1</code> released on September 14, 2011. There are a couple of packages that are just a version behind from the stable release because the packages could have updated after the current Zentyal was released. There are also some packages that are really old relative to the stable release version, especially Firefox. Since Zentyal was first released in July 15, 2009 under the name eBox Platform and Zentyal 2.0 is the was first released in September 1, 2010 under its new name. I speculate that since Firefox version 3.6 was also released during that year(January 21, 2010), they developed the interface using that version and stuck to that version ever since and also, Firefox is constantly being updated so it's not exactly very convenient that the developers would always have to constantly keep Firefox updated.


[http://lxde.org/ <b>LXDE</b>]<br>
Zentyal does not have very many packages installed initially since its primary task is to manage network and servers within a small to medium business as well as a replacement for a windows server. It has the minimum number of packages that makes Zentyal able to boot up and support interfaces to increase the ease in setting up a server and managing networking activities. Metaphorically, it's like a car with its shell, seats, break system and wheels with no addons like air conditioning or CD player.
LXDE is a desktop environment for UNIX. The current version installed in Zentyal is 0.5.0-3ubuntu2 and stable release version is 0.5.0-4ubuntu3, so it's fairly updated. This package is designed to work efficiently, having to use lowest memory usage as possible. This is a fairly new package since it's initial release was back in 2006.<br>
[https://launchpad.net/ubuntu/+source/lxde-common/+publishinghistory LXDE release history]


==Initialization==


[http://nc110.sourceforge.net/ <b>Netcat-openbsd</b>]<br>
Zentyal follows the same initialization process as Ubuntu since it's built on top of it. First thing it starts up is the BIOS (basic input/output system) that looks for the MBR (master boot record) then loads and executes the GRUB (grand unified boot loader). The GRUB boot loader will then execute the kernel and the initrd images then the kernel will execute the init program which will then execute upstart that will initialize run level programs. Since Zentyal is built on top of Ubuntu and it uses Upstart as a replacement for System V, it does not have the <code>/etc/inittab</code> file. Instead you can check the current run level using the command:
Netcat is a simple Unix utility which reads and writes data across network connections using TCP or UDP protocol. Zentyal has version 1.89-3ubuntu2 installed and the released stable version is 1.10. I think this package was already included in Debian.<br>
[https://launchpad.net/ubuntu/+source/netcat netcat release history]


# runlevel


[http://httpd.apache.org/ <b>Apache</b>]<br>
After typing in the command <code>runlevel</code> the output should be <code>N 2</code> where <code>N</code> is no runlevel change since boot up and 2 is the current runlevel. With that information you can list the services that are enabled at runlevel 2 by typing in the command:
The Apache HTTP Server is often referred to as Apache. It is an HTTP server for modern operating systems including both the UNIX and Windows NT systems. Zentyal has Apache version 2.2.14-5ubuntu installed and the stable released version is 2.2.21. This has been included in Debian and it is an important component that deals with networking. From looking at the release history and changes log, it's been heavily modified.<br>
[http://www.apachehaus.com/index.php?option=com_content&view=article&id=119:history-releases-apache&catid=41:catagory-change-logs&Itemid=93 Apache release history]


# chkconfig --list | grep '2:on'


[http://www.x.org/ <b>Xorg</b>]<br>
The X.org provides an open source implementation of the X Window System. The version currently installed in Zentyal is 1:7.5+5ubuntu1 and the current stable release is 1.11.2. The Xorg version number has changed since xorg 7.0 where debian version of xorg is different from a non-Debian packaging version and each modules of Xorg has its own version. Xorg is the default X Window server since Debian 4.0, so that's probably why it was put in Zentyal.<br>
[http://www.x.org/wiki/Releases Xorg version history]


==Initialization==
Here is a high level description of how the distribution boots up. It follows the general boot up sequence for any other Unix/Linux but the only differences are the types of programs that start up during initialization. <br>


<b>1. BIOS</b><br>
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">
The first thing that starts up is the BIOS (which stands for basic input/output system) which performs system integrity checks or hardware startup tasks. Once hardware is started correctly, it will look for the boot loader program then load it onto memory and then BIOS will pass control to the boot loader program by executing it.<br><br>


<b>2. MBR </b><br>
<tr>
MBR (which stands for Master Boot Record) is a partition boot sector, this is located in the first sector of the bootable disk (it is less than 512 bytes in size). It loads and executes GRUB boot loader.<br><br>
<td><center>List of services enabled at runlevel 2</center></td>
</tr>


<b>3. GRUB</b><br>
<tr>
The GRUB boot loader (which stands for Grand Unified Bootloader) has information about the filesystem. It will load and execute the default kernel and initrd images. Initrd (stands for Initial RAM Disk) is used to temporarily store the root filesystem by the kernel until the real filesystem is mounted. It contains important drivers for hardware usage.<br><br>
<td>[[File:Runlevel.png|thumb|center|Services at runlevel 2, may vary]]</td>
</tr>


<b>4. Kernel</b><br>
</table>
The kernel mounts the root filesystem then executes the init program. Since init is the first thing that the kernel executes, it has the PID of 1.<br>


<code>
  $ ps  -ef|grep init
  root 1 0 0 17:41 ? 00:00:00 /sbin/init
  1000 1954 1927 0 19:11 pts/1 00:00:00 grep --color=auto init
</code>


<b>5. Init</b><br>
You can also look in the <code>/etc</code> directory. Files stored in this directories are the system startup files and log files that contains information regarding which programs are running, which utilities were used and other boot information. The actual scrips that control services are in <code>/etc/rc.d</code>, these scripts are automatically run at boot time. If you look in <code>/etc/rc2.d</code>, there are various files with numbers and letters in the filename. These are scripts that are initialized in the current runlevel. Each of these files starts with either S for Start or K for Kill followed by the number that indicates the order of initialization.
The init program will look in /etc/cron.d file (since cron handles upstart) to decide the linux run level in order to identify the default initlevel to load necessary programs.<br><br>


<b>6. Runlevel Programs</b><br>
When the system is booting up, various programs are started, you can check by typing in <code>chkconfig --list | grep '2:on'</code> since 2 is the current runlevel as seen on the figure below (you can check by typing in <code>runlevel</code>). You may need to install chkconfig by typing in <code>sudo-get install chkconfig</code> since it's not installed on Zentyal yet.


[[File:Runlevel.png]]
<table border="1" bordercolor="#000000" style="background-color:#FFFFFF" width="500" cellpadding="0" cellspacing="0">


<br>To figure out to see which programs start first you can go into the <code>/etc/rc*.d/</code> directories. These sorts which programs to start (names that start with S) and end (names that start with K) first by assigning a number after the letters S or K. <br>
<tr>
<td><center>List of scripts from <code>/etc/rc0.d</code> to <code>/etc/rc6.d</code></center></td>
</tr>


<tr>
<td>[[File:Programs.png|thumb|center|List of programs]]</td>
</tr>


[[File:Programs.png]]
</table>
<br>


From the figure above, the following programs starts in order:
#apache2 with sequence number 09
#wpa-ifupdown with sequence number 15
#postgresql-8.4 with sequence number 19
#sendsigs with sequence number 20
#etc...


<u>Additional Information</u><br>
Since the default runlevel is 2, we'll take a look in the <code>/etc/rc2.d</code> as depicted in the screenshot above. The list of programs that start up in this order:
There are log files for Zentyal which contains all the information regarding this linux distribution such as programs that are running, which utilities were used and boot information. These files can be found in the <code>/etc</code> directory.


=Part 3=
* '''S19postgresql-8.4''': PostgreSQL is a sophisticated open-source Object-Relational DBMS
* '''S20redis-server''': Redis is an open source data structure server
* '''S20zentyal''': Zentyal
* '''S23ntp''': Network Time Protocol
* '''S50rsync''': Software application and network protocol
* '''S70dns-clean''': Used for cleaning up the DNS information
* '''S91apache2''': Apache
* '''S99grub-common''': GRand Unified Bootloader
* '''S99ondemand''': manages the processor
* '''S99rc.local''': manages what can be initialized at boot time


=References=
I went to the directory <code>/var/log</code> to find a boot log to view boot information. So, from that file, it fsck twice from <code>util-linux-ng 2.17.2</code> then it does memory integrity checks and runs init afterwards. It then does more checking and starts several daemons.
Lastly, after everything has been set up, the modules begin to start up which finalizes the boot up process. It is also possible to view the boot up process for modules that are installed by typing in a command instead of going into the <code>/var/log</code> directory:


sudo /etc/init.d/zentyal restart


http://www.linuxquestions.org/questions/linux-newbie-8/how-to-check-kernal-version-90413/. Accessed on 11/02/2011 <br>
=References=
http://www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/. Accessed on 11/02/2011 <br>
http://en.wikipedia.org/wiki/Zentyal. Accessed on 11/02/2011 <br>
http://www.thegeekstuff.com/2011/02/linux-boot-process/. Accessed on 11/02/2011 <br>
http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html. Accessed on 11/03/2011 <br>
http://distrowatch.com/table.php?distribution=zentyal. Accessed on 11/05/2011 <br>
http://en.wikipedia.org/wiki/List_of_software_package_management_systems. Accessed on 11/05/2011 <br>
http://forums.techarena.in/operating-systems/1228021.htm. Accessed on 11/05/2011 <br>
http://www.ghacks.net/2009/02/16/learning-linux-log-files/. Accessed on 11/05/2011 <br>
http://en.wikipedia.org/wiki/Initrd. Accessed on 11/05/2011 <br>
http://en.wikipedia.org/wiki/Upstart. Accessed on 22/05/2011 <br>
http://www.cyberciti.biz/faq/linux-default-services-which-are-enabled-at-boot/ - Accessed on 11/11/2011 <br>
http://www.gnu.org/software/bash/manual/bashref.html - Accessed on 11/11/2011 <br>


http://www.distrowatch.com/table.php?distribution=zentyal. Retrieved 2011-10-12 <br>
# Zentyal 2.0 review. September 6, 2010. [http://www.linuxbsdos.com/2010/09/06/zentyal-2-0-review/ LinuxBSDos]. Retrieved on 12/02/2011
http://www.zentyal.org/. Retrieved 2011-10-12 <br>
# Latest news and updates. [http://distrowatch.com/index.php?distribution=zentyal Distrowatch]. Retrieved on 12/02/2011
http://www.howtoforge.com/zentyal-as-a-gateway-the-perfect-setup. Retrieved 2011-10-13 <br>
# Debian and Ubuntu Linux Run Levels. [http://www.debianadmin.com/debian-and-ubuntu-linux-run-levels.html DebianAdmin]. Retrieved on 12/01/2011
http://www.unix-tutorials.com/go.php?id=4510. Retrieved 2011-10-15 <br>
# how do I get apt-get to completely uninstall a package? [http://www.linuxquestions.org/questions/debian-26/how-do-i-get-apt-get-to-completely-uninstall-a-package-237772/ LinuxQuestions.org]. Retrieved on 12/01/2011
http://www.unix-tutorials.com/go.php?id=4237. Retrieved 2011-10-15 <br>
# How to check kernal version? [http://www.linuxquestions.org/questions/linux-newbie-8/how-to-check-kernal-version-90413/ LinuxQuestions.org]. Retrieved on 11/02/2011
http://www.zentyal.com/en/server/gateway/. Retrieved 2011-10-17 <br>
# Show the List of Installed Packages on Ubuntu or Debian. [http://www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/ How-To-Geek]. Retrieved on 11/02/2011  
http://www.zentyal.com/en/server/utm/. Retrieved 2011-10-17 <br>
# Wiki: Zentyal. [http://en.wikipedia.org/wiki/Zentyal Wikipedia]. Retrieved on 11/02/2011
http://www.zentyal.com/en/server/infrastructure/. Retrieved 2011-10-17 <br>
# 6 Stages of Linux Boot Process (Startup Sequence). [http://www.thegeekstuff.com/2011/02/linux-boot-process/ The Geek Stuff]. Retrieved on 11/02/2011
http://www.zentyal.com/en/server/office/. Retrieved 2011-10-17 <br>
# Linux Init Process / PC Boot Procedure. [http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html YoLinux.com]. Retrieved on 11/03/2011
http://www.zentyal.com/en/server/communication/. Retrieved 2011-10-17 <br>
# Wiki: Package management system. [http://en.wikipedia.org/wiki/List_of_software_package_management_systems Wikipedia]. Retrieved on 11/05/2011  
# How to view linux startup log. [http://forums.techarena.in/operating-systems/1228021.htm Tech Arena Forums]. Retrieved on 11/05/2011
# Log Files. [http://www.ghacks.net/2009/02/16/learning-linux-log-files/ Learning Linux]. Retrieved on 11/05/2011
# Wiki: Initrd. [http://en.wikipedia.org/wiki/Initrd Wikipedia]. Retrieved on 11/05/2011
# Wiki: Upstart. [http://en.wikipedia.org/wiki/Upstart Wikipedia]. Retrieved on 22/05/2011  
# Gite, Vivek. Linux Default Services Which Are Enabled at Boot. [http://www.cyberciti.biz/faq/linux-default-services-which-are-enabled-at-boot/ CyberCiti]. Retrieved on 11/11/2011
# Bash Reference Manual. [http://www.gnu.org/software/bash/manual/bashref.html Gnu]. Retrieved on 11/11/2011  
# Zentyal As A Gateway: The Perfect Setup. [http://www.howtoforge.com/zentyal-as-a-gateway-the-perfect-setup HowToForge]. Retrieved 2011-10-13
# Using eBox As A Gateway: Firewall, Traffic Shaping, HTTP Proxy And More. [http://www.unix-tutorials.com/go.php?id=4510 HowToForge]. Retrieved 2011-10-15
# Using eBox As Windows Primary Domain Controller. [http://www.unix-tutorials.com/go.php?id=4237 HowToForge]. Retrieved 2011-10-15
# Zentyal - The Linux Small Business Server. [http://www.zentyal.com/en/ Zentyal]. Retrieved 2011-10-17

Latest revision as of 17:46, 5 December 2011

Part 1

Background

Default desktop

Zentyal was formerly known as the eBox Platform which is built on top of Ubuntu server 10.04. It is an open source unified network server software package (or unified platform) developed by eBox Technologies to provide easy and affordable computer networks for small to medium businesses in order to improve reliability and security of their network infrastructure. Since it is also an open source alternative to a Windows server it helps reduce operational costs for businesses.

It provides various networking services such as acting as a gateway to enforce security access and improve efficiency to users connecting to the internet via the gateway configurations. It also provides various networking tools that pertain to the operation, administration and maintenance of network systems or unified communications server or even an office server that can manage printer sharing or file sharing.

Zentyal can be freely obtained from their site (Zentyal's Official Site) by downloading from their server. It's approximately 625,000 KB big and the file is in disk image format. You can make a purchase for additional add on or server subscriptions.

Installation/Startup

Zentyal can be installed on the main machine or on a virtual machine. Both go through the same installation process but a few more steps if you're installing on a virtual machine. If you are using VMware Player for installing Zentyal on a virtual machine, it is preferred not to use the 'easy install' method.

For this report, I installed it on a virtual machine using VirtualBox.


Setting up VirtualBox
VirtualBox with Zentyal installed
New Virtual Machine Wizard Setup
 Welcome page
Nothing needed to be done here
 VM name and OS type
Name: Zentyal
Operating System: Linux
Version: Other linux
 Memory
256MB
 Virtual Hard Disk
Start up disk should be checked then create new hard disk
 Welcome to virtual disk creation wizard
Select VDI
 Virtual disk storage details
Dynamically allocated
 Virtual disk file location and size
The default setting is fine


Devices > CD/DVD Devices > Choose a virtual CD/DVD disk file...

After you have successfully created a virtual machine, power it on and since this is the first time you power on your virtual machine, it will ask you what you want to boot up since there's nothing installed onto your virtual machine. You then boot up the Zentyal disk image (this is the same as popping in the CD into your CD drive but you are actually "mounting" the .iso file onto your virtual CD drive) that you downloaded from the Zentyal site.

If for some reason, you aren't prompt for that option, you can mount the file using VirtualBox instead by going to VirtualBox's menu bar and selecting Devices>CD/DVD Devices>Choose a virtual CD/DVD disk file... and browse for your Zentyal's disk image file. If your menu bar isn't shown, press "Host + C". Afterwards, reboot your virtual machine and it will automatically boot from your virtual CD drive. It will then prompt you for a language then the boot menu will be displayed. Now, You have two options for installation:


Installing Zentyal
Boot menu
 Install Zentyal (delete all disk)
This is the default mode, it deletes all disk contents and creates the necessary configurations to run Zentyal
 Install Zentyal (expert mode)
This option allows the user to manually configure specifications for Zentyal


I installed Zenyal using the default mode then went through the installation process. The installation process was quick, it didn't take me a long time as it did with Ubuntu. When I finished installing Zentyal and rebooting it, it automatically started up Firefox; this is used as a web interface that allows easy access to various networking administrative tools. There weren't many softwares installed, namely, only a few text editing programs (gedit and leafpad), an archive program, file managing program and Firefox.


Starting up Zentyal for the first time
Zentyal's User interface


The first thing that shows up is the Firefox browser that asks for the Username and Password (the credentials you put in during the installation process), it will act as the user interface that will be used to set up and manage the network services.

Basic Operation

Zentyal can be used to act as a gateway to enforce access rules for internet connection or configure settings to improve efficient access to the internet (in other words, speed up the connection speed by various methods such as proxy caching or traffic shaping). So, after starting up Zentyal for the first time, you will find that there are barely anything installed.

Firefox (actually called Zentyal Administration) will automatically start up every time you start up the Linux and prompt you for credentials (username and password). The username and password are the same ones you had put in during the installation process. This web interface allows you to have access to network administrative tools and configurations as well as modules that you can install with ease.


Dashboard without any modules installed
Zentyal initialDashboard.png


After the initial login, you are automatically directed to an Installation wizard as depicted above. There are many variety of modules that can be downloaded and installed. You can click on the 'More info' under each package(Gateway, UTM, Infrastructure, Office and Communications) to see which packages would be best fit for the current task. When you found the package that you want, simply click on the logo of that package, and various modules are selected automatically with regards to that package then click install.

If you decide to skip the installation process, you can do so by clicking on skip install. If you want to go back to the Installation wizard, select Software Management on the left hand side menu then select Zentyal Components. You will see a list of available modules for installation, then click on view basic mode and it will take you back when you initially start up the Zentyal Administration. Another alternative of installing modules can be done by using sudo apt.


Package Details

Gateway: Providing system administrators the tools to configure a firewall and routing rules for multiple internet connections. It allows system administrators to increase internet speed by caching web pages and enhance security by blocking dangerous web threats.

Some features that this package provides includes Transparent Caching, Load Balancing and Availability, Traffic Shaping and QoS, and Web Content Filter.

UTM (Unified Threat Management): Provides system administrators tools to configure a VPN (virtual private network) to allow users to have remote access to a local area network over the internet.

Some features includes Firewall, Content Filter, Virtual Private Network and Intrusion Detection.

Infrastructure: Allowing system administrators to manage the network infrastructure.

Some features provided in this package includes DHCP Server, Web Server (powered by Apache), DNS Server and Certification Authority that allows you to create your own certificates.

Office: Allowing system administrators to manage the users or groups of users as well as the server for file and printer sharing.

Some features includes Directory Services that allows you to manage your users, Groupware (similar to Microsoft Sharepoint), File and Printer Sharing, and Data Backup.

Communications: Provides system administrators tools to easily configure a communication server.

This package includes Email, Instant messaging using the XMPP/Jabber protocol, Groupware and VoIP.


I found a couple of tutorials on how to configure Zentyal as a gateway, and configuring a Jabber server for instant messaging or VoIP. I decided to try to set up a Jabber server and trying to connect to that server using Empathy chat client installed on Ubuntu by following this Tutorial. I went and installed the Communications package which has all the necessary modules to set up a Jabber server. After installing, the configuration wizard follows and you have a choice whether to configure the settings now or skip and configure later. The setup I used were:

Configure Interface types: Internal
Network configuration for external interfaces: DHCP
Type of server: Standalone server
Setting up a virtual mail domain: Zentyal
Subscribing to Zentyal Cloud: You have a choice to subscribe or not, it's not really needed

When you make any changes to the configuration, you must save changes to your modules. When you're done, go to your Dashboard, it shows the system status. The next step would be to create users. Go to the left hand menu and select Users and Groups which will show more options. Select users and enter in credentials then save changes, the user information should appear under after you press the add button:

User name: Internalfire
First name: 
Last name: 
Comment: optional
Password: password
Retype password: password

Now go to the left hand menu again and select Jabber. I used the following setup to set up a Jabber server:

Jabber domain: u-jabber.com
SSL support: Allow SSL
Enable MUC is checked

Setting up the server is finished. I proceeded to test the Jabber server by setting up a chat client on Ubuntu using the Empathy chat client. For the user account, I used the following setup:

Account: Internalfire@u-jabber.com
password: password
Encryption required is checked
Ignore SSL certification errors is checked
Server IP: The IP under eth0 from your Zentyal dashboard


Jabber server
Network error


After I have configured my first user account on Empathy, I tried to connect to my Jabber server and got a Network error and wouldn't allow me to connect to my Jabber server. I am not exactly sure why this happened.


Dashboard after installing modules
Dashboard showing system status


Usage Evaluation

Zentyal is a good distribution with regards in managing networking or server activities. It is made to ease the configurations for both network and server settings as well as setting them up quickly. Although, having a necessary amount of knowledge about networking principles would be required to use Zentyal as well as optimizing the use of the features available.

It was a bit cumbersome for me to set up a simple instant messaging server and network activity monitoring system because I only had a limited amount of understanding of networking principles which lead to a networking issues. There are variety of tutorials that can be found on the internet but it would be better to have a good general understanding of how networks and server works. Even though Zentyal provided a graphical interface, it is likely that it is not as flexible as configuring settings using a terminal.

Part 2

Software Packaging

Zentyal has two different package management system installed and there are three ways of installing packages. It has dpkg (Debian package management system) and APT (Advanced Packaging Tool) to install, remove and provide information about .deb packages. Another way of installing packages is by using the Zentyal's Administration that uses Firefox as a graphical user interface.

Please note that the package-name used in the following commands is the name of the Debian software package.


To install a .deb package using dpkg and APT, the following commands are used:

dpkg -i package-name
apt-get install package-name

Installing using the graphical interface by opening up Zentyal Administration then going to the left hand menu, select Software Management which shows you more options regarding Software Management. Select Zentyal Components and it will show you all the different types of modules that you can install. If you click on 'View basic mode' it will show you different packages (Office, Gateway, etc) where when you click on either packages, it will highlight several modules with regard to that particular package. When you're satisfied with which modules to install, on the bottom right hand corner, there should be an 'install' button. Click that, and modules will be installed.


To remove a package using dpkg and APT, the following commands are used:

dpkg -r package-name
apt-get --purge remove package-name

It is not advised to use apt-get --purge remove as it may cause some problems later on but it will remove the whole package from the system and using apt-get remove will remove the package from the system but it leaves configuration files behind. I don't think you can uninstall modules using the graphical interface in Zentyal, but you can disable them.


To list the packages using dpkg, we use the command:

dpkg -l [optional]

The graphic interface will not show everything that is installed, it will only show modules that you have installed via the Zentyal Administration. To view the modules, go to the left side menu and select 'Module Status' it will show you a list of modules that's installed as well as which ones are enabled and which ones are disabled.

Major Package Versions

There are a wide range of packages installed in Zentyal. But I have only chosen a few of them for comparison relative to their stable release version.


Package
Version
Source
Bash

 current version: 4.1-2ubuntu3
 stable release: 4.2

 source: http://www.gnu.org/software/bash/
 version history: ftp://ftp.gnu.org/gnu/bash/

debconf

 current version: 1.5.28ubuntu4
 stable release: 1.5.41

 source: http://kitenet.net/programs/debconf/
 version history: https://launchpad.net/ubuntu/+source/debconf/+publishinghistory

dpkg
 current version: 1.15.5.6ubuntu

 stable release: 1.15.72

 source: http://www.debian.org/doc/FAQ/ch-pkgtools.en.html
 version history: -

BusyBox
 current version: 1.13.3-1ubuntu11

 stable release: 1.19.22

 source: http://www.busybox.net/
 version history: http://git.busybox.net/busybox/

FireFox
 current version: 3.6.23+build+

 stable release: 8.0

 source: http://www.firefox.com/
 version history: http://en.wikipedia.org/wiki/History_of_Firefox

Openbox
 current version: 3.4.10-1ubuntu

 stable release: 3.5.0

 source: http://www.openbox.org/
 version history: http://git.openbox.org/?p=dana/openbox.git;a=tags

LXDE
 current version: 0.5.0-3ubuntu2

 stable release: 0.5.0-4ubuntu3

 source: http://lxde.org/
 version history: https://launchpad.net/ubuntu/+source/lxde-common/+publishinghistory

Netcat-openbsd
 current version: 1.89-3ubuntu2

 stable release: 1.103

 source: http://nc110.sourceforge.net/
 version history: https://launchpad.net/ubuntu/+source/netcat

Apache
 current version: 2.2.14-5ubuntu

 stable release: 2.2.21

 source: http://httpd.apache.org/
 version history: http://www.apachehaus.com/index.php?option=com_content&view=article&id=119:history-releases-apache&catid=41:catagory-change-logs&Itemid=93

Xorg
 surrent version: 1:7.5+5ubuntu1

 stable release: 1.11.2

 source: http://www.x.org/
 version history: http://www.x.org/wiki/Releases


The current release of Zentyal that is installed on my virtual machine is 2.2-1 released on September 14, 2011. There are a couple of packages that are just a version behind from the stable release because the packages could have updated after the current Zentyal was released. There are also some packages that are really old relative to the stable release version, especially Firefox. Since Zentyal was first released in July 15, 2009 under the name eBox Platform and Zentyal 2.0 is the was first released in September 1, 2010 under its new name. I speculate that since Firefox version 3.6 was also released during that year(January 21, 2010), they developed the interface using that version and stuck to that version ever since and also, Firefox is constantly being updated so it's not exactly very convenient that the developers would always have to constantly keep Firefox updated.

Zentyal does not have very many packages installed initially since its primary task is to manage network and servers within a small to medium business as well as a replacement for a windows server. It has the minimum number of packages that makes Zentyal able to boot up and support interfaces to increase the ease in setting up a server and managing networking activities. Metaphorically, it's like a car with its shell, seats, break system and wheels with no addons like air conditioning or CD player.

Initialization

Zentyal follows the same initialization process as Ubuntu since it's built on top of it. First thing it starts up is the BIOS (basic input/output system) that looks for the MBR (master boot record) then loads and executes the GRUB (grand unified boot loader). The GRUB boot loader will then execute the kernel and the initrd images then the kernel will execute the init program which will then execute upstart that will initialize run level programs. Since Zentyal is built on top of Ubuntu and it uses Upstart as a replacement for System V, it does not have the /etc/inittab file. Instead you can check the current run level using the command:

# runlevel

After typing in the command runlevel the output should be N 2 where N is no runlevel change since boot up and 2 is the current runlevel. With that information you can list the services that are enabled at runlevel 2 by typing in the command:

# chkconfig --list | grep '2:on'


List of services enabled at runlevel 2
Services at runlevel 2, may vary


You can also look in the /etc directory. Files stored in this directories are the system startup files and log files that contains information regarding which programs are running, which utilities were used and other boot information. The actual scrips that control services are in /etc/rc.d, these scripts are automatically run at boot time. If you look in /etc/rc2.d, there are various files with numbers and letters in the filename. These are scripts that are initialized in the current runlevel. Each of these files starts with either S for Start or K for Kill followed by the number that indicates the order of initialization.


List of scripts from /etc/rc0.d to /etc/rc6.d
List of programs


Since the default runlevel is 2, we'll take a look in the /etc/rc2.d as depicted in the screenshot above. The list of programs that start up in this order:

  • S19postgresql-8.4: PostgreSQL is a sophisticated open-source Object-Relational DBMS
  • S20redis-server: Redis is an open source data structure server
  • S20zentyal: Zentyal
  • S23ntp: Network Time Protocol
  • S50rsync: Software application and network protocol
  • S70dns-clean: Used for cleaning up the DNS information
  • S91apache2: Apache
  • S99grub-common: GRand Unified Bootloader
  • S99ondemand: manages the processor
  • S99rc.local: manages what can be initialized at boot time

I went to the directory /var/log to find a boot log to view boot information. So, from that file, it fsck twice from util-linux-ng 2.17.2 then it does memory integrity checks and runs init afterwards. It then does more checking and starts several daemons. Lastly, after everything has been set up, the modules begin to start up which finalizes the boot up process. It is also possible to view the boot up process for modules that are installed by typing in a command instead of going into the /var/log directory:

sudo /etc/init.d/zentyal restart

References

  1. Zentyal 2.0 review. September 6, 2010. LinuxBSDos. Retrieved on 12/02/2011
  2. Latest news and updates. Distrowatch. Retrieved on 12/02/2011
  3. Debian and Ubuntu Linux Run Levels. DebianAdmin. Retrieved on 12/01/2011
  4. how do I get apt-get to completely uninstall a package? LinuxQuestions.org. Retrieved on 12/01/2011
  5. How to check kernal version? LinuxQuestions.org. Retrieved on 11/02/2011
  6. Show the List of Installed Packages on Ubuntu or Debian. How-To-Geek. Retrieved on 11/02/2011
  7. Wiki: Zentyal. Wikipedia. Retrieved on 11/02/2011
  8. 6 Stages of Linux Boot Process (Startup Sequence). The Geek Stuff. Retrieved on 11/02/2011
  9. Linux Init Process / PC Boot Procedure. YoLinux.com. Retrieved on 11/03/2011
  10. Wiki: Package management system. Wikipedia. Retrieved on 11/05/2011
  11. How to view linux startup log. Tech Arena Forums. Retrieved on 11/05/2011
  12. Log Files. Learning Linux. Retrieved on 11/05/2011
  13. Wiki: Initrd. Wikipedia. Retrieved on 11/05/2011
  14. Wiki: Upstart. Wikipedia. Retrieved on 22/05/2011
  15. Gite, Vivek. Linux Default Services Which Are Enabled at Boot. CyberCiti. Retrieved on 11/11/2011
  16. Bash Reference Manual. Gnu. Retrieved on 11/11/2011
  17. Zentyal As A Gateway: The Perfect Setup. HowToForge. Retrieved 2011-10-13
  18. Using eBox As A Gateway: Firewall, Traffic Shaping, HTTP Proxy And More. HowToForge. Retrieved 2011-10-15
  19. Using eBox As Windows Primary Domain Controller. HowToForge. Retrieved 2011-10-15
  20. Zentyal - The Linux Small Business Server. Zentyal. Retrieved 2011-10-17