INSTALLING AND SETTING UP iTALC FOR USE
=========================================


Please note that all instructions in this file apply to the Linux version of
iTALC. Users of the win32 version of iTALC should run the installer which will
guide you through the installation. Afterwards the graphical iTALC Management
Console helps to set up iTALC.

For further information you can also take a look at iTALC-Wiki:

	http://italc.sf.net/wiki/



Building iTALC
----------------

If you have ready to use packages (RPMs, DEBs etc.), you can skip this section
and continue with "Install iTALC".


Requirements:

- qtbase5-dev and qtbase5-dev-tools (Debian-based distributions)
- xorg-dev or similiar
- libxtst-dev
- libjpeg-dev/libjpeg-devel
- zlib1g-dev/zlib-devel
- libssl-dev/openssl-devel
- libpam0g-dev/pam-devel

for ubuntu 16.04
- qttools5-dev and qttools5-dev-tools

Of course GCC/G++, make and cmake must not be missing...


Building:

	mkdir build
	cd build
	cmake ..

If some requirements are not fullfilled, CMake will inform you about it and
you will have to install the missing software before continuing.

After CMake ran successfully you can run

	make install

Make sure you're issuing the "make install" as root! This will install iTALC
directly on the computer.


Read the next section on how to setup iTALC.



Installing iTALC
-------------------

Requirements:

Of course you should have some computers, connected via TCP/IP network... :-)

First you should download the necessary packages depending on your
Linux distribution. If there're no packages for your distribution,
try to build iTALC yourself. See previous section for details.

If there're unfulfilled requirements, your package management system (dpkg,
RPM etc.) will complain about it.


Installing:

First you have to install the necessary packages on your computer(s).
On clients you only have to install the packages italc:

on DPKG-based systems:


	apt-get install italc-client


on RPM-based systems:

	rpm -i italc...rpm


On the master computer you additionally need italc-master.

	apt-get install italc-master

or

	rpm -i italc-master...rpm



Setup an iTALC client
----------------------

On clients you have to make sure that the iTALC Client Application (ICA),
is being started when either X is started or a user logs on.
There're several methods to achieve this (this is why it's not done
automatically when installing the package):

1. Add the appropriate command ("ica &") to /etc/X11/xinit/xinitrc or
   add an according desktop file to /etc/xdg/autostart.
   This method isn't recommend, because ICA then runs with the user's
   privileges -> the user is able to kill ICA and get out of teacher's
   control.

2. add "ica &" to /etc/X11/xdm/Xsetup. On some systems, this
   doesn't take effect, so either edit /etc/kde4/kdm/Xsetup or
   /etc/X11/gdm/Xsetup

You can easily test whether all is fine by running telnet on port 11100 of the
according compter.

example:

	telnet 192.168.1.2 11100


You should see something like "RFB 003.008".



Setup iTALC authentication
----------------------------

iTALC uses a sophisticated authentication concept to make sure only
authorized persons are able to access computers using iTALC.

The security is achieved by data signing and -verification using a public and
a private key. Thus you have to create a key pair by invoking

	imc -role teacher -createkeypair

which will create a key pair in /etc/italc/keys.

Now copy the directory /etc/italc/keys/public to each client. Make sure the
whole directory including subdirectories and files are readable but not
writable to normal users. If you have network shares (AFS, NFS, Samba etc.) it's
recommended to copy this directory to a network share, set the according
permissions and link it on each client to /etc/italc/keys. This way it's no
problem to generate a new key pair (e.g. if the private key was compromised)

Then (the most important thing!) make sure only the users which should be
allowed to use iTALC have (only!) read access to /etc/italc/keys/private
including subdirectories and files. In most cases you would have to create a
group "teacher", add all teachers etc. to it and set permissions, so that only
this group has read permissions.



Setup clients and classrooms (i.e. client groups)
-------------------------------------------------

Before using iTALC, you need tell iTALC which clients to access and how they're
grouped. For doing so iTALC has an easy to use client manager. After starting
iTALC, you can open it by clicking on the according button on iTALC's sidebar.

Now you can add clients and client groups using the context menu.

For installing the client configuration you made for other users, copy the
XML files in $HOME/.italc/ into directory .italc in every iTALC user's home.
You can also link the file 'GlobalConfig.xml' to one global client
configuration in a public network directory, so that you can change every
user's client config at once, if something in your network has changed (e.g. a
client was exchanged -> different MAC address).

