Demorei um pouco, mas eu percebi isso e estou atualmente VNC'ing em minha caixa do Ubuntu 12.04 novamente da minha máquina de desktop 12.04 do Ubuntu. Aqui está o que eu tive que fazer.
ufw (parede de fogo descomplicada) e iptables não são persistentes. Então, após a reinicialização, todos os problemas que levei para permitir que meu computador e laptop fizessem login remotamente estavam desabilitados. Então eu encontrei meu arquivo .xsession-errors como > 32GB e eu não consegui logar remotamente usando o VNC. Então, a primeira coisa a corrigir é desabilitar logins remotos. Em seguida, faça o iptables recarregar na inicialização e insira as regras para bloquear todo mundo, exceto meus endereços IP locais para vnc.
Para desativar os logins remotos, procuramos por remoto e selecionamos Desktop Sharing. Em seguida, desative Permitir que outros usuários controlem sua área de trabalho e desabilite Permitir que outros usuários visualizem sua área de trabalho. Reinicie. Agora ninguém mais poderá tentar invadir enquanto consertamos isso.
Para tornar o iptables persistente usando o terminal cntrl alt t
.
sudo apt-get update
e, em seguida, sudo apt-get install iptables-persistent
Selecione sim para salvar as regras atuais da tabela ip4 e ip6. Vamos salvá-los novamente depois de testar os novos.
Primeiro, verifique suas regras de INPUT existentes para ver se você deseja mantê-las. Copie-os se não tiver certeza.
sudo iptables -S
Etapas para excluir regras INPUT existentes. Eu só mudei minhas regras de entrada.
sudo iptables -F INPUT
Inscritos nas minhas regras atuais de INPUT. Você precisará alterar seus intervalos de endereços para o seu sistema local. Observe também que não estou habilitando a porta 22 para o tunelamento SSH. Estou usando o VNC na minha rede local. Eu ainda tenho que verificar se meu roteador não retransmite meu tráfego VNC para os Ethers. Ele pode retransmitir na minha rede sem fio e terei que verificar se a criptografia WPA2 me mantém a salvo dos vizinhos.
sudo iptables -A INPUT -i lo -j ACCEPT -m comment --comment "Enable Loopback::"
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Enable Already Established:"
sudo iptables -A INPUT -m conntrack --ctstate INVALID -j DROP -m comment --comment "Disable Invalid Packets::"
sudo iptables -A INPUT -p icmp --icmp-type 8 -d 192.168.1.100 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable Local Ping::"
sudo iptables -A INPUT -p tcp --dport 80 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable Website::"
sudo iptables -A INPUT -p tcp --dport 3306 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable MySQL Server::"
sudo iptables -A INPUT -p udp --dport 137 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable Samba Share::"
sudo iptables -A INPUT -p udp --dport 138 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable Samba Share::"
sudo iptables -A INPUT -p tcp --dport 139 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable Samba Share::"
sudo iptables -A INPUT -p tcp --dport 445 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable Samba Share::"
sudo iptables -A INPUT -p tcp --dport 5800 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable VNC Input::"
sudo iptables -A INPUT -p tcp --dport 5900 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable VNC Input::"
sudo iptables -A INPUT -p tcp --dport 6000 -m iprange --src-range 192.168.1.64-192.168.1.127 -m state --state NEW -j ACCEPT -m comment --comment "Enable VNC Input::"
sudo iptables -A INPUT -j DROP -m comment --comment "Drop Everything Else::"
Você precisará alterar as regras acima com base no que está fazendo. Por exemplo, estamos executando o site do Apache2 na porta 80 e mySQL e Samba, que talvez você não precise. Há muito escrito no iptables e não sou especialista. Depois de configurar isso e testar que tudo que você precisa ainda funciona, nós atualizaremos o iptables-persistent.
Mas primeiro regras de anúncios para o ip6. Primeiro, veja quais são as regras que você pode querer manter. Anote-os se você não souber.
sudo ip6tables -S
Excluir as regras existentes de INPUT do ip6.
sudo ip6tables -F INPUT
Adicione novas regras. As minhas são simples, eu só permito loopback e abro todo o resto. Algum dia, quando estivermos usando o ip6, poderemos precisar alterá-los.
sudo ip6tables -A INPUT -i lo -j ACCEPT -m comment --comment "Enable Loopback::"
sudo ip6tables -A INPUT -j DROP -m comment --comment "Drop Everything Else::"
Observação para imprimir suas regras Eu uso sudo iptables -S
ou sudo iptables -L --line-numbers
. Para as regras do ip6, usamos sudo ip6tabls -S
ou sudo ip6tables -L --line-numbers
Por fim, depois de verificarmos como gostamos das novas regras, nós as salvamos. Caso contrário, reinicie e suas regras antigas serão reaplicadas e você poderá começar tudo de novo.
'sudo service iptables-persistent save'
Agora é seguro reativar o controle remoto usando as Preferências do Desktop Sharing. Pesquise novamente por remoto, selecione Compartilhamento da área de trabalho e Permitir que outros usuários visualizem sua área de trabalho, Permitir que outros usuários controlem sua área de trabalho. Eu recomendo exigir confirmação e uma senha, e desabilite automaticamente configurando o roteador UUPnP. Então sempre mostrar o ícone de notificação.
Por último, devemos fazer algo com o nosso arquivo de erros xsession de 32GB. Nota após a reinicialização, ele pode ser renomeado para .xsession-errors.old. Você pode checar a partir do terminal ls -l .xs*
irá listar todos os arquivos que começam em .xs e mostrar o quão grande eles são. rm .xsession-errors.old
irá se livrar do arquivo. Mas então você solta os endereços IP dos caras tentando invadir. O que eu talvez queira saber algum dia.
Por fim, o vnc é executado usando o vino-server. No terminal, cntrl alt t
, o comando ps aux | grep vino
listará / usr / lib / vino / vino-server se estiver em execução.
Eu não sei ainda se eu quebrei algo que precisamos. E provavelmente não saberá até então.
Boa sorte. (Apenas no caso de você estar lendo este próximo século e ainda achar relevante. A data de hoje é 18 de maio de 2016. Estou trabalhando com o Ubuntu 12.04.05 LTS. Faltam menos de um ano para atualizar. )