āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻžāĻ¨ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋ-āĻĢā§āĻ¯āĻžāĻā§āĻāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻžāĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻā§ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻ¤āĻŦā§ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻā§āĻā§āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¨āĻ āĻ āĻ°ā§āĻĨ āĻ¨ā§āĻ āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§ āĻ¤āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻŽā§āĻāĻžāĻ āĻ§āĻ°ā§ āĻ°āĻžāĻāĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĻāĻŋ āĻā§āĻŦ āĻāĻ¸āĻ˛ āĻāĻŋāĻā§ āĻ¨āĻ¯āĻŧ, āĻŦāĻ°āĻ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻŽāĻŋāĻļā§āĻ°āĻŖāĨ¤
āĻ¤āĻžāĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ˛
āĻĄā§āĻŽā§āĻ¨ āĻ¨āĻžāĻŽ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ.
VPN āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻžāĻ āĻāĻ°āĻž āĻĄā§āĻŽā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž, āĻ¯ā§āĻŽāĻ¨ āĻāĻ āĻ āĻ¨ā§āĻā§āĻ° āĻŽāĻ¤āĨ¤
āĻāĻŋāĻĒāĻŋāĻāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻāĻāĻ¯āĻŧā§ āĻšāĻŋāĻ¸ā§āĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻĻā§igāĻŧāĻā§āĻ¤āĻž.
VPN āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¨ā§āĻ¤āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§āĨ¤
āĻ°āĻžāĻāĻ¨ā§āĻ¤āĻŋ Fortinet āĻāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻā§āĻā§āĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻā§ āĻ°ā§āĻĄāĻ¨ā§āĻā§āĻ° āĻā§āĻ¯āĻŧā§ āĻāĻŽ āĻŦāĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž - āĻāĻāĻžāĻ¨ā§ 10 āĻāĻāĻ¨āĻŋāĻā§āĻ° āĻŽāĻ¤ā§ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻā§āĻā§āĻ¨ āĻ°āĻ¯āĻŧā§āĻā§, āĻŦāĻžāĻāĻŋāĻā§āĻ˛āĻŋ āĻā§āĻŦ āĻ -āĻā§āĻļāĻžāĻ° āĻŽā§āĻ˛ā§āĻ¯ā§āĨ¤ āĻāĻŽāĻŋ RSASecureID, Duo āĻāĻŦāĻ āĻāĻ° āĻŽāĻ¤ā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŋāĻ¨āĻŋ, āĻāĻžāĻ°āĻŖ āĻāĻŽāĻŋ āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻāĻžāĻāĨ¤
āĻĒā§āĻ°ā§āĻŦāĻļāĻ°ā§āĻ¤: āĻ¨āĻŋāĻŽāĻ¨ā§āĻ¤ā§āĻ°āĻŖāĻāĻ°ā§āĻ¤āĻž * āĻ¸ā§āĻ¨ā§ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻ¸āĻš freeradius, āĻāĻ¸āĻāĻ¸āĻĄāĻŋ â āĻĄā§āĻŽā§āĻ¨ā§ āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻ˛ā§ āĻĄā§āĻŽā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¸āĻšāĻā§āĻ āĻāĻāĻŋāĻā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ
āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒā§āĻ¯āĻžāĻā§āĻ: shellinabox, āĻĄā§āĻŽā§āĻ°, freeradius-ldap, āĻĢāĻ¨ā§āĻ rebel.tlf āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻĨā§āĻā§
āĻāĻŽāĻžāĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, CentOS 7.8.
āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ˛āĻāĻŋāĻāĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ: āĻāĻāĻāĻŋ VPN āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĄā§āĻŽā§āĻ¨ āĻ˛āĻāĻāĻ¨ āĻāĻŦāĻ OTP āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻ¸ā§āĻŦāĻž āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°āĻž āĻšāĻā§āĻā§
Đ /etc/raddb/radiusd.conf āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻā§āĻˇā§āĻ ā§ āĻ¯āĻžāĻ° āĻ¨āĻžāĻŽā§ āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ freeradius, āĻ¸ā§āĻŦāĻž āĻĨā§āĻā§ āĻŦā§āĻ¯āĻžāĻ¸āĻžāĻ°ā§āĻ§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻžāĻŦāĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻ˛ āĻĒāĻĄāĻŧāĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¤ā§ āĻšāĻŦā§ / āĻšā§āĻŽ /.
user = root
group = root
āĻ¸ā§āĻāĻŋāĻāĻ¸ā§ āĻā§āĻ°ā§āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¤ā§ āĻĻā§igāĻŧāĻā§āĻ¤āĻž, āĻĒā§āĻ°ā§āĻ°āĻŖ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻŦāĻŋāĻā§āĻ°ā§āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯. āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§ 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/site-enabled/default и raddb/āĻ¸āĻžāĻāĻ-āĻ¸āĻā§āĻˇāĻŽ/āĻāĻ¨āĻžāĻ°-āĻāĻžāĻ¨ā§āĻ˛ āĻŦāĻŋāĻāĻžāĻā§ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻ°āĻž āĻāĻŽāĻŋ āĻ¯ā§ āĻ¨ā§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§ āĻ¤āĻžāĻ° āĻ¨āĻžāĻŽ āĻ¯ā§āĻ āĻāĻ°āĻŋ - group_authorization. āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ - āĻ¨ā§āĻ¤āĻŋāĻ° āĻ¨āĻžāĻŽ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¨ā§āĻ¤āĻŋ.āĻĄāĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻāĻāĻĄāĻŧāĻž āĻ§āĻ¨ā§āĻ°ā§āĻŦāĻ¨ā§āĻ§āĻ¨ā§ āĻāĻā§ āĻĢāĻžāĻāĻ˛ āĻāĻŋāĻ¤āĻ°ā§ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ.
āĻŦāĻŋāĻāĻžāĻā§ āĻŦāĻŋāĻļā§āĻĻā§āĻ§āĻ¤āĻž āĻĒā§āĻ°āĻŽāĻžāĻŖ āĻāĻ°āĻž āĻāĻāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ˛āĻžāĻāĻ¨āĻāĻŋ āĻāĻ¨āĻāĻŽā§āĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻĒāĻžāĻŽ.
āĻĢāĻžāĻāĻ˛ā§ clients.conf āĻ¯ā§ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨ āĻĻā§igāĻŧāĻā§āĻ¤āĻž:
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
āĻŦāĻžāĻ¨ā§āĻĄāĻŋāĻ˛ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻŦāĻŋāĻāĻ˛ā§āĻĒ freeradius Ņ āĻā§āĻāĻ˛ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖāĻāĻžāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§: āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ/āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ+OTP āĻ¤ā§.
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻ āĻāĻĒā§āĻ˛āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŽāĻžāĻĨāĻžāĻ¯āĻŧ āĻ¯ā§ āĻ āĻāĻŋāĻļāĻžāĻĒā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĒāĻĄāĻŧāĻŦā§ āĻ¤āĻž āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°ā§āĻ¨ freeradius Ņ Google āĻĒā§āĻ°āĻŽāĻžāĻŖāĻāĻžāĻ°ā§, āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻĒāĻžāĻŽ āĻ¯āĻžāĻ¤ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻā§āĻ¨ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ Google āĻĒā§āĻ°āĻŽāĻžāĻŖāĻāĻžāĻ°ā§.
āĻ¯āĻāĻ¨ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§, āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤āĻā§āĻ˛āĻŋ āĻāĻā§:
- Freeradius āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻĄā§āĻŽā§āĻ¨ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻā§āĻ°ā§āĻĒā§ āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻ¸āĻĢāĻ˛ āĻšāĻ˛ā§ OTP āĻā§āĻā§āĻ¨ āĻā§āĻ āĻāĻ°ā§āĨ¤
āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻāĻŽāĻŋ āĻāĻžāĻŦāĻŋ, "āĻāĻŽāĻŋ āĻā§āĻāĻžāĻŦā§ 300+ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ OTP āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ?"
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ freeradius āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻĨā§āĻā§ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻ¨ āĻā§āĻāĻ˛ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖāĻāĻžāĻ°ā§, āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ QR āĻā§āĻĄ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦā§āĨ¤ āĻāĻ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻāĻĻā§āĻ§āĻžāĻ° āĻāĻ¸ā§ shellinabox āĻāĻŽāĻŋ āĻ¤āĻžāĻ˛ āĻŽāĻŋāĻ˛āĻžāĻ¤ā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻāĻŋ .bash_profile.
[root@freeradius ~]# yum install -y shellinabox
āĻĄā§āĻŽāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ /etc/sysconfig/shellinabox.
āĻāĻŽāĻŋ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°ā§āĻ 443 āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
[root@freeradius ~]#systemctl enable --now shellinaboxd
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ˛āĻŋāĻā§āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻ¤ā§, āĻĄā§āĻŽā§āĻ¨ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ QR āĻā§āĻĄ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ:
- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻŦā§āĻ°āĻžāĻāĻāĻžāĻ°ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°ā§āĨ¤
- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻāĻ¨ āĻĄā§āĻŽā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻ¨āĻž āĻšāĻ˛ā§ āĻā§āĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻž āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻ¨ āĻĄā§āĻŽā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨āĻŋāĻ¸ā§āĻā§āĻ°ā§āĻāĻ° āĻā§āĻ°ā§āĻĒā§āĻ° āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĒāĻĻ āĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ āĻ¨āĻž āĻšāĻ˛ā§, āĻāĻāĻŋ Google āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖāĻāĻžāĻ°ā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻž āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻāĻŋ 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
āĻĢāĻ°āĻāĻŋāĻā§āĻ āĻ¸ā§āĻāĻāĻĒ:
- āĻāĻŽāĻ°āĻž āĻŦāĻžāĻ¨āĻžāĻ āĻŦā§āĻ¯āĻžāĻ¸āĻžāĻ°ā§āĻ§-āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°
- āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻˇā§āĻ ā§āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ, āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻā§āĻˇā§āĻ ā§ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻā§ āĻāĻ˛āĻžāĻĻāĻž āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻā§āĻ°ā§āĻĒā§āĻ° āĻ¨āĻžāĻŽ āĻāĻžāĻ˛ā§ āĻāĻā§ āĻĻā§igāĻŧāĻā§āĻ¤āĻž āĻ¯ā§ āĻā§āĻ°ā§āĻĒā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻŽāĻŋāĻ˛āĻ¤ā§ āĻšāĻŦā§ āĻŦāĻŋāĻā§āĻ°ā§āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ Fortinet-āĻā§āĻ°ā§āĻĒ-āĻ¨āĻžāĻŽ.
- āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž SSL āĻāĻ°-āĻĒā§āĻ°ā§āĻāĻžāĻ˛
- āĻ¨ā§āĻ¤āĻŋāĻ¤ā§ āĻā§āĻ°ā§āĻĒ āĻ¯ā§āĻ āĻāĻ°āĻžāĨ¤
āĻāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§āĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž:
- OTP āĻ āĻ¨ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻĻā§igāĻŧāĻā§āĻ¤āĻž āĻāĻĒā§āĻ¨ āĻ¸ā§āĻ°ā§āĻ¸ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨āĨ¤
- 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
}
āĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ:
- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŋāĻĒāĻŋāĻāĻ¨ āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻā§ āĻĄā§āĻŽā§āĻ¨ āĻļāĻāĻ¸āĻžāĻĒāĻ¤ā§āĻ° āĻĒā§āĻ°āĻŦā§āĻļ āĻāĻ°ā§āĨ¤
- Freeradius āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻā§āĻ° āĻŦā§āĻ§āĻ¤āĻž āĻāĻŦāĻ āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§
- āĻĒāĻžāĻ¸āĻāĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻ¸āĻ āĻŋāĻ āĻšāĻ˛ā§, āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¨ āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ.
- āĻā§āĻā§āĻ¨ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤
- āĻ˛āĻžāĻ)āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com