Giter VIP home page Giter VIP logo

aker's Introduction

Join the chat at https://gitter.im/Akergateway/Aker

Aker SSH Gateway

alt text

What is Aker?

Aker is a security tool that helps you configure your own Linux ssh jump/bastion host. Named after an Egyptian mythology deity who guarded the borders, Aker would act as choke point through which all your sysadmins and support staff access Linux production servers. Aker SSH gateway includes a lot of security features that would help you manage and administer thousands of Linux servers at ease. For a detailed look check our Wiki

Motivation

I couldn't find an open source tool similar to CryptoAuditor and fudo, such tools are beneficial if you're seeking becoming PCI-DSS or HIPAA compliant for example, regardless of security standards compliance access to the server should be controlled and organized in a way convenient to both traditional and cloud workloads.

Current Featuers

  • Supports FreeIPA 4.2 , 4.3 and 4.4 (Optional)
  • Extensible, Write Your Own Module
  • Session Playback
  • Extract Session Commands
  • SIEM-Ready json Session Logs
  • Elasticsearch Integration

Roadmap

  • Phase 0

    • Integration with an identity provider (FreeIPA)
    • Extendable Modular structure, plugin your own module
    • Integration with config management tools
    • Parsable audit logs (json, shipped to Elasticsearch)
    • Highly available setup
    • Session playback
  • Phase 1

    • Admin WebUI
    • Live session monitoring
    • Cloud support (AWS,OpenStack etc..) or On-premises deployments
    • Command filtering (Prevent destructive commands like rm -rf)
    • Encrypt sessions logs stored on disk.
  • Phase 2

    • Support for graphical protocols (RDP, VNC, X11) monitoring
    • User productivity dashboard

See it in action

Aker - in action

Requirements

Software:

  • Linux (Tested on CentOS, Fedora and ubuntu)
  • Python (Tested on 2.7)
  • (Optional) FreeIPA, Tested on FreeIPA 4.2 & 4.3
  • redis

Python Modules:

  • configparser
  • urwid
  • paramiko
  • wcwidth
  • pyte
  • redis

Installation

  • Aker can be setup on a FreeIPA client or indepentantly using json config file.

    • Common Steps (FreeIPA or Json):

      • Clone the repo
       git clone https://github.com/aker-gateway/Aker.git /usr/bin/aker/
      
      • Install dependencies (adapt for Ubuntu)

         yum -y install epel-release 
         yum -y install python2-paramiko python-configparser python-redis python-urwid python2-wcwidth redis
        
      • Set files executable perms

        chmod 755 /usr/bin/aker/aker.py
        chmod 755 /usr/bin/aker/akerctl.py
        
      • Setup logdir and perms

        mkdir /var/log/aker
        chmod 777 /var/log/aker
        touch /var/log/aker/aker.log
        chmod 777 /var/log/aker/aker.log
        
      • Enforce aker on all users but root, edit sshd_config

        Match Group *,!root
        ForceCommand /usr/bin/aker/aker.py
        
      • Restart ssh

      • Restart redis

    • Choosing FreeIPA:

      • Assumptions:

        • Aker server already enrolled to FreeIPA domain
      • Create /etc/aker and copy /usr/bin/aker/aker.ini in it and edit it like below :

        ```
        [General]
        log_level = INFO
        ssh_port = 22
        
        # Identity Provider to determine the list of available hosts
        # options shipped are IPA, Json. Default is IPA
        idp = IPA
        hosts_file = /etc/aker/hosts.json
        
        # FreeIPA hostgroup name contatining Aker gateways
        # to be excluded from hosts presented to user
        gateway_group = gateways
        ```
        
    • Choosing Json:

      • Create /etc/aker and copy /usr/bin/aker/aker.ini in it and edit it like below :

        ```
        [General]
        log_level = INFO
        ssh_port = 22
        
        # Identity Provider to determine the list of available hosts
        # options shipped are IPA, Json. Default is IPA
        idp = Json
        hosts_file = /etc/aker/hosts.json
        
        # FreeIPA hostgroup name contatining Aker gateways
        # to be excluded from hosts presented to user
        gateway_group = gateways
        ```
        
        • Edit /etc/aker/hosts.json to add users and hosts, a sample hosts.json file is provided .

Contributing

Currently I work on the code in my free time, any assistance is highly appreciated. Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.

aker's People

Contributors

anazmy avatar faux-eccles avatar ccheline avatar eoledev avatar pewo avatar iranzo avatar sholan 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.