เดฐเดฃเตเดเต-เดเดเด เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฃเด เด เดญเดฟเดฒเดทเดฃเตเดฏเดตเตเด เดฎเตเดณเตเดณเตเด เดเดฃเตเดเตเดเดฟเตฝ, เดชเดเตเดทเต เดนเดพเตผเดกเตโเดตเตเดฏเตผ เดเตเดเตเดเดฃเตเดเตพเดเตเดเต เดชเดฃเดฎเดฟเดฒเตเดฒ, เดชเตเดคเตเดตเต เด เดตเตผ เดจเดฒเตเดฒ เดฎเดพเดจเดธเดฟเดเดพเดตเดธเตเดฅเดฏเดฟเตฝ เดคเตเดเดฐเดพเตป เดตเดพเดเตเดฆเดพเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เด เดธเตเดฒเตเดฏเตเดทเตป เดธเตเดชเตเดชเตผ เดเดฑเดฟเดเดฟเดจเตฝ เดเดจเตเดจเดฒเตเดฒ, เดฎเดฑเดฟเดเตเดเต เดเดจเตเดฑเตผเดจเตเดฑเตเดฑเดฟเตฝ เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดตเตเดฏเดคเตเดฏเดธเตเดค เดชเดฐเดฟเดนเดพเดฐเดเตเดเดณเตเดเต เดฎเดฟเดถเตเดฐเดฟเดคเดฎเดพเดฃเต.
เด เดเตเดเดจเต เดเตเดเตเดคเตเดคเต
เดกเตเดฎเตเตป เดเดเตเดเตเดตเต เดกเดฏเดฑเดเตเดเดฑเดฟ.
เดเดจเตเดจเดคเตเดคเต เดชเดฒเดฐเตเดฏเตเด เดชเตเดฒเต เดเดฐเต VPN เดตเดดเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดกเตเดฎเตเดฏเตโเตป เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพ.
เดเดฐเต VPN เดเตเดฑเตเดฑเตโเดตเต เดเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต Tigเตผเดเตเดเดธเตเดตเดฒเดฎเดพเดเตเดเตเด.
VPN เดเตเดฒเดฏเดจเตเดฑเดฟเดจเดพเดฏเดฟ เดชเดพเดธเตโเดตเตเดกเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต เดธเตเดฐเดเตเดทเดพ เดจเดฏเด เดจเดฟเดฐเตเดงเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดฐเดพเดทเตเดเตเดฐเตเดฏเด เดซเตเตผเดเตเดเดฟเดจเตเดฑเตเดฑเต เดจเดฟเดเตเดเดณเตเดเต เดธเตเดตเดจเตเดคเด เดเตเดเตเดเดฃเตเดเดณเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเดเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเดฟเดจเต เดเดฐเต zhlob-เดจเตเดเตเดเดพเตพ เดเตเดฑเดตเดพเดฏเดฟ เดตเดฟเดณเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ - 10 เดตเดฐเต เดธเตเดเดจเตเดฏ เดเตเดเตเดเดฃเตเดเตพ เดเดฃเตเดเต, เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณเดต - เดตเดณเดฐเต เดจเตเตบ-เดเตเดทเตผ เดตเดฟเดฒเดฏเตเดเตเดเต. RSASecureID, Duo เดเดจเตเดจเดฟเดตเดฏเตเด เดฎเดฑเตเดฑเตเด เดเดพเตป เดชเดฐเดฟเดเดฃเดฟเดเตเดเดฟเดฒเตเดฒ, เดเดพเดฐเดฃเด เดเดจเดฟเดเตเดเต เดเดชเตเดชเตบ เดธเตเดดเตโเดธเต เดตเตเดฃเด.
เดฎเตเตปเดตเตเดฏเดตเดธเตเดฅเดเตพ: เดนเตเดธเตเดฑเตเดฑเต * เดจเดฟเดเตเดธเต เดเตเดเต เดธเตเดฅเดพเดชเดฟเดเตเดเต เดซเตเดฐเตเดฑเตเดกเดฟเดฏเดธเต, ssd - เดกเตเดฎเตเดฏเตโเดจเดฟเดฒเตเดเตเดเต เดชเตเดฐเดตเตเดถเดฟเดเตเดเต, เดกเตเดฎเตเดฏเตเตป เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเต เด เดคเดฟเตฝ เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด.
เด
เดงเดฟเด เดชเดพเดเตเดเตเดเตเดเตพ: เดทเตเดฒเตเดฒเดฟเดจเดพเดฌเตเดเตเดธเต, เด
เดคเตเดคเดฟเดชเตเดชเดดเด, freeradius-ldap, เดซเตเดฃเตเดเต rebel.tlf เดถเตเดเดฐเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต
เดเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ - CentOS 7.8.
เดเตเดฒเดฟเดฏเตเดเต เดฒเตเดเดฟเดเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดคเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด: เดเดฐเต VPN-เดฒเตเดเตเดเต เดเดฃเดเตโเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ, เดเดฐเต เดชเดพเดธเตโเดตเตเดกเดฟเดจเต เดชเดเดฐเด เดเดชเดฏเตเดเตเดคเดพเดตเต เดเดฐเต เดกเตเดฎเตเดฏเตโเตป เดฒเตเดเดฟเตป, OTP เดเดจเตเดจเดฟเดต เดจเตฝเดเดฃเด.
เดธเตเดตเดจเดเตเดเดณเตเดเต เดธเดเตเดเตเดเดฐเดฃเด
ะ /etc/raddb/radiusd.conf เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเด เดเตเดฐเตเดชเตเดชเดฟเดจเตเด เดตเตเดฃเตเดเดฟ เดฎเดพเดคเตเดฐเด เดซเตเดฐเตเดฑเตเดกเดฟเดฏเดธเต, เดธเตเดตเดจเด เดฎเตเดคเตฝ เดตเตเดฏเดพเดธเดพเตผเดฆเตเดงเด เดเดฒเตเดฒเดพ เดเดชเดกเดฏเดฑเดเตโเดเดฑเดฟเดเดณเดฟเดฒเตเดฏเตเด เดซเดฏเดฒเตเดเตพ เดตเดพเดฏเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฃเด / เดตเตเดเต /.
user = root
group = root
เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเดณเดฟเตฝ เดเตเดฐเตเดชเตเดชเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด Tigเตผเดเตเดเดธเตเดตเดฒเดฎเดพเดเตเดเตเด, เดเตเดฎเดพเดฑเตเดฑเด เดเตเดฏเตเดฏเดฃเด เดตเตเดฃเตเดเตผ เดธเตเดชเตเดธเดฟเดซเดฟเดเต เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเต. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเตฝ 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-enabled.
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 เด เดคเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจ เดชเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเตเด Tigเตผเดเตเดเดธเตเดตเดฒเดฎเดพเดเตเดเตเด:
client fortigate {
ipaddr = 192.168.1.200
secret = testing123
require_message_authenticator = no
nas_type = other
}
เดฎเตเดกเตเดฏเตเตพ เดเตเตบเดซเดฟเดเดฑเตเดทเตป 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
เดกเดฟเดซเตเตพเดเตเดเต เดฌเดฃเตเดเดฟเตฝ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตฝ เดเดชเตเดทเดจเตเดเตพ เดซเตเดฐเตเดฑเตเดกเดฟเดฏเดธเต ั google เดเดคเดจเตเดฑเดฟเดเตเดเตเดฑเตเดฑเตผ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดเตเดฐเตเดกเตปเดทเตเดฏเดฒเตเดเตพ เดจเตฝเดเดพเตป เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดเต เดเดตเดถเตเดฏเดชเตเดชเตเดเตเดจเตเดจเต: เดเดชเดฏเตเดเตเดคเตเดจเดพเดฎเด/เดชเดพเดธเตโเดตเตเดกเต+OTP.
เดกเดฟเดซเตเตพเดเตเดเต เดฌเดฃเตเดเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดคเดฒเดฏเดฟเตฝ เดตเตเดดเตเดจเตเดจ เดถเดพเดชเดเตเดเดณเตเดเต เดเดฃเตเดฃเด เดธเดเตเดเตฝเดชเตเดชเดฟเดเตเดเตเด เดตเดดเดฟ เดซเตเดฐเตเดฑเตเดกเดฟเดฏเดธเต ั Google Authenticator, เดฎเตเดกเตเดฏเตเตพ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต เดชเดพเด เด เดคเดฟเดจเดพเตฝ เดเตเดเตเดเตบ เดฎเดพเดคเตเดฐเดฎเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเต Google Authenticator.
เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ, เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต:
- เดซเตเดฐเตเดฑเตเดกเดฟเดฏเดธเต เดเดชเดฏเตเดเตเดคเดพเดตเต เดกเตเดฎเตเดฏเตโเดจเดฟเดฒเดพเดฃเต เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดเตเดฐเตเดชเตเดชเดฟเดฒเดพเดฃเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต, เดตเดฟเดเดฏเดฟเดเตเดเดพเตฝ, OTP เดเตเดเตเดเตบ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต.
โ300+ เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเดพเดฏเดฟ เดเดจเดฟเดเตเดเต เดเดเตเดเดจเต OTP เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดฏเดพเด?โ เดเดจเตเดจเต เดเดพเตป เดเดฟเดจเตเดคเดฟเดเตเด เดจเดฟเดฎเดฟเดทเด เดตเดฐเต เดเดฒเตเดฒเดพเด เดฎเดคเดฟเดฏเดพเดฏเดคเดพเดฏเดฟ เดเดพเดฃเดชเตเดชเตเดเตเดเต.
เดเดชเดฏเตเดเตเดคเดพเดตเต เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เดฒเตเดเดฟเตป เดเตเดฏเตเดฏเดฃเด เดซเตเดฐเตเดฑเตเดกเดฟเดฏเดธเต เดจเดฟเดเตเดเดณเตเดเต เด เดเตเดเตเดฃเตเดเดฟเดจเต เดเตเดดเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด Google เดชเตเดฐเดพเดฎเดพเดฃเดฟเดเตป, เดเดคเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดณเตเดณ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดพเดฏเดฟ เดเดฐเต QR เดเตเดกเต เดธเตเดทเตเดเดฟเดเตเดเตเด. เดเดตเดฟเดเตเดฏเดพเดฃเต เดธเดนเดพเดฏเด เดตเดฐเตเดจเตเดจเดคเต. เดทเตเดฒเตเดฒเดฟเดจเดพเดฌเตเดเตเดธเต เดธเดเดฏเตเดเดจเดคเตเดคเดฟเตฝ .เดฌเดพเดทเต_เดชเตเดฐเตเดซเตเตฝ.
[root@freeradius ~]# yum install -y shellinabox
เดกเตเดฎเตบ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเตฝ เดธเตเดฅเดฟเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเดคเต /etc/sysconfig/shellinabox.
เดเดพเตป เด
เดตเดฟเดเต เดชเตเตผเดเตเดเต 443 เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดเดฏเตเด เดจเดฟเดเตเดเดณเตเดเต เดธเตผเดเตเดเดฟเดซเดฟเดเตเดเดฑเตเดฑเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเดพเด.
[root@freeradius ~]#systemctl enable --now shellinaboxd
เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดฒเดฟเดเตเดเต เดชเดฟเดจเตเดคเตเดเดฐเตเดเดฏเตเด เดกเตเดฎเตเดฏเตเตป เดเตเดฐเตเดกเดฟเดฑเตเดฑเตเดเตพ เดจเตฝเดเตเดเดฏเตเด เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดพเดฏเดฟ เดเดฐเต เดเตเดฏเตเดเตผ เดเตเดกเต เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดคเดพเตฝ เดฎเดคเดฟเดฏเดพเดเตเด.
เด เตฝเดเตเดฐเดฟเดคเด เดเดชเตเดฐเดเดพเดฐเดฎเดพเดฃเต:
- เดเดฐเต เดฌเตเดฐเตเดธเดฑเดฟเดฒเตเดเต เดเดชเดฏเตเดเตเดคเดพเดตเต เดฎเตเดทเตเดจเดฟเดฒเตเดเตเดเต เดฒเตเดเดฟเตป เดเตเดฏเตเดฏเตเดจเตเดจเต.
- เดกเตเดฎเตเดฏเตเตป เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดฟเดเตเดเตเดฃเตเดเต เดเดจเตเดจเต. เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดฐเต เดจเดเดชเดเดฟเดฏเตเด เดเดเตเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
- เดเดชเดฏเตเดเตเดคเดพเดตเต เดเดฐเต เดกเตเดฎเตเดฏเตเตป เดเดชเดฏเตเดเตเดคเดพเดตเดพเดฃเตเดเตเดเดฟเตฝ, เด เดกเตเดฎเดฟเดจเดฟเดธเตเดเตเดฐเตเดฑเตเดฑเตเดดเตเดธเต เดเตเดฐเตเดชเตเดชเดฟเดฒเต เด เดเดเดคเตเดตเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด.
- เดเดฐเต เด เดกเตโเดฎเดฟเตป เด เดฒเตเดฒเตเดเตเดเดฟเตฝ, Google Authenticator เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดคเดฟเดเตเดเตเดฃเตเดเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต. เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดฐเต เดเตเดฏเตเดเตผ เดเตเดกเตเด เดเดชเดฏเตเดเตเดคเต เดฒเตเดเตเดเดเตเดเตเด เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเด.
- เดเดฐเต เด เดกเตโเดฎเดฟเดจเตเด Google เดเดคเดจเตเดฑเดฟเดเตเดเตเดฑเตเดฑเดฑเตเด เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดคเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดฒเตเดเตเดเดเตเดเต เดเตเดฏเตเดฏเตเด.
- เด เดกเตเดฎเดฟเตป เดเดฃเตเดเตเดเดฟเตฝ, Google Authenticator เดตเตเดฃเตเดเตเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเด. เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตโเดคเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดฐเต เดเตเดฏเตเดเตผ เดเตเดกเต เดธเตเดทเตโเดเดฟเดเตเดเตเด.
เดเดฒเตเดฒเดพ เดฏเตเดเตเดคเดฟเดฏเตเด เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต /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
เดซเตเตผเดเตเดเดฟเดเตเดฑเตเดฑเต เดธเตเดฑเตเดฑเดชเตเดชเต:
- เดเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต เดตเดพเดธเดพเดฐเตเดฆเตเดงเด-เดธเตเตผเดตเตผ
- เดเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฏ เดเตเดฐเตเดชเตเดชเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดตเดถเตเดฏเดฎเตเดเตเดเดฟเตฝ, เดเตเดฐเตเดชเตเดชเตเดเดณเตเดเต เดเดเตเดธเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด. เดเตเดฐเตเดชเตเดชเดฟเดจเตเดฑเต เดชเตเดฐเต เดเดฃเดพเดฃเต Tigเตผเดเตเดเดธเตเดตเดฒเดฎเดพเดเตเดเตเด เดเดเดจเตเดจเตเดชเตเดฏ เดเตเดฐเตเดชเตเดชเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเดฃเด เดตเตเดฃเตเดเตผ เดธเตเดชเตเดธเดฟเดซเดฟเดเต เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเต เดซเตเตผเดเตเดเดฟเดจเตเดฑเตเดฑเต-เดเตเดฐเตเดชเตเดชเต-เดจเดพเดฎเด.
- เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดกเดฟเดฑเตเดฑเดฟเดเดเต เดเดธเตเดเดธเตเดเตฝ- เดชเตเตผเดเตเดเดฒเตเดเตพ.
- เดจเดฏเดเตเดเดณเดฟเดฒเตเดเตเดเต เดเตเดฐเตเดชเตเดชเตเดเตพ เดเตเตผเดเตเดเตเดจเตเดจเต.
เด เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเดจเตเดฑเต เดเตเดฃเดเตเดเตพ:
- OTP เดตเดดเดฟ เดชเตเดฐเดพเดฎเดพเดฃเตเดเดฐเดฟเดเตเดเดพเตป เดธเดพเดงเดฟเดเตเดเตเด Tigเตผเดเตเดเดธเตเดตเดฒเดฎเดพเดเตเดเตเด เดเดชเตเดชเตบ เดธเตเดดเตเดธเต เดชเดฐเดฟเดนเดพเดฐเด.
- 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 เดเตเดฒเดฏเดจเตเดฑเดฟเตฝ เดเดชเดฏเตเดเตเดคเดพเดตเต เดกเตเดฎเตเดฏเตเตป เดเตเดฐเตเดกเดฟเดฑเตเดฑเตเดเตพ เดจเตฝเดเตเดจเตเดจเต.
- เดซเตเดฐเตเดฑเตเดกเดฟเดฏเดธเต เด เดเตเดเตเดฃเตเดเดฟเดจเตเดฑเตเดฏเตเด เดชเดพเดธเตโเดตเตเดกเดฟเดจเตเดฑเตเดฏเตเด เดธเดพเดงเตเดค เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต
- เดชเดพเดธเตโเดตเตเดกเต เดถเดฐเดฟเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เดเดฐเต เดเตเดเตเดเดฃเดฟเดจเดพเดฏเตเดณเตเดณ เด เดญเตเดฏเตผเดคเตเดฅเดจ เด เดฏเดฏเตโเดเตเดเตเด.
- เดเตเดเตเดเตบ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดตเดฐเดฟเดเดฏเดพเดฃเต.
- เดฒเดพเดญเด).
เด เดตเดฒเดเดฌเด: www.habr.com