Instalação GSClient no Linux
Documento com a lista de códigos de erros
Requisitos Básicos
Liberações no Firewall
Segue abaixo o nosso range de IPs e portas para liberação no firewall da máquina ou da rede, ou validação da rota por parte do provedor de internet.
IP:
- 18.231.194.64/26
Portas:
- 443/UDP
- 443/TCP
- 55844/TCP
- 55845/TCP
E DNS local 53/UDP (consultas em gsurfnet.com).
Distribuições Homologadas
| S.O | Arquitetura | Versão | Fingerprint | glibc |
|---|---|---|---|---|
| Ubuntu | x86 | 14.04.5 até 21.10 | /var/lib/dbus/machine-id | 2.11.1 |
| Ubuntu | x64 | 14.04.5 até 21.10 | /var/lib/dbus/machine-id | 2.14 |
| CentOS | x86 | 7 | /etc/machine-id | 2.11.1 |
| CentOS | x64 | 7 | /etc/machine-id | 2.14 |
Links para Download
Existem diferentes versões do GSClient dependendo da distribuição e arquitetura do sistema, segue abaixo o link para download das versões:
-
https://gsurf.com.br/lib/linux/gsclient_centos_x64.zip
-
https://gsurf.com.br/lib/linux/gsclient_centos_x86.zip
-
https://gsurf.com.br/lib/linux/gsclient_ubuntu_x64.zip
-
https://gsurf.com.br/lib/linux/gsclient_ubuntu_x86.zip
Remoção de GSClient antigo
Somente realizar esse passo caso tenha algum GSClient instalado na máquina.
1 - Anotar a identificação do terminal da Central de Parceiros (CDP) que está instalado para reinstalar a OTP dele e utilizar na nova instalação:
cat /usr/gsurf/gsurfcli.txt
2 - Realizar a remoção completa dos arquivos antigos padrão GSurf:
killall serverSSL 2>/dev/null
killall gsclient 2>/dev/null
rm -r /usr/gsurf 2>/dev/null
rm -r /gsurf/ 2>/dev/null
rm -r /usr/sbin/gsurf/ 2>/dev/null
rm /usr/sbin/gsclient.AppImage 2>/dev/null
find /lib* /usr/lib* -name "libGSurfRSA.so" -delete 2>/dev/null
rm /usr/lib/systemd/system/libssl.service 2>/dev/null
rm /usr/lib/systemd/system/gsclient.service 2>/dev/null
rm /etc/init.d/serverSSL 2>/dev/null
rm /etc/init.d/gsclient 2>/dev/null
sed -i '/serverSSL/d' /etc/rc.local 2>/dev/null
sed -i '/gsclient.AppImage/d' /etc/rc.local 2>/dev/null
sed -i '/serverSSL/d' /etc/rc.d/rc.local 2>/dev/null
sed -i '/gsclient.AppImage/d' /etc/rc.d/rc.local 2>/dev/null
Os comandos em ordem realizam as seguintes funções:
- Finaliza serviço do GSClient Classic
- Finaliza serviço do GSClient AppImage
- Remove certificado
- Remove pasta do GSClient Classic
- Remove pasta do GSClient AppImage
- Remove GSClient AppImage
- Remove a libGSurfRSA.so das pastas padrões lib do linux
- Remove o serviço do GSClient Classic do systemd
- Remove o serviço do GSClient AppImage do systemd
- Remove o serviço do GSClient Classic do init.d
- Remove o serviço do GSClient AppImage do init.d
- Remove linha de inicialização do GSClient Classic do rc.local
- Remove linha de inicialização do GSClient AppImage do rc.local
- Remove linha de inicialização do GSClient Classic do rc.d/rc.local
- Remove linha de inicialização do GSClient AppImage do rc.d/rc.local
Observação: Os comandos removerão automaticamente a versão anterior do GSClient, porém apenas se foi instalada no padrão GSurf. Instalações customizadas (outras pastas, arquivos ou serviços renomeados) exigem remoção manual.
Início da instalação
1 - Logar no terminal e alternar para o usuário root:
sudo su
2 - Criar o diretório gsurf para os arquivos e alterar para ele:
mkdir /gsurf && cd /gsurf
3 - Instalar a versão do GSClient desejada dentro da pasta gsurf especificando o link:
wget 'LINK DO GSCLIENT' -P /gsurf
4 - Descompactar o arquivo usando o comando:
(unzip -o /gsurf/gsclient_*.zip -d /gsurf/ || bsdtar -xf /gsurf/gsclient_*.zip -C /gsurf/ || busybox unzip -o /gsurf/gsclient_*.zip -d /gsurf/) 2>/dev/null
5 - Copiar a libGSurfRSA.so para as pastas lib do Linux:
cp /gsurf/libGSurfRSA.so /lib && cp /gsurf/libGSurfRSA.so /usr/lib
6 - Conceder permissão de execução nos arquivos:
chmod +x /gsurf/*
Instalação do Certificado
1 - Executar o instalador do certificado:
/gsurf/instalador
2 - No campo Usuário de acesso digite seu usuário de acesso a Central de Parceiros.
3 - No campo Senha de acesso digite sua senha de acesso a Central de Parceiros.
4 - No campo OTP digite o código de 10 números localizado dentro do terminal na Central de Parceiros.
No final deverá ocorrer a mensagem Instalação do certificado efetuada com sucesso.
Configurar execução como serviço
Existe 3 formas de configurar a execução da VPN como serviço para que ela inicie junto da máquina quando a mesma for ligada.
Utilizar somente uma das opções abaixo, dependendo do que o sistema utiliza (Systemd, Init.d ou Rc.local) para configurar a inicialização por serviço:
Sistemas que utilizam systemd
1 - Criar a pasta system caso ela não exista:
mkdir /usr/lib/systemd/system
2 - Criar o arquivo libssl.service que será responsável por iniciar a VPN junto da máquina:
vi /usr/lib/systemd/system/libssl.service
Caso o comando vi não funcione, pode utilizar o nano, vim ou outro editor de texto da sua escolha.
3 - Será aberto um arquivo vazio para edição, no caso do vi apertar i para editar.
- Preencher com o conteúdo abaixo caso seja SiTef:
```bash
[Unit]
Description=LibSSL_GSurf
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/gsurf/serverSSL -s sitef
[Install]
WantedBy=multi-user.target
```
- Preencher com o conteúdo abaixo caso seja Scope:
```bash
[Unit]
Description=LibSSL_GSurf
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/gsurf/serverSSL -s scopelegado -p 2046
[Install]
WantedBy=multi-user.target
```
Apertar esc para sair do modo edição, apertar shift e : juntos, escrever wq e apertar enter para salvar.
4 - Conceder a permissão para o arquivo:
chmod +x /usr/lib/systemd/system/libssl.service
5 - Executar os 4 comandos na sequência (o primeiro atualiza a lista de serviço, o segundo configura o serviço como automático, o terceiro inicia o serviço e o quarto verifica o status do serviço):
systemctl daemon-reload
systemctl enable libssl.service
systemctl start libssl.service
systemctl status libssl.service
(Obs. Pressione q ou ctrl e c para sair).
Sistemas que utilizam init.d
1 - Criar a pasta init.d caso ela não exista:
mkdir /etc/init.d
2 - Crie o arquivo serverSSL dentro do init.d que será responsável por iniciar a VPN junto da máquina:
vi /etc/init.d/serverSSL
Caso o comando vi não funcione, pode utilizar o nano, vim ou outro editor de texto da sua escolha.
3 - Será aberto um arquivo vazio para edição, no caso do vi apertar i para editar.
- Preencher com o conteúdo abaixo caso seja SiTef:
```bash
#!/bin/sh
### BEGIN INIT INFO
# Provides: testone
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: false
# Short-Description: Example init script
# Description: Start/stop an example script
### END INIT INFO
DESC="SSL script"
NAME=serverSSL
do_start() {
echo "starting!";
/gsurf/serverSSL -s sitef &
}
do_stop() {
echo "stopping!"
killall serverSSL
}
case "$1" in
start)
do_start
;; stop)
do_stop
;;
esac
exit 0
```
- Preencher com o conteúdo abaixo caso seja Scope:
```bash
#!/bin/sh
### BEGIN INIT INFO
# Provides: testone
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: false
# Short-Description: Example init script
# Description: Start/stop an example script
### END INIT INFO
DESC="SSL script"
NAME=serverSSL
do_start() {
echo "starting!";
/gsurf/serverSSL -s scopelegado -p 2046 &
}
do_stop() {
echo "stopping!"
killall serverSSL
}
case "$1" in
start)
do_start
;; stop)
do_stop
;;
esac
exit 0
```
Apertar esc para sair do modo edição, apertar shift e : juntos, escrever wq e apertar enter para salvar.
4 - Executar os 2 comandos na sequência (o primeiro adiciona permissão e o segundo configura o serviço como automático):
chmod +x /etc/init.d/serverSSL
update-rc.d serverSSL defaults
5 - Iniciar o serviço:
/etc/init.d/serverSSL start
Sistemas que utilizam rc.local
1 - Acessar o rc.local:
vi /etc/rc.local
Caso o comando vi não funcione, pode utilizar o nano, vim ou outro editor de texto da sua escolha.
2 - Será aberto um arquivo para edição, no caso do vi apertar i para editar e na última linha do arquivo:
- Preencher com o conteúdo abaixo caso seja SiTef:
bash /gsurf/serverSSL -s sitef & - Preencher com o conteúdo abaixo caso seja Scope:
bash /gsurf/serverSSL -s scopelegado -p 2046 &
Apertar esc para sair do modo edição, apertar shift e : juntos, escrever wq e apertar enter para salvar.
3 - Conceder a permissão para o arquivo:
chmod +x /etc/rc.local
4 - Iniciar o serviço:
/etc/rc.local
Teste de conexão
1 - Caso não tenha configurado uma das execuções como serviço descritas acima, pode iniciar o serviço manualmente:
- Caso seja SiTef:
bash /gsurf/serverSSL -s sitef & - Caso seja Scope:
bash /gsurf/serverSSL -s scopelegado -p 2046 &
Apertar enter até ele voltar para o terminal normal (mostrando o usuário e etc).
2 - Verificar se o serviço está rodando:
pgrep -af serverSSL
3 - Execute um teste de comunicação utilizando telnet ou nc:
- Caso seja SiTef:
bash telnet 127.0.0.1 4096 - Caso seja Scope:
bash telnet 127.0.0.1 2046
Aperte Ctrl e c ou Ctrl e ç, q e enter para fechar a conexão.
Logs
Existem diferentes arquivos onde podem ser armazenados os logs da VPN.
1 - Journal:
journalctl $(journalctl -F SYSLOG_IDENTIFIER | grep ^GSURF | sed 's/^/-t /') --no-pager
1 - Syslog:
cat /var/log/syslog | grep GSURF
2 - Messages:
cat /var/log/messages | grep GSURF
3 - Loggs.txt (Apenas versão x86/x32)
cat /tmp/loggs.txt
Arquivos
Segue abaixo todos os arquivos do GSClient em suas localização padrões, juntamente de informações sobre eles:
/usr/gsurf/certificado.pfx-
Certificado.
-
/usr/gsurf/tk.dat -
Autenticador (criado após primeira conexão).
-
/usr/gsurf/gsurfcli.txt -
Identificação do terminal da CDP.
-
/usr/gsurf/region.txt -
Região de conexão.
- Deve conter escrito somente 3 ou sp2.
-
/usr/gsurf/serverSSL -
Arquivo de execução da VPN.
-
/usr/lib/systemd/system/libssl.service -
Inicializador do serviço pelo Systemd.
-
/etc/init.d/serverSSL -
Inicializador do serviço pelo Init.d.
-
/etc/rc.local -
Inicializador do serviço pelo rc.local.
-
/etc/rc.d/rc.local - Inicializador do serviço pelo rc.d/rc.local.
Histórico de Revisões
| Descrição | Autor | Versão e Data |
|---|---|---|
| Revisão de documento | Anderson Hoffmann | 12/03/2018 – v1.0 |
| Revisão de documento | Rafael Frasson | 27/06/2018 – v2.0 |
| Revisão de documento | Anderson Hoffmann | 22/07/2019 – v3.0 |
| Revisão de documento | Raphael Brito Gabriel Lopes |
22/11/2021 – v4.0 |
| Revisão de documento | Vitor Hugo | 19/03/2025 – v5.0 |
| Revisão de documento | Vitor Hugo | 10/09/2025 – v6.0 |
