ld10-samba/ld10-samba.tex

392 lines
11 KiB
TeX

\documentclass{beamer}
%%% Pacchetti di uso comune per lingua, encoding di input e di font
\usepackage[italian]{babel}
\usepackage[utf8x]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
%%% Uso MyriadPro - Incluso in Acrobat Reader > 8.0
\usepackage{Myriad}
\renewcommand{\sfdefault}{Myriad-OsF}
%%% Uso Bitstream Vera Mono per il codice
\usepackage[scaled]{beramono}
%%% Se volessi utilizzare Biolinum (da Libertine)
%\usepackage[scaled]{libertine}
% Erano per XeLaTeX...
% Sfortunatamente XeLaTeX non è compatibile con pdfcube: manca il supporto
% poppler
%\usepackage{lmodern,textcomp,fontspec,xunicode,xltxtra}
%\setsansfont[Mapping=tex-text,Ligatures=Common]{Myriad Pro}
%\setmonofont[Mapping=tex-text,Scale=.9]{Consolas}
%%% Tema, stile di uncover, default overlay e colore di struttura
\usetheme{Warsaw}
\setbeamercovered{transparent}
\beamerdefaultoverlayspecification{<+->}
\setbeamercolor{alerted text}{fg=structure}
%%% Definisco un po' di modifiche sulla bibliografia
\setbeamertemplate{bibliography item}[triangle]
%\setbeamercolor*{bibliography entry author}{fg=black}
%%% Sovrascrive la definizione della footline per ottenerne una a due colonne
\setbeamertemplate{footline}{%
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex,right]{author in head/foot}%
\usebeamerfont{author in head/foot}\insertshortauthor~~(\insertshortinstitute)\hspace*{2ex}
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=2.25ex,dp=1ex]{title in head/foot}%
\hspace*{2ex}\usebeamerfont{title in head/foot}\insertshorttitle\hfill%
\insertframenumber{} / \inserttotalframenumber\hspace*{2ex}
\end{beamercolorbox}}
\vskip0pt%
}
%%% Definisco shell (mostra console utente) e shell* (console di root)
\setbeamercolor{shell snippet}{fg=lightgray,bg=black}
\newenvironment{shell}{\par\vspace*{.7em}\begin{beamercolorbox}[sep=.5em]{shell snippet}\ttfamily {\color{blue}\$}}{\end{beamercolorbox}}
\newenvironment{shell*}{\par\vspace*{.7em}\begin{beamercolorbox}[sep=.5em]{shell snippet}\ttfamily {\color{red}\#}}{\end{beamercolorbox}}
\newcommand{\urlify}[1]{{\color{blue}\url{#1}}}
%%% Definisco snippet
\newenvironment{snippet}[1]{\begin{block}{Estratto: \texttt{#1}}\ttfamily}{\end{block}}
%%%% Struttura principale della presentazione %%%%
%%% Global structure %%%
\title[Linux, Samba e AD]{Fileserver con SAMBA e Windows}
\subtitle{Integrazione con \textit{Microsoft Active Directory}}
\author[E.~Vavassori (BGlug) --- LD10]{Emiliano Vavassori}
\institute[BGlug]{BGlug --- Bergamo Linux User Group\\
Circoscrizione n° 2, Largo Röntgen n° 3\\
24128 Bergamo}
\date[LD10]{23 ottobre 2010 --- LinuxDay 2010}
\subject{Fileserver con SAMBA e Windows --- Integrazione con Active Directory}
%%% Dovrò specificare un logo...
% \pgfdeclareimage[height=0.5cm]{university-logo}{university-logo-filename}
% \logo{\pgfuseimage{university-logo}}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{Premessa}\transboxin<1>\centering
Tutto il materiale qui riportato è disponibile a questo indirizzo:
\bigskip\Large
\alert{\url{http://tinyurl.com/ld10-samba}}
\end{frame}
\begin{frame}
\frametitle{\textit{Lightning Talk}?}\transboxin<1>
\begin{itemize}[<+->]
\item Richiesta «passiva» sul sito del BGlug
\item Limitazione nell'obiettivo
\item Livello tecnico abbastanza alto
\item Procedura di setup di meno di mezz'ora (compresi test)
\item Poco tempo per la preparazione del talk \texttt{O:-)}
\end{itemize}
\bigskip
\begin{block}{Un piccolo dubbio mi assale\ldots\ \textbf{Esaustivo}?}
Non si può fare un \textit{lightning talk} su \textit{Active Directory} in
senso stretto. Ci vorrebbe una giornata intera.
\end{block}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{Obiettivo}
\begin{block}{}
Creare un \emph{file server} integrato con una struttura \textit{Active
Directory} preesistente.
\end{block}
\bigskip
\visible<2>{%
\begin{block}{Integrato con \emph{Active Directory}}
Gli utenti saranno in grado di accedere ai documenti condivisi senza
ulteriori autenticazioni da macchine di dominio con utenze di dominio.
\end{block}}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{0.0 --- Struttura della rete}
\begin{block}{Domain Controller --- \itshape Windows 2003 Server}\ttfamily
10.0.0.1\hspace*{4ex}testdc.domain.local
\end{block}
\bigskip
\begin{block}<1->{File Server --- \itshape Debian 5.0 «Lenny»}\ttfamily
10.0.0.100\hspace*{2ex}linuxfs.domain.local
\end{block}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{0.1 --- Indirizzi del fileserver}
Prima di partire, conviene verificare l'indirizzo di rete:
\begin{shell*}
ip address show eth0
\end{shell*}
\bigskip
\onslide<2->%
Verificare il \textit{Fully Qualified Domain Name} (FQDN):\\
\begin{snippet}{/etc/hosts}
10.0.0.100 linuxfs.domain.local linuxfs \textbackslash\\
\hspace*{2ex}localhost.localdomain localhost
\end{snippet}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{0.2 --- Indirizzi del domain controller}
Verificare DNS primario e dominio:
\begin{snippet}{/etc/resolv.conf}
nameserver 10.0.0.1\\
search domain.local\\
domain domain.local
\end{snippet}
\bigskip
\onslide<2->%
Verificare comunicazione e risoluzione nomi:
\begin{shell}
ping 10.0.0.1
\end{shell}
\begin{shell}
ping testdc.domain.local
\end{shell}
\begin{shell}
ping testdc
\end{shell}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{1 --- Installazione pacchetti necessari}
\begin{shell*}
aptitude install openntpd ntpdate krb5-user samba winbind smbclient
\end{shell*}
\bigskip
\onslide<2->%
Opzionalmente:
\begin{shell*}
aptitude install smbfs
\end{shell*}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{2 --- Configurazione NTP}
Fermiamo il servizio:
\begin{shell*}
/etc/init.d/openntpd stop
\end{shell*}
\bigskip
\onslide<2->%
\begin{snippet}{/etc/openntpd/ntpd.conf}
server testdc.domain.local
\end{snippet}
\bigskip
\onslide<3->%
Impostiamo l'ora\ldots
\begin{shell*}
ntpdate testdc.domain.local
\end{shell*}
\bigskip
\onslide<4>%
\ldots e riavviamo il servizio:
\begin{shell*}
/etc/init.d/openntpd start
\end{shell*}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{3 --- Configurazione Kerberos}
\begin{snippet}{/etc/krb5.conf}
[libdefaults]\\
default\_realm = DOMAIN.LOCAL\\
\ldots\newline
[realms]\\
DOMAIN.LOCAL = \{\\
\hspace{2ex}kdc = testdc.domain.local\\
\hspace{2ex}admin\_server = testdc.domain.local\\
\}\\
\ldots\newline
[domain\_realm]\\
.domain.local = DOMAIN.LOCAL\\
domain.local = DOMAIN.LOCAL
\end{snippet}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{4.0 --- Configurazione SAMBA: generale}
\begin{snippet}{/etc/samba/smb.conf}
[global]\\
workgroup = DOMAIN\\
\alert<2>{\textbf<2>{realm = DOMAIN.LOCAL}}\\
wins server = 10.0.0.1\\
\alert<2>{\textbf<2>{security = ads}}\\
\alert<2>{\textbf<2>{password server = testdc.domain.local}}\\
obey pam restrictions = yes\\
unix password sync = yes\\
\alert<2>{\textbf<2>{winbind separator = +}}\\
\alert<2>{\textbf<2>{winbind use default domain = yes}}
\end{snippet}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{4.1 --- Configurazione SAMBA: condivisioni}
\begin{snippet}{/etc/samba/smb.conf}
[shared]\\
comment = \ldots\\
path = /var/local/shared\\
\alert<2>{\textbf<2>{valid users = \%U}}\\
browseable = yes\\
writable = yes\\
guest ok = no\\
read only = no\\
\alert<3>{\textbf<3>{create mask = 0664}}\\
\alert<3>{\textbf<3>{directory mask = 0775}}
\end{snippet}
\bigskip
\onslide<4->
Infine testiamo il file:
\begin{shell*}
testparm
\end{shell*}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{5 --- Messa in dominio}
Riavviamo i servizi:
\begin{shell*}
/etc/init.d/samba restart
\end{shell*}
\begin{shell*}
/etc/init.d/winbind restart
\end{shell*}
\medskip
\onslide<2->
Verifichiamo che Kerberos funzioni:
\begin{shell*}
kinit -a administrator
\end{shell*}
\medskip
\onslide<3->
Messa in dominio:
\begin{shell*}
net ads join -U Administrator
\end{shell*}
\medskip
\onslide<4->
Verifichiamo che si riesca ad accedere alle informazioni di dominio:
\begin{shell*}
wbinfo -u
\end{shell*}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{Un \textit{cadeau}}
Possiamo «importare» magicamente gruppi e utenze all'interno della macchina
Linux aggiungendo:
\begin{snippet}{/etc/nsswitch.conf}
passwd: compat \alert{\bfseries winbind}\\
\alert{\bfseries passwd\_compat: winbind}\\
group: compat \alert{\bfseries winbind}\\
\alert{\bfseries group\_compat: winbind}\\
shadow: compat \alert{\bfseries winbind}
\end{snippet}
\bigskip
\visible<2->{%
Sarà ora possibile attribuire i permessi a intere cartelle come:
\begin{shell*}
chown -R root:'domain users' /var/local/shared
\end{shell*}}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{Difetti d'implementazione}
\begin{itemize}
\item Non utilizza Heimdal Kerberos (se necessario LDAP, da preferire)
\item Incompatibilità con sistemi \textit{Microsoft} più moderni: Windows
7, Windows 2008 Server.\\
\visible<3->{\alert{Soluzione} --- Samba 3.4 da \textit{Lenny Backports}}
\item<4-> L'implementazione attuale non permette il login sul file server di
utenze di dominio (necessario configurare PAM)
\end{itemize}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{Cosa possiamo fare ora?}
A partire da quanto messo a punto ora possiamo implementare:
\begin{itemize}[<+->]
\item un proxy autenticato (Squid + \texttt{auth\_ntlm})
\item un \textit{domain controller} Linux-based (LDAP)
\end{itemize}
\end{frame}
\begin{frame}\transboxin<1>
\frametitle{Sitografia}
\begin{thebibliography}{The Samba HOWTO and Reference Guide}
\bibitem<1>[SAMBA]{SAMBA}
The SAMBA Team
\newblock\textit{The Official Samba 3.5.x HOWTO and Reference Guide}
\newblock\urlify{http://tinyurl.com/samba-howto}
\bibitem<1>[SurlyJake]{Surlyjake}
Blog di Jake Surly
\newblock Post: \textit{Join Debian Lenny to Active Directory using
Samba}
\newblock\urlify{http://tinyurl.com/samba-adjoin}
\bibitem<1>[Deb-DC]{Deb-DC}
Guide Debianizzati
\newblock\textit{Samba e OpenLDAP: creare un controller di dominio con
Debian Lenny}
\newblock\urlify{http://tinyurl.com/deb-dc}
\bibitem<1>[Deb-SDC]{Deb-SDC}
Guide Debianizzati
\newblock\textit{Samba, OpenLDAP, Kerberos: creare un controller di
dominio sicuro con Debian Lenny}
\newblock\urlify{http://tinyurl.com/deb-secure-dc}
\end{thebibliography}
\end{frame}
% End slide
\end{document}