diff options
-rw-r--r-- | CMakeLists.txt | 7 | ||||
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | bastion/client.c | 2 | ||||
-rw-r--r-- | bastion/main.c | 2 | ||||
-rw-r--r-- | bastion/recording.c | 2 | ||||
-rw-r--r-- | bastion/recording.h | 2 | ||||
-rw-r--r-- | bastion/session.c | 2 | ||||
-rw-r--r-- | bastion/state.c | 2 | ||||
-rw-r--r-- | common/CMakeLists.txt | 1 | ||||
-rw-r--r-- | common/config.h.in | 21 | ||||
-rw-r--r-- | common/mysql.c | 2 | ||||
-rw-r--r-- | config.h | 21 |
12 files changed, 36 insertions, 34 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a61bd0d..c8b30ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ -cmake_minimum_required (VERSION 3.0) -project (bastion LANGUAGES C VERSION 0.1) +cmake_minimum_required(VERSION 3.0) +project(bastion LANGUAGES C VERSION 0.1.0) set(CMAKE_VERBOSE_MAKEFILE FALSE) set(CMAKE_BUILD_TYPE Release) @@ -14,6 +14,9 @@ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -ggdb -pg -fsanitize=address") option(LIBSSH_VERBOSE_OUTPUT "whether or not verbose output for libssh mode is activated" OFF) option(SESSION_RECORDING "whether or not recording feature based on lib termrec is activated" ON) +configure_file("common/config.h.in" "common/config.h") +include_directories("${CMAKE_CURRENT_BINARY_DIR}") + add_subdirectory(bastion) add_subdirectory(common) add_subdirectory(external) @@ -25,7 +25,7 @@ This project has only one hard dependency : The following are optional dependencies : - the libtty from https://github.com/kilobyte/termrec which allows session recording. -- compression libraries like libbz2, liblzma, libz allows to compress on the fly session records. +- compression libraries like libbz2, liblzma, libz allow on the fly compression of session records. - libmysql for now because it hosts the runtime config ## Manual Installation @@ -45,9 +45,9 @@ You can customise the build with the following cmake flags : - `CMAKE_INSTALL_PREFIX` : path, defaults to `/usr/local` - `SESSION_RECORDING` : ON|OFF, defaults to ON -For exemple this disables session recording for a debug build and install it under /usr : +For exemple this disables session recording for a debug build and installs the bastion for your current user : -`cmake .. -DCMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=/usr -DSESSION_RECORDING=OFF` +`cmake .. -DCMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=$HOME/.local -DSESSION_RECORDING=OFF` ## Usage diff --git a/bastion/client.c b/bastion/client.c index bf20b2c..fc11bb6 100644 --- a/bastion/client.c +++ b/bastion/client.c @@ -2,7 +2,7 @@ #include <stdio.h> #include <stdlib.h> -#include "../config.h" +#include "common/config.h" #include "common/mysql.h" #include "client.h" #ifdef SESSION_RECORDING diff --git a/bastion/main.c b/bastion/main.c index d2cde12..3ce7d5e 100644 --- a/bastion/main.c +++ b/bastion/main.c @@ -4,7 +4,7 @@ #include <stdlib.h> #include <sys/wait.h> -#include "../config.h" +#include "common/config.h" #include "common/mysql.h" #include "session.h" diff --git a/bastion/recording.c b/bastion/recording.c index 7692ff1..8a8c570 100644 --- a/bastion/recording.c +++ b/bastion/recording.c @@ -10,7 +10,7 @@ #include <time.h> #include <ttyrec.h> -#include "../config.h" +#include "common/config.h" #include "recording.h" #include "state.h" diff --git a/bastion/recording.h b/bastion/recording.h index fec76af..5444865 100644 --- a/bastion/recording.h +++ b/bastion/recording.h @@ -1,5 +1,3 @@ -#include "../config.h" - #ifdef SESSION_RECORDING #ifndef RECORDING_H_ #define RECORDING_H_ diff --git a/bastion/session.c b/bastion/session.c index fdca980..5e9f5b8 100644 --- a/bastion/session.c +++ b/bastion/session.c @@ -8,7 +8,7 @@ #include <string.h> #include <sys/wait.h> -#include "../config.h" +#include "common/config.h" #include "common/mysql.h" #include "proxy.h" #include "session.h" diff --git a/bastion/state.c b/bastion/state.c index dd9cbf3..6784c0a 100644 --- a/bastion/state.c +++ b/bastion/state.c @@ -2,7 +2,7 @@ #include <stdio.h> #include <string.h> -#include "../config.h" +#include "common/config.h" #include "state.h" struct state { diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 8636758..2de8714 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -1,3 +1,4 @@ +include_directories("${CMAKE_CURRENT_BINARY_DIR}") file(GLOB_RECURSE SOURCES *.c) ADD_LIBRARY(common STATIC ${SOURCES}) diff --git a/common/config.h.in b/common/config.h.in new file mode 100644 index 0000000..1263c7c --- /dev/null +++ b/common/config.h.in @@ -0,0 +1,21 @@ +#ifndef COMMON_CONFIG_H_ +#define COMMON_CONFIG_H_ + +#define LISTEN_PORT 2222 +#define MAX_HOSTNAME_LENGTH 64 +#define MAX_USERNAME_LENGTH 64 + +#define DSAKEY_PATH "@CMAKE_INSTALL_PREFIX@/etc/ssh_host_dsa_key" +#define RSAKEY_PATH "@CMAKE_INSTALL_PREFIX@/etc/ssh_host_rsa_key" +#define ECDSAKEY_PATH "@CMAKE_INSTALL_PREFIX@/etc/ssh_host_ecdsa_key" + +#define MYSQL_HOST "localhost" +#define MYSQL_USER "sshportal" +#define MYSQL_PASS "graou" +#define MYSQL_DB "sshportal" + +#define LOG_FILENAME_FORMAT "@CMAKE_INSTALL_PREFIX@/var/log/$d/$h/$u/$i.gz" // $d : date in iso format, $h : hostname, $u : username : $i session id +#define LOG_FILENAME_MAX_LEN 255 +#define LOG_DIRECTORY_MODE S_IRUSR | S_IWUSR | S_IXUSR + +#endif diff --git a/common/mysql.c b/common/mysql.c index 0931116..83a7930 100644 --- a/common/mysql.c +++ b/common/mysql.c @@ -4,7 +4,7 @@ #include <stdio.h> #include <string.h> -#include "../config.h" +#include "config.h" #include "mysql.h" static MYSQL *db; diff --git a/config.h b/config.h deleted file mode 100644 index 6f773cb..0000000 --- a/config.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef CONFIG_H_ -#define CONFIG_H_ - -#define LISTEN_PORT 2222 -#define MAX_HOSTNAME_LENGTH 64 -#define MAX_USERNAME_LENGTH 64 - -#define DSAKEY_PATH "./ssh_host_dsa_key" -#define RSAKEY_PATH "./ssh_host_rsa_key" -#define ECDSAKEY_PATH "./ssh_host_ecdsa_key" - -#define MYSQL_HOST "localhost" -#define MYSQL_USER "sshportal" -#define MYSQL_PASS "graou" -#define MYSQL_DB "sshportal" - -#define LOG_FILENAME_FORMAT "./log/$d/$h/$u/$i.gz" // $d : date in iso format, $h : hostname, $u : username : $i session id -#define LOG_FILENAME_MAX_LEN 255 -#define LOG_DIRECTORY_MODE S_IRUSR | S_IWUSR | S_IXUSR - -#endif |