Esto debería haberse publicado como respuesta a una pregunta. Edite esto para que sea una pregunta y mueva lo que publicó anteriormente para responder. De las preguntas frecuentes : "También está perfectamente bien hacer y responder su propia pregunta, pero finja que está en peligro: formúlelo en forma de pregunta".
Pausado hasta nuevo aviso.
Respuestas:
27
[Editar] Desde entonces probé esta versión completa del servidor Ubuntu 10.04 (21 / mayo / 2010) .
He configurado mi Servidor Ubuntu 10.04 LTS que reside en una red de Windows para autenticar los inicios de sesión utilizando el directorio activo, luego montar un recurso compartido de Windows para servir como directorio de inicio.
Esto es lo que hice a partir de la instalación inicial de Ubuntu.
Algunos argumentarían que debería "bloquear sshd" desactivando los inicios de sesión de raíz. Me imagino que si eres lo suficientemente inteligente como para hackear una sesión ssh para una contraseña de root, probablemente no te va a frustrar la adición de PermitRootLogin noen el /etc/ssh/sshd_configarchivo. Si eres paranoico o no, simplemente no estás convencido, edita el archivo o dale un giro a lo siguiente:
# (grep PermitRootLogin /etc/ssh/sshd_config && sudo sed -ri 's/PermitRootLogin ).+/\1no/' /etc/ssh/sshd_conifg) || echo "PermitRootLogin not found. Add it manually."
Realice algunas tareas básicas de limpieza doméstica en red en preparación para las configuraciones de paquetes específicos que vendrán.
Determine su nombre de dominio de Windows, el nombre del servidor DNS y la dirección IP para el servidor del directorio activo (para samba). Por conveniencia, configuré variables de entorno para el dominio de Windows y el servidor DNS. Para mí fue (mi dirección IP AD era 192.168.20.11):
Si desea averiguar cuál es su dominio y servidor DNS (era contratista y no conocía la red), consulte esta útil referencia .
Necesitamos bautizar el cuadro de Linux en la nueva red, esto se hace editando el archivo host (reemplace el DNS de con el FQDN del DNS de Windows): # sudo sed -ri "s/^(127\.0\.[01]\.1[ \t]).*/\1$(hostname).$WINDOMAIN localhost $(hostname)/" /etc/hosts
También deberíamos decirle a los próximos servicios instalados dónde pueden encontrar su líder: algunas redes tendrán servicios de búsqueda de nombres de netbios, pero por si acaso, agregue una entrada explícita en su /etc/hostsarchivo, en mi configuración agregué la entrada en el tercero (3) línea: # sudo sed -ri "3 i $WINDNS_IP $WINDNS" /etc/hosts
Los procesos de autenticación y uso compartido de archivos para las cajas de Windows y Linux necesitan que sus relojes estén de acuerdo. Haga esto con un servicio NTP, y en la versión del servidor de Ubuntu, el servicio NTP viene instalado y configurado con un (1) servidor NTP. Agregue el suyo antes del Ubuntu (o reemplácelo por completo). La red a la que me unía también tenía el servidor DNS que servía el servicio NTP. # sudo sed -ri "s/^(server[ \t]+)(.+)/\1$WINDNS\n\1\2/" /etc/ntp.conf
Reinicie el demonio NTP: # sudo /etc/init.d/ntp restart
Configuración de Kerberos.
Las instrucciones que siguen aquí no deben tomarse literalmente: los valores MYDOMAIN.LOCALy srv1.mydomain.localdeben reemplazarse con lo que es apropiado para su red cuando edita los archivos, pero tenga en cuenta que donde se utiliza MAYÚSCULAS se necesita MAYÚSCULAS .
Si, durante apt-get installKerberos, tuvo la idea de responder correctamente a la pregunta del "dominio predeterminado", entonces, bueno, de lo contrario, tendrá que hacer lo siguiente.
Edite el /etc/krb5.confarchivo (instalado anteriormente) .
Encuentre la [libdefaults]sección y cambie el par de valores clave:
[libdefaults] default_realm = MYDOMAIN.LOCAL
Agregue lo siguiente a la [realms]sección del archivo:
Agregue lo siguiente a la [domain_realm]sección del archivo: .mydomain.local = MYDOMAIN.LOCAL mydomain.local = MYDOMAIN.LOCAL
Una buena prueba en este punto es ver si su controlador AD le emitirá un ticket kerberos. Esto no es necesario, pero puede hacer que algunos de ustedes se sientan mareados: # kinit <some_windows_domain_user>
luego, para ver el boleto: # klist
verán cosas sobre el caché del boleto y los vencimientos y renovaciones. Una vez que el vértigo disminuya, también puede liberar / destruir el boleto: # kdestroy
Edite el /etc/nsswitch.conf. Pude ejecutar el siguiente comando para obtener lo que necesitaba: # sed -ri 's/(compat)/\1 winbind/' /etc/nsswitch.conf
Aquí están los contenidos de mi /etc/nsswitch.confarchivo: passwd: compat winbind group: compat winbind shadow: compat winbind hosts: files dns networks: files protocols: db files services: db files ethers: db files rpc: db files
Iniciar y detener varios servicios. # sudo /etc/init.d/winbind stop # sudo service smbd restart # sudo /etc/init.d/winbind start
Unir la computadora al dominio. No estoy convencido de que esto sea necesario; particularmente debido a la opción de seguridad en el smb.confarchivo ( security = ads). Quizás alguien pueda opinar sobre esto ... # sudo net ads join -U any_domain_user_account
Es posible que obtenga un error DNS update failed!, pero que se unirá al dominio. Si recibe un error acerca de no poder encontrar el servidor, sus registros DNS deben modificarse. Durante la instalación de Ubuntu, el servidor de nombres a menudo apuntará a su puerta de enlace: la mayoría de los enrutadores harán un servicio de DNS. Las mejores prácticas para la administración del servidor de Windows es que el ADC también debe ejecutar DNS. En mi caso mis /etc/resolve.confve así: nameserver 192.168.20.11 nameserver 8.8.8.8
El 8.8.8.8es un Google DNS, una copia de seguridad bastante fiable en caso de que las ventanas se va hacia abajo.
En este punto, podía iniciar sesión (quizás después de un reinicio), los directorios principales no existían, pero podía iniciar sesión.
Montaje de CIFS al iniciar sesión
El siguiente paso fue la guinda para mí; No quería la responsabilidad de hacer una copia de seguridad de los directorios de trabajo de todos, y la caja que Ubuntu debía ejecutar era sospechosa en términos de confiabilidad. Al hacer lo siguiente, los usuarios podrían iniciar sesión y ver su directorio de usuarios de Windows automáticamente .
Descargue el pam_mountmódulo: # sudo apt-get install libpam-mount
quería que el punto de montaje estuviera en la /home/<user>ubicación tradicional : esta parte está configurada por el /etc/samba/smb.confarchivo ( template homedir = /home/%U). Pero lo necesitaba para explorar el recurso compartido y señalar su propio directorio de Windows. Esto se logra editando el /etc/security/pam_mount.conf.xmlarchivo (que a pesar de su intención, XML no es legible por humanos):
Agregue lo siguiente /etc/security/pam_mount.conf.xmly modifique para adaptarlo: <volume user="*" server="srv1.mydomain.local" path="UserShares" mountpoint="home" fstype="cifs" />
Debido a mi punto de montaje tonto, tuve que agregar esta línea también:
<umount>umount %(MNTPT)/%(USER)</umount>
Y para que los directorios de usuario (para el punto de montaje) se creen automáticamente, busque la línea y hágala así:
<mkmountpoint enable="1" remove="false" />
El remove="false"bit es muy importante: Si se establece en true, pam_mount.sointenta suprimir el punto, que no se puede hacer si un usuario ha iniciado sesión en múltiples ocasiones montaje en el directorio. Lo que termina en ese caso es un montón de monturas perdidas en su sistema.
pam_mount.sotodavía no cumple lo prometido. En su forma actual, los montajes se siguen acumulando y los directorios principales no se están creando. En algún lugar entre aquí y la versión Beta 2 anterior del servidor 10.04, estaba funcionando. Sin embargo, no puedo recrear esto.
Mientras tanto, para la creación del directorio, estoy confiando pam_mkhomedir.so, y pegué una línea inmediatamente antes de la pam_mount.solínea para acomodarla.
Todavía no he resuelto el problema del montaje múltiple. Pero hasta que pam_mount.sose solucione, esto es lo que tengo en mi /etc/pam.d/common-sessionarchivo:
Eso es. Funcionó para mí, y espero que les sea útil.
Se consideraron numerosos recursos para poder resolver esto. Aquí hay una breve lista (varios de estos enlaces apuntan a mis propias preguntas sobre el tema):
Desactivar el inicio de sesión ssh raíz remoto es imprescindible. Los ataques de fuerza bruta / diccionario a veces tienen éxito. Si la raíz está comprometida, diga adiós a todo lo que confió en la máquina.
JR Lawhorne
1
sin embargo, ubuntu no activa la cuenta raíz ... ¿todo es sudod, o me falta algo?
Jamie
'todo es sudo' - Y esto es mejor ... ¿de qué manera? (Si alguna cuenta de usuario con derecho a sudo se ve comprometida, es básicamente lo mismo. Y es básicamente igual de simple [o no] forzar a las cuentas de usuario o root. Lo mejor es configurar el inicio de sesión solo con clave de pub y deshabilitar todas las contraseñas) inicios de sesión basados.)
Kurt Pfeifle
Lo entiendo, pero considere: "Lo mejor es configurar el inicio de sesión solo con clave de pub" , lo que anularía por completo el propósito de esta publicación.
Respuestas:
[Editar] Desde entonces probé esta versión completa del servidor Ubuntu 10.04 (21 / mayo / 2010) .
He configurado mi Servidor Ubuntu 10.04 LTS que reside en una red de Windows para autenticar los inicios de sesión utilizando el directorio activo, luego montar un recurso compartido de Windows para servir como directorio de inicio.
Esto es lo que hice a partir de la instalación inicial de Ubuntu.
Obtener actualizaciones
# sudo apt-get update && sudo apt-get upgrade
Instalar un servidor SSH (
sshd
)# sudo apt-get install openssh-server
Algunos argumentarían que debería "bloquear sshd" desactivando los inicios de sesión de raíz. Me imagino que si eres lo suficientemente inteligente como para hackear una sesión ssh para una contraseña de root, probablemente no te va a frustrar la adición de
PermitRootLogin no
en el/etc/ssh/sshd_config
archivo. Si eres paranoico o no, simplemente no estás convencido, edita el archivo o dale un giro a lo siguiente:# (grep PermitRootLogin /etc/ssh/sshd_config && sudo sed -ri 's/PermitRootLogin ).+/\1no/' /etc/ssh/sshd_conifg) || echo "PermitRootLogin not found. Add it manually."
Instalar paquetes requeridos
# sudo apt-get install winbind samba smbfs smbclient ntp krb5-user
Realice algunas tareas básicas de limpieza doméstica en red en preparación para las configuraciones de paquetes específicos que vendrán.
Determine su nombre de dominio de Windows, el nombre del servidor DNS y la dirección IP para el servidor del directorio activo (para samba). Por conveniencia, configuré variables de entorno para el dominio de Windows y el servidor DNS. Para mí fue (mi dirección IP AD era 192.168.20.11):
# WINDOMAIN=mydomain.local && WINDNS=srv1.$WINDOMAIN && WINDNS_IP=192.168.20.11
Si desea averiguar cuál es su dominio y servidor DNS (era contratista y no conocía la red), consulte esta útil referencia .
Necesitamos bautizar el cuadro de Linux en la nueva red, esto se hace editando el archivo host (reemplace el DNS de con el FQDN del DNS de Windows):
# sudo sed -ri "s/^(127\.0\.[01]\.1[ \t]).*/\1$(hostname).$WINDOMAIN localhost $(hostname)/" /etc/hosts
También deberíamos decirle a los próximos servicios instalados dónde pueden encontrar su líder: algunas redes tendrán servicios de búsqueda de nombres de netbios, pero por si acaso, agregue una entrada explícita en su
/etc/hosts
archivo, en mi configuración agregué la entrada en el tercero (3) línea:# sudo sed -ri "3 i $WINDNS_IP $WINDNS" /etc/hosts
Los procesos de autenticación y uso compartido de archivos para las cajas de Windows y Linux necesitan que sus relojes estén de acuerdo. Haga esto con un servicio NTP, y en la versión del servidor de Ubuntu, el servicio NTP viene instalado y configurado con un (1) servidor NTP. Agregue el suyo antes del Ubuntu (o reemplácelo por completo). La red a la que me unía también tenía el servidor DNS que servía el servicio NTP.
# sudo sed -ri "s/^(server[ \t]+)(.+)/\1$WINDNS\n\1\2/" /etc/ntp.conf
Reinicie el demonio NTP:
# sudo /etc/init.d/ntp restart
Configuración de Kerberos.
Las instrucciones que siguen aquí no deben tomarse literalmente: los valores
MYDOMAIN.LOCAL
ysrv1.mydomain.local
deben reemplazarse con lo que es apropiado para su red cuando edita los archivos, pero tenga en cuenta que donde se utiliza MAYÚSCULAS se necesita MAYÚSCULAS .Si, durante
apt-get install
Kerberos, tuvo la idea de responder correctamente a la pregunta del "dominio predeterminado", entonces, bueno, de lo contrario, tendrá que hacer lo siguiente.Edite el
/etc/krb5.conf
archivo (instalado anteriormente) .Encuentre la
[libdefaults]
sección y cambie el par de valores clave:[libdefaults]
default_realm = MYDOMAIN.LOCAL
Agregue lo siguiente a la
[realms]
sección del archivo:MYDOMAIN.LOCAL = {
kdc = srv1.mydomain.local
admin_server = srv1.mydomain.local
default_domain = MYDOMAIN.LOCAL
}
Agregue lo siguiente a la
[domain_realm]
sección del archivo:.mydomain.local = MYDOMAIN.LOCAL
mydomain.local = MYDOMAIN.LOCAL
Una buena prueba en este punto es ver si su controlador AD le emitirá un ticket kerberos. Esto no es necesario, pero puede hacer que algunos de ustedes se sientan mareados:
# kinit <some_windows_domain_user>
luego, para ver el boleto:
# klist
verán cosas sobre el caché del boleto y los vencimientos y renovaciones. Una vez que el vértigo disminuya, también puede liberar / destruir el boleto:
# kdestroy
Configurar samba.
De acuerdo con lo siguiente: Hay momentos en los que CIFS no se puede usar u otra opción de sistema de archivos de red es mejor. Si se necesita soporte de autenticación kerberos (krb5 / SPNEGO) para mayor seguridad, entonces se debe usar smbclient o smbfs de Samba en lugar de cifs
Alas, el
cifs
soporte en el núcleo para ubuntu 10.04 (basado en la versión 2.6.32.9 del núcleo) está en la versión 1.61, y de acuerdo con la documentación del kernel, la implementación experimental de kerberos ha estado allí desde la versión 1.54.Así que ahí estás. No tengo idea de si
cifs
funcionaría, así que te doy la configuración de samba:Reemplazar
/etc/samba/smb.conf
(recuerde que estaba trabajando desde una distribución limpia de Ubuntu, así que no estaba preocupado por romper nada):[global]
security = ads
realm = MYDOMAIN.LOCAL
password server = 192.168.20.11
workgroup = MYDOMAIN
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
Iniciar y detener varios servicios.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
Configura la autenticación.
Edite el
/etc/nsswitch.conf
. Pude ejecutar el siguiente comando para obtener lo que necesitaba:# sed -ri 's/(compat)/\1 winbind/' /etc/nsswitch.conf
Aquí están los contenidos de mi
/etc/nsswitch.conf
archivo:passwd: compat winbind
group: compat winbind
shadow: compat winbind
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
Iniciar y detener varios servicios.
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
Unir la computadora al dominio. No estoy convencido de que esto sea necesario; particularmente debido a la opción de seguridad en el
smb.conf
archivo (security = ads
). Quizás alguien pueda opinar sobre esto ...# sudo net ads join -U any_domain_user_account
Es posible que obtenga un error
DNS update failed!
, pero que se unirá al dominio. Si recibe un error acerca de no poder encontrar el servidor, sus registros DNS deben modificarse. Durante la instalación de Ubuntu, el servidor de nombres a menudo apuntará a su puerta de enlace: la mayoría de los enrutadores harán un servicio de DNS. Las mejores prácticas para la administración del servidor de Windows es que el ADC también debe ejecutar DNS. En mi caso mis/etc/resolve.conf
ve así:nameserver 192.168.20.11
nameserver 8.8.8.8
El
8.8.8.8
es un Google DNS, una copia de seguridad bastante fiable en caso de que las ventanas se va hacia abajo.En este punto, podía iniciar sesión (quizás después de un reinicio), los directorios principales no existían, pero podía iniciar sesión.
Montaje de CIFS al iniciar sesión
El siguiente paso fue la guinda para mí; No quería la responsabilidad de hacer una copia de seguridad de los directorios de trabajo de todos, y la caja que Ubuntu debía ejecutar era sospechosa en términos de confiabilidad. Al hacer lo siguiente, los usuarios podrían iniciar sesión y ver su directorio de usuarios de Windows automáticamente .
Descargue el
pam_mount
módulo:# sudo apt-get install libpam-mount
quería que el punto de montaje estuviera en la
/home/<user>
ubicación tradicional : esta parte está configurada por el/etc/samba/smb.conf
archivo (template homedir = /home/%U
). Pero lo necesitaba para explorar el recurso compartido y señalar su propio directorio de Windows. Esto se logra editando el/etc/security/pam_mount.conf.xml
archivo (que a pesar de su intención, XML no es legible por humanos):Agregue lo siguiente
/etc/security/pam_mount.conf.xml
y modifique para adaptarlo:<volume
user="*"
server="srv1.mydomain.local"
path="UserShares"
mountpoint="home"
fstype="cifs"
/>
<cifsmount>mount -t cifs //%(SERVER)/%(VOLUME)/%(USER) %(MNTPT)/%(USER) -o "user=%(USER),uid=%(USERUID),gid=%(USERGID)%(before=\",\" OPTIONS)"</cifsmount>
Debido a mi punto de montaje tonto, tuve que agregar esta línea también:
<umount>umount %(MNTPT)/%(USER)</umount>
Y para que los directorios de usuario (para el punto de montaje) se creen automáticamente, busque la línea y hágala así:
<mkmountpoint enable="1" remove="false" />
El
remove="false"
bit es muy importante: Si se establece en true,pam_mount.so
intenta suprimir el punto, que no se puede hacer si un usuario ha iniciado sesión en múltiples ocasiones montaje en el directorio. Lo que termina en ese caso es un montón de monturas perdidas en su sistema.pam_mount.so
todavía no cumple lo prometido. En su forma actual, los montajes se siguen acumulando y los directorios principales no se están creando. En algún lugar entre aquí y la versión Beta 2 anterior del servidor 10.04, estaba funcionando. Sin embargo, no puedo recrear esto.Mientras tanto, para la creación del directorio, estoy confiando
pam_mkhomedir.so
, y pegué una línea inmediatamente antes de lapam_mount.so
línea para acomodarla.Todavía no he resuelto el problema del montaje múltiple. Pero hasta que
pam_mount.so
se solucione, esto es lo que tengo en mi/etc/pam.d/common-session
archivo:Eso es. Funcionó para mí, y espero que les sea útil.
Se consideraron numerosos recursos para poder resolver esto. Aquí hay una breve lista (varios de estos enlaces apuntan a mis propias preguntas sobre el tema):
fuente
sudo
d, o me falta algo?sudo
' - Y esto es mejor ... ¿de qué manera? (Si alguna cuenta de usuario con derecho a sudo se ve comprometida, es básicamente lo mismo. Y es básicamente igual de simple [o no] forzar a las cuentas de usuario o root. Lo mejor es configurar el inicio de sesión solo con clave de pub y deshabilitar todas las contraseñas) inicios de sesión basados.)