Apache の起動に失敗
Apache 2.2.15 でサービスを再起動した際、起動に失敗する事象に遭遇しました。
[root@hostname ~]# service httpd restart httpd を停止中: [ OK ] httpd を起動中: [失敗]
/var/log/httpd/error_log を確認すると以下のエラーが出力されていました。
[alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "lablog01" Configuration Failed
原因は、hostname と /etc/hosts が一致していないことのようです。
[root@hostname ~]# hostname lablog01 [root@hostname ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
/etc/hosts に lablog01 を追加すると無事起動できました。
[root@hostname ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 lablog01 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
以上
CentOS で特定ポートで実行されているプロセスを強制終了する
CentOS 6.3 で WebGoat を起動しようとすると以下のエラーが出力されました。
*************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.
ポート 8080 使用されているようです。
使用しているプロセスは以下のコマンドで確認できます。
[root@hostname ~]# lsof -i:8080 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 16915 root 26u IPv6 53443 0t0 TCP *:webcache (LISTEN)
Java の webcache が使用しているようです。
以下のコマンドで強制終了します。
[root@hostname ~]# kill $(lsof -t -i:8080)
もしくは、
[root@hostname ~]# kill -9 $(lsof -t -i:8080)
再度ポート 8080 の使用状況を確認します。
[root@hostname ~]# lsof -i:8080
正常に終了できていれば、表示されなくなります。
参考書籍
以上
OWASP ZAP による脆弱性診断について
OWAP ZAP とは
セキュリティ診断ツール「OWASP ZAP」は、 The Open Web Application Security Project(通称 OWASP、オワスプ)という国際的なコミュニティがつくりました。
OWASP を運営しているのはアメリカの The OWASP Foundation(OWASP財団)という団体で、2001年に設立されています。いまでは世界中に 200 以上の支部を持ちます。日本にも OWASP Japan があります。OWASP 財団の目的は、Web アプリケーションを保護することで、そのために OWASP のメンバーは約 120 以上のプロジェクトを進行しています。誰でも無料で Web アプリケーションの脆弱性をチェックできる OWASP ZAP も 120 のプロジェクトの1つとして生まれました。
出典:CyberSecurityTIMES
OWASP ZAP インストール
Java のダウンロード・インストール
OWASP ZAP は Java 1.8 以上が必要なのでこちらから最新版をダウンロードしてインストールしておきます。
OWASP ZAP のダウンロード・インストール
こちらからインストーラーをダウンロードして実行します。
本例では、WIndows 64bit 版を使用しています。
インストーラーを実行すると JRE を「配置する」ボタンがでてきますので、事前にインストールした「java.exe」を指定します。
あとは、「次へ」ボタンをクリックして完了です。
OWASP ZAP 設定
セッションの保持方法を指定します。本例では、「現在のタイムスタンプでファイル名を付けてセッションを保存」を選択します。
必ず「プロテクトモード」を指定します。詳細は後述します。
「ツール」➡「オプション」からローカルプロキシを設定します。ポートは本例では「18080」を指定します。
次に、対象サイトから各ページの URL 情報を取得するスパイダー機能を設定します。
本例では、以下のとおり設定します。
- クロールする最大の深さ(対象サイトをどこまで深く検索するか):19
- 並列スキャンスレッド数(並列処理数):2
- 新しい URI の SVN のメタデータを解析(診断対象ファイルの指定):ON
- 新しい UR Iの Git のメタデータを解析(診断対象ファイルの指定):ON
- OData 固有のパラメータを処理(診断対象ファイルの指定):ON
次に、対象サイトの診断を行う動的スキャンを設定します。
本例では、以下のとおり設定します。
- 並列スキャンするホスト数:1
- 並列スキャンスレッド数:1
- スキャン中にミリ秒単位の遅延:1000
「OK」をクリックします。
「ポリシー」➡「スキャンポリシー」を選択し、「追加」をクリックします。
任意のポリシー名を設定し、適用を「Off」「低」を選択してから「開始」をそれぞれクリックします。*1
左ペインの「インジェクション」を選択し、テストのしきい値と強度を変更します。
本例では、以下のポリシーを設定します。
- SQL インジェクション-しきい値:低
- SQL インジェクション-強度:高
- クロスサイト・スクリプティング(反射型)-しきい値:低
- クロスサイト・スクリプティング(反射型)-強度:高
しきい値はアラートをあげる判定値で、”Low” ではあいまい、"Hign" では完全に NG の場合にアラートをあげます。強度はテストの精度で、"High" はより細かなテストを行ってくれます。
ブラウザ設定
ブラウザから OWASP をプロキシとして経由して、対象サイトへアクセスすることで診断します。
本例では、Firefox を使用して OWASP を指定します。
WebGoat とは
ブラウザの設定が終わったら、診断テストが可能となります。
診断テストするために、WebGoat というわざと脆弱性を持たせた Web アプリケーションがありますので、あわせて紹介します。
WebGoat ダウンロード・インストール
本例では、CentOS 6.3(GUI)にインストールします。
Java のインストール
# Download JDK 11 cd /tmp && wget https://download.java.net/java/ga/jdk11/openjdk-11_linux-x64_bin.tar.gz # Switch to the root user, type root password su # Create the folder /usr/lib/jvm mkdir /usr/lib/jvm # Extract the downloaded archive tar xzvf /tmp/openjdk-11_linux-x64_bin.tar.gz --directory /usr/lib/jvm # Create a symlink to the java binary ln -s /usr/lib/jvm/jdk-11/bin/java /usr/bin/java # exit from root user exit # Verify that you have the right version running java -version # Remove the downloaded archive rm /tmp/openjdk-11_linux-x64_bin.tar.gz
WebGoat のダウンロードと実行
# Download the latest WebGoat release jar wget https://github.com/WebGoat/WebGoat/releases/download/v8.0.0.M26/webgoat-server-8.0.0.M26.jar # Run WebGoat using java java -jar webgoat-server-8.0.0.M26.jar --server.address=0.0.0.0
参考:thehackerish
診断テスト
本例では、以下の環境でテストします。
リバースプロキシの構築例は後述しますので、興味があればご参照ください。
ブラウザで対象サイトへアクセス
本例ではリバースプロキシがありますので、以下の URL へアクセスします。
http://10.1.12.252/WebGoat
アクセスした後、OWASP ZAP の左ペインに対象サイトが追加されます。
サイトを右クリックして、「コンテキストに含める」➡「既定のコンテキスト」を選択し、対象サイトを選択します。
「認証」をクリックして、認証方法、およびログインユーザーの情報を入力します。
これは、WebGoat のログイン画面の先へクロールするために必要となります。
本例では、Form-based Auhentication を使用し、以下のパラメータを指定します。
http://10.1.12.252/WebGoat username={%username%}&password={%password%} \Q/WebGoat/login\E
「\Q/WebGoat/login\E」は、ログアウト状態を判定するために必要なパラメータです。
次に「ユーザー」をクリックして、ログイン可能なユーザー登録します。
スパイダー実行
対象サイト内の各ページの URL 情報を収集するためにスパイダーを実行します。
対象サイトを右クリックして、「攻撃」➡「スパイダー」をクリックし、作成した「ユーザー」を選択します。
その後、「スキャンを開始」をクリックします。
※前述の「プロテクトモード」は、対象サイトのみを診断対象とします。
スパイダータブに結果が表示されます。緑は対象、赤は対象外の URL を示します。
動的スキャン
対象サイトに対して、様々なパターンの攻撃コードを仕掛けます。
対象サイトを右クリックして、「攻撃」➡「動的スキャン」をクリックし、「ポリシー」「ユーザー」で作成したユーザーを選択します。その後、「スキャンを開始」をクリックします。
結果は「アラート」タブに表示されます。
「赤」は危険度高、「オレンジ」は危険度中、「黄色」は危険度低を示します。
参考:リバースプロキシ設定
squid.conf 設定
# 59 行目追記 http_access allow all #60 行目コメントアウト # http_access deny all # 64行目追記(転送元サーバーの IP アドレスを指定) http_port 80 accel ignore-cc defaultsite=10.1.12.252 # 最終行に追記(転送先 Web サーバーの IP アドレスを指定) cache_peer 10.1.23.253 parent 8080 0 no-query originserver # 最終行に追記(メモリキャッシュサイズ) cache_mem 256 MB # 最終行に追記(ホスト名定義) visible_hostname prox.srv.world
squid 再起動
/etc/rc.d/init.d/squid restart
以上
*1:全ての診断を無効化します。
ONTAP 9.4 で各カウンタを取得するコマンド
コントローラ単位
例)コントローラ単位で、CPU、メモリ、IOPS 関連のカウンタを1秒間隔で取得して表示
> set diagnostic *> statistics show-periodic -object system:node -instance cl-01 -interval 1 -counter cpu_busy|memory|read_ops|write_ops|total_ops|system_ops|read_latency|write_latency|total_latency|instance_name cl: system:node.cl-01: 7/5/2019 23:07:47 cpu instance read system total total write write Complete Number of busy name memory latency read_ops ops latency ops latency ops Aggregation Constituents ---- -------- -------- -------- -------- -------- -------- -------- -------- -------- ----------- ------------ 3% cl-01 2160 0us 0 2 0us 0 0us 0 Yes 1 1% cl-01 2160 0us 0 8 0us 0 0us 0 Yes 1 2% cl-01 2160 0us 0 2 0us 0 0us 0 Yes 1 1% cl-01 2160 0us 0 2 0us 0 0us 0 Yes 1 1% cl-01 2160 0us 0 0 0us 0 0us 0 Yes 1 2% cl-01 2160 0us 0 2 0us 0 0us 0 Yes 1 1% cl-01 2160 0us 0 5 0us 0 0us 0 Yes 1
ボリューム単位
例)ボリューム単位で、CPU、メモリ、IOPS 関連のカウンタを1秒間隔で取得して表示
> set diagnostic *> statistics show-periodic -object volume -instance vol1 -interval 1 -counter avg_latency|instance_name|read_latency|read_ops|total_ops|write_latency|write_ops cl: volume.vol1: 7/5/2019 23:12:21 avg instance read total write write Complete Number of latency name latency read_ops ops latency ops Aggregation Constituents -------- -------- -------- -------- -------- -------- -------- ----------- ------------ 0us vol1 0us 0 0 0us 0 n/a n/a 0us vol1 0us 0 0 0us 0 n/a n/a 0us vol1 0us 0 0 0us 0 n/a n/a 0us vol1 0us 0 0 0us 0 n/a n/a 0us vol1 0us 0 0 0us 0 n/a n/a 0us vol1 0us 0 0 0us 0 n/a n/a 0us vol1 0us 0 0 0us 0 n/a n/a
以上
Data ONTAP 7-Mode を Cluster-Mode へ変換する方法について
NetApp の DataOntap のモードを、7-Mode から Cluster-Mode に変換する手順です。
※この手順を使用すると、ディスク上のデータおよび、設定は保持されず、すべてのデータが失われます。
1. クラスタ構成の場合、「クラスタフェイルオーバー」を無効にして、ノードを再起動し、LOADER プロンプトに移行します。
クラスタ構成じゃない場合は、「halt」を実行します。
> cf disable > cf status > halt -f
2. 環境変数変更
LOADER> set-defaults LOADER> setenv AUTOBOOT false LOADER> setenv bootarg.init.bootmenu true
3. 環境変数確認
LOADER> printenv AUTOBOOT LOADER> printenv bootarg.init.bootmenu
4. Config 消去
LOADER> boot_ontap
※CTRL + C を押下し、Boot Menu で「wipeconfig」を入力して実行
5. 環境変数変更(7-Mode を Cluster-Mode へ変換)
LOADER> set-defaults LOADER> setenv bootarg.init.boot_clustered true
6. 環境変数確認
LOADER> printenv bootarg.init.boot_clustered
7. ノード構成をリセット
LOADER> boot_ontap
※CTRL + C を押下し、Boot Menu で「4」を実行
8. Zeroing 完了後、Cluster Setup が起動
以上
Zabbix 4.2 簡易構築手順
基本設定
日本語キーボード配列設定
sudo dpkg-reconfigure keyboard-configuration
Generic 105-key (Intl) PC ➡ Japanese ➡ Japanese ➡ The Default for the keyboard layout ➡ No compose key と選択します。
vi 互換モード OFF*1
touch ~/.vimrc vi ~/.vimrc set nocompatible
Backspace の有効化
vi ~/.vimrc set backspace=indent,eol,start
ネットワーク設定
インターフェース確認
ifconfig -a
ネットワーク設定
sudo vi /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto ens32 iface ens32 inet static address 192.168.1.31 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255
※vi で read only のファイルを sudo で強制的に保存
:w !sudo tee % :q!
デフォルトルート設定
sudo route add default gw 192.168.1.2
DNS 設定
vi /etc/resolved.conf nameserver 8.8.8.8
Zabbix ホスト登録
以下の URL にアクセスします。
http://ZabbixIP/zabbix/ Admin:zabbix
右上の人型アイコンから日本語設定をします。
設定 ➡ ホストの作成をクリック
ホスト名、グループ、IP アドレス/DNS 名 を指定し「追加」をクリック
登録されたホスト名をクリック
テンプレートをクリック
任意のテンプレートを選択して「追加」をクリック
「更新」をクリックして完了
監視データ確認
監視データ ➡ 最新データ 等で状態を確認できます。
以上
*1:vi で方向キーが ABCD を入力してしまう問題の解決
仮想ディスクダイジェストの再計算について
vCenter 上で「仮想ディスクダイジェストの再計算」というタスクが頻繁に発生し、この処理が発生している間、「ホストごとの読み取りIOPS」が高くなるという事象に遭遇しました。
「仮想ディスクダイジェストの再計算」は、View Storage Accelerator の関連処理となります。
View Storage Accelerator とは
View Storage Accelerator の注意事項
- View Storage Accelerator は IO 低減のための機能ですが、「仮想ディスクダイジェストの再計算」が行われるタイミングは負荷を悪化させる可能性があります。
- 負荷がかかる時間帯*3を避けるため、ESXi ホストでこれらの操作を実行しない日時を指定可能です。
参考:View Composer リンク クローン用の Storage Accelerator と領域再利用の停電期間の設定
その他
通常、指定した間隔および、仮想マシンの再構成時に発生する「仮想ディスクダイジェストの再計算」ですが、仮想マシンの再起動時に発生するといった事象がありました。原因不明ですが、View Storage Accelerator を無効→有効化することで解消しました。
以上
VM のディスク容量を拡張(CentOS LVM)
syslog サーバーの /var 領域を拡張する必要があったのでメモです。
仮想ディスクの拡張
事前に仮想マシンの電源はオフにする必要があります。現状60GBとなっています。
本例では160GBに拡張します。
var 領域の拡張
ディスク容量確認
[root@hostname ~]# df -h Filesystem Size Used Avail Use% マウント位置 /dev/mapper/vg1-lv_root 15G 2.0G 12G 15% / tmpfs 1004M 0 1004M 0% /dev/shm /dev/sda1 291M 32M 244M 12% /boot /dev/mapper/vg1-lv_var 44G 485M 41G 2% /var ★現状44G
新規パーティション作成
[root@hostname ~]# fdisk /dev/sda コマンド (m でヘルプ): n ★「n」を入力 コマンドアクション e 拡張 p 基本パーティション (1-4) p ★今回は基本領域を作成するので「p」を入力 パーティション番号 (1-4): 3 ★ここでは「3」を入力 最初 シリンダ (7833-20886, 初期値 7833): 初期値 7833 を使います Last シリンダ, +シリンダ数 or +size{K,M,G} (7833-20886, 初期値 20886): 初期値 20886 を使います コマンド (m でヘルプ): w ★「w」を入力 パーティションテーブルは変更されました!
再起動
[root@hostname ~]# sushudtdown -r now
ボリュームグループ確認
[root@hostname ~]# vgdisplay --- Volume group --- VG Name vg1 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 59.70 GiB ★現状60GiB PE Size 4.00 MiB Total PE 15284 Alloc PE / Size 15284 / 59.70 GiB Free PE / Size 0 / 0 VG UUID UJpQRG-2HYx-K3fY-TJN3-2L2N-LWYL-htxET4
物理ボリューム作成
[root@hostname ~]# pvcreate /dev/sda3
ボリュームグループを拡張
[root@hostname ~]# vgextend vg1 /dev/sda3
ボリュームグループ確認
[root@hostname ~]# vgdisplay --- Volume group --- VG Name vg1 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 2 Act PV 2 VG Size 159.70 GiB ★160GiBに拡張 PE Size 4.00 MiB Total PE 40882 Alloc PE / Size 15284 / 59.70 GiB Free PE / Size 25598 / 99.99 GiB VG UUID UJpQRG-2HYx-K3fY-TJN3-2L2N-LWYL-htxET4
var 領域のボリューム状況確認
[root@hostname ~]# lvdisplay --- Logical volume --- LV Name /dev/vg1/lv_var VG Name vg1 LV UUID I69N3A-MKcB-ZUdd-vnPB-YG0O-UQcc-Rf0WjA LV Write Access read/write LV Status available # open 1 LV Size 44.08 GiB ★現状44GiB Current LE 11284 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
拡張したボリューム領域を var に割り当て
[root@hostname ~]# lvextend -l +100%FREE /dev/mapper/vg1-lv_var
var領域のボリューム状況確認
[root@hostname ~]# lvdisplay --- Logical volume --- LV Name /dev/vg1/lv_var VG Name vg1 LV UUID I69N3A-MKcB-ZUdd-vnPB-YG0O-UQcc-Rf0WjA LV Write Access read/write LV Status available # open 1 LV Size 144.07 GiB ★144GiBに拡張 Current LE 36882 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
ファイルシステムサイズの変更
[root@hostname ~]# resize2fs /dev/mapper/vg1-lv_var
ディスク容量確認
[root@hostname ~]# df -h Filesystem Size Used Avail Use% マウント位置 /dev/mapper/vg1-lv_root 15G 2.0G 12G 15% / tmpfs 1004M 0 1004M 0% /dev/shm /dev/sda1 291M 32M 244M 12% /boot /dev/mapper/vg1-lv_var 142G 492M 135G 1% /var ★142GiBへ拡張
以上
Postfix から Gmail へリレーする設定
Gmail の設定
Gmail の設定で安全性の低いアプリを許可します。
Postfix の設定
Postfix と SASL インストール
# yum install -y postfix # yum -y install cyrus-sasl-plain cyrus-sasl-md5
Postfix の設定
# vi /etc/postfix/main.cf myhostname = host.example.com mydomain = example.com myorigin = $mydomain inet_interfaces = all inet_protocols = ipv4 mynetworks = 127.0.0.0/8 relayhost = [smtp.gmail.com]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/smtp-auth-passwd smtp_sasl_security_options = noanonymous smtp_sasl_tls_security_options = noanonymous smtp_sasl_mechanism_filter = plain #tls setting smtp_use_tls = yes smtp_tls_security_level = may smtp_tls_loglevel = 1
パスワードファイル作成
# vi /etc/postfix/smtp-auth-passwd [smtp.gmail.com]:587 xxxxxx@gmail.com:PASSWORD
パスワードファイルからデータベースを作成
# postmap /etc/postfix/smtp-auth-passwd
Postfix 再起動
# /etc/init.d/postfix restart
動作確認
Mailx インストール
# yum -y install mailx
Mail コマンド
# echo "test" | mail -s "test" xxxxx@gmail.com
Gmail へメールが送信できます。
以上
GPO でドライブマップ
ユーザー GPO により、ログオンしたサーバーでドライブマップを構成することが可能です。
GPO の場所と設定
「ユーザーの構成」➡「基本設定」➡「Windows の設定」➡「ドライブマップ」で、以下のように設定します。
GPO を有効化した後、ログオンするとドライブマップが構成されています。
RDP 接続する場合
ドライブマップを構成したサーバーに RDP で接続すると、ドライブマップが表示されませんでした。
原因調査中ですが、ひとまず以下のポリシーを有効化することで、RDP で接続時にドライブマップが表示されることを確認しました。
「コンピューターの構成」➡「管理テンプレート」➡「Windows コンポーネント」➡「リモートデスクトップサービス」➡「リモートデスクトップセッションホスト」➡「プロファイル」➡「リモート デスクトップサービス ユーザーのホーム ディレクトリを設定する」
ポリシーを有効化した後、再起動すると以下のような形で、RDP 経由でもドライブマップが表示されます。
以上
Horizon 7 RDSH URL コンテンツリダイレクション
VMware Horizon 7 の新機能である URL コンテンツリダイレクションを試してみました。
VMware Horizon View 7 簡易構築手順の環境を使用しました。
クライアント端末から VDI に接続し、そこから RDSH で仮想ブラウザを使用する前提です。
View Agent のインストール
仮想ブラウザをホストする RDS サーバーに View Agent をインストールします。
リダイレクトを使用する場合は、コマンドプロンプトで以下を実行してインストールします。
VMware-Horizon-Agent-x86_64-7.6.0-9539447.exe /v URL_FILTERING_ENABLED=1
Horizon Client のインストール
仮想ブラウザを使用する VDI 上にインストールします。
View Agent と同様にリダイレクトを使用する場合は、コマンドプロンプトで以下を実行してインストールします。
VMware-Horizon-Client-4.9.0-9539668.exe /v URL_FILTERING_ENABLED=1 /v URL_FILTERING_ENABLED=1
インストールが完了すると、RDS サーバーと VDI のそれぞれの Internet Explorer に以下のアドオンが追加されます。
VMware Horizon View URL Filtering Plugin
URL リダイレクトの設定
Horizon 7.4.0 View GPO Bundleをドメインコントローラにインポートします。
URL リダイレクトは"urlRedirection.admx"ポリシーで設定します。
各パラメータの概要は以下のとおりです。
- clientRules
- クライアントのブラウザを使いたい URL*1
- brokerHostname
- Connection Server 名
- agentRules
- 仮想ブラウザを使いたい URL*2
- remoteItem
- 仮想ブラウザで URL へアクセスする際に起動するリソース名
- VDI の場合はプール名(表示名)
- RDSH の場合はアプリケーション名(表示名)
- 仮想ブラウザで URL へアクセスする際に起動するリソース名
動作確認
ローカルブラウザで"agentRules"に登録した URL へアクセスします。
自動で仮想ブラウザが起動します。
以上
VMware Horizon View 7 で RDSH 環境を構築
以前掲載したVMware Horizon View 7 簡易構築手順の環境に追加で実装しました。
RDS サーバーインストール
こちらの「RDS サーバーインストールの事前作業」を参考頂ければと思います。
アプリケーションのインストール
仮想化したいアプリケーションを RDS サーバーへインストールします。本例ではインストール済の Internet Explorer を仮想化しますので、省略します。
View Agent のインストール
RDS サーバー上で以下のファイルを実行します。
VMware-Horizon-Agent-x86_64-7.6.0-9539447.exe
Connection Server のアドレスを指定してインストールします。
ファームの作成
View Administrator にて、[ファーム]を選択し[追加]をクリックします。
「手動ファーム」を選択し、RDS ホストの登録及び、セッション動作を指定します。
アプリケーションプールの作成
View Administrator にて、[カタログ]-[アプリケーションプール]を選択し[追加]をクリックします。
仮想化したいアプリケーションを選択します。
資格の割り当て
アプリケーションを使用するユーザーを指定します。
VMware Horizon View Client 接続
VMware Horizon View Client で接続先サーバにログインんすると、アプリケーションのアイコンが追加されます。
アイコンをクリックするとアプリケーションが起動します。
以上
Hrizon 7 Administrator で(みつかりません)エラー
例えば、vCenter サーバーから仮想デスクトップを削除してしまった場合、接続サーバーまたは、View Composer のデーターベース上の不整合が発生し、「デスクトッププール」➡「インベントリ」の仮想デスクトップで、以下のエラーとなる場合があります。
メンテナンスモード(みつかりません)
この場合、KB2015112に記載されている、"接続サーバ上の ADAM データベースから仮想マシンを削除"を実施することで解決する場合があります。
具体的な手順は以下のとおりです。
- View Administrator で対象プールのプロビジョニングを無効化
- いずれかの接続サーバーに、ドメイン管理者アカウントでログオン
- [開始] > [管理ツール] > [ADSI エディタ] をクリック
- コンソール ウィンドウで、[ADSI エディタ] を右クリックし、[接続先] をクリック
- [名前] フィールドに、次のように入力
View ADAM データベース
- [識別名または名前付けコンテキストを選択または入力する] を選択
- [識別名または名前付けコンテキストを選択または入力する] の下のフィールドに、次のように入力
dc=vdi,dc=vmware,dc=int
- [ドメインまたはサーバを選択または入力する] を選択
- [ドメインまたはサーバを選択または入力する] の下のフィールドに、次のように入力
localhost:389
- [OK] をクリック
- [View ADAM データベース [localhost:389]] をクリックしてデプロイ
- [DC=vdi,dc=vmware,dc=int] をクリックしてデプロイ
- [接続] View ADAM データベース [localhost:389] を右クリックし、[新規作成] > [クエリ] をクリック
- たとえば「VM Search」など、適当なクエリ名を入力
- [検索のルート] で、[参照] をクリックし、[サーバ] の構成単位を選択
- [OK] をクリック
- [クエリ文字列] に次の検索文字列を貼り付け
(&(objectClass=pae-VM)(pae-displayname=VirtualMachineName)) ※VirtualMachineName は GUID を検索する仮想マシン名
- [OK] をクリックしてクエリを作成
- 左側のペインでクエリをクリック。 検索に適合する仮想マシンが右ペインに表示
- プロパティにて、対象の仮想デスクトップであることが確認できたら、pae-VM オブジェクトを削除
- View Administrator で対象プールのプロビジョニングを有効化
以上
cDOTで NFS マウントエラー
久しぶりに触ったら、NFS マウントでハマってしまったのでメモしておきます。
まず、以下のエラーでマウントに失敗
# mount -t nfs -v 10.1.1.21:/vol1 /mnt/test mount.nfs: timeout set for Wed Nov 28 08:50:58 2018 mount.nfs: trying text-based options 'vers=4,addr=10.1.1.21,clientaddr=10.1.1.251' mount.nfs: mount(2): Connection refused mount.nfs: trying text-based options 'addr=10.1.1.21' mount.nfs: prog 100003, trying vers=3, prot=6 mount.nfs: portmap query retrying: RPC: Program not registered
こちらは、LIF の -data-protocol が CIFS になっていました。
なお、-modify で変更できなかったので、再作成しました。
LIF を削除
cl::> network interface modify -vserver vs -lif lif1 -status-admin down cl::> network interface delete -vserver vs -lif lif1
LIF 再作成
cl::> network interface create -vserver vs -lif lif-nfs -role data -data-protocol nfs -home-node cl-01 -home-port e0a -address 10.1.1.21 -netmask 255.255.255.0
次に以下のエラー
# mount -t nfs -v 10.1.1.21:/vol1 /mnt/test mount.nfs: timeout set for Wed Nov 28 08:59:16 2018 mount.nfs: trying text-based options 'vers=4,addr=10.1.1.21,clientaddr=10.1.1.251' mount.nfs: mount(2): Permission denied mount.nfs: access denied by server while mounting 10.1.1.21:/vol1
こちらはマウント対象の"vol1"が所属する vserver のルートボリューム"svm_root" に適切な Export-Policy が適用されていないことが原因でした。
"vol1"には"policy1"が適用されていますが、"svm_root"は"default"となっています。
cl::> volume show -vserver vs -fields policy vserver volume policy ------- -------- ------- vs svm_root default vs vol1 policy1 vs vol22 policy1 3 entries were displayed.
"svm_root"に"policy1"を適用
cl::> volume show -vserver vs -fields policy vserver volume policy ------- -------- ------ vs svm_root policy1 vs vol1 policy1 vs vol22 policy1 3 entries were displayed.
なお、"policy1"の内容は以下のとおりです。
cl::> vserver export-policy rule show -policyname policy1 Policy Rule Access Client RO Vserver Name Index Protocol Match Rule ------------ --------------- ------ -------- --------------------- --------- vs policy1 1 any 0.0.0.0/0 any
無事マウントできました。
# mount -t nfs -v 10.1.1.21:/vol1 /mnt/test mount.nfs: timeout set for Wed Nov 28 09:59:32 2018 mount.nfs: trying text-based options 'vers=4,addr=10.1.1.21,clientaddr=10.1.1.251' 10.1.1.21:/vol1 on /mnt/test type nfs (rw) # ll total 7726916 -rwxrwxrwx. 1 nobody nobody 4386213888 Aug 11 2017 test.txt
以上
GPO でログオフ時間を記録する方法について
ドメイン環境化において、ユーザが端末からログオフした時間を、AD サーバーのイベントビューワーへ出力方法についてご紹介します。
ログオフスクリプトの作成
ログオフスクリプトはこちらを参考にさせて頂きました。
“\\AD01”は、スクリプトを配置する DC 名を指定します。
On Error Resume Next ' EVENTLOG_DC_NAME: イベントログを記録させたいDC名をUNCで指定 Const EVENTLOG_DC_NAME = "\\AD01" ' SCRIPT_PRE_MESSAGE: イベントログに書き込むメッセージの最初の文言 Const SCRIPT_PRE_MESSAGE = "[端末からログオフしました。] " ' WshShellオブジェクトとADSIオブジェクトを生成、取得 Set objShell = WScript.CreateObject("WScript.Shell") Set objADSystemInfo = WScript.CreateObject("ADSystemInfo") ' ADのユーザーオブジェクトを取得 Set objUser = GetObject("LDAP://" & objADSystemInfo.UserName) ' ADのユーザーオブジェクトのGroupsプロパティから、所属グループ名を取得 strGroupNames = "MemberOf: CN=Domain Users" For Each objGroup In objUser.Groups strGroupNames = strGroupNames & "," & objGroup.Name Next ' EventCreateコマンドでイベントログを書き込む。 objShell.Run "EVENTCREATE /S " & EVENTLOG_DC_NAME & " /T INFORMATION /L APPLICATION /ID 8 /D " & """" & SCRIPT_PRE_MESSAGE & strGroupNames & """", 7, True ' 事後処理 Set objShell = Nothing Set objADSystemInfo = Nothing Set objUser = Nothing
スクリプトの配置
スクリプトは以下のパスに配置します。※任意のパスでは実行されないので注意してください。
\\DC名\sysvol\ドメイン名\scrpits\
本例では、以下のパスに配置しています。
\\ad01\sysvol\example.com\scripts
GPO の設定
GPO を設定します。本例では「DaaS Users」というユーザ OU に、「Audit」と名前のポリシーをリンクしています。
「Audit」ポリシーで「ログオフスクリプト」を指定します。
GPO を更新します。
gpupdate /force
アクセス権の設定
通常、イベントビューワーへの書き込みは Domain_Admins グループに属するアカウントでのみ許可されています。一般ユーザーで書き込みができるようDC 上で、以下のコマンドを実行します。
wevtutil sl application /ca:O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)(A;;0x3;;;DU)
イベントビューワーの出力結果
ドメイン環境化の端末からユーザーがログオフすると、AD のイベントビューワーの「WIndows ログ」「Application」でログオフ時間を確認できます。
以上