Giter Club home page Giter Club logo

islet's Introduction

Isolated, Scalable, & Lightweight Environment for Training

Join the chat at https://gitter.im/jonschipp/ISLET

Making IT training a smoother process...

ISLET is a container based system for teaching Gnu/Linux based software, which requires minimal effort for participation and configuration. ISLET supports running a variety different training environments concurrently, and has a plugin system for extending functionality. ISET is modular in design, which makes it easy to add different run times and is flexible to different needs. The participation barrier is set very low, so students will only need an SSH or similar remote access client to connect.

ISLET Screenshot

Uses

  • Event and staff training
  • Capture the flag competitions
  • Development environments

Who Uses ISLET?

ISLET has been used in official training for two leading open source network security projects. These, in addition to other notable examples, are listed below.

If you would like commercial support for ISLET, including creating and deploying custom training environments, contact me through my company Draconyx.

Design

These images are a little old, but they mostly represent the design.

####Simplified Diagram ISLET Diagram

####Detailed Flowchart ISLET Flowchart

Installation

The installation of ISLET is very simple. First, grab the dependencies and then install ISLET.

Dependencies

  • Linux, Bash, Cron, OpenSSH, Make, SQLite, and Docker Engine

The configure script will check for dependencies (except Docker)

./configure

ISLET Configure Screenshot

Typically, all you need is Make, SQLite and Docker Engine (for Debian/Ubuntu):

apt-get install make sqlite

See Docker's documentation for installation instructions.

Install

After installing the dependencies, run:

make user-config && make install && make security-config

See the menu for more options, make ISLET Make Screenshot

Target: Description:
install Install ISLET: install-files + configuration
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
user-config Configures a user account called demo w/ password demo
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 user-config INSTALL_DIR=/usr/local/islet USER=training PASS=training
make install INSTALL_DIR=/usr/local/islet USER=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 configuration directory (def: /etc/islet)
INSTALL_DIR ISLET installation directory (def: /opt/islet)
USER User account created with user-config target (def: demo)
PASS User account password created with user-config target (def: demo)
IPTABLES Iptables ruleset (def: /etc/network/if-pre-up.d/iptables-rules)

Updating

Updating an existing ISLET installation is very simple:

tar zcf islet_config.tgz /etc/islet # Backup configs
make update
tar zxf islet_config.tgz -C /       # Restore configs

Adding Training Environments

See Docker's image documentation

  1. Build or pull in a new Docker image

  2. Create an ISLET config file for that image (training environment). You can use make template for an example.

  3. Place it in /etc/islet/environments with a .conf extension.

It should now be available from the selection menu upon login.

ISLET Configs Screenshot

More info: See the SECURITY file for more information on manually securing the system. See the ADMIN file for more information on administering the system. [Mailing List] (https://groups.google.com/d/forum/islet)

islet's People

Contributors

jonschipp avatar ashtonfalk avatar gitter-badger avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.