Autenticando clientes Linux em servidor NIS FreeBSD de forma segura

O servidor NIS do FreeBSD não cria o mapa shadow usado pelo Linux, assim a única maneira de autenticar os usuários Linux seria usando a opção UNSECURE=TRUE em sua configuração. Este artigo apresenta uma maneira de exportar o mapa shadow no FreeBSD, e assim autenticar clientes Linux sem necessidade da opção UNSECURE.

[ Hits: 16.225 ]

Por: Tiago Bitarelli Gomes em 18/04/2007


Configuração do FreeBSD



Partindo do princípio que você já tenha o servidor NIS configurado, é necessário:

Remover o Makefile e os antigos mapas do seu domínio:

# cd /var/yp/
# rm Makefile
# rm -rf nomeDoSeuDominio/


Modificar o Makefile.dist para gerar os mapas do shadow para o Linux. Neste exemplo vou usar a versão 1.36.2.1 do Makefile.dist (veio com FreeBSD 6.2). Para saber a versão do seu Makefile.dist, olhe as primeiras linhas do mesmo:

# head Makefile.dist
#
# Makefile for the NIS databases
#
# $FreeBSD: src/usr.sbin/ypserv/Makefile.yp,v 1.36.2.1 2006/07/08 07:45:58 maxim Exp $

versao: 1.36.2.1

Para esta versão gerei o patch:

--- Makefile.dist       Wed Mar 28 15:06:13 2007
+++ mk.new      Wed Mar 28 15:12:40 2007
@@ -194,7 +194,7 @@
publickey: publickey.byname
aliases:   mail.aliases

-master.passwd: master.passwd.byname master.passwd.byuid
+master.passwd: master.passwd.byname master.passwd.byuid shadow.byname shadow.byuid

#
# This is a special target used only when doing in-place updates with
@@ -499,7 +499,7 @@
        @echo "Creating new $@ file from $(MASTER)..."
        @if [ ! $(UNSECURE) ]; then \
        $(AWK) -F: '{if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
-               print $$1":*:"$$3":"$$4":"$$8":"$$9":"$$10}' $(MASTER) \
+               print $$1":x:"$$3":"$$4":"$$8":"$$9":"$$10}' $(MASTER) \
                > $(PASSWD) ; \
        else \
        $(AWK) -F: '{if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
@@ -592,6 +592,31 @@
        @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map." ; fi
.endif

+shadow.byname: $(MASTER)
+       @echo "Updating $@..."
+.if ${MASTER} == "/dev/null"
+.else
+       $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
+               print $$1"\t"$$1":"$$2":12345:0:99999:7:::" }' $(MASTER) \
+               | $(DBLOAD) ${S} -f -i $(MASTER) -o $(YPMAPDIR)/$@ - $(TMP); \
+               $(RMV) $(TMP) $@
+       @$(DBLOAD) -c
+       @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
+       @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map. " ; fi
+.endif
+
+shadow.byuid: $(MASTER)
+       @echo "Updating $@..."
+.if ${MASTER} == "/dev/null"
+.else
+       $(AWK) -F: '{ if ($$1 != "" && $$1 !~ "^#.*" && $$1 != "+") \
+               print $$3"\t"$$0 }' $(MASTER) \
+               | $(DBLOAD) ${S} -f -i $(MASTER) -o $(YPMAPDIR)/$@ - $(TMP); \
+               $(RMV) $(TMP) $@
+               @$(DBLOAD) -c
+       @if [ ! $(NOPUSH) ]; then $(YPPUSH) -d $(DOMAIN) $@; fi
+       @if [ ! $(NOPUSH) ]; then echo "Pushed $@ map. " ; fi
+.endif

amd.map: $(AMDHOST)
        @echo "Updating $@..."

Para versões diferentes, veja os que fiz em:
Se não tiver a sua versão você deve fazer as modificações no seu Makefile.dist na mão.

Baixe o patch para a pasta /var/yp e aplique:

# patch < ypmk.patch

Hmm... Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|--- Makefile.dist Wed Mar 28 15:06:13 2007
|+++ mk.new Wed Mar 28 15:12:40 2007
--------------------------
Patching file Makefile.dist using Plan A...
Hunk #1 succeeded at 194.
Hunk #2 succeeded at 499.
Hunk #3 succeeded at 592.
done

Agora recrie os mapas do NIS executando o comando ypinit e responda conforme sua necessidade:

# ypinit -m nomeDoSeuDominio

Após isto, confirme que seu Makefile possui a seguinte linha comentada:

#UNSECURE = "True"

Modifique conforme sua necessidade a linha (comente se existe servidores slaves):

NOPUSH = "True"
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configuração do FreeBSD
   3. Teste do cliente Linux
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Configurando wvdial com Gnome-ppp no Slackware

Instalação do CentOS Atomic para Gerenciamento de Containers Docker

Pós-instalação do Ubuntu Gnome 13.04

Configurando o CACIC (parte 4)

Instalando Apache Tomcat em Linux 2.6

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts