Skip to content

Commit

Permalink
Add minimum username length requirement and ability to provide a user…
Browse files Browse the repository at this point in the history
…name blacklist.
  • Loading branch information
orware committed Mar 16, 2021
1 parent b3c0459 commit f6323e8
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 1 deletion.
93 changes: 93 additions & 0 deletions configuration.example.php
Original file line number Diff line number Diff line change
Expand Up @@ -170,4 +170,97 @@
'denied_ip' => [],
],
'public_keys' => [],
];

// Add a minimum length for usernames (set to 0 to ignore length):
$username_minimum_length = 4;

// This list of usernames will simply be ignored completed (no LDAP authentication will occur):
$username_blacklist = [
'admin',
'apagar',
'auto',
'bananapi',
'bdadmin',
'billing',
'bin',
'crm',
'csgoserver',
'deploy',
'eas',
'escaner',
'factorio',
'fedena',
'fernando',
'ftp',
'ftp_id',
'ftpserver',
'ftpuser',
'furukawa',
'gc',
'git',
'gitblit',
'gmod',
'guest',
'hxeadm',
'ircd',
'kafka',
'kk',
'koha',
'kms',
'mariadb',
'minecraft',
'mysql',
'node',
'odoo',
'oozie',
'openvpn',
'operator',
'oracle',
'pcguest',
'pi',
'platform',
'plcmspip',
'postgres',
'prueba',
'prueba1',
'rpm',
'root',
'rs',
'sample',
'secretaria',
'shutdown',
'sinus',
'squadserver',
'steam',
'student',
'student10',
'support',
'sysadmin',
'teacher',
'teacher1',
'teamspeak',
'temp',
'test',
'test1',
'test001',
'teste',
'testftp',
'trinity',
'ts3',
'ts3bot',
'ubuntu',
'user',
'usuario',
'uploader',
'vbox',
'vboxuser',
'voip',
'vyos',
'web5',
'webftp',
'www',
'www-data',
'zabbix',
'zte',
];
24 changes: 23 additions & 1 deletion functions.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,16 @@ function authenticateUser() {
if (!empty($data)) {

try {
global $connections, $domains_to_strip_automatically, $convert_username_to_lowercase;
global $connections, $domains_to_strip_automatically, $convert_username_to_lowercase, $username_minimum_length, $username_blacklist;

// Convert username to lowercase if setting is enabled:
if (isset($convert_username_to_lowercase) && $convert_username_to_lowercase === true) {
$beforeUsername = $data['username'];
$data['username'] = strtolower($data['username']);

if ($beforeUsername !== $data['username']) {
logMessage('Converted ' . $beforeUsername . ' to ' . $data['username']);
}
}

// Strip specific organization email domains if provided:
Expand All @@ -46,6 +52,22 @@ function authenticateUser() {
}
}

// Prevent short usernames from being processed:
if (isset($username_minimum_length) && $username_minimum_length > 0) {
if (strlen($data['username']) < $username_minimum_length) {
logMessage('Denying ' . $data['username'] . ' since length is less than minimum allowed (' . $username_minimum_length . ')');
denyRequest();
}
}

// Prevent blacklisted usernames from being processed:
if (isset($username_blacklist) && !empty($username_blacklist)) {
if (array_search($data['username'], $username_blacklist) !== false) {
logMessage('Denying ' . $data['username'] . ' since it is in the username blacklist');
denyRequest();
}
}

foreach($connections as $connectionName => $connection) {

logMessage('Before connection attempt to ' . $connectionName);
Expand Down

0 comments on commit f6323e8

Please sign in to comment.