A IA pode lutar contra o aumento do número de ataques de ransomware
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
O objetivo deste tutorial é livrar-se das conexões SSH e RDP públicas. Ao colocar tudo isso atrás de um cliente HTML5 muito conveniente, podemos adicionar uma camada de segurança para acessar nossa nuvem.
O Guacamole também registra qualquer acesso remoto, para que o acesso não autorizado se torne muito mais rastreável.
Nota: Para Vamos criptografar (opção B), precisamos de um nome de domínio. Se você não tiver um, você pode pular esta etapa e apenas executar a opção A .
Comece girando um VPS na sua zona Vultr desejada. Um 1024 MB
VPS será suficiente, pois Guacamole não é tão exigente.
Comece ativando a rede privada no VPS. Isso está bem documentado aqui
Primeiro vamos endurecer um pouco a imagem. E vamos verificar se a imagem que foi provisionada foi ufw
ativada.
root@vultr:~# ufw status
Status: inactive
Por padrão, está desativado, portanto, precisaremos adicionar algumas regras.
Vamos começar com a configuração dessas portas.
ufw allow 22/tcp
ufw allow 8080/tcp
Em seguida, ative o firewall.
ufw enable
Não se preocupe se você receber um aviso. Se você adicionou a porta 22
, não enfrentará nenhum problema.
root@vultr:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Uma vez ativado, solicite o status do firewall e veremos a configuração da porta.
ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
8080/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
8080/tcp (v6) ALLOW Anywhere (v6)
Antes de começarmos a instalar, precisamos atualizar e atualizar o repositório. Com pacotes como o Tomcat
que é baseado em Java, há um fluxo constante de bugs descobertos e suas correções associadas. Geralmente, é uma boa ideia fazer isso primeiro, em vez de entrar diretamente em nossa instalação.
apt-get update
apt-get -y upgrade
A seguir estão todas as dependências. Guacamole tem alguns deles. (Uma lista completa de dependências e suas funções podem ser encontradas aqui ). Vamos continuar instalando todos eles.
apt-get -y install build-essential tomcat8 freerdp libcairo2-dev libjpeg-turbo8-dev libpng12-dev libossp-uuid-dev libavcodec-dev libavutil-dev libfreerdp-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvorbis-dev libwebp-dev mysql-server mysql-client mysql-common mysql-utilities libswscale-dev libvncserver-dev libpulse-dev libssl-dev
Quando o instalador solicitar uma senha root do MySQL, forneça uma e certifique-se de anotá-la. Usaremos essa senha posteriormente para criar o banco de dados Guacamole.
Agora que temos todas as nossas dependências, podemos continuar com o download do Guacamole. O próprio guacamole vem principalmente na forma de fonte e não em binário. Primeiro, iremos para a /tmp
pasta para evitar bagunçar outras partes do disco. Faça o download de todo o código-fonte.
Existem quatro arquivos de origem / binários para baixar:
guacamole-0.9.13-incubating.war
: Este é o aplicativo da web. Um WAR
arquivo é um pacote da Web compactado que fornece um único site hospedado em um site Tomcatguacamole-server-0.9.13-incubating.tar.gz
: Este arquivo fornecerá o guacd
aplicativo back-end . Isso cria os fluxos por meio de RDP e SSH.guacamole-auth-jdbc-0.9.13-incubating.tar.gz
: Usaremos um banco de dados MySQL local, portanto, precisamos do JDBC
conector associado .mysql-connector-java-5.1.43.tar.gz
: Sem um driver de banco de dados, o conector JDBC não faz nada. Este arquivo é fornecido pela própria equipe do MySQL.Nota: downloads resolvidos para o servidor mais próximo .
cd /tmp
wget http://apache.belnet.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-0.9.13-incubating.war
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/source/guacamole-server-0.9.13-incubating.tar.gz
wget http://apache.cu.be/incubator/guacamole/0.9.13-incubating/binary/guacamole-auth-jdbc-0.9.13-incubating.tar.gz
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.43.tar.gz
Depois de baixar todos esses arquivos, extraia os arquivos tar.gz
.
tar -xzvf guacamole-server-0.9.13-incubating.tar.gz
tar -xzvf guacamole-auth-jdbc-0.9.13-incubating.tar.gz
tar -xzvf mysql-connector-java-5.1.43.tar.gz
Agora que extraímos todo o código-fonte, vamos criar algumas guacamole
pastas, que serão usadas pelo aplicativo guacamole e suas dependências.
mkdir -p /etc/guacamole/lib
mkdir -p /etc/guacamole/extensions
Está tudo pronto para os nossos novos binários Guacamole. Agora podemos iniciar o processo de compilação e instalação. Vá para a pasta extraída do Guacamole Server.
cd /tmp/guacamole-server-0.9.13-incubating
Configure o aplicativo para também criar um init.d
arquivo para executá-lo como um serviço posteriormente.
./configure --with-init-dir=/etc/init.d
O comando deve terminar com um 'sim' em todas as bibliotecas e protocolos. Caso contrário, volte e verifique o comando apt-get para garantir que você não perdeu nenhum pacote.
------------------------------------------------
guacamole-server version 0.9.13-incubating
------------------------------------------------
Library status:
freerdp ............. yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ yes
libwebp ............. yes
Protocol support:
RDP ....... yes
SSH ....... yes
Telnet .... yes
VNC ....... yes
Services / tools:
guacd ...... yes
guacenc .... yes
Init scripts: /etc/init.d
Type "make" to compile guacamole-server.
Em seguida, compile e instale o servidor Gucamole.
make && make install
Feito isso, execute ldconfig
a reconstrução do caminho de pesquisa das bibliotecas que foram adicionadas.
ldconfig
Prossiga usando o systemctl
setup guacd
(Guacamole Daemon) para iniciar na inicialização.
systemctl enable guacd
Os binários Guacamole agora estão instalados. Agora vamos preparar o aplicativo Web para o Tomcat.
Comece movendo o war
arquivo para a guacamole
pasta que acabamos de criar, uma vez feito isso, crie um link lógico no diretório tomcat para apontar para o nosso war
arquivo.
cd /tmp
mv guacamole-0.9.13-incubating.war /etc/guacamole/guacamole.war
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat8/webapps/
Então precisamos do conector mysql e JDBC. O driver JDBC é necessário na extensions
pasta, o conector na lib
pasta.
cp mysql-connector-java-5.1.43/mysql-connector-java-5.1.43-bin.jar /etc/guacamole/lib/
cp guacamole-auth-jdbc-0.9.13-incubating/mysql/guacamole-auth-jdbc-mysql-0.9.13-incubating.jar /etc/guacamole/extensions/
Depois que o conector e o JDBC estiverem instalados, precisamos editar o tocamt8
arquivo. Este arquivo contém muitas tomcat8
configurações e, no nosso caso, precisamos adicionar a GUACAMOLE_HOME
variável no final do arquivo.
nano /etc/default/tomcat8
Anexe com o seguinte.
GUACAMOLE_HOME=/etc/guacamole
O próximo passo é criar o banco de dados. O Guacamole armazena sua configuração de conexão em um banco de dados, não dentro de um arquivo.
Entre com o que root password
você usou durante a instalação.
mysql -u root -p
O primeiro passo é criar um banco de dados chamado 'guacamole_db'.
create database guacamole_db;
Em seguida, execute o create user
comando Isso criará um usuário com uma senha mysupersecretpassword
, da qual ele poderá se conectar apenas localhost
.
create user 'guacamole_user'@'localhost' identified by "mysupersecretpassword";
Conceda CRUD
operações a este usuário para o banco de dados guacamole_db
.
GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO 'guacamole_user'@'localhost';
Liberar privilégios e sair do shell.
flush privileges;
exit
Finalize adicionando o esquema Guacamole ao nosso banco de dados recém-criado.
cat /tmp/guacamole-auth-jdbc-0.9.13-incubating/mysql/schema/*.sql | mysql -u root -p guacamole_db
Feito isso, precisamos editar o guacamole.properties
arquivo. Este arquivo contém nossa configuração de servidor MySQL criada recentemente.
nano /etc/guacamole/guacamole.properties
Anexe os detalhes e credenciais da conexão MySQL.
mysql-hostname: localhost
mysql-port: 3306
mysql-database: guacamole_db
mysql-username: guacamole_user
mysql-password: mysupersecretpassword
Conclua criando um link simbólico para a pasta de compartilhamento do tomcat, pois é onde o WAR
arquivo pesquisará essas propriedades.
ln -s /etc/guacamole /usr/share/tomcat8/.guacamole
Termine reiniciando o tomcat8
servidor e inicie o guacd
daemon do servidor.
service tomcat8 restart
service guacd start
Você pode verificar usando o comando status.
service tomcat8 status
service guacd status
Agora você pode navegar para o seu VPS na porta 8080
http://<yourpublicip>:8080/guacamole/
Use o nome de usuário guacadmin
e a mesma senha guacadmin
. Isso concederá acesso a um servidor Guacamole vazio.
Clique no canto superior direito do seu nome de usuário guacadmin
e selecione Settings
. Quando estiver na página de configurações, vá para a Users
guia e selecione o usuário guacadmin
.
Agora altere sua senha para outra coisa ou crie um novo usuário administrador e exclua a senha padrão guacadmin
.
Estes são os passos finais: limpar depois de terminar.
Exclua o código-fonte e os binários baixados da /tmp
pasta.
rm -rf /tmp/guacamole-*
rm -rf /tmp/mysql-connector-java-*
Além disso, torne o aplicativo da web Guacamole o padrão. No ecossistema tomcat, o aplicativo que obtém a ROOT
pasta é aquele iniciado por padrão quando você acessa o site.
Exclua o ROOT
espaço reservado antigo .
rm -rf /var/lib/tomcat8/webapps/ROOT
E faça um link simbólico para o servidor guacamole ser o ROOT
único.
ln -s /var/lib/tomcat8/webapps/guacamole /var/lib/tomcat8/webapps/ROOT
Isso requer uma reinicialização do tomcat.
service tomcat8 restart
Edite o tomcat8/server.xml
arquivo e altere a porta do conector.
nano /etc/tomcat8/server.xml
Procure o Connector port
.
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
E substitua 8080
por 80
.
Por padrão, o tomcat não permite a ligação de portas abaixo 1024
. Para habilitar isso, precisamos informar ao tomcat8 para criar ligações autenticadas.
Edite o default
arquivo de tomcat8 e remova o comentário da AUTHBIND
linha e use a opçãoyes
nano /etc/default/tomcat8
AUTHBIND=yes
Feito isso, instale authbind
.
apt-get install authbind
Configure-o para que a porta 80
possa ser reivindicada pelo tomcat8.
touch /etc/authbind/byport/80
chmod 500 /etc/authbind/byport/80
chown tomcat8 /etc/authbind/byport/80
Permita a porta 80
através do firewall e exclua a regra para 8080
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Reinicie o tomcat.
service tomcat8 restart
É isso, agora o Guacamole deve estar rodando no porto 80
.
O Tomcat realmente não é um dos aplicativos melhores e mais robustos para usar certbot
. Felizmente Nginx é. Vamos apenas fazer proxy do tomcat para o Nginx. Ele usa a funcionalidade pronta para uso do certbot ao custo de sacrificar um pouco de RAM.
apt-get install nginx
Depois de instalado, edite a configuração padrão.
nano /etc/nginx/sites-available/default
Exclua todas as configurações de exemplo e adicione a seguinte configuração.
server {
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Isso criará um proxy para o site em execução em 8080
. Reinicie o Nginx e ative-o na inicialização.
systemctl restart nginx
systemctl enable nginx
Verifique se está tudo funcionando.
systemctl status nginx
Desative a porta de teste 8080
e permita o tráfego na porta 80
.
ufw allow 80/tcp
ufw delete allow 8080/tcp
Antes de podermos usar certbot
, precisamos adicionar o correto ppa
ao sistema que contém nossos pacotes certbot.
add-apt-repository ppa:certbot/certbot
Pressione " ENTER
" para aceitar a alteração na configuração.
Atualize apt
para reunir os novos pacotes.
apt-get update
Por fim, instale o módulo Nginx para atribuir os certificados.
apt-get -y install python-certbot-nginx
Configure o firewall para permitir HTTPS
.
ufw allow 443/tcp
Antes de podermos solicitar novos certificados, precisamos de um nome DNS.
nano /etc/nginx/sites-available/default
Adicione a seguinte server_name
configuração.
server_name rdp.example.com;
Altere a configuração para refletir essa nova configuração.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Verifique se tudo está funcionando e reinicie o Nginx.
nginx -t
service nginx restart
Agora solicite um certificado com certbot.
certbot --nginx -d rdp.example.com
Forneça seu email e concorde com as perguntas feitas pelo instalador. (Você pode escolher " No
" com segurança para compartilhar seu email.) O Certbot perguntará automaticamente o que ele precisa fazer HTTPS
. Nós estaremos usando a opção 2: redirect to HTTPS
.
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
A última coisa que faremos é atualizar os DH
parâmetros. Estes são, por padrão, um pouco fracos para os padrões de 2017.
Crie alguns novos.
openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Em seguida, adicione-os ao site padrão no Nginx.
nano /etc/nginx/sites-available/default
Adicione-os à configuração do servidor.
server {
server_name rdp.example.com;
listen 0.0.0.0:80;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
proxy_request_buffering off;
proxy_buffering off;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
Verifique se há erros.
nginx -t
Aplique as alterações reiniciando o servidor.
service nginx restart
Limpar a 8080
regra antiga
ufw delete allow 8080/tcp
Nota: se você receber um "502 Bad Gateway", precisará reiniciar o tomcat8 .
service tomcat8 restart
Vamos criptografar certificados exigem renovação. Podemos criar um trabalho cron para isso. Comece editando o crontab
.
crontab -e
Adicione a seguinte linha.
00 2 * * * /usr/bin/certbot renew --quiet
Isso verificará às 2:00 da manhã se algum certificado exige uma renovação e, se necessário, será renovado.
Vá para o servidor Guacamole ( http://<ip>/
ou https://rdp.example.com)
).
Para este teste, você precisará de mais duas instâncias: uma VM Linux e outra Windows Server 2012 R2 com um IP privado ativado em ambas.
Clique no " username
" no canto superior direito e vá para " Settings
". Então vá para " Connections
" e selecione " New Connection
".
Preencha as seguintes configurações (você pode deixar os outros como padrão).
Name: Windows Server 2012 R2
Location: ROOT
Protocol: RDP
Maximum number of connections: 1
Maximum number of connections per user: 1
Parameters > Hostname: 10.99.0.12
Parameters > Port: 3389
Username: Administrator
Password: <password> (provided by Vultr)
Security mode: Any
Ignore server certificate: <checked>
Pressione " save
" e volte para a tela inicial. Agora você pode clicar na Windows Server 2012 R2
conexão " " e ela fará o RDP para esta máquina.
Pressione " Ctrl+Shift+Alt
". Isso exibirá o menu ao lado. Aqui você pode desconectar ou executar outras tarefas administrativas do Guacamole.
Clique username
na parte superior do menu e vá para " Settings
". Então vá para a Connections
aba " " e selecione " New Connection
".
Preencha as seguintes configurações (você pode deixar os outros como padrão).
Name: Linux
Location: ROOT
Protocol: SSH
Maximum number of connections: 5
Maximum number of connections per user: 2
Parameters > Hostname: 10.99.0.11
Parameters > Port: 22
Username: root
Password: <password> (provided by Vultr)
Pressione " save
" e volte para a tela inicial. Agora você pode clicar nesta conexão recém-criada e estar conectado ao seu servidor Linux via SSH.
Agora você tem um gateway RDP / SSH HTML5 da web. Agora você pode firewall do acesso público RDP e SSH da sua plataforma e acessar seu ambiente a partir de qualquer navegador moderno. Para mais informações sobre o que o Guacamole pode oferecer, há um ótimo vídeo mostrando todas as possibilidades da plataforma aqui .
Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane
ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.
O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+
Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.
Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais
13 Ferramentas de Extração de Dados Comerciais de Big Data
Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true
À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.
Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1
A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA na área da saúde ainda está crescendo dia a dia.