Я ' 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}"
Теперь работает хорошо. Спасибо за помощь!
Я не уверен на 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}"