Alguns dias atrás, comecei a me importar muito com minha segurança de dados, acabando nmap
com:nmap 127.0.0.1
Surpresa, surpresa, tenho muitos serviços ativos escutando localhost:
$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2013-05-05 00:19 WEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
631/tcp open ipp
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
O único que eu poderia usar é ssh
(embora provavelmente não esteja bem configurado, vou manter esse assunto em outra pergunta).
Tanto quanto eu sei que o ipp
protocolo é usado pelo CUPS para compartilhar minhas impressoras, não preciso compartilhá-las, basta acessar as impressoras a partir de um servidor.
Esta é a saída do netstat -lntup
usuário raiz, removendo os endereços do host local:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 497/sshd
tcp 0 0 0.0.0.0:17500 0.0.0.0:* LISTEN 2217/dropbox
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:50022 0.0.0.0:* LISTEN 1021/rpc.statd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 892/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 906/rpcbind
tcp6 0 0 :::22 :::* LISTEN 497/sshd
tcp6 0 0 :::42712 :::* LISTEN 1021/rpc.statd
tcp6 0 0 :::445 :::* LISTEN 892/smbd
tcp6 0 0 :::139 :::* LISTEN 892/smbd
tcp6 0 0 :::111 :::* LISTEN 906/rpcbind
udp 0 0 0.0.0.0:51566 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:68 0.0.0.0:* 7362/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 906/rpcbind
udp 0 0 192.168.1.255:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:137 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.255:138 0.0.0.0:* 1782/nmbd
udp 0 0 192.168.1.67:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 1782/nmbd
udp 0 0 0.0.0.0:655 0.0.0.0:* 906/rpcbind
udp 0 0 0.0.0.0:17500 0.0.0.0:* 2217/dropbox
udp 0 0 0.0.0.0:5353 0.0.0.0:* 615/avahi-daemon: r
udp 0 0 0.0.0.0:34805 0.0.0.0:* 1021/rpc.statd
udp6 0 0 :::40192 :::* 1021/rpc.statd
udp6 0 0 :::111 :::* 906/rpcbind
udp6 0 0 :::655 :::* 906/rpcbind
udp6 0 0 :::5353 :::* 615/avahi-daemon: r
udp6 0 0 :::42629 :::* 615/avahi-daemon: r
Como configuro esses serviços para que eles apenas ouçam o mundo exterior quando os estou realmente usando?
netstat -lntup
-l = escuta -n = número -t = tcp -u = udp -p = pid. Mostra quais processos você está executando e quais portas estão expondo. Qualquer coisa aberta para 127.0.0.1 está inacessível à Internet.eth0
?), Adicionando emsmb.conf
duas directivasbind interfaces only = yes
einterfaces = eth0
.Respostas:
Determine sua exposição
Tomando sua saída do
netstat
comando, o que parece muitos serviços é na verdade uma lista muito curta:Obtendo uma configuração da terra
Olhando para esta lista, existem vários serviços que eu deixaria em paz.
Comece a reduzi-lo - desative o Samba
Você provavelmente pode imediatamente desativar o Samba, ele é responsável por 2 dos serviços acima,
nmbd
esmbd
. É duvidoso que você realmente precise da execução em um laptop, seja no host local ou no seu IP, de frente para a sua rede.Para verificar se eles estão em execução, você pode usar o seguinte comando
status
:Desativar os serviços pode ser confuso com todo o fluxo que está ocorrendo nos negócios iniciantes, /etc/rc.d, portanto, pode ser difícil descobrir qual serviço está sob qual tecnologia. Para o Samba você pode usar o
service
comando:Agora eles estão fora:
Mantê-los fora ... permanentemente
Para fazê-los ficar de fora, tenho usado essa ferramenta
sysv-rc-conf
para gerenciar serviços em um console, ela funciona melhor do que a maioria. Permite verificar quais serviços você deseja executar e em qual nível de execução eles devem ser iniciados / parados:Desativando o restante do que NÃO é necessário
Então agora o Samba está desligado, resta o seguinte:
Nos 3 restantes, você pode fazer o mesmo que o Samba para desativá-los.
CUPS?
Para desativar o CUPS, do qual você realmente não precisa, você pode seguir o mesmo procedimento de desativar o serviço e desabilitar a inicialização. Para poder imprimir, você precisará configurar cada impressora individualmente em seu sistema. Você pode fazer isso através da
system-config-printer
GUI.Fazendo esses serviços sob demanda?
Este é realmente o cerne da sua pergunta, mas não há realmente uma solução de bala de prata para tornar esses serviços "inteligentes" para que eles funcionem quando estão sendo usados, e não o tempo todo.
# 1 - systemd vs. inicianteParte disso é a divisão atual entre systemd e upstart . Há uma boa visão geral das 2 tecnologias concorrentes aqui .
Ambas as tecnologias estão tentando fazer coisas um pouco diferentes, IMO, dados seus conjuntos de recursos, o systemd parece mais voltado para os servidores, enquanto o inicial parece mais voltado para o rolo de desktop. Com o tempo, isso funcionará, a IMO e os dois serviços permanecerão estáveis e ricos em recursos.
Eventualmente, ambos os serviços oferecerão o início e a parada sob demanda de todos os serviços que gerenciam. Recursos como
# 2 - suporte de serviçoStopWhenUnneeded=yes
já existem,systemd
por exemplo, portanto, é apenas uma questão de tempo até que esses recursos sejam desenvolvidos.Alguns serviços não suportam a interrupção / inicialização muito bem, se houver. Serviços como os que
sshd
parecem fazer pouco sentido, são executados sob demanda, especialmente se forem usados intensamente. Além disso, alguns serviços, como o Apache, fornecem mecanismos para ativar mais ou menos seus próprios ouvintes. Portanto, não está claro como a demanda fornecidasystemd
ouupstart
se integrará a esses tipos de serviços.Isso é realmente necessário?
Você ouvirá de ambos os lados que isso é um exagero ou que você deve adotar uma abordagem minimalista apenas instalando o que você absolutamente precisa, mas é realmente uma escolha pessoal. Entender que esses serviços estão lá e o que eles fazem é realmente o que é importante. No final do dia, um computador é uma ferramenta e, usando um sistema Unix, você já está dizendo que está disposto a espiar por trás da cortina e entender o que faz seu computador funcionar.
Eu diria que esse tipo de questionamento é exatamente o estado de espírito que se deve buscar ao lidar com computadores e o Unix em geral.
Referências
systemd - wikipedia
[10: http://tech.cueup.com/blog/2013/03/08/running-daemons/
fonte
127.0.0.1 não é o "mundo exterior", ele está olhando dentro de casa.
Verifique a configuração do seu firewall (iptables no Linux hoje), a maioria deles não deve ser acessível do lado de fora.
Não execute serviços desnecessários. Desinstale todo o software não necessário.
Altere as senhas para ficar mais forte. Verifique seu uso do sistema, não vá atrás de nenhum site interessante aleatoriamente. Verifique a configuração anti-phising, anti-scripts, etc. do navegador. Revise seu uso de SSH e su / sudo.
Mas, acima de tudo, a paranóia excessiva é contraproducente. Não fique preso pelo brilho da tecnologia .
fonte
Embora você possa "fechar" serviços individuais - talvez seja mais fácil configurar um firewall. Quase todas as distros comuns (Ubuntu, Debian, Centos, etc) têm suporte para o iptables embutido.
Um conjunto de regras simples para começar: (você pode apenas digitar em um prompt de comando; para torná-los permanentes, adicioná-los aos scripts de inicialização ou nos dizer qual distro você está usando. No Centos, por exemplo: system-config -firewall é uma boa interface de usuário para configurar regras do iptables)
Basicamente - permita entrada ssh; largar tudo o resto.
Sua cadeia de entrada agora fica assim:
Posteriormente, diga que deseja permitir o 'samba' (compartilhamento de arquivos do Windows): você pode executar
O
-I
precede e regra à lista;-A
acrescenta uma regra. Portanto, sua cadeia agora fica assim:A
INPUT
cadeia refere-se aos pacotes destinados ao seu sistema. Outras cadeias sãoOUTPUT
para pacotes do seu computador, indo para a Internet eFORWARD
para pacotes roteados pelo seu computador (ou seja, pacotes que 'transportam' seu computador, como a área de trânsito de um aeroporto - coisas que não sãoINPUT
porque não estão entrando no computador) )Como uma nota final: nmap'ing 127.0.0.1 não é muito útil; muitos serviços são acessíveis apenas a partir do 127.0.0.1 e nenhum outro endereço. Se você não possui outra máquina, pode executar o nmap - tente usar o Shields UP da Gibson Research! ( https://www.grc.com/shieldsup ) - que é um nmap-lite on-line gratuito. Ou adicione um comentário com seu IP / e-mail e eu nmap você :)
fonte