Centos 8 рдкрд░ рджреЛ-рдХрд╛рд░рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде Openconnect рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░

рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛


рдорд╛рд░реНрдЪ рдХреЗ рдордзреНрдп рдореЗрдВ рд░рд╡рд┐рд╡рд╛рд░ рдХреА рд╢рд╛рдо рдХреЛ рдореБрдЭреЗ рдПрдХ рдлреЛрди рдХреЙрд▓ рдЖрдпрд╛, рдЬрд┐рд╕рдХрд╛ рд╕рд╛рд░ рдпрд╣ рдерд╛ рдХрд┐ 200+ рд▓реЛрдЧ рд╕реЛрдорд╡рд╛рд░ рдХреЛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдирд╣реАрдВ рдЖрдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди ┬лudalenka 'рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред рд╡рд╛рдХреНрдпрд╛рдВрд╢: "рд░рд┐рдореЛрдЯ" рдкрд░ рдПрдХ, рдФрд░ "рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд" рдкрд░ рдкреНрд░рд╢рдВрд╕рд╛, рдореЗрд░реЗ рд╕рд┐рд░ рдореЗрдВ рдШреВрдорддреА рд╣реИред


рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЖрдВрддрд░рд┐рдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджреВрд░рд╕реНрде рдкрд╣реБрдВрдЪ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рд╕рдорд░реНрдерди рдореЗрдВ рд▓рдЧрд╛рдП рдЧрдП рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдХреБрдЫ рдЖрдИрдЯреА рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреА рдЖрдкрд╛рддрдХрд╛рд▓реАрди рдкрд╣реБрдВрдЪ рдХреЗ рд▓рд┐рдП Shrew soft VPN client + Pfsense рдХреЗ рдПрдХ рд╕рдореВрд╣ рдкрд░ IPSEC VPN рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рд╢реНрдпреЛрд░ рд╕реЙрдлреНрдЯ рд╡реАрдкреАрдПрди рдХреНрд▓рд╛рдЗрдВрдЯ рдиреЗ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдПрдХ рдЦрд╝рд╛рд╕рд┐рдпрдд рджрд┐рдЦрд╛рдИ рд╣реИ рдХрд┐ рдХрдИ рд╕рдлрд▓ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЗ рдмрд╛рдж рдЖрдИрдкреАрд╡реА 4 рдорд╛рд░реНрдЧреЛрдВ рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЗрд▓рд╛рдЬ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдпрд╛ рдЕрдВрддрд┐рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд╣рдХрд░реНрдорд┐рдпреЛрдВ рдХреЛ рджрд┐рди рдореЗрдВ рдХрдИ рдмрд╛рд░ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдиреЗ рдПрдХ рд╕рд╛рде рдЕрдВрдЧреЛрдВ рдХреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдЯрд┐рдХ рдФрд░ рдХрдВрдкрдХрдВрдкреА рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ред


рдкрд╕рдВрдж рдХрд╛ рдЖрдЯрд╛


рдореИрдВрдиреЗ рд╡реАрдкреАрдПрди рдХреЛ рдХрд╛рд░реНрдпрд╛рд▓рдп рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдзрд╛рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХреА рд╣реИ:

  1. рдЖрд╕рд╛рди рд╕реЗрдЯрдЕрдкред рдЗрд╕ рдЙрдореНрдореАрдж рдореЗрдВ рдХрд┐ рдХреБрдЫ рдЕрдкрдиреЗ рджрдо рдкрд░ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ;
  2. рд▓реЛрдХрдкреНрд░рд┐рдп рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛;
  3. рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛; рдЪрд╛рдмрд┐рдпрд╛рдБ (рдкреНрд░рдорд╛рдг рдкрддреНрд░) рдХрд╛ рддрддреНрдХрд╛рд▓ рдореБрджреНрджрд╛ рдореЗрд░реА рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдирд╣реАрдВ рдерд╛
  4. рджреЛ рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдгред рдЕрдзрд┐рдорд╛рдирддрдГ рдореБрдХреНрдд;
  5. рдиреНрдпреВрдирддрдо рдирд┐рд╡реЗрд╢, рдФрд░ рдореБрдлреНрдд рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдИрдЯреА рдЙрдкрдХрд░рдг 2020 рдХреЗ рд▓рд┐рдП рдмрдЬрдЯ рдореЗрдВ рд░рд┐рдореЛрдЯ рдПрдХреНрд╕реЗрд╕ рдЧреЗрдЯрд╡реЗ рдХреА рд▓рд╛рдЧрдд рдирд╣реАрдВ рдереА;
  6. рдФрд░ рдЕрдиреБрдорд╛рдирд┐рдд рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рдкреНрд░рджрд░реНрд╢рди;

WireGuard , openvpn-gui, , , SoftEther VPN, , Shrew soft . Openconnect VPN Server + OpenConnect SSL VPN Client тАФ 1 , tcp, , LDAP, ! Cisco Anyconnect client :)



Centos 8. Centos 8 , glibc-langpack-en, >

dnf install glibc-langpack-en
setfont UniCyr_8x16
  /etc/vconsole.conf FONT="UniCyr_8x16"

:


#  trusted -    
#     nftables     Firewalld      Forward.     trusted 
firewall-cmd --set-default-zone=trusted
#    firewalld - ocserv (  443/tcp 443/udp)
firewall-cmd --permanent --new-service=ocserv
firewall-cmd --permanent --service=ocserv --set-description="OpenConnect SSL VPN Server"
firewall-cmd --permanent --service=ocserv --add-port=443/tcp
firewall-cmd --permanent --service=ocserv --add-port=443/udp
# (   ens192)   drop
firewall-cmd --zone=drop --change-interface=ens192 --permanent
firewall-cmd --reload
#  drop       ocserv
firewall-cmd --zone=drop --permanent --add-service=ocserv
firewall-cmd --reload

OpenConnect SSL рд╡реАрдкреАрдПрди рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП pam рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ "рдПрдВрдб-рдЯреВ-рдПрдВрдб" рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдирдП рд╕рд░реНрд╡рд░ рдХреЛ рдбреЛрдореЗрди рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:


#   
dnf install realmd sssd oddjob oddjob-mkhomedir adcli samba-common samba-common-tools krb5-workstation

рд╕рдХреНрд░рд┐рдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдирд╛
realm  discover mydomain.ru

mydomain.ru
type: kerberos
realm-name: MYDOMAIN.RU
domain-name: mydomain.ru
configured: no
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools

 #    Active Directory
realm join mydomain.ru -U Username

SSSD (рд╕рд┐рд╕реНрдЯрдо рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗрд╡рд╛рдПрдБ рдбреЗрдорди) /etc/sssd/sssd.conf рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧреАред рдЖрдкрдХреЛ ocserv рд╕рд░реНрд╡рд░ рд╡реАрдкреАрдПрди рд╕реЗрд╡рд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЕрднреА рддрдХ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП use_fully_qualified_names рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ /etc/sssd/sssd.conf
[sssd]
domains = mydomain.ru
config_file_version = 2
services = nss, pam
default_domain_suffix = mydomain.ru

[domain/mydomain.ru]
ad_domain = mydomain.ru
ad_gpo_map_remote_interactive = +ocserv
krb5_realm = MYDOMAIN.RU
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad

рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ SSSD рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░реЗрдВ

systemctl enable sssd
systemctl start sssd

рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред

realm permit --all

рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдбреЛрдореЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ ssh рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдХреНрд░реЙрдирд┐рдХ рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖
210 Number of sources = 2
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- ntp1.vniiftri.ru 1 6 17 1 -171us[ -171us] ┬▒ 2166us
^* ntp2.vniiftri.ru 1 6 17 1 -237us[ -57us] ┬▒ 2494us

Google рдкреНрд░рдорд╛рдгрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

dnf install epel-release
dnf install google-authenticator qrencode-libs

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕рд░реНрд╡рд░ (sudo su DomainUser) рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддреЗ рд╕реЗ Google-рдкреНрд░рдорд╛рдгрдХ рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди ( Google , IOS , Google play ) рдкрд░ Google рдкреНрд░рдорд╛рдгрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ / qr рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рднреА рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рджреЗрдиреЗ рд╣реЛрдВрдЧреЗред

Openconnect VPN Server:

dnf install ocserv
#    
systemctl enable ocserv

/etc/ocserv/ocserv.conf
auth = ┬лpam┬╗
#IPv4
listen-host = 1.1.111.1
tcp-port = 443
udp-port = 443
run-as-user = ocserv
run-as-group = ocserv
socket-file = ocserv.sock
chroot-dir = /var/lib/ocserv
isolate-workers = true
max-clients = 0

# -
max-same-clients = 1
keepalive = 32400
dpd = 90
mobile-dpd = 1800
switch-to-tcp-timeout = 25
try-mtu-discovery = true

#LetsenCrypt
server-cert = /etc/letsencrypt/live/vpn.mydomain.ru/fullchain.pem
server-key = /etc/letsencrypt/live/vpn.mydomain.ru/privkey.pem

########################
cert-user-oid = 0.9.2342.19200300.100.1.1
compression = true
tls-priorities = "@SYSTEM"
auth-timeout = 240
idle-timeout = 1200
mobile-idle-timeout = 2400
min-reauth-time = 300
max-ban-score = 50
ban-reset-time = 300
cookie-timeout = 300
deny-roaming = false
rekey-time = 172800
rekey-method = ssl
use-occtl = true
pid-file = /var/run/ocserv.pid
device = vpns
predictable-ips = true
default-domain = vpn.mydomain.ru
# VPN
ipv4-network = 192.168.178.0/24

# DNS-
tunnel-all-dns = true
dns = 192.168.1.1
########################
ping-leases = false

# VPN
route = 192.168.1.0/255.255.255.0
route = 192.168.2.0/255.255.255.0
########################
cisco-client-compat = true
dtls-legacy = true
user-profile = profile.xml

LetsEncrypt VPN . . , , 3- COVID-19 .


firewall-cmd --zone=drop --add-service=http
curl -O  https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
certbot-auto certonly --standalone --preferred-challenges http -d vpn.mydomain.ru
firewall-cmd --zone=drop --remove-service=http

VPN

sed '/^#%PAM-1.0$/a auth       required     pam_google_authenticator\.so' /etc/pam.d/ocserv
systemctl start ocserv
systemctl start ocserv



echo "net.ipv4.ip_forward=1">/etc/sysctl.d/0-ocserv.conf
sysctl -w net.ipv4.ip_forward=1


openconnect-gui. vpn.mydomain.ru




Password OTP Google Authenticator. Password1 Active Directory.







...


All Articles