Tacacs + с двухфакторной аутентификацией Google PAM?

Я ' m работает над сервером tacacs + для моей сети университетского городка, и мне было интересно, как я могу настроить сервер tacacs + для связи с PAM, использующим двухфакторную аутентификацию Google. Я немного погуглил, нашел полезную информацию, но не нашел четкой «дорожной карты», и многие шаги в лучшем случае кажутся нечеткими. У меня сейчас работает тестовый стенд Ubuntu tacacs + без настроенных коммутаторов или маршрутизаторов.

Кто-нибудь делал что-то подобное? Я нашел здесь относительно хорошее руководство в цепочке электронной почты redhat: и многие шаги в лучшем случае кажутся нечеткими. У меня сейчас работает тестовый стенд Ubuntu tacacs + без настроенных коммутаторов или маршрутизаторов.

Кто-нибудь делал что-то подобное? Я нашел здесь относительно хорошее руководство в цепочке электронной почты redhat: и многие шаги в лучшем случае кажутся нечеткими. У меня сейчас работает тестовый стенд Ubuntu tacacs + без настроенных коммутаторов или маршрутизаторов.

Кто-нибудь делал что-то подобное? Я нашел здесь относительно хорошее руководство в цепочке электронной почты redhat: https://www.redhat.com/archives/pam-list/2014-March/msg00008.html

Я не знаю, куда идти дальше и как работает эта система. Есть ли какие-нибудь примеры, которым я могу следовать, или есть какие-нибудь предложения? Мне кажется, что сейчас я нахожусь в режиме проб и ошибок.

РЕДАКТИРОВАТЬ: В частности, прямо сейчас я смотрю на примеры файлов конфигурации PAM в /etc/pam.d/(tac_plus? Как бы это ни называлось) и я не уверен, что именно туда нужно. Это что-то вроде аутентификатора Google или tacacs +? Мой пример выглядит примерно как код, опубликованный ниже, но я не уверен, что здесь происходит:

auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass 
use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in 
crond quiet use_uid
session     required      pam_unix.so
session     required      pam_mkhomedir.so skel=/etc/skel/ umask=0077
session     optional      pam_ldap.so

Также есть конфигурация для tacacs, которая выглядит очень простой, но, как и все остальное, я никогда ее раньше не видел, поэтому я ' м не слишком уверен. Выглядит это так: СОЗДАТЬ БАЗУ ДАННЫХ \ `$ {mysql_local_database} \` / *! 40100 COLLATE \ 'utf8_hungarian_ci \' * /; используйте \ `$ {...

Использование UBUNTU 16.

Запрос MySQL не выполняется из bash, но работает из клиента MySQL:

    query=$(cat << EOF
CREATE DATABASE \`${mysql_local_database}\` /*!40100 COLLATE \'utf8_hungarian_ci\' */; use \`${mysql_local_database}\`; GRANT SELECT, EXECUTE, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, UPDATE, LOCK TABLES  ON \`${mysql_local_database}\`.* TO 'myuser'@'%'; FLUSH PRIVILEGES;
EOF
)
echo $query
mysql -u ${mysql_local_user} -p${mysql_local_pass} -h localhost "${query}"

Я получаю следующую ошибку после выполнения сценария bash:

    CREATE DATABASE `mydb` /*!40100 COLLATE 'utf8_hungarian_ci' */; use `mydb`; GRANT SELECT, EXECUTE, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, UPDATE, LOCK TABLES ON `mydb`.* TO 'user'@'%'; FLUSH PRIVILEGES;
ERROR 1102 (42000): Incorrect database name 'CREATE DATABASE `mydb` /*!40100 COLLATE 'utf8_hungarian_ci' */'

Если я выполняю напечатанный запрос MySQL в клиенте MySQL (HeidiSQL), он работает нормально:

CREATE DATABASE `mydb` /*!40100 COLLATE 'utf8_hungarian_ci' */; use `mydb`; GRANT SELECT, EXECUTE, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, UPDATE, LOCK TABLES ON `mydb`.* TO 'myuser'@'%'; FLUSH PRIVILEGES;

/* Affected rows: 1  Found rows: 0  Warnings: 0  Duration for 4 queries: 0,000 sec. */

Посоветуйте, пожалуйста, как это исправить.

РЕШЕНИЕ

Как указал @yoonix, да, параметр -e отсутствовал.

mysql -u ${mysql_local_user} -p${mysql_local_pass} -h localhost - e "${query}"

Теперь работает хорошо. Спасибо за помощь!

0
задан 31 March 2017 в 15:20
1 ответ

Я не уверен на 100% насчет части collate utf8_hungarian_ci, но мне удалось чтобы заставить его создать базу данных без ошибок, опуская обратную косую черту и галочки, изменив строку создания базы данных на:

CREATE DATABASE $mysql_local_database  /*!40100 COLLATE utf8_hungarian_ci */ ; use $mysql_local_database ; GRANT SELECT, EXECUTE, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, INDEX, INSERT, REFERENCES, UPDATE, LOCK TABLES ON $mysql_local_database.* TO 'myuser'@'%'; FLUSH PRIVILEGES;

, а также добавив -se здесь:

mysql -u ${mysql_local_user} -p${mysql_local_pass} -h localhost -se "${query}"
1
ответ дан 4 December 2019 в 16:18

Теги

Похожие вопросы