Make IT training a smoother process...
A container based system for teaching Linux based software with minimal participation and configuration effort. ISLET supports running many different training environments concurrently and has a plugin system for extending functionality. The participation barrier is set very low, students only need an SSH client to connect to ISLET.
- Event and staff training
- Capture the flag competitions
- Development environments
You can quickly try out ISLET on some of my dev systems. Password is demo
ssh demo@islet1.jonschipp.com
ssh demo@islet2.jonschipp.com
Installation of ISLET is very simple and it can be done in two ways:
On the host operation system
make install
Or as a Docker container which requires little to no modification to the host
make install-contained
Target: | Description: |
---|---|
install | Install ISLET: install-files + configuration |
install-contained | Install ISLET as a container, no modification to host system |
update | Downloads and install new code (custom changes to default files will be overwritten) |
uninstall | Uninstall ISLET (Recommended to backup your stuff first) |
mrproper | Removes files that did not come with the source |
install-docker | Installs latest Docker from Docker repo (Debian/Ubuntu only) |
docker-config | Reconfigures Docker storage backend to limit container and image sizes |
user-config | Configures a user account called demo w/ password dem |
security-config | Configures sshd with islet relevant security in mind |
iptables-config | Installs iptables ruleset |
GNU make accepts arguments if you want a customized installation (not supported):
make install INSTALL_DIR=/usr/local/islet USER=training
make user-config INSTALL_DIR=/usr/local/islet USER=training PASS=training
make security-config INSTALL_DIR=/usr/local/islet USER=training
make uninstall INSTALL_DIR=/usr/local/islet USER=training
Variable: | Description: |
---|---|
CONFIG_DIR | ISLET config files directory (def: /etc/islet) |
INSTALL_DIR | ISLET installation directory (def: /opt/islet) |
CRON | Directory to place islet crontab file (def: /etc/cron.d) |
USER | User account created with user-config target (def: demo) |
PASS | User account password created with user-config target (def: demo) |
SIZE | Maximum container and image size with configure-docker target (def: 2G) |
IPTABLES | Iptables ruleset (def: /etc/network/if-pre-up.d/iptables-rules) |
NAGIOS | Location of nagios plugins (def: /usr/local/nagios/libexec) |
PORT | The SSH port on the host when installing ISLET as a container (def: 2222) |
PACKAGE | Type of package to build for make package (def: deb) |
Updating an existing ISLET installation is very simple:
For an existing host installation (make install
):
make update
For an existing container installation (make install-contained
):
docker pull jonschipp/islet
- Linux, Bash, Cron, OpenSSH, Make, SQLite, and Docker
The configure script will check for dependencies
./configure
Typically all you need is make, sqlite, and docker (for Debian/Ubuntu):
apt-get install make sqlite
make install-docker
The included installation scripts are designed to work with Debian/Ubuntu systems.
Note: Installing ISLET as container (make install-contained
) only requires Docker
The following make targets will install ISLET and configure the system with security in mind for ISLET. It is designed to be a quick way to get a working system with a good configuration.
Install ISLET on the host:
make install
make user-config
make security-config # Configure islet relevant security with sshd
chown root:islet /var/lib/docker /var/lib/docker/repositories-*
chmod g+x /var/lib/docker
chmod g+r /var/lib/docker/repositories-*
Install ISLET as a container on the host:
make install-contained # Installs ISLET as a container
See the SECURITY file for more information on manually securing the system. See the ADMIN file for more information on administering the system.
See Docker's image documentation
-
Build or pull in a new Docker image
-
Create an ISLET config file for that image. You can use
make template
for an example. -
Place it in /etc/islet with a .conf extension.
It should now be available from the selection menu upon login.
More info: [Mailing List] (https://groups.google.com/d/forum/islet)