Instalação GSClient AppImage 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).
Sistema Operacional
Requisitos mínimos do Sistema Operacional e como validá-los.
1 - Arquitetura 64 bits.
- Utilizando o comando abaixo um dos números deve ser 64:
bash uname -m
2 - Framework FUSE (Filesystem in Userspace)
- O utilizando os comandos abaixo, um deles deve retornar a versão se estiver instalado:
bash (fusermount3 --version || fusermount --version)
3 - Biblioteca GNU C Library (glibc) versão 2.27 ou superior.
- Utilizando o comando abaixo, o número no final da primeira linha deve ser maior ou igual a 2.27:
bash ldd --version
Caso a versão da distribuição Linux sendo utilizada não atenda esses requisitos, será necessário uma das 3 alternativas abaixo:
-
Atualizar a versão da distribuição ou das dependências para que atendam os requisitos.
-
Utilizar outra distribuição ou versão que atenda os requisitos.
-
Em último caso, menos recomendado, utilizar o GSClient Classic.
Instalação
A instalação deve ser realizada com o usuário root:
sudo su
Existem duas maneiras de realizar a instalação, via script ou manualmente.
Instalação via script
Executar o comando abaixo e seguir a instalação conforme o script solicitar:
U="https://gsurf.com.br/lib/linux/script_gsclient"; (curl -sL $U || wget -qO- $U) | bash
Observação: Antes de iniciar a nova instalação, o script removerá automaticamente versões anteriores, mas apenas se estiverem no padrão GSurf, instalações customizadas (pastas, arquivos ou serviços renomeados) exigem remoção manual.
Instalação manual
Clique aqui para abrir o passo a passo
** #### 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:
1. Finaliza serviço do GSClient Classic
2. Finaliza serviço do GSClient AppImage
3. Remove certificado
4. Remove pasta do GSClient Classic
5. Remove pasta do GSClient AppImage
6. Remove GSClient AppImage
7. Remove a libGSurfRSA.so das pastas padrões lib do linux
8. Remove o serviço do GSClient Classic do systemd
9. Remove o serviço do GSClient AppImage do systemd
10. Remove o serviço do GSClient Classic do init.d
11. Remove o serviço do GSClient AppImage do init.d
12. Remove linha de inicialização do GSClient Classic do rc.local
13. Remove linha de inicialização do GSClient AppImage do rc.local
14. Remove linha de inicialização do GSClient Classic do rc.d/rc.local
15. 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 - Realizar o início da instalação:
**Executar os comandos abaixo caso a versão da glibc no Sistema Operacional seja 2.34 ou superior:**
mkdir -p /usr/sbin/gsurf
wget https://gsurf.com.br/lib/linux/gsclient_appimage_tls3.zip -P /usr/sbin/gsurf
(unzip -o /usr/sbin/gsurf/gsclient_appimage_tls3.zip -d /usr/sbin/gsurf || bsdtar -xf /usr/sbin/gsurf/gsclient_appimage_tls3.zip -C /usr/sbin/gsurf || busybox unzip -o /usr/sbin/gsurf/gsclient_appimage_tls3.zip -d /usr/sbin/gsurf) 2>/dev/null
chmod +x /usr/sbin/gsurf/*
**Executar os comandos abaixo caso a versão da glibc no Sistema Operacional esteja entre 2.27 e 2.33:**
mkdir -p /usr/sbin/gsurf
wget https://gsurf.com.br/lib/linux/gsclient_appimage_tls1.zip -P /usr/sbin/gsurf
(unzip -o /usr/sbin/gsurf/gsclient_appimage_tls1.zip -d /usr/sbin/gsurf || bsdtar -xf /usr/sbin/gsurf/gsclient_appimage_tls1.zip -C /usr/sbin/gsurf || busybox unzip -o /usr/sbin/gsurf/gsclient_appimage_tls1.zip -d /usr/sbin/gsurf) 2>/dev/null
chmod +x /usr/sbin/gsurf/*
Os comandos em ordem realizam as seguintes funções:
1. Cria o diretório gsurf para os arquivos
2. Instala a versão do GSClient dentro da pasta gsurf
3. Descompacta o arquivo
4. Concede permissão de execução para os arquivos
#### Instalação do Certificado
1 - Executar o instalador do certificado:
/usr/sbin/gsurf/gsclient_setup.AppImage
2 - No campo **Usuário** digite seu usuário de acesso a Central de Parceiros.
3 - No campo **Senha** 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 **Certificado instalado, pronto para execução do GS Client**.
#### Configurar execução como serviço
1 - Preparar o GSClient:
mv /usr/sbin/gsurf/gsclient.AppImage /usr/sbin
restorecon -v /usr/sbin/gsclient.AppImage 2>/dev/null
rm -r /usr/sbin/gsurf
Os comandos em ordem realizam as seguintes funções:
1. Move o GSClient para a pasta /usr/sbin
2. Caso o sistema tenha SELinux, restaura o contexto do GSClient para o padrão da pasta /usr/sbin
3. Remove a pasta de instalação
**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:**
#### Systemd
1 - Verificar se o sistema utiliza systemd:
- Utilizando o comando abaixo o resultado deve ser systemd:
```bash
ps -p 1 -o comm=
```
2 - Realizar a criação do serviço no systemd:
mkdir -p /usr/lib/systemd/system
cat <<EOF > /usr/lib/systemd/system/gsclient.service
[Unit]
Description=GSClient
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/sbin/gsclient.AppImage
[Install]
WantedBy=multi-user.target
EOF
chmod +x /usr/lib/systemd/system/gsclient.service
Os comandos em ordem realizam as seguintes funções:
1. Cria a pasta system dentro do systemd caso ela não exista
2. Cria o arquivo gsclient.service dentro da pasta system e preenche com o script de inicialização
3. Concede a permissão de execução para o arquivo
3 - Realizar a inicialização do serviço no systemd:
systemctl daemon-reload
systemctl enable gsclient.service
systemctl start gsclient.service
systemctl status gsclient.service
Os comandos em ordem realizam as seguintes funções:
1. Atualiza a lista de serviço
2. Configura o serviço como automático
3. Inicia o serviço
4. Verifica o status do serviço
#### Init.d
1 - Caso não utilize systemd, verificar se o sistema utiliza init.d:
- O comando abaixo deve executar sem erros:
```bash
ls /etc/init.d/
```
2 - Realizar a criação do serviço no init.d:
cat <<'EOF' > /etc/init.d/gsclient
#!/bin/sh
### BEGIN INIT INFO
# Provides: gsclient
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: false
# Short-Description: GSClient script
# Description: Start/Stop GSClient
### END INIT INFO
DESC="GSClient script"
NAME=gsclient
do_start() {
echo "Starting $NAME!";
/usr/sbin/gsclient.AppImage &
}
do_stop() {
echo "Stopping $NAME!"
killall gsclient
}
case "$1" in
start)
do_start
;;
stop)
do_stop
;;
esac
exit 0
EOF
chmod +x /etc/init.d/gsclient
update-rc.d gsclient defaults
Os comandos em ordem realizam as seguintes funções:
1. Cria o arquivo gsclient dentro do init.d e preenche com o script de inicialização
2. Concede permissões para o arquivo
3. Configura o serviço como automático (Caso retorne comando não enconrado, o sistema não utiliza init.d)
3 - Iniciar o serviço:
/etc/init.d/gsclient start
#### Rc.local 1 - Caso não utilize systemd ou init.d, verificar se o sistema utiliza rc.local: - Verificar se a localização é: **/etc/rc.local** ```bash ls /etc/rc.local ``` - Verificar se a localização é: **/etc/rc.d/rc.local** ```bash ls /etc/rc.d/rc.local ``` 2 - Adicionar a inicialização do serviço no rc.local: - Caso seja: **/etc/rc.local** ```bash grep -qxF '/usr/sbin/gsclient.AppImage &' /etc/rc.local || echo '/usr/sbin/gsclient.AppImage &' >> /etc/rc.local chmod +x /etc/rc.local ``` - Caso seja: **/etc/rc.d/rc.local** ```bash grep -qxF '/usr/sbin/gsclient.AppImage &' /etc/rc.d/rc.local || echo '/usr/sbin/gsclient.AppImage &' >> /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local ``` Os comandos em ordem realizam as seguintes funções: 1. Adiciona a inicialização do serviço na última linha do rc.local caso já não esteja adicionado 2. Concede a permissão de execução para o arquivo 3 - Iniciar o serviço: - Caso seja: **/etc/rc.local** ```bash /etc/rc.local ``` - Caso seja: **/etc/rc.d/rc.local** ```bash /etc/rc.d/rc.local ```
Teste de conexão
1 - Caso a execução como serviço não tenha sido configurada, é possível iniciar manualmente:
/usr/sbin/gsclient.AppImage &
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 gsclient
3 - Execute um teste de comunicação utilizando telnet ou nc no IP 127.0.0.1 e na porta desejada:
- Caso seja SiTef:
bash telnet 127.0.0.1 4096
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 -S today
2 - Syslog:
cat /var/log/syslog | grep GSURF
3 - Messages:
cat /var/log/messages | grep GSURF
Arquivos
Segue abaixo todos os arquivos do GSClient AppImage 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/service.cfg -
Contém os serviços do terminal da CDP na última instalação.
- Adição de novos serviços no terminal da CDP com porta ou categoria diferentes dos anteriores exigem reinstalação do certificado.
-
/usr/sbin/gsclient.AppImage -
Arquivo de execução da VPN.
-
/usr/lib/systemd/system/gsclient.service -
Inicializador do serviço pelo Systemd.
-
/etc/init.d/gsclient -
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 |
|---|---|---|
| Criação do documento | Vitor Hugo | 09/09/2025 – v1.0 |
