Redmine - рд╡рди рдЯрд╛рдЗрдо рдкрд╛рд╕рд╡рд░реНрдб рдСрдереЗрдВрдЯрд┐рдХреЗрд╢рди (OTP)

Google рдкреНрд░рдорд╛рдгрдХ
рдпрджрд┐ рдЖрдк Redmine рдХреЗ рдПрдХ рд╕рдХреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рдЬрд┐рд╕рдХреА рд╕рд╛рдордЧреНрд░реА рд╕рдВрднрд╡рддрдГ рдЧреЛрдкрдиреАрдп рд╣реИ, рддреЛ рдЖрдкрдиреЗ рд╕рдВрднрд╡рддрдГ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдерд╛ред

рдпрд╣ рд▓реЗрдЦ Google рдкреНрд░рдорд╛рдгрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ-рд╕рдордп рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб (OTP) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ Redmine рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рддрд╛ рд╣реИред

рд▓реЗрдЦ рдореЗрдВ Google рдкреНрд░рдорд╛рдгрдХ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА CentOS 6 рдХреЗ рд▓рд┐рдП Redmine 2.2 рдХреЗ рд▓рд┐рдП redmine_pam_auth рдкреНрд▓рдЧрдЗрди рднреА рд╣реИред




Google рдкреНрд░рдорд╛рдгрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ


рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдЙрдердмреНрд░рд┐рдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ :
rpm -Uhv http://rpms.southbridge.ru/southbridge-rhel6-stable.rpm 


рдпрд╛ рд╣рдо рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд┐рдирд╛, рд╕реАрдзреЗ рдЖрд░рдкреАрдПрдо рдбрд╛рд▓рддреЗ рд╣реИрдВ:
 rpm -Uhv http://rpms.southbridge.ru/rhel6/stable/x86_64/google-authenticator-1.0-0.gita096a62.el6.x86_64.rpm 


Pam-mysql рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рдЖрдк рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ "рдЫрд╛рдпрд╛" рд╕рдореВрд╣ рдореЗрдВ "Redmine" рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ Redmine рдХреЛ рд░реВрдЯ рдХреЗ рддрд╣рдд рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рд░реЗрд▓ рдореЗрдВ рд╣рд╛рд▓ рдХреЗ рдХрд╛рд░рдирд╛рдореЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рдПрдХ рдмреБрд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

 yum install pam-mysql 


Google рдкреНрд░рдорд╛рдгрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ pam config рдмрдирд╛рдПрдВ


рдлрд╝рд╛рдЗрд▓ /etc/pam.d/rpam

 #%PAM-1.0 account required pam_mysql.so user=<redmine_db_user> passwd=<redmine_db_password> host=<redmine_db_host> db=<redmine_dbname> table=users usercolumn=login passwdcolumn=login crypt=0 auth required pam_google_authenticator.so user=redmine secret=/opt/redmine/tmp/google-authenticator/${USER} auth required pam_env.so session required pam_unix.so 


Redmine рдХреЗ рд▓рд┐рдП pam рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


Github рд╕реЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рдХреНрд▓реЛрди рдХрд░реЗрдВ
 cd /opt/redmine git clone git://github.com/cardil/redmine-pam-auth.git plugins/redmine_pam_auth 


рдкреИрдо-рдбреЗрд╡реЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдЬрд┐рд╕реЗ rpam-ruby19 рдордгрд┐ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА
 yum install pam-devel 


рд╣рдо рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП redmine-pam-Cort рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд░рддреНрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП - рд╢рд╛рдпрдж - рдЖрдкрдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ rmagick, postgresql рдпрд╛ рдХреБрдЫ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рдпрджрд┐ рдЖрдк рдЕрднреА рддрдХ рдмрдВрдбрд▓рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдореИрдВ рдЗрд╕рдХреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд░рддреНрдиреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
 cd /opt/redmine bundle install --without development test sqlite postgresql rmagick --path vendor/bundle 


рд╣рдо рдкреНрд▓рдЧрдЗрди рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ
 bundle exec rake redmine:plugins:migrate RAILS_ENV="production" 


Google рдкреНрд░рдорд╛рдгрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдмрдирд╛рдирд╛


Google рдкреНрд░рдорд╛рдгрдХ рдХреБрдВрдЬреА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ
 mkdir /opt/redmine/tmp/google-authenticator 


рд╣рдо рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ (рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреАрдЬрд╝ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг "--help" рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдЖрдк рдЕрдкрдиреЗ рд╡рд┐рд╡реЗрдХ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдкреИрд░рд╛рдореАрдЯрд░ "--label=username@example.net" рдПрдХ рд▓реЗрдмрд▓ рд╣реИ рдЬреЛ Google рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрдкрдХреЗ рдЦрд╛рддреЗ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдкреИрд░рд╛рдореАрдЯрд░ "--secret = / opt / redmine / tmp / google-Authator / username" рдХреАрд╕реНрдЯреЙрд░ рд╣реИ, рдЬрд╣рд╛рдВ рд░реЗрдбрдореАрди рдореЗрдВ рдпреВрдЬрд░рдиреЗрдо рдпреВрдЬрд░рдиреЗрдо рд╣реИред
 google-authenticator --time-based --disallow-reuse --qr-mode=UTF8 --force --no-rate-limit --window-size=17 --label=username@example.net --secret=/opt/redmine/tmp/google-authenticator/username 


рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ
 chown -R redmine:redmine /opt/redmine/tmp/google-authenticator chmod 0600 /opt/redmine/tmp/google-authenticator/username 


рдореБрдлреНрдд Google рдкреНрд░рдорд╛рдгрдХ рдРрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ


Google рдкреНрд░рдорд╛рдгрдХ рдореЛрдмрд╛рдЗрд▓ рдРрдк iPhone, Android рдФрд░ BlackBerry рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред

Google рд╕рд╣рд╛рдпрддрд╛ рдкреГрд╖реНрда рдкрд░ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдкрдврд╝реЗрдВред

рдореБрдЦреНрдп рдкреАрдврд╝реА рдХреЗ рджреМрд░рд╛рди, Google-рдкреНрд░рдорд╛рдгрдХ https://www.google.com/chart?chs=200x200&chld=Mpg0&cht=qr&chl=otpauth тЧПtotp/username@example.net/3Fsecret%3DDOYZKVDCN7GUGJH3 - рдЬреИрд╕реЗ рд▓рд┐рдВрдХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣реИ рдФрд░ Google рдкреНрд░рдорд╛рдгрдХ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреНрдпреВрдЖрд░ рдХреЛрдб рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИред

Redmine рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдореЗрдВ Redmine рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдореЛрдб "рдкрд╛рдо" рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ

рд╣реЛ рдЧрдпрд╛!


рдЕрдм, рдЕрдзрд┐рдХреГрдд рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдкрд░ Google рдкреНрд░рдорд╛рдгрдХ рдЪрд▓рд╛рдПрдБ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗрдВред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдореИрдВ рд╡рд┐рдХреА рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ - рдпрд╣ рд╡рд┐рдХреА рд╕реЗ рдбреЗрдЯрд╛ рд░рд┐рд╕рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдпрджрд┐ Redmine рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрднреА рднреА рд╣реИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд╣рдорд╛рд░реЗ рд╣рд╛рдмрд░рд╛ рдмреНрд▓реЙрдЧ рдкрд░ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

Source: https://habr.com/ru/post/In168063/


All Articles