2015年4月30日木曜日

VyOS構築メモ



簡単に仮想ルータを作成できるVyOSです。(元Vyattaの無料版)

以下、構築メモです。

isoイメージ格納URL
http://vyos.nervex.net/iso/release/1.1.5/

isoイメージからインストール

install image

編集モード

configure

設定の保存

commit
save

固定IPの付与

set interfaces ethernet eth0 address 192.168.0.1/24

SSHの通信の許可

set service ssh

設定確認

show

NAT変換(eth0から192.168.64.150にアクセスしてきたら172.16.0.10に送る)

set nat destination rule 1 destination address 192.168.64.150
set nat destination rule 1 translation address 172.16.0.10
set nat destination rule 1 inbound-interface eth0

上記ルール削除

delete nat destination rule 1

NAT変換(192.168.64.0/24でアクセスしてきたら172.16.0.254に変換してeth1に送る)

set nat source rule 1 source address 192.168.64.0/24
set nat source rule 1 translation address 172.16.0.254
set nat source rule 1 outbound-interface eth1

上記ルール削除

delete nat source rule 1

ポートフォワード(eth0から192.168.64.150:80にアクセスしてきたら172.16.0.10に送る)

set nat destination rule 1 destination address 192.168.64.150
set nat destination rule 1 destination port 80
set nat destination rule 1 inbound-interface eth0
set nat destination rule 1 protocol tcp
set nat destination rule 1 translation address 172.16.0.10

DHCP設定

set service dhcp-server shared-network-name dhcp1 subnet 172.16.0.0/24 start 172.16.0.11 stop 172.16.0.19
set service dhcp-server shared-network-name dhcp1 subnet 172.16.0.0/24 default-router 172.16.0.254
set service dhcp-server shared-network-name dhcp1 subnet 172.16.0.0/24 dns-server 192.168.64.2

CentOS6にVagrantを導入する

既出ですがメモです。

VirtualBoxは依存関係が多いためyumでインストールします。

vi /etc/yum.repos.d/CentOS-Base.repo

[virtualbox]
name=Oracle Linux / RHEL / CentOS-$releasever / $basearch - VirtualBox
baseurl=http://download.virtualbox.org/virtualbox/rpm/el/$releasever/$basearch
enabled=1
gpgcheck=1
gpgkey=https://www.virtualbox.org/download/oracle_vbox.asc

yum install VirtualBox-4.3

Vagrantは依存関係少ないためダウンロードしたrpmを実行します。

rpm -ivh vagrant_1.7.2_x86_64.rpm

vagrant upで上がらない場合は以下を実行

VBoxManage --version
/etc/init.d/vboxdrv setup
/etc/init.d/vboxdrv setupで失敗した場合は以下を実行

yum -y install kernel-devel kernel-headers dkms gcc gcc-c++ perl
/etc/init.d/vboxdrv setup
 
/etc/init.d/vboxdrv setupが成功したら起動するはずです

以上。

以上。

2015年4月22日水曜日

DockerコンテナにClamSMTPを導入する。

Dockerコンテナにメールリレーサーバを導入するの続きです。

導入したメールリレーサーバにClamSMTPを導入して、メールのウイルスキャンを行います。

DockerコンテナにClamAVを導入します。
※CentOS7にClamAVをインストールする を参照してください。

下記URLからClamSMTPをダウンロードします。

http://thewalter.net/stef/software/clamsmtp/clamsmtp-1.10.tar.gz

ClamSMTPをインストールします。


tar vxf clamsmtp-1.10.tar.gz
cd clamsmtp-1.10
./configure && make && make install
cp doc/clamsmtpd.conf /usr/local/etc/clamsmtpd.conf
cp scripts/clamsmtpd.sh /etc/init.d/clamsmtpd.sh

/usr/local/etc/clamsmtpd.confファイルを修正します。(抜粋

vi /usr/local/etc/clamsmtpd.conf


Action: drop
ClamAddress: /usr/local/sbin/clamd
OutAddress: 10026
Listen: 0.0.0.0:10025
Header: X-Virus-Scanned: ClamAV using ClamSMTP

/etc/clamd.confファイルを修正します。(抜粋

vi /etc/clamd.conf


LocalSocket /usr/local/sbin/clamd


/etc/postfix/main.cf ファイルに追加します(抜粋

vi /etc/postfix/main.cf


content_filter = scan:127.0.0.1:10025


/etc/postfix/master.cf  ファイルに追加します(抜粋

vi /etc/postfix/master.cf


scan unix -       -       n       -       16       smtp
   -o smtp_data_done_timeout=1200
   -o smtp_send_xforward_command=yes
   -o disable_dns_lookups=yes
127.0.0.1:10026 inet n       -       n       -       16       smtpd
   -o content_filter=
   -o local_recipient_maps=
   -o relay_recipient_maps=
   -o smtpd_restriction_classes=
   -o smtpd_client_restrictions=
   -o smtpd_helo_restrictions=
   -o smtpd_sender_restrictions=
   -o smtpd_recipient_restrictions=permit_mynetworks,reject
   -o mynetworks_style=host
   -o smtpd_authorized_xforward_hosts=127.0.0.0/8


各サービスを再起動します。


  service clamd stop
  service clamd start
  /etc/init.d/clamsmtpd.sh start
  service postfix restart


メールクライアントからリレーサーバ経由のメールを送信します。

テストウイルスを添付したメールを送付すると/var/log/maillogに以下のログが記録されます。

clamsmtpd: 100015: from=sample@smtp1.co.jp, to=sample2@smtp2.co.jp, status=VIRUS:Eicar-Test-Signature

Dockerコンテナにメールリレーサーバを導入する。

DockerコンテナでPostfix+Dovecotを導入する(DNSサーバ経由)の続きです。

DNSサーバにPostfixをインストールします。

 yum -y install postfix

メールリレーの設定をします。

vi /etc/postfix/main.cf

 mynetworks = 172.17.0.0/16, 127.0.0.0/8

postfixを起動します。


 service postfix start
 chkconfig postfix on


2台のメールサーバのmain.cfのrelayhostをDNSサーバに向けます。

smtp1

relayhost = 172.17.0.100


smtp2

relayhost = 172.17.0.100

2台のメールサーバの/etc/resolv.confに以下を設定します。


nameserver 172.17.0.100

postfixを再起動します。

メールクライアントで相互疎通を確認します。


Dockerにはrsysogがないのでメールリレーをログで確認したい場合はrsyslogをインストールします。


 yum -y install rsyslog
 service rsyslog start
 chkconfig rsyslog on

DockerコンテナでPostfix+Dovecotを導入する(DNSサーバ経由)

Dockerコンテナにbindを導入してMXレコードでメール配信できるようにしました。

DockerコンテナでPostfix+Dovecotを導入する(2台構成)の続きです。

Dockerコンテナに起動+固定IPを割り当てます。

```bash
docker start bind
pipework br0 bind 172.17.0.100/16@172.17.42.1
docker attach bind
```

bindを導入します。

 yum -y install bind

bindファイルを追加、修正します。

vi /etc/named.conf

```bash

options {
        listen-on port 53 { any; };
        #listen-on-v6 port 53 { none; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { 172.17.0.0/16; };
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

#view "internal" {
#        match-clients {
#                localhost;
#                172.17.0.0/16;
#        };

zone "." IN {
        type hint;
        file "named.ca";
};
        zone "bind.local"  {
                type master;
                file "bind.local.lan";
                allow-update { none; };
        };
        zone "smtp1.co.jp"  {
                type master;
                file "smtp1.co.jp.lan";
                allow-update { none; };

        };
        zone "smtp2.co.jp"  {
                type master;
                file "smtp2.co.jp.lan";
                allow-update { none; };

        };
        zone "0.17.172.in-addr.arpa" {
                type master;
                file "0.17.172.in-addr.arpa.db";
                allow-update { none; };
        };
#include "/etc/named.rfc1912.zones";
#include "/etc/named.root.key";

```
vi /var/named/bind.local.lan

```bash
$TTL 86400
@   IN  SOA     bind.local. root.bind.local. (
        2014080201  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

 IN     NS      bind.local.
 IN     A       172.17.0.100
 IN     MX      10      test01.smtp1.co.jp.
 IN     MX      10      test02.smtp2.co.jp.
test01  IN      A       172.17.0.101
test02  IN      A       172.17.0.102
test03  IN      A       172.17.0.100
```

vi /var/named/0.17.172.in-addr.arpa.db

```bash
$TTL 86400
@   IN  SOA     bind.local. root.bind.local. (
        2014080201  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

 IN  NS      bind.local.
 IN  PTR     bind.local.
```

vi /var/named/smtp1.co.jp.lan

```bash
$TTL 86400
@   IN  SOA     smtp1.co.jp. root.smtp1.co.jp. (
        2014080201  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

 IN     NS      smtp1.co.jp.
 IN     A       172.17.0.101
 IN     MX      10      test01.smtp1.co.jp.
test01  IN      A       172.17.0.101
```
vi /var/named/smtp2.co.jp.lan

```bash
$TTL 86400
@   IN  SOA     smtp2.co.jp. root.smtp2.co.jp. (
        2014080201  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

 IN     NS      smtp2.co.jp.
 IN     A       172.17.0.102
 IN     MX      10      test02.smtp2.co.jp.
test02  IN      A       172.17.0.102
```

bindを起動します。

  service named start
  chkconfig named on

2台のメールサーバのmain.cfのrelayhostをコメントアウトします。

smtp1

```bash
#relayhost = 172.17.0.102
```

smtp2

```bash
#relayhost = 172.17.0.101
```

2台のメールサーバの/etc/resolv.confに以下を設定します。

```bash
nameserver 172.17.0.100
```

postfixを再起動します。

メールクライアントで相互疎通を確認します。

DockerコンテナでPostfix+Dovecotを導入する(2台構成)

DockerコンテナにPostfix + Dovecotを導入して相互に疎通してみました。

DockerコンテナでPostfix+Dovecotを導入する(1台構成)の続きです。

Dockerコンテナに起動+固定IPを割り当てます。
 
 docker start smtp2
 pipework br0 smtp1 172.17.0.102/16@172.17.42.1
 docker attach smtp2

postfixとDovecotを導入します。
設定は割愛します。

メールドメイン:smtp2.co.jpで作成します。

2台のmain.cfに以下を追加します。

smtp1
 
 relayhost = 172.17.0.102

smtp2
 
 relayhost = 172.17.0.101

メールクライアントで相互疎通を確認します。

DockerコンテナでPostfix+Dovecotを導入する(1台構成)


DockerコンテナにPostfix + Dovecotを導入してみました。

Dockerコンテナを起動+固定IPを割り当てます。

docker start smtp1
pipework br0 smtp1 172.17.0.101/16@172.17.42.1
docker attach smtp1

postfixとDovecotを導入します。

yum -y install postfix dovecot

Postfix の構成ファイルを修正します。(抜粋
メールドメイン:smtp1.co.jp

vi /etc/postfix/main.cf

 myhostname = test01.smtp1.co.jp
 mydomain = smtp1.co.jp
 myorigin = $mydomain
 inet_interfaces = all #同パラメータはコメントアウト
 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #同パラメータはコメントアウト
 mynetworks = 172.17.0.0/16, 127.0.0.0/8
 home_mailbox = Maildir/
 
Dovecotの構成ファイルを修正します。(抜粋

vi /etc/dovecot/conf.d/10-mail.conf

 mail_location = maildir:~/Maildir
 
vi /etc/dovecot/conf.d/10-auth.conf

 disable_plaintext_auth = no
 
vi /etc/dovecot/dovecot.conf

 protocols = imap imaps
 
vi /etc/dovecot/conf.d/10-master.conf

   # Postfix smtp-auth
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix

  }

メールユーザを作成します・

useradd -s /sbin/nologin sample1
passwd sample1

ファイアウォールを停止します。

service iptables stop
chkconfig iptables off

サービスを起動します。

service postfix start
chkconfig postfix on
service dovecot start
chkconfig dovecot on

メールクライアントでsample1ユーザでログインします。
(ThunderbirdだとSSLの警告がでますが無視します。)

自分から自分にメール疎通確認します。
 

Dockerコンテナに固定IPを割り当てる(pipework)



既出ですがメモです。

AWSのフローティングIPみたいに固定eth1をコンテナに追加します。

以下を参照
https://opsbot.com/advanced-docker-networking-pipework/

Pipeworkを導入します。

sudo bash -c "curl https://raw.githubusercontent.com/jpetazzo/pipework/master/pipework > /usr/local/bin/pipework"

https://raw.githubusercontent.com/jpetazzo/pipework/master/pipework にアクセスして中身を
/usr/local/bin/pipework にviしてもいけました。

コンテナを起動します。

docker start smtp1

固定IPを割り当てます。
以下例ではコンテナsmtp1に[172.17.0.101/16]の固定IPを割り当てデフォルトゲートウェイに172.17.42.1を付与します。

pipework br0 smtp1 172.17.0.101/16@172.17.42.1

コンテナにログインします。

docker attach smtp1

ifconfig でeth1が追加されたことを確認します。

CentOS7にDockerを導入する

既出ですがメモです。

Dockerをインストールします。

yum -y install docker

プロキシ経由の場合は以下ファイルに追加します。

vi /etc/sysconfig/docker

 http_proxy=http://XXX.XXX.XXX.XXX:8080/
 https_proxy=http://XXX.XXX.XXX.XXX:8080/

Dockerを起動してサーバ起動時に有効にします

systemctl start docker
systemctl enable docker

Dockerイメージ(CentOS6)をダウンロードします。

docker pull centos:centos6

dockerコンテナを権限付与して起動します。

docker run --name smtp1 --privileged -it centos:6 /bin/bash

コンテナのコンソールに入るのでexitで抜けます。(コンテナが停止します。)

作成したコンテナを起動します。

docker start smtp1

作成したコンテナのコンソールに入ります。

docker attach smtp1

[Ctrlキー押しながら pq]でログアウトします。

docker ps で起動中のコンテナ一覧を表示します。

docker ps -aですべてのコンテナ一覧を表示します。

2015年4月20日月曜日

ClamAVでオンアクセススキャンを行う

リアルタイムスキャン(オンアクセススキャン)を有効にする場合は以下をコメントアウト
検知しても自動削除はしてくれなさそうです。

 ScanOnAccess yes
 OnAccessIncludePath /home #←オンアクセススキャンを実行するパス

clamdを再起動します。

下記エラーが発生した場合は/tmp/clamd.socketを削除します。

 ERROR: LOCAL: Socket file /tmp/clamd.socket is in use by another process.

ログに以下のように記録されます。
 
 Database correctly reloaded (3793682 signatures)
 ScanOnAccess: Protecting directory '/home'
 ScanOnAccess: Max file size limited to 5242880 bytes
 ScanOnAccess: /home/eicar - コピー.com: Eicar-Test-Signature FOUND

CentOS7にClamAVをインストールする

CentOS7にClamAVをインストールする

以下マニュアルを参照
https://github.com/vrtadmin/clamav-faq/raw/master/manual/clamdoc.pdf

最新ファイルは以下を参照(この記事では0.98.06でした)
http://www.clamav.net/download.html

yumのほうが楽ですね・・・

【インストール】

前提条件のパッケージを導入します。


 yum -y install zlib zlib-devel gcc gcc-c++ bzip2 bzip2-devel


ダウンロードファイルを解凍してインストールします。
(インストールに約10分かかります)


cd /home
tar zxvf clamav-0.98.6.tar.gz
cd clamav-0.98.6
./configure --prefix=/home/gary/clamav --disable-clamav
make; make install

ユーザとグループを作成します。


groupadd clamav
useradd -g clamav -s /bin/false -c "Clam AntiVirus" clamav


clamavユーザでログインして下記を実行します。


zcat clamav-x.yz.tar.gz | tar xvf -
cd clamav-x.yz
./configure --sysconfdir=/etc
make
su -c "make install"


オプションですがsendmailのメールスキャニング機能を有効にする場合は以下を実行します。


./configure --enable-milter


以下を実行するとインストールチェックを実施してくれます。


 ./configure --enable-check
 make
 make check


下記ファイルを作成しユーザ権限を付与します。


mkdir /usr/local/share/clamav
chmod 755 /usr/local/share/clamav
chown clamav:clamav /usr/local/share/clamav


構成ファイルをコピーします。


cp /etc/freshclam.conf.sample /etc/freshclam.conf
cp /etc/clamd.conf.sample /etc/clamd.conf


ウイルス定義ファイル用構成ファイルを編集します。


vi /etc/freshclam.conf


最低限の設定として以下をコメントアウトします。

 EXAMPLE

ウイルス対デーモン用構成ファイルを編集します。


vi /etc/clamd.conf


最低限の設定として以下をコメントアウトします。

 LocalSocket /tmp/clamd.socket
 EXAMPLE

以下コマンドを実行してサービスを開始します


clamd


以下コマンドでカレントファイルのウイルススキャンを実行します


clamscan


サーバ起動時の設定を行います。

 vi /etc/rc.d/init.d/clamd


#!/bin/sh
# chkconfig: 345 99 1
# description: clamd
# processname: clamd

start() {
    echo -n "starting clamd:"
    /usr/local/sbin/clamd
    return 0
}

stop() {
    killall clamd
    return 0
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    status)
        status $prog
        ;;
    restart)
        stop
        start
        ;;
    *)
        echo $"Usage: $0 {start|status|restart|stop}"
        exit 2
esac

exit 0



 chmod 755 /etc/rc.d/init.d/clamd
 systemctl status clamd
 chmod +x /etc/rc.d/init.d/clamd
 ln -s /etc/rc.d/init.d/clamd /etc/rc3.d/S90clamd
 chkconfig clamd on

CentOS7 とsamba4でActiveDirectoryを構築する

既出と思いますが。。。。


以下URL参考

http://orebibou.com/2015/03/centos-7%E3%81%A8samba4%E3%81%A7%E8%87%AA%E5%AE%85%E7%94%A8active-directory-domain-controller-ad-dc%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B%E2%91%A0-%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88/

以下slideshreを見るとあまり複雑なAD環境には適してないです。
http://www.slideshare.net/takahashimotonobu/20150228-osc2015tokyo-springw2k3samba4

とりあえずADいる、とか小規模でADのユーザ管理だけできればいい、というような環境が適しているかと思います。
普通にyum insatll samba4 ではAD機能はインストールされないとのこと

CentOS7で構築しました。

【事前準備】
※完了後再起動してホスト名/IP設定を再確認してください。

リポジトリの更新

yum -y install yum-plugin-priorities

ファイアウォールの無効化

systemctl stop firewalld
systemctl disable firewalld

selinuxの無効化

/etc/selinux/config

 SELINUX=disabled

時刻同期

yum -y install ntp
vi /etc/ntp.conf で以下のようにNTPサーバを参照。(既存ADがある場合はADサーバを指定)

server 192.168.0.11 iburst

パッケージのインストール

yum -y install perl gcc libacl-devel libblkid-devel gnutls-devel \readline-devel python-devel gdb pkgconfig krb5-workstation \zlib-devel setroubleshoot-server libaio-devel \setroubleshoot-plugins policycoreutils-python \libsemanage-python setools-libs-python setools-libs \popt-devel libpcap-devel sqlite-devel libidn-devel \libxml2-devel libacl-devel libsepol-devel libattr-devel \keyutils-libs-devel cyrus-sasl-devel cups-devel bind-utils \libxslt docbook-style-xsl openldap-devel

ホスト名/IPアドレスの設定

/etc/sysconfig/network

 HOSTNAME=dcsrv01

/etc/hostname

  dcsrv01
 
/etc/sysconfig/network-scripts/ifcfg-enoXXXXXXXX

 TYPE="Ethernet"
 BOOTPROTO="none"
 IPADDR="192.168.0.100"
 NETMASK="255.255.255.0"
 GATEWAY="192.168.0.254"
 DEFROUTE="yes"
 PEERROUTES="yes"
 IPV4_FAILURE_FATAL="no"
 NAME="enoXXXXXXXX"
 DEVICE="enoXXXXXXXX"
 ONBOOT="yes"
 DOMAIN="example.local"
 DNS1="127.0.0.1"

/etc/resolv.conf

  nameserver 127.0.0.1

【samba4のインストール】

mkdir /tmp/samba
cd /tmp/samba
wget http://www.samba.org/samba/ftp/samba-latest.tar.gz
tar zxvf /tmp/samba/samba-latest.tar.gz
cd samba/samba-4.2.1/
./configure && make && make install

【ドメインの作成】

/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2

 Realm: example.local
 Domain [example]:(エンター)
 Server Role (dc, member, standalone) [dc]:(エンター)
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:(エンターで内部DNS使用)
 DNS forwarder IP address (write 'none' to disable forwarding) [192.168.0.254]: (エンター)
 Administrator password: (administratorパスワード(要複雑性)
 Retype password: (パスワード(再入力)

【ドメインの削除】
 rm -f /usr/local/samba/etc/smb.conf
 rm -rf /usr/local/samba/private/*
 rm -rf /usr/local/samba/var/locks/sysvol/*

【ドメイン参加】

後述するケルベロス設定実施後、下記コマンドでドメイン参加できます。

/usr/local/samba/bin/samba-tool domain join example.local DC -U EXAMPLE\\Administrator --realm=example.local

【ドメインユーザの確認】

/usr/local/samba/bin/samba-tool user list

【FSMOの確認】

/usr/local/samba/bin/samba-tool fsmo show

【複製の確認】

/usr/local/samba/bin/samba-tool drs showrepl


【samba4のサービス起動/有効化】

起動スクリプトの作成

vi /etc/rc.d/init.d/samba4

#!/bin/bash
. /etc/init.d/functions
. /etc/sysconfig/network
prog=samba
prog_dir=/usr/local/samba/sbin/
lockfile=/var/lock/subsys/$prog

start() {
        [ "$NETWORKING" = "no" ] && exit 1
        #       [ -x /usr/sbin/ntpd ] || exit 5
        # Start daemons.
        echo -n $"Starting samba4: "
        daemon $prog_dir/$prog -D
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch $lockfile
        return $RETVAL
        }
        stop() {
        [ "$EUID" != "0" ] && exit 4
        echo -n $"Shutting down samba4: "
        killproc $prog_dir/$prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f $lockfile
        return $RETVAL
        }

   case "$1" in
   start)
   start
   ;;
   stop)
   stop
   ;;
   status)
   status $prog
   ;;
   restart)
   stop
   start
   ;;
   reload)
   echo "Not implemented yet."
   exit 3
   ;;
   *)
   echo $"Usage: $0 {start|stop|status|restart|reload}"
   exit 2
   esac

chmod 755 /etc/rc.d/init.d/samba4
systemctl start samba4
systemctl enable samba4

【内部DNS動作確認】

/usr/local/samba/bin/samba-tool dns zonelist 127.0.0.1 -U Administrator
host -t SRV _ldap._tcp.example.local 127.0.0.1
host -t SRV _kerberos._udp.example.local 127.0.0.1
host -t A dcsrv01.example.local 127.0.0.1

【ケルベロス設定】
cp /usr/local/samba/private/krb5.conf /etc/krb5.conf

※AD追加の場合は以下

/etc/krb5.conf ファイルを編集

 [logging]
  default = FILE:/var/log/krb5libs.log
  kdc = FILE:/var/log/krb5kdc.log
  admin_server = FILE:/var/log/kadmind.log

 [libdefaults]
  default_realm = EXAMPLE.LOCAL
  dns_lookup_realm = true
  dns_lookup_kdc = true
  ticket_lifetime = 24h
  renew_lifetime = 7d
  forwardable = true

 [realms]
  ADEXAMPLE.COM = {
   kdc = addc.example.local #既存ADサーバ
   admin_server = addc.example.local #既存ADサーバ
  }

 [domain_realm]
  .adexample.com = EXAMPLE.LOCAL
  adexample.com = EXAMPLE.LOCAL
 

Windowsでドメイン参加後、管理ツールを導入することでGUIで上記ADを管理できます。
Windows2008の場合、「機能の追加」-「リモートサーバ管理ツール」

既存WindowsADにも参加可能です。
ただしWindowsADの降格がうまくいかないため、WindowsADから切り替える場合はFSMOの強制移行、sysvolコピー、DNSレコードの手動削除が必要になります。

2015年4月14日火曜日

Windows版Vagrantを他の仮想ソフトで使用する。


以下、検証してみました。

【Vagrantファイルの実体】
C:\Users\[ユーザ名]\.vagrant.d\boxes\[仮想マシン名]\0\virtualbox

【VirtualBox】
下記の通り、Vagrantで実行した仮想マシンはVirtualBoxのコンソールに登録されているのでそのまま使用できます。




【VMwarePlayer】
Vagrantのvmdkファイルをインポートすることで使用可能です。
インポート時にエラーが発生する場合は「再試行」することでリトライできます。
仮想マシン名は「box」になります。

【ESX Server】
VMwarePlayerの仮想マシンをvCenterConverterでV2Vすることで使用可能です。


【Openstack】
vmdkファイルの「インポート」で普通に使用できました。

vagrant、便利ですね。

2015年4月3日金曜日

vagrantでfulentdを試す

こちらも既出と思いますが・・・。

vagrant box add コマンドで2仮想サーバを作成します。

vagrant共有フォルダに td.repoファイルを格納します。

[treasuredata]
name=TreasureData
baseurl=http://packages.treasuredata.com/2/redhat/$releasever/$basearch
gpgcheck=1
gpgkey=http://packages.treasuredata.com/GPG-KEY-td-agent

【fluentd(受信)】

bootstrap.shを以下で作成

 #!/bin/bash
 sudo su
 cp /vagrant/td.repo /etc/yum.repos.d/td.repo
 yum -y install td-agent
 service td-agent start
 chkconfig td-agent on

Vagrantfile に以下を追記

  config.vm.network "private_network", ip: "192.168.33.11"
  config.vm.provision :shell, path: "bootstrap.sh"

【fluentd(受信)兼webサーバ】

bootstrap.shを以下で作成

 #!/bin/bash
 sudo su
 yum install httpd -y
 rm -rf /var/www/html
 ln -fs /vagrant /var/www/html
 cp /vagrant/td.repo /etc/yum.repos.d/td.repo
 yum -y install td-agent
 service td-agent start
 chkconfig td-agent on

Vagrantfile に以下を追記

  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.provision :shell, path: "bootstrap.sh"
  config.vm.network :forwarded_port, guest: 80, host: 1234
   

vagrant upで2台の仮想マシンを起動します。

ファイアウォールを停止します。

 service iptables stop
 chkconfig iptables off
 
【fluentd(受信)】

td-agentd.confを修正します。
下記以外はすべてコメントアウトします。

vi /etc/td-agent/td-agent.conf

 <source>
 type forward
 port 24224
 </source>

 <match httpd.access>
 type file
 path /var/log/td-agent/httpd
 </match>

td-agentを再起動します。

 service td-agent restart
 
【fluentd(受信)兼webサーバ】

  /var/www/html/フォルダにテスト用htmlファイルを作成します。
 
td-agentd.confを修正します。
下記以外はすべてコメントアウトします。

vi /etc/td-agent/td-agent.conf

 <source>
  type tail
  format apache
  path /var/log/httpd-access.log
  tag httpd.access
 </source>
 <match httpd.access>
  type forward
  host 192.168.33.10
  port 24224
  </match>
 
ログのアクセス権を変更します。

chmod 755 /var/log/httpd/access_log
chmod 755 /var/log/httpd/

td-agentを再起動します。

 service td-agent restart
 
http://127.0.0.1:1234 にアクセスします。

 fulentd(受信)仮想マシンの以下フォルダにログが格納されます。

 /var/log/td-agent/httpd*

うまくいかない場合は/var/log/td-agent/td-agent.logを参照してください。

2015年4月2日木曜日

Windows7にVagrantを導入する

既出とは思いますがインストールメモ

Windows7に以下をインストール(要再起動)

VirtualBox 4.3.26 for Windows hosts
https://www.virtualbox.org/wiki/Downloads
Vagrant1.7.2
https://www.vagrantup.com/downloads.html


D:\直下に以下boxファイルをダウンロード
http://dl.dropbox.com/u/9227672/CentOS-6.0-x86_64-netboot-4.1.6.box

コマンドプロンプトを開きboxファイルを登録(登録ファイル名はcentos)

vagrant box add centos d:\CentOS-6.0-x86_64-netboot-4.1.6.box

D:\centos ディレクトリ作成
コマンドプロンプトでD:\centosに移動してcentosイメージの登録

cd d:\centos
vagrant init centos

centosイメージの起動

vagrant up

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: centos6-1_default_
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if its present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => D:/centos

Teratermで127.0.0.1:2020に接続
ユーザ名/パスワードは vagrant

D:/centos直下は仮想マシンの/vagrantと共有されています。
D:/centos直下に作成されたVagrantfile は構成ファイルです。

例:
仮想マシン名

 config.vm.box = "centos"

コンソール表示

 config.vm.provider "virtualbox" do |vb|
 vb.gui = true
 end

仮想マシンのメモリを512MBに指定

 config.vm.provider "virtualbox" do |vb|
 vb.memory = "512"
 end

内部ネットワークアドレス指定

 config.vm.network "private_network", ip: "192.168.33.10"

下記を追記することで初回のvagrant up 時にbootstrap.shの内容を実行します。

  config.vm.provision :shell, path: "bootstrap.sh"
 
 
D:/centos直下にbootstrap.shを作成します。
apachをインストールする場合は以下のように記載します。

#!/bin/bash
sudo su
export http_proxy="http://10.200.1.3:8080/"
export ftp_proxy="http://10.200.1.3:8080/"
yum install httpd -y
/etc/init.d/httpd start

Vagrantfile 構成ファイルに以下の記述を追記することでhttp://127.0.0.1:8080で仮想マシンの80番ポートに接続します。

  config.vm.network "forwarded_port", guest: 80, host: 8080