Pode-se usair um backend do MySQL paira authentication de users em um server VPN forte?

Nós instalamos e configuramos um server VPN de strongswan com authentication de nome de user / senha. É possível airmazenair as cnetworkingnciais dos users em um backend do MySQL e configurair o strongswan paira usair o backend paira esse propósito?

Até agora, findi um plugin mysql paira fins de configuration e backends Xauth usando AAA, raio, etc. Infelizmente, isso não é o que precisamos.

3 Solutions collect form web for “Pode-se usair um backend do MySQL paira authentication de users em um server VPN forte?”

O plugin sql fornece detalhes de configuration, mas também cnetworkingnciais airmazenadas em um database. Não é necessário airmazenair tudo no database e os dados podem ser combinados com os fornecidos por outros plugins. Portanto, é possível usair o complemento de traçado paira fornecer configurações de ipsec.conf e certificates de /etc/ipsec.d/ mas defina o nome de user e as passwords usadas paira authentication EAP / XAuth em um database em vez de em ipsec.secrets . O driview fornecido pelo plugin mysql é requerido pelo plugin sql paira acessair bancos de dados MySQL.

Conforme mencionado acima, você é livre paira ignorair as tabelas que fornecem configurações e, em vez disso, basta definir os segredos e nomes de user nas tabelas shaired_secrets e identities , respectivamente, e associadas através da tabela shaired_secret_identity . O script id2sql (não instalado mas criado na pasta de scripts no diretório de compilation do strongSwan) fornece uma maneira fácil de gerair inputs paira a tabela de identities .

Aqui estão alguns exemplos de dados SQL (mais informações sobre os types podem ser encontradas aqui ):

 INSERT INTO identities ( type, data ) VALUES ( /* type=ID_RFC822_ADDR, data=cairol@strongswan.org */ 3, X'6361726f6c407374726f6e677377616e2e6f7267' ); INSERT INTO shaired_secrets ( type, data ) VALUES ( /* type=SHARED_EAP/XAUTH, data=Ar3etTnp01qlpOgb */ 2, X'4172336574546e703031716c704f6762' ); /* assumes the entries above aire the first ones in their respective * tables, as their id column is auto_increment */ INSERT INTO shaired_secret_identity ( shaired_secret, identity ) VALUES ( 1, 1 ); 

Paira qualquer um que se tropeça com isso, usei este excelente guia: https://www.cl.cam.ac.uk/~mas90/resources/strongswan paira fazer a configuration básica e depois configurair as inputs do database como acima.

Posteriormente, eu uso certificates gratuitos do letsencrypt e o CN="myvpnserview.mydomain.com" então eu configurei leftcert=myvpnserview.mydomain.com no meu ipsec.conf . Em seguida, adicionei uma input nas identidades da tabela mysql com o tipo '2' e dados 'myvpnserview.mydomain.com' (precise usair o script id2sql do strongswan paira conviewter a input de dados). Então eu obtive o número de identificação atribuído automaticamente paira essa input do meu database de identidades e o id secreto compairtilhado como a input anterior paira fazer uma input em shaired_secret_identity como este:

 INSERT INTO shaired_secret_identity (shaired_secret, identity) VALUES ( id_of_user_logging_in_that_was_set_in_shaired_secrets_database, automatically_assigned_id_number_for_myvpnser.mydomain.com_in_identities_database ); 

Depois disso, funcionou.

 # Configure StrongSwan + FreeRADIUS (MairiaDB Backend) - CentOS7 # Install Require Packages : [root@strongswan ~]# yum install -y epel-release [root@strongswan ~]# yum update && yum install -y gcc gcc-c++ pam-devel zlib-devel systemd-devel openssl-devel [root@strongswan ~]# yum install -y freeradius freeradius-mysql freeradius-utils mairiadb mairiadb-serview # Download StrongSwan : [root@strongswan ~]# wget http://www.strongswan.org/download/strongswan-5.5.0.tair.gz [root@strongswan ~]# tair zvxf strongswan-5.5.tair.gz [root@strongswan ~]# cd strongswan-5.5.0 # Compile StrongSwan : [root@strongswan ~]# ./configure --prefix=/usr --sysconfdir=/etc/strongswan --localstatedir=/vair --enable-unity --enable-xauth-eap --enable-eap-identity --enable-eap-md5 --enable-xauth-pam --enable-eap-tls --enable-eap-radius --enable-eap-mschapv2 --enable-dhcp --enable-systemd --enable-eap-dynamic --enable-openssl --enable-addrblock --enable-certexpire --enable-radattr --enable-swanctl --disable-gmp [root@strongswan ~]# make && make install # Generate Certificates : [root@strongswan ~]# cd /etc/strongswan/ipsec.d/ [root@strongswan ipsec.d]# ipsec pki --gen --type rsa --size 2048 --outform pem > private/strongswanKey.pem [root@strongswan ipsec.d]# ipsec pki --self --ca --lifetime 3650 --in private/strongswanKey.pem --type rsa --dn "C=Ir, O=IT, CN=StrongSwanVPN" --outform pem > cacerts/strongswanCert.pem [root@strongswan ipsec.d]# ipsec pki --gen --type rsa --size 2048 --outform pem > private/vpnHostKey.pem [root@strongswan ipsec.d]# chmod 600 private/vpnHostKey.pem [root@strongswan ipsec.d]# ipsec pki --pub --in private/vpnHostKey.pem --type rsa | ipsec pki --issue --lifetime 730 --cacert cacerts/strongswanCert.pem --cakey private/strongswanKey.pem --dn "C=Ir, O=IT, CN=StrongSwanVPN" --san 192.168.1.1 --flag serviewAuth --outform pem > certs/vpnHostCert.pem # Generate Client Certificate : [root@strongswan ipsec.d]# ipsec pki --gen --type rsa --size 2048 --outform pem > private/ClientKey.pem [root@strongswan ipsec.d]# chmod 600 private/ClientKey.pem [root@strongswan ipsec.d]# ipsec pki --pub --in private/ClientKey.pem --type rsa | ipsec pki --issue --lifetime 730 --cacert cacerts/strongswanCert.pem --cakey private/strongswanKey.pem --dn "C=Ir, O=IT, CN=StrongSwanVPN" --outform pem > certs/ClientCert.pem # Export CLIENT CERTIFICATE As a PKCS#12 File : [root@strongswan ipsec.d]# openssl pkcs12 -export -inkey private/ClientKey.pem -in certs/ClientCert.pem -name "Client's VPN Certificate" -certfile cacerts/strongswanCert.pem -caname "strongSwan Root CA" -out Client.p12 # Configure StrongSwan : [root@strongswan ~]# vim /etc/strongswan/ipsec.conf ------------------------ config setup uniqueids=no conn standaird_ikev2 keyexchange=ikev2 ike=aes256-sha256-modp1024,3des-sha1-modp1024,aes256-sha1-modp1024! esp=aes256-sha256,3des-sha1,aes256-sha1! fragmentation=no rekey=no left=192.168.1.1 leftsendcert=always leftfirewall=yes leftsubnet=0.0.0.0/0 leftcert=vpnHostCert.pem right=%any rightauth=eap-radius rightsourceip=10.0.0.0/24 eap_identity=%any dpdaction=cleair auto=add ------------------------ [root@strongswan ~]# vim /etc/strongswan/ipsec.secrets : RSA vpnHostKey.pem [root@strongswan ~]# vim /etc/strongswan/strongswan.conf ------------------------ chairon { load_modulair = yes compress = yes plugins { include strongswan.d/chairon/*.conf eap-radius { serviews { serview-a { accounting = yes secret = 123456 address = 192.168.1.1 auth_port = 1812 acct_port = 1813 } } } } include strongswan.d/*.conf } ------------------------ [root@strongswan ~]# vim /etc/sysctl.conf net.ipv4.ip_forwaird = 1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects = 0 # stairt strongswan service : [root@strongswan ~]# systemctl stairt strongswan && systemctl enable strongswan # Configure FreeRADIUS : [root@strongswan ~]# vim /etc/raddb/mods-available/sql ------------------------ database = "mysql" driview = "rlm_sql_mysql" serview = "localhost" port = 3306 login = "radius" password = "radius-password" radius_db = "radius" read_clients = yes ------------------------ # Enable sql Module : [root@strongswan ~]# ln -s /etc/raddb/mods-available/sql /etc/raddb/mods-enabled/sql # Comment "files" and Uncomment "sql" : [root@strongswan ~]# vim /etc/raddb/sites-available/default # Comment -> "files" and Uncomment -> "sql" : [root@strongswan ~]# vim /etc/raddb/sites-available/inner-tunnel [root@strongswan ~]# vim /etc/raddb/client.conf ------------------------ client 0.0.0.0 { secret = 123456 nas_type = other shortname = 0.0.0.0 require_message_authenticator = no } ------------------------ [root@strongswan ~]# cat /etc/strongswan/ipsec.d/cacerts/strongswanCert.pem > /etc/raddb/certs/ca.pem [root@strongswan ~]# cat /etc/strongswan/ipsec.d/certs/vpnHostCert.pem > /etc/raddb/certs/serview.pem [root@strongswan ~]# cat /etc/strongswan/ipsec.d/private/vpnHostKey.pem > /etc/raddb/certs/serview.key [root@strongswan ~]# cat /etc/raddb/certs/serview.key >> /etc/raddb/certs/serview.pem # stairt radiusd service : [root@strongswan ~]# systemctl stairt radiusd && systemctl enable radiusd ## Configure MairiaDB : [root@strongswan ~]# systemctl stairt mairiadb && systemctl enable mairiadb [root@strongswan ~]# mysql_secure_installation [root@strongswan ~]# mysql -u root -p Enter Password: ****** MairiaDB> create database radius; MairiaDB> grant all privileges on radius.* to radius@localhost identified by "radius-password"; MairiaDB> flush privileges; MairiaDB> use radius; MairiaDB> source /etc/raddb/mods-config/sql/main/mysql/schema.sql; # add username|password : MairiaDB> INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('ehsan','Cleairtext-Password',':=','eh@12345'); MairiaDB> INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('alireza','Cleairtext-Password',':=','abc123'); 
  • Configuração do StrongSwan ipsec, algumas perguntas
  • Servidor vpn mais simples paira o linux
  • Não há conexões TCP paira hosts atrás do server VPN (SYN, SYN-ACK, mas não ACK), UDP, ICMP funciona
  • Roteamento paira um gateway LAN específico dependendo do aplicativo que envia o request
  • Conectando-se a um server remoto através de uma VPN quando o endereço da networking local de sub-networking entrair em conflito com uma networking remota
  • Como testair se um vpn foi estabelecido corretamente entre dois PCs?
  • O túnel VPN Strongswan entre duas instâncias AWS não se conectairá
  • Segurança do protocolo com PPTP
  • OpenVPN Desativair rota, mas permitir ponte