回答:
[編集] Ubuntu 10.04 Server(2010年5月21日)のフルリリースをテストしました。
Windowsネットワーク上にあるUbuntu 10.04 Server LTSを設定して、アクティブディレクトリを使用してログインを認証し、そこにホームディレクトリとして機能するWindows共有をマウントしました。
ここに、Ubuntuの初期インストールから始めたものを示します。
アップデートを入手
# sudo apt-get update && sudo apt-get upgrade
SSHサーバーをインストールする(sshd
)
# sudo apt-get install openssh-server
rootログインを無効にして「sshdをロックダウン」する必要があると主張する人もいます。rootパスワードのSSHセッションをハックするためにあなたのスマート十分であれば、私の図は、おそらくの添加によって阻止されるつもりはないPermitRootLogin no
で/etc/ssh/sshd_config
ファイル。あなたの妄想または単純に納得していない場合は、ファイルを編集するか、以下を試してください:
# (grep PermitRootLogin /etc/ssh/sshd_config && sudo sed -ri 's/PermitRootLogin ).+/\1no/' /etc/ssh/sshd_conifg) || echo "PermitRootLogin not found. Add it manually."
必要なパッケージをインストールする
# sudo apt-get install winbind samba smbfs smbclient ntp krb5-user
今後の特定のパッケージ構成に備えて、基本的なネットワーキングの大掃除を行います。
Active Directoryサーバー(samba用)のWindowsドメイン名、DNSサーバー名、およびIPアドレスを決定します。便宜上、WindowsドメインとDNSサーバーの環境変数を設定します。私にとっては(私のAD IPアドレスは192.168.20.11でした):
# WINDOMAIN=mydomain.local && WINDNS=srv1.$WINDOMAIN && WINDNS_IP=192.168.20.11
ドメインとDNSサーバー(私は請負業者であり、ネットワークを知らなかった)が何かを知りたい場合は、この役立つリファレンスを参照してください。
新しいネットワークでLinuxボックスに名前を付ける必要があります。これは、ホストファイルを編集して行います(DNSをWindows DNSのFQDNに置き換えます)。
# sudo sed -ri "s/^(127\.0\.[01]\.1[ \t]).*/\1$(hostname).$WINDOMAIN localhost $(hostname)/" /etc/hosts
また、今後のインストールされたサービスにリーダーを見つけることができます:一部のネットワークにはnetbios名前検索サービスがありますが、念のため、/etc/hosts
ファイルに明示的なエントリを追加します。私の構成では、3番目のエントリを追加しました(3)ライン:
# sudo sed -ri "3 i $WINDNS_IP $WINDNS" /etc/hosts
WindowsおよびLinuxボックスの認証およびファイル共有プロセスでは、クロックを一致させる必要があります。NTPサービスを使用してこれを行います。Ubuntuのサーバーバージョンでは、NTPサービスがインストールされ、1つの NTPサーバーで構成されます。Ubuntuの前に追加します(または完全に置き換えます)。私が参加していたネットワークには、NTPサーバーを提供するDNSサーバーもありました。
# sudo sed -ri "s/^(server[ \t]+)(.+)/\1$WINDNS\n\1\2/" /etc/ntp.conf
NTPデーモンを再起動します。
# sudo /etc/init.d/ntp restart
Kerberos構成。
値:ここに従う命令は文字通りに解釈されてはならないMYDOMAIN.LOCAL
とsrv1.mydomain.local
あなたがファイルを編集するときに、あなたのネットワークに適した何と交換する必要がありますが、大文字が使用されている大文字が必要であることをメモしてください。Kerberosの実行
中にapt-get install
「デフォルトドメイン」の質問に正しく応答する洞察が得られた場合は、それで十分です。それ以外の場合は、以下を実行する必要があります。
(以前にインストールした)/etc/krb5.conf
ファイルを編集します。
[libdefaults]
セクションを見つけて、キーと値のペアを変更します。
[libdefaults]
default_realm = MYDOMAIN.LOCAL
[realms]
ファイルのセクションに次を追加します。
MYDOMAIN.LOCAL = {
kdc = srv1.mydomain.local
admin_server = srv1.mydomain.local
default_domain = MYDOMAIN.LOCAL
}
[domain_realm]
ファイルのセクションに次を追加します。
.mydomain.local = MYDOMAIN.LOCAL
mydomain.local = MYDOMAIN.LOCAL
この時点での良いテストは、ADコントローラーがkerberosチケットを発行するかどうかを確認することです。これは必ずしも必要ではありませんが、気分を害する可能性があります。
# kinit <some_windows_domain_user>
次に、チケットを表示し
# klist
ます。チケットのキャッシュ、有効期限、更新に関する情報が表示されます。めまいが収まったら、チケットをリリース/破棄することもできます。
# kdestroy
sambaを構成します。
以下によると:
CIFSを使用できない場合や、別のネットワークファイルシステムの選択が適している場合があります。セキュリティを強化するためにKerberos(krb5 / SPNEGO)認証サポートが必要な場合は、cifs
Alasの代わりにSambaのsmbclientまたはsmbfsを使用する必要がありますcifs
。ubuntu10.04(カーネルバージョン2.6.32.9に基づく)のサポートはバージョン1.61です。カーネルのドキュメントによると、実験的なkerberosの実装はバージョン1.54からありました。
あなたはそこにいます。うまくいくかどうかわからないcifs
ので、sambaの構成を説明します。
置き換えます/etc/samba/smb.conf
(Ubuntuのクリーンなディストリビューションで作業していたので、何かを壊す心配はありませんでした)。
[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
さまざまなサービスを開始および停止します。
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
認証をセットアップします。
を編集し/etc/nsswitch.conf
ます。次のコマンドを実行して必要なものを取得できました。ファイルの
# sed -ri 's/(compat)/\1 winbind/' /etc/nsswitch.conf
内容は次のとおり/etc/nsswitch.conf
です。
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
さまざまなサービスを開始および停止します。
# sudo /etc/init.d/winbind stop
# sudo service smbd restart
# sudo /etc/init.d/winbind start
コンピューターをドメインに参加させます。これが必要だとは思いません。特にsmb.conf
ファイル(security = ads
)のセキュリティオプションが原因です。おそらく誰かがこれについて議論する
# sudo net ads join -U any_domain_user_account
ことができます... あなたはエラーを受け取るかもしれませんDNS update failed!
が、あなたはドメインに参加するでしょう。サーバーが見つからないというエラーが表示された場合は、DNSレコードを変更する必要があります。Ubuntuのインストール中、ネームサーバーは多くの場合ゲートウェイを指します。ほとんどのルーターはDNSサービスを実行します。Windowsサーバー管理のベストプラクティスは、ADCもDNSを実行することです。私の場合は私の/etc/resolve.conf
ようになります:グーグルDNS、1つがダウンした窓の場合ではかなり信頼性の高いバックアップです。
nameserver 192.168.20.11
nameserver 8.8.8.8
8.8.8.8
この時点で(おそらく再起動後に)ログインできましたが、ホームディレクトリは存在しませんでしたが、ログインできました。
ログイン時のCIFSマウント
この次のステップは、私にとっては桜でした。私は全員の作業ディレクトリをバックアップする責任を望みませんでした。Ubuntuが実行されるはずだったボックスは、信頼性の点で疑わしいものでした。次の操作を行うことにより、ユーザーはログインして、Windowsユーザーディレクトリを自動的に表示できます。
pam_mount
モジュールをダウンロードします。
# sudo apt-get install libpam-mount
マウントポイントが従来の/home/<user>
場所を指すようにしました。この部分は/etc/samba/smb.conf
ファイル(template homedir = /home/%U
)で構成されます。しかし、共有をドリルスルーし、独自のWindowsディレクトリを指すようにする必要がありました。これは、/etc/security/pam_mount.conf.xml
ファイルを編集することで実現されます(意図に反して、XML は人間が読める形式ではありません)。
以下を追加し、/etc/security/pam_mount.conf.xml
それに合わせて変更します。
<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>
間抜けなマウントポイントのために、次の行も追加する必要がありました。
<umount>umount %(MNTPT)/%(USER)</umount>
そして、ユーザーディレクトリ(マウントポイント用)が自動的に作成されるように、行を見つけて次のようにします:
<mkmountpoint enable="1" remove="false" />
remove="false"
ビットは非常に重要です。これをtrueに設定すると、pam_mount.so
ディレクトリを削除しようとするには、ユーザーが複数回ログインしている場合、それは行うことができないマウントポイント。その場合、システムにたくさんの浮遊マウントができてしまいます。
pam_mount.so
まだ約束どおりに配信されません。現在の形式では、マウントは山積みになり、ホームディレクトリは作成されません。ここと以前の10.04サーバーのベータ2リリースの間のどこかで、機能していました。ただし、これを再作成することはできません。
ディレクトリ作成の間に、私はに依存しておりpam_mkhomedir.so
、pam_mount.so
対応する行の直前に行を付けました。
私はまだ複数のマウントの問題を解決していません。しかし、pam_mount.so
修正されるまで、これは私の/etc/pam.d/common-session
ファイルにあるものです:
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_unix.so
session optional pam_winbind.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
session optional pam_mount.so
それでおしまい。それは私のために働いた、そして私はあなたがそれが有用であるとわかることを望む。
多数のリソースが検討されたため、これを把握できました。以下に短いリストを示します(これらのリンクの多くは、トピックに関する私の質問を指し示しています)。
sudo
dですか、何か不足していますか?
sudo
」 -そしてこれはより良い...どのように?(sudoの資格を持つユーザーアカウントが侵害された場合、基本的に同じことです。また、ルートまたはユーザーアカウントをブルートフォースすることも基本的に同じです(またはそうではありません)。ベースのログイン。)