9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ubuntu / centOSの環境構築 ~初期設定・LDAP認証・Docker~

Last updated at Posted at 2016-06-04

#はじめに
ubuntu(14.04)とcentOS(6, 7)の初期設定の備忘録です.
IPアドレスの固定,LDAP認証,dockerの導入,sambaのマウント,その他細かい設定です.

#設定

##初期設定

パッケージのアップグレード

ubuntu

$ apt-get update
$ apt-get upgrade

centOS

$ yum update

###ネットワーク関連
以下のアドレスは例ですので,設定前に必要な情報を確認してください.

####ubuntu

/etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.10     # IPアドレス
netmask 255.255.255.0    # サブネットマスク
gateway 192.168.0.1      # デフォルトゲートウェイ
dns-nameservers 192.168.0.1 XXX.XXX.XXX.XXX 8.8.8.8    #dnsサーバ

ifdown eth0 && ifup eth0またはリブートして設定を適用します.sshが切断されて,また接続できるようになるのを祈ります.設定を誤るとネットワーク経由でアクセスできなくなるので慎重に作業してください.

eth0はインタフェース名です.ubuntu 16.04ではenp0s31f6などです.ifconfigで確認できます.

####centOS6

/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0                #デバイス名
ONBOOT=yes                 #システム起動時に有効にするか
BOOTPROTO=none             #固定IP:none,static DHCPはdhcp
HWADDR=XX:XX:XX:XX:XX:XX   #MACアドレス
TYPE=Ethernet              #インタフェースのデバイスタイプ。他にxDSLなど
#DHCP_HOSTNAME=example.com #DHCPサーバに通知するホスト名
IPADDR=192.168.0.10        #IPアドレスの指定
NETMASK=255.255.255.0      #IPアドレスに対するネットマスクの指定
USERCTL=no                 #デバイスの制御をroot以外にも許すか。
PEERDNS=no                 #DHCPによって取得したDNSサーバのアドレスを/etc/resolv.confに反映するか。DHCPを使う場合は通常yes。
GATEWAY=192.168.0.1        #デフォルトのゲートウエイアドレス(普通はルータのIPアドレスを書く)
IPV6INIT=no                #このデバイスでIPv6を有効にするか
/etc/resolv.conf
nameserver 192.168.0.1
nameserver XXX.XXX.XXX.XXX

####centOS7
$nmtui コマンドを使います.TUIというグラフィカルなCUI(?で設定できます.

(参考) 複数のNICを使う場合

eth0にグローバルIP,eth1にローカルIPが振られているケースを想定します.グローバルIPに向けて何らかのサービスを提供する場合,default gatewayをグローバルIP側に設定する必要があります.
ubuntuでは,/etc/network/interfacesで,最初に宣言されたgatewayがdefault gatewayとして設定されるようです.すなわちこの例では,eth0の定義を先に記述します.$routeコマンドで設定されているルーティングテーブルを確認することが出来ます.また,$ping [IP address] -I [interface]のように,特定のインターフェースからpingを打つことで接続状況を確認することが出来ます.

##LDAP認証
稼働済みのldapサーバに接続して,ldap認証を用いてログインできるように設定します.

####ubuntu
基本的にLDAPClientAuthenticationのサイトに従って設定.

以下のように設定するところがありますが,例えばdockerグループを追加しておくとldapでログインしたユーザがdockerをsudoせずに使えるようになります(そもそもsudoもできませんが).(;;*;という設定だとすべてのユーザがdockerに追加される?

/etc/security/group.conf
*;*;*;Al0000-2400;audio,cdrom,dialout,floppy

####centOS
こちらを参考にさせていただきました.
authconfig-tui で設定したあと,/etc/pam.d/system-auth/etc/pam.d/password-auth/etc/nsswitch.confのsssをldapに置換します.

ホームディレクトリ生成の設定は$authconfig --enablemkhomedir --updateでできるみたいです.

ubuntuと同様にldapユーザを特定のグループに所属させたいと思います./etc/security/group.confについてはubuntuと同様に設定します.
問題は,ubuntuで/etc/pam.d/common-authに追記する内容ですが,/etc/pam.d/password-authに追記するとうまくいきました.何をやっているかいまいち理解していないので試行錯誤です...

ログインシェルの指定

LDAPサーバ側で指定されているシェルが存在しない場合エラーとなりログインできません.以下の設定を追記することで,ログインシェルを上書きすることが出来ます.

[ubuntu]/etc/ldap.conf
nss_override_attribute_value loginShell /bin/bash
[centOS]/etc/nslcd.conf
map passwd loginShell "/sbin/bash"

####トラブルシューティング
認証に失敗する場合,以下のログを解析すると原因が分かるかも知れません.

  • ubuntu: /var/log/auth.log
  • centOS: /var/log/secure

##docker環境導入
以下のスクリプトを用いて最新版を導入できます.
(参考サイト: http://docs.docker.jp/linux/step_one.html)

$curl -fsSL https://get.docker.com/ | sh

まっさらな環境であれば問題なく入れられると思いますが,すでに古いバージョンが入っているとコンフリクトする場合があります.その場合は$yum remove docker docker-selinuxで一度アンインストールしました(centOS).

###dockerグループ
前述のようにユーザをdockerグループ(dockerrootグループの場合もあるようです)に追加するとsudoなしで実行できるようになりますが,これは/var/run/docker.sockの所有者がdockerグループであることに起因している(みたいです).なので,もしパーミッションが異なる場合dockerグループのユーザでもdockerを実行できません.パーミッションを変更すれば良いようです.

###ブート時の起動
ブート時にdockerサービスを自動的に起動します.

$ systemctl enable docker    # ubuntu
$ chkconfig docker on        # centOS

###docker-compose
pipで簡単に入ります,が一部のpythonライブラリのバージョン関連で面倒な事態になる場合も...

$ pip install docker-compose

###nvidia-docker
公式github通りに入れましたが,ここでもdockerのバージョンが古いと動きません.

sambaをマウントする

  1. パッケージを導入します.$apt-get install cifs-utils
  2. マウント先のディレクトリを作成します$mkdir /path/to/mount
  3. /etc/fstabに追記します.オプションは適宜.
/etc/fstab
//samba/server cifs username=hoge,password=foo,uid=nobody,gid=nogroup,file_mode=0777,dir_mode=0777 0 0

$ mount -a によってマウントすることが出来ます.

rootログインを許可する

セキュリティ的に大丈夫で必要な場合のみ
以下を追加します.

/etc/ssh/sshd_config
PermitRootLogin  yes
9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?