เจเฉ เจนเฉเจตเฉเจเจพ เจเฉเจเจฐ เจฆเฉ-เจเจพเจฐเจ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจฆเฉเจตเฉเจ เจซเจพเจเจฆเฉเจฎเฉฐเจฆ เจ เจคเฉ เจเฉเฉฐเจเจฆเจพเจฐ เจนเจจ, เจชเจฐ เจนเจพเจฐเจกเจตเฉเจ เจฐ เจเฉเจเจจเจพเจ เจฒเจ เจเฉเจ เจชเฉเจธเจพ เจจเจนเฉเจ เจนเฉ เจ เจคเฉ เจเจฎ เจคเฉเจฐ 'เจคเฉ เจเจน เจเฉฐเจเฉ เจฎเฉเจก เจตเจฟเฉฑเจ เจฐเจนเจฟเจฃ เจฆเฉ เจชเฉเจธเจผเจเจธเจผ เจเจฐเจฆเฉ เจนเจจเฅค
เจเจน เจนเฉฑเจฒ เจเฉเจ เจฌเจนเฉเจค เจ
เจธเจฒเฉ เจจเจนเฉเจ เจนเฉ, เจธเจเฉเจ เจเฉฐเจเจฐเจจเฉเฉฑเจ 'เจคเฉ เจฎเจฟเจฒเฉ เจตเฉฑเจ-เจตเฉฑเจ เจนเฉฑเจฒเจพเจ เจฆเจพ เจฎเจฟเจธเจผเจฐเจฃ เจนเฉเฅค
เจเจธ เจฒเจ เจฆเจฟเฉฑเจคเจพ
เจกเฉเจฎเฉเจจ เจเจเจเจฟเจต เจกเจพเจเจฐเฉเจเจเจฐเฉ.
VPN เจฐเจพเจนเฉเจ เจเฉฐเจฎ เจเจฐเจจ เจตเจพเจฒเฉ เจกเฉเจฎเฉเจจ เจเจชเจญเฉเจเจคเจพ, เจเจฟเจตเฉเจ เจเจฟ เจ เฉฑเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเฅค
VPN เจเฉเจเจตเฉ เจตเจเฉเจ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ เจคเจเจฆเฉเจฐ.
เจธเฉเจฐเฉฑเจเจฟเจ เจจเฉเจคเฉ เจฆเฉเจเจฐเจพ VPN เจเจฒเจพเจเฉฐเจ เจฒเจ เจชเจพเจธเจตเจฐเจก เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจจ เจฆเฉ เจฎเจจเจพเจนเฉ เจนเฉเฅค
เจฐเจพเจเจจเฉเจคเฉ Fortinet เจคเฉเจนเจพเจกเฉ เจเจชเจฃเฉ เจเฉเจเจจเจพเจ เจฆเฉ เจธเจฌเฉฐเจง เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจเจผเจฒเฉเจฌ เจคเฉเจ เจเฉฑเจ เจจเจนเฉเจ เจเจนเจฟ เจธเจเจฆเฉ - เจเฉฑเจฅเฉ 10 เจคเฉเจ เจตเฉฑเจง เจฎเฉเจซเจผเจค เจเฉเจเจจ เจนเจจ, เจฌเจพเจเฉ - เจเฉฑเจ เจฌเจนเฉเจค เจนเฉ เจเฉเจฐ-เจเฉเจธเจผเจฐ เจเฉเจฎเจค 'เจคเฉเฅค เจฎเฉเจ RSASecureID, Duo เจ เจคเฉ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเฉ เจตเจฟเจเจพเจฐ เจจเจนเฉเจ เจเฉเจคเฉ, เจเจฟเจเจเจเจฟ เจฎเฉเจ เจเจชเจจ เจธเฉเจฐเจธ เจเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจเฅค
เจฒเฉเฉเจพเจ: เจฎเฉเจเจผเจฌเจพเจจ * เจจเจฟเฉฑเจ เจธเจฅเจพเจชเจฟเจค เจฆเฉ เจจเจพเจฒ freeradius, เจเจธเจเจธเจกเฉ - เจกเฉเจฎเฉเจจ เจตเจฟเฉฑเจ เจฆเจพเจเจฒ เจนเฉเจ, เจกเฉเจฎเฉเจจ เจเจชเจญเฉเจเจคเจพ เจเจธ 'เจคเฉ เจเจธเจพเจจเฉ เจจเจพเจฒ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจเจฐ เจธเจเจฆเฉ เจนเจจ.
เจตเจพเจงเฉ เจชเฉเจเฉเจ: เจธเจผเฉเจฒเฉเจจเจพ เจฌเจพเจเจธ, เจ
เฉฐเจเฉเจฐ, freeradius-ldap, เจซเฉเจเจ rebel.tlf เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจคเฉฑเจ
เจฎเฉเจฐเฉ เจเจฆเจพเจนเจฐเจฃ เจตเจฟเฉฑเจ - CentOS 7.8.
เจเฉฐเจฎ เจฆเจพ เจคเจฐเจ เจนเฉเจ เจฒเจฟเจเฉ เจ เจจเฉเจธเจพเจฐ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ: VPN เจจเจพเจฒ เจเจจเฉเจเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ, เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจเฉฑเจ เจชเจพเจธเจตเจฐเจก เจฆเฉ เจฌเจเจพเจ เจเฉฑเจ เจกเฉเจฎเฉเจจ เจฒเฉเจเจเจจ เจ เจคเฉ OTP เจฆเจฐเจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจธเฉเจตเจพเจตเจพเจ เจฆเจพ เจธเฉเฉฑเจเจ เฉฑเจช
ะ /etc/raddb/radiusd.conf เจธเจฟเจฐเจซเจผ เจเจชเจญเฉเจเจคเจพ เจ เจคเฉ เจธเจฎเฉเจน เจเจฟเจธ เจฆเฉ เจคเจฐเจซเจผเฉเจ เจธเจผเฉเจฐเฉ เจนเฉเฉฐเจฆเจพ เจนเฉ freeradius, เจธเฉเจตเจพ เจฆเฉ เจฌเจพเจ เจฆ radiusd เจธเจพเจฐเฉเจเจ เจธเจฌ-เจกเจพเจเจฐเฉเจเจเจฐเฉเจเจ เจตเจฟเฉฑเจ เจซเจพเจเจฒเจพเจ เจจเฉเฉฐ เจชเฉเฉเจนเจจ เจฆเฉ เจฏเฉเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ / เจเจฐ /.
user = root
group = root
เจธเฉเจเจฟเฉฐเจเจพเจ เจตเจฟเฉฑเจ เจธเจฎเฉเจนเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจนเฉเจฃ เจฒเจ เจคเจเจฆเฉเจฐ, เจชเฉเจฐเจธเจพเจฐเจฟเจค เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจตเจฟเจเจฐเฉเจคเจพ เจตเจฟเจธเจผเฉเจธเจผ เจเฉเจฃ. เจเจน เจเจฐเจจ เจฒเจ, เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ raddb/policy.d เจฎเฉเจ เจนเฉเจ เจฒเจฟเจเฉ เจธเจฎเฉฑเจเจฐเฉ เจจเจพเจฒ เจเฉฑเจ เจซเจพเจเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเจพเจ:
group_authorization {
if (&LDAP-Group[*] == "CN=vpn_admins,OU=vpn-groups,DC=domain,DC=local") {
update reply {
&Fortinet-Group-Name = "vpn_admins" }
update control {
&Auth-Type := PAM
&Reply-Message := "Welcome Admin"
}
}
else {
update reply {
&Reply-Message := "Not authorized for vpn"
}
reject
}
}
เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจฆเฉ เจฌเจพเจ เจฆ freeradius-ldap เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ raddb/mods-เจเจชเจฒเจฌเจง เจซเจพเจเจฒ เจฌเจฃเจพเจ เจเจ เจนเฉ ldap.
เจกเจพเจเจฐเฉเจเจเจฐเฉ เจฒเจ เจเฉฑเจ เจชเฉเจฐเจคเฉเจ เจฒเจฟเฉฐเจ เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ raddb/mods-เจธเจฎเจฐเฉฑเจฅ.
ln -s /etc/raddb/mods-available/ldap /etc/raddb/mods-enabled/ldap
เจฎเฉเจ เจเจธเจฆเฉ เจธเจฎเฉฑเจเจฐเฉ เจจเฉเฉฐ เจเจธ เจซเจพเจฐเจฎ เจตเจฟเฉฑเจ เจฒเจฟเจเจเจเจฆเจพ เจนเจพเจ:
ldap {
server = 'domain.local'
identity = 'CN=freerad_user,OU=users,DC=domain,DC=local'
password = "SupeSecretP@ssword"
base_dn = 'dc=domain,dc=local'
sasl {
}
user {
base_dn = "${..base_dn}"
filter = "(sAMAccountname=%{%{Stripped-User-Name}:-%{User-Name}})"
sasl {
}
scope = 'sub'
}
group {
base_dn = "${..base_dn}"
filter = '(objectClass=Group)'
scope = 'sub'
name_attribute = cn
membership_filter = "(|(member=%{control:Ldap-UserDn})(memberUid=%{%{Stripped-User-Name}:-%{User-Name}}))"
membership_attribute = 'memberOf'
}
}
เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ raddb/sites-enabled/default ะธ raddb/sites-enabled/inner-tunnel เจญเจพเจ เจตเจฟเฉฑเจ เจ
เจงเจฟเจเจพเจฐเจค เจฎเฉเจ เจตเจฐเจคเฉ เจเจพเจฃ เจตเจพเจฒเฉ เจจเฉเจคเฉ เจฆเจพ เจจเจพเจฎ เจเฉเฉเจฆเจพ เจนเจพเจ - group_authorization. เจเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจฃ เจจเฉเจเจคเจพ - เจจเฉเจคเฉ เจฆเจพ เจจเจพเจฎ เจกเจพเจเจฐเฉเจเจเจฐเฉ เจตเจฟเฉฑเจ เจซเจพเจเจฒ เจฆเฉ เจจเจพเจฎ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉเจ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจชเจพเจฒเจฟเจธเฉ.เจกเฉ, เจชเจฐ เจเจฐเจฒเฉ เจฌเจฐเฉเจธ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจซเจพเจเจฒ เจฆเฉ เจ
เฉฐเจฆเจฐ เจเฉฑเจ เจจเจฟเจฐเจฆเฉเจธเจผ เจฆเฉเจเจฐเจพเฅค
เจญเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจเจนเฉ เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฒเจพเจเจจ เจจเฉเฉฐ เจ
เจจเจเจฎเฉเจเจ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ เจชเฉเจฎ.
เจซเจพเจเจฒ เจตเจฟเฉฑเจ clients.conf เจเจน เจฎเจพเจชเจฆเฉฐเจก เจฒเจฟเจเฉ เจเจฟเจธ เจจเจพเจฒ เจเจน เจเฉเฉ เจเจพเจตเฉเจเจพ เจคเจเจฆเฉเจฐ:
client fortigate {
ipaddr = 192.168.1.200
secret = testing123
require_message_authenticator = no
nas_type = other
}
เจฎเฉเจกเฉuleเจฒ เจธเฉฐเจฐเจเจจเจพ pam.d/radiusd:
#%PAM-1.0
auth sufficient pam_google_authenticator.so
auth include password-auth
account required pam_nologin.so
account include password-auth
password include password-auth
session include password-auth
เจชเฉเจฐเจต-เจจเจฟเจฐเจงเจพเจฐเจค เจฌเฉฐเจกเจฒ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจตเจฟเจเจฒเจช freeradius ั เจเฉเจเจฒ เจชเฉเจฐเจฎเจพเจฃเจเจฐเจคเจพ เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐ เจฆเจพเจเจฒ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ: เจเจชเจญเฉเจเจคเจพ เจจเจพเจฎ/เจชเจพเจธเจตเจฐเจก+OTP.
เจกเจฟเจซเจพเจฒเจ เจฌเฉฐเจกเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจฎเจพเจฎเจฒเฉ เจตเจฟเฉฑเจ, เจธเจฟเจฐ 'เจคเฉ เจกเจฟเฉฑเจเจฃ เจตเจพเจฒเฉ เจธเจฐเจพเจชเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเจเฉ. freeradius ั Google Authenticator, เจฎเฉเจกเฉเจเจฒ เจธเฉฐเจฐเจเจจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเจพ เจซเฉเจธเจฒเจพ เจเฉเจคเจพ เจเจฟเจ เจธเฉ เจชเฉเจฎ เจคเจพเจ เจเฉ เจธเจฟเจฐเจซ เจเฉเจเจจ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจพ เจธเจเฉ Google Authenticator.
เจเจฆเฉเจ เจเฉเจ เจเจชเจญเฉเจเจคเจพ เจเจจเฉเจเจ เจเจฐเจฆเจพ เจนเฉ, เจคเจพเจ เจเจน เจตเจพเจชเจฐเจฆเจพ เจนเฉ:
- Freeradius เจเจพเจเจ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเฉ เจเจชเจญเฉเจเจคเจพ เจกเฉเจฎเฉเจจ เจตเจฟเฉฑเจ เจนเฉ เจ เจคเฉ เจเฉฑเจ เจเจพเจธ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจนเฉ เจ เจคเฉ, เจเฉเจเจฐ เจธเจซเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉ, เจคเจพเจ OTP เจเฉเจเจจ เจฆเฉ เจเจพเจเจ เจเจฐเจฆเจพ เจนเฉเฅค
เจธเจญ เจเฉเจ เจเจธ เจชเจฒ เจคเฉฑเจ เจเจพเจซเจผเฉ เจตเจงเฉเจ เจฒเฉฑเจ เจฐเจฟเจนเจพ เจธเฉ เจเจฆเฉเจ เจฎเฉเจ เจธเฉเจเจฟเจ เจเจฟ "เจฎเฉเจ 300+ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ OTP เจเจฟเจตเฉเจ เจฐเจเจฟเจธเจเจฐ เจเจฐ เจธเจเจฆเจพ เจนเจพเจ?"
เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจธเจฐเจตเจฐ เจจเจพเจฒ เจฒเจพเจเจเจจ เจเจฐเจจเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ freeradius เจ เจคเฉ เจเจชเจฃเฉ เจเจพเจคเฉ เจฆเฉ เจนเฉเจ เจพเจ เจคเฉเจ เจ เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเจฒเจพเจ เจเฉเจเจฒ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจคเจพ, เจเฉ เจเจชเจญเฉเจเจคเจพ เจฒเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ เจเฉฑเจ QR เจเฉเจก เจคเจฟเจเจฐ เจเจฐเฉเจเจพเฅค เจเจน เจเจน เจฅเจพเจ เจนเฉ เจเจฟเฉฑเจฅเฉ เจฎเจฆเจฆ เจเจเจเจฆเฉ เจนเฉเฅค เจธเจผเฉเจฒเฉเจจเจพ เจฌเจพเจเจธ เจฆเฉ เจจเจพเจฒ เจธเฉเจฎเฉเจฒ เจตเจฟเฉฑเจ .bash_profile.
[root@freeradius ~]# yum install -y shellinabox
เจกเฉเจฎเจจ เจธเฉฐเจฐเจเจจเจพ เจซเจพเจเจฒ 'เจคเฉ เจธเจฅเจฟเจค เจนเฉ /etc/sysconfig/shellinabox.
เจฎเฉเจ เจเฉฑเจฅเฉ เจชเฉเจฐเจ 443 เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจเจฐเจฆเจพ เจนเจพเจ เจ
เจคเฉ เจคเฉเจธเฉเจ เจเจชเจฃเจพ เจธเจฐเจเฉเจซเจฟเจเฉเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
[root@freeradius ~]#systemctl enable --now shellinaboxd
เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ เจธเจฟเจฐเจซ เจฒเจฟเฉฐเจ เจฆเฉ เจชเจพเจฒเจฃเจพ เจเจฐเจจ, เจกเฉเจฎเฉเจจ เจเฉเจฐเฉเจกเจฟเจ เจฆเจพเจเจฒ เจเจฐเจจ เจ เจคเฉ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ เจเฉฑเจ QR เจเฉเจก เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉเฅค
เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจนเฉเจ เจฒเจฟเจเฉ เจ เจจเฉเจธเจพเจฐ เจนเฉ:
- เจเจชเจญเฉเจเจคเจพ เจเฉฑเจ เจฌเฉเจฐเจพเจเจเจผเจฐ เจฐเจพเจนเฉเจ เจฎเจธเจผเฉเจจ เจตเจฟเฉฑเจ เจฒเฉเจเจเจจ เจเจฐเจฆเจพ เจนเฉเฅค
- เจเฉ เจกเฉเจฎเฉเจจ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจ เจนเฉเฅค เจเฉเจเจฐ เจจเจนเฉเจ เจคเจพเจ เจเฉเจ เจเจพเจฐเจตเจพเจ เจจเจนเฉเจ เจเฉเจคเฉ เจเจพเจเจฆเฉเฅค
- เจเฉเจเจฐ เจเจชเจญเฉเจเจคเจพ เจเฉฑเจ เจกเฉเจฎเฉเจจ เจเจชเจญเฉเจเจคเจพ เจนเฉ, เจคเจพเจ เจชเฉเจฐเจธเจผเจพเจธเจ เจธเจฎเฉเจน เจตเจฟเฉฑเจ เจธเจฆเฉฑเจธเจคเจพ เจฆเฉ เจเจพเจเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ.
- เจเฉเจเจฐ เจเฉเจ เจชเฉเจฐเจธเจผเจพเจธเจ เจจเจนเฉเจ เจนเฉ, เจคเจพเจ เจเจน เจเจพเจเจ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเฉ Google Authenticator เจเฉเจเจซเจฟเจเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจเฉเจเจฐ เจจเจนเฉเจ, เจคเจพเจ เจเฉฑเจ QR เจเฉเจก เจ เจคเฉ เจเจชเจญเฉเจเจคเจพ เจฒเฉเจเจเจเจ เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
- เจเฉเจเจฐ เจเฉเจ เจชเฉเจฐเจธเจผเจพเจธเจ เจจเจนเฉเจ เจนเฉ เจ เจคเฉ Google เจชเฉเจฐเจฎเจพเจฃเจ เจธเฉฐเจฐเจเจฟเจค เจนเฉ, เจคเจพเจ เจธเจฟเจฐเจซเจผ เจฒเฉเจเจเจเจ เจเจฐเฉเฅค
- เจเฉเจเจฐ เจชเฉเจฐเจธเจผเจพเจธเจ, เจคเจพเจ Google Authenticator เจจเฉเฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฆเฉเจเฉเฅค เจเฉเจเจฐ เจเฉเจเจซเจฟเจเจฐ เจจเจนเฉเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจคเจพเจ เจเฉฑเจ QR เจเฉเจก เจคเจฟเจเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉเฅค
เจธเจพเจฐเจพ เจคเจฐเจ เจตเจฐเจค เจเฉ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ /etc/skel/.bash_profile.
cat /etc/skel/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
# Make several commands available from user shell
if [[ -z $(id $USER | grep "admins") || -z $(cat /etc/passwd | grep $USER) ]]
then
[[ ! -d $HOME/bin ]] && mkdir $HOME/bin
[[ ! -f $HOME/bin/id ]] && ln -s /usr/bin/id $HOME/bin/id
[[ ! -f $HOME/bin/google-auth ]] && ln -s /usr/bin/google-authenticator $HOME/bin/google-auth
[[ ! -f $HOME/bin/grep ]] && ln -s /usr/bin/grep $HOME/bin/grep
[[ ! -f $HOME/bin/figlet ]] && ln -s /usr/bin/figlet $HOME/bin/figlet
[[ ! -f $HOME/bin/rebel.tlf ]] && ln -s /usr/share/figlet/rebel.tlf $HOME/bin/rebel.tlf
[[ ! -f $HOME/bin/sleep ]] && ln -s /usr/bin/sleep $HOME/bin/sleep
# Set PATH env to <home user directory>/bin
PATH=$HOME/bin
export PATH
else
PATH=PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
fi
if [[ -n $(id $USER | grep "domain users") ]]
then
if [[ ! -e $HOME/.google_authenticator ]]
then
if [[ -n $(id $USER | grep "admins") ]]
then
figlet -t -f $HOME/bin/rebel.tlf "Welcome to Company GAuth setup portal"
sleep 1.5
echo "Please, run any of these software on your device, where you would like to setup OTP:
Google Autheticator:
AppStore - https://apps.apple.com/us/app/google-authenticator/id388497605
Play Market - https://play.google.com/stor/apps/details?id=com.google.android.apps.authenticator2&hl=en
FreeOTP:
AppStore - https://apps.apple.com/us/app/freeotp-authenticator/id872559395
Play Market - https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp&hl=en
And prepare to scan QR code.
"
sleep 5
google-auth -f -t -w 3 -r 3 -R 30 -d -e 1
echo "Congratulations, now you can use an OTP token from application as a password connecting to VPN."
else
figlet -t -f $HOME/bin/rebel.tlf "Welcome to Company GAuth setup portal"
sleep 1.5
echo "Please, run any of these software on your device, where you would like to setup OTP:
Google Autheticator:
AppStore - https://apps.apple.com/us/app/google-authenticator/id388497605
Play Market - https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en
FreeOTP:
AppStore - https://apps.apple.com/us/app/freeotp-authenticator/id872559395
Play Market - https://play.google.com/store/apps/details?id=org.fedorahosted.freeotp&hl=en
And prepare to scan QR code.
"
sleep 5
google-auth -f -t -w 3 -r 3 -R 30 -d -e 1
echo "Congratulations, now you can use an OTP token from application as a password to VPN."
logout
fi
else
echo "You have already setup a Google Authenticator"
if [[ -z $(id $USER | grep "admins") ]]
then
logout
fi
fi
else
echo "You don't need to set up a Google Authenticator"
fi
เจซเฉเจฐเจเฉเจเฉเจ เจธเฉเฉฑเจเจ เฉฑเจช:
- เจ เจธเฉเจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ เจตเจฟเจเจธ-เจธเจฐเจตเจฐ
- เจ เจธเฉเจ เจฒเฉเฉเฉเจเจฆเฉ เจธเจฎเฉเจน เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ, เจเฉ เจฒเฉเฉ เจนเฉเจตเฉ, เจธเจฎเฉเจนเจพเจ เจฆเฉเจเจฐเจพ เจชเจนเฉเฉฐเจ เจจเจฟเจฏเฉฐเจคเจฐเจฃ. เจเจฐเฉเฉฑเจช เจฆเจพ เจจเจพเจฎ เจเจพเจฒเฉ เจนเฉ เจคเจเจฆเฉเจฐ เจชเจพเจธ เจเฉเจคเฉ เจเจ เจธเจฎเฉเจน เจจเจพเจฒ เจฎเฉเจฒ เจเจพเจเจฆเจพ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจตเจฟเจเจฐเฉเจคเจพ เจตเจฟเจธเจผเฉเจธเจผ เจเฉเจฃ Fortinet-เจธเจฎเฉเจน-เจจเจพเจฎ.
- เจเจผเจฐเฉเจฐเฉ เจธเฉฐเจชเจพเจฆเจจ SSL เจจเฉเฉฐ-เจชเฉเจฐเจเจฒเฅค
- เจจเฉเจคเฉเจเจ เจตเจฟเฉฑเจ เจเจฐเฉเฉฑเจชเจพเจ เจจเฉเฉฐ เจธเจผเจพเจฎเจฒ เจเจฐเจจเจพเฅค
เจเจธ เจนเฉฑเจฒ เจฆเฉ เจซเจพเจเจฆเฉ:
- 'เจคเฉ OTP เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจเจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉ เจคเจเจฆเฉเจฐ เจเจชเจจ เจธเฉเจฐเจธ เจนเฉฑเจฒ.
- VPN เจฆเฉเจเจฐเจพ เจเจจเฉเจเจ เจเจฐเจจ เจตเฉเจฒเฉ เจเจชเจญเฉเจเจคเจพ เจเฉฑเจ เจกเฉเจฎเฉเจจ เจชเจพเจธเจตเจฐเจก เจฆเจพเจเจฒ เจจเจนเฉเจ เจเจฐเจฆเจพ เจนเฉ, เจเฉ เจเจฟ เจเฉเจจเฉเจเจธเจผเจจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจเฉเจ เจนเฉฑเจฆ เจคเฉฑเจ เจธเจฐเจฒ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค เจธเฉเจฐเฉฑเจเจฟเจ เจจเฉเจคเฉ เจฆเฉเจเจฐเจพ เจชเฉเจฐเจฆเจพเจจ เจเฉเจคเฉ เจชเจพเจธเจตเจฐเจก เจจเจพเจฒเฉเจ 6-เจ เฉฐเจ เจฆเจพ เจชเจพเจธเจตเจฐเจก เจฆเจพเจเจฒ เจเจฐเจจเจพ เจเจธเจพเจจ เจนเฉเฅค เจจเจคเฉเจเฉ เจตเจเฉเจ, เจตเจฟเจธเจผเฉ เจจเจพเจฒ เจเจฟเจเจเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉ: "เจฎเฉเจ VPN เจจเจพเจฒ เจเจจเฉเจเจ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ" เจเจเจฆเจพ เจนเฉเฅค
PS เจ เจธเฉเจ เจเจธ เจนเฉฑเจฒ เจจเฉเฉฐ เจเฉเจฃเฉเจคเฉ-เจเจตเจพเจฌ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจจเจพเจฒ เจฆเฉ-เจเจพเจฐเจ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจฒเจ เจ เฉฑเจชเจเจฐเฉเจก เจเจฐเจจ เจฆเฉ เจฏเฉเจเจจเจพ เจฌเจฃเจพ เจฐเจนเฉ เจนเจพเจเฅค
เจ เฉฑเจชเจกเฉเจ:
เจเจฟเจตเฉเจ เจเจฟ เจตเจพเจ
เจฆเจพ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจฎเฉเจ เจเจธเจจเฉเฉฐ เจเฉเจฃเฉเจคเฉ-เจเจตเจพเจฌ เจตเจฟเจเจฒเจช เจตเจฟเฉฑเจ เจเจตเฉเจ เจเฉเจคเจพ.
เจเจธ เจคเจฐเฉเจนเจพเจ:
เจซเจพเจเจฒ เจตเจฟเฉฑเจ /etc/raddb/sites-enabled/default เจ
เจจเฉเจญเจพเจ เจ
เจงเจฟเจเจพเจฐเจค เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเฉฑเจธเจฆเจพ เจนเฉ:
authorize {
filter_username
preprocess
auth_log
chap
mschap
suffix
eap {
ok = return
}
files
-sql
#-ldap
expiration
logintime
if (!State) {
if (&User-Password) {
# If !State and User-Password (PAP), then force LDAP:
update control {
Ldap-UserDN := "%{User-Name}"
Auth-Type := LDAP
}
}
else {
reject
}
}
else {
# If State, then proxy request:
group_authorization
}
pap
}
เจ เจจเฉเจญเจพเจ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจนเฉเจฃ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจธเจฆเจพ เจนเฉ:
authenticate {
Auth-Type PAP {
pap
}
Auth-Type CHAP {
chap
}
Auth-Type MS-CHAP {
mschap
}
mschap
digest
# Attempt authentication with a direct LDAP bind:
Auth-Type LDAP {
ldap
if (ok) {
update reply {
# Create a random State attribute:
State := "%{randstr:aaaaaaaaaaaaaaaa}"
Reply-Message := "Please enter OTP"
}
# Return Access-Challenge:
challenge
}
}
pam
eap
}
เจนเฉเจฃ เจเจชเจญเฉเจเจคเจพ เจคเจธเจฆเฉเจ เจจเจฟเจฎเจจเจฒเจฟเจเจค เจเจฒเจเฉเจฐเจฟเจฆเจฎ เจฆเฉ เจ เจจเฉเจธเจพเจฐ เจนเฉเฉฐเจฆเฉ เจนเฉ:
- เจเจชเจญเฉเจเจคเจพ VPN เจเจฒเจพเจเฉฐเจ เจตเจฟเฉฑเจ เจกเฉเจฎเฉเจจ เจเฉเจฐเฉเจกเจฟเจ เจฆเจพเจเจฒ เจเจฐเจฆเจพ เจนเฉเฅค
- Freeradius เจเจพเจคเฉ เจ เจคเฉ เจชเจพเจธเจตเจฐเจก เจฆเฉ เจตเฉเจงเจคเจพ เจฆเฉ เจเจพเจเจ เจเจฐเจฆเจพ เจนเฉ
- เจเฉเจเจฐ เจชเจพเจธเจตเจฐเจก เจธเจนเฉ เจนเฉ, เจคเจพเจ เจเฉเจเจจ เจฒเจ เจฌเฉเจจเจคเฉ เจญเฉเจเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
- เจเฉเจเจจ เจฆเฉ เจชเฉเจธเจผเจเฉ เจเฉเจคเฉ เจเจพ เจฐเจนเฉ เจนเฉเฅค
- เจฒเจพเจญ).
เจธเจฐเฉเจค: www.habr.com