BlueScreenView
ブルーレイにデータを焼くときにブルースクリーンが頻発したのでメモ
参考:BlueScreenViewのインストールと使い方
参考:BlueScreenView – ブルースクリーンエラーの原因を解析してくれるソフト
エラーコード:44
と表示されていたので、おそらくドライバ周りのエラーだと思われるのだけど
原因のドライバが現時点で分からなかったのでメモ
最近、やることすべてでつまづいてます
早くにんげんになりたい(:D)rz
CentOSにjavaをインストールする
サンプルプログラムの言語が java ベースだったので、はじめは PHP で書き直して動かそうと思ってたんですが、なかなか動作せず。PHP で書き直して動作確認をするのは2週目からにしようと投げました(:D)rz
で、手元に java の動作環境がないので、VM の CentOSに java を入れることに。
Java openjdk のリストを表示
[riceplanting@localhost ~]$ !1005 yum list \*java-1\* | grep open java-1.7.0-openjdk.x86_64 1:1.7.0.19-2.3.9.1.el6_4 @updates java-1.7.0-openjdk-devel.x86_64 1:1.7.0.19-2.3.9.1.el6_4 @updates java-1.6.0-openjdk.x86_64 1:1.6.0.0-1.61.1.11.11.el6_4 updates java-1.6.0-openjdk-demo.x86_64 1:1.6.0.0-1.61.1.11.11.el6_4 updates java-1.6.0-openjdk-devel.x86_64 1:1.6.0.0-1.61.1.11.11.el6_4 updates java-1.6.0-openjdk-javadoc.x86_64 1:1.6.0.0-1.61.1.11.11.el6_4 updates java-1.6.0-openjdk-src.x86_64 1:1.6.0.0-1.61.1.11.11.el6_4 updates java-1.7.0-openjdk-demo.x86_64 1:1.7.0.19-2.3.9.1.el6_4 updates java-1.7.0-openjdk-javadoc.noarch 1:1.7.0.19-2.3.9.1.el6_4 updates java-1.7.0-openjdk-src.x86_64 1:1.7.0.19-2.3.9.1.el6_4 updates
java のインストール
sudo yum install java-1.7.0-openjdk.x86_64 java-1.7.0-openjdk-devel.x86_64
VirtualHostの設定
VirtualHost とはなんぞ
1つのサーバに複数のドメインを管理する場合に使用
参照:Apache Web サーバ - ご先祖様はきっと農民。
VirtualHost の設定
例)dev.example.com というドメインをバーチャルホストで管理する場合
ドキュメントルートは /var/www/dev.example.com/public_html/
作業の流れ
- ディレクトリを作成
- バーチャルホストの設定
ディレクトリを作成
- /var/www/ ディレクトリ以下に以下のファイルを作成
mkdir の -p オプションは存在しない親ディレクトリを作成する場合に使用。
mkdir -p /var/www/dev.example.com/public_html
- 権限を変更
chown -R riceplanting:riceplanting /var/www/dev.example.com/public_html
編集するファイル
- /etc/httpd/conf.d/dev.example.com.conf
- /etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/dev.example.com.conf
- /etc/httpd/conf.d/ ディレクトリ以下に dev.example.com.conf を新規作成
vim /etc/httpd/conf.d/dev.example.conf
- /etc/httpd/conf.d/dev.example.com.conf
<VirtualHost *:80> ServerName dev.example.com DocumentRoot "/var/www/dev.example.com/public_html" DirectoryIndex index.html index.php ErrorLog /var/log/httpd/dev.example.com_error_log CustomLog /var/log/httpd/dev.example.com_access_log combined AddDefaultCharset UTF-8 <Directory "/var/www/dev.example.com/public_html"> AllowOverride All </Directory> </VirtualHost>
公開鍵認証
かぶってることもあるけど、おさらいも兼ねて
参照:OpenSSH - ご先祖様はきっと農民。
公開鍵認証を使った ssh 接続手順
- ペアの鍵ファイル作成
- サーバに公開鍵を保存
- sshd 設定ファイルの編集
- ターミナルの設定
サーバはCentOS6系、Windows7
ターミナルは teraterm, ftpクライアントはFileZilla を使用。
サーバに公開鍵を保存
保存場所となるディレクトリを作成
mkdir .ssh
- 他のユーザーにアクセス権がないように権限を変更
chmod 700 .ssh
サーバに公開鍵を保存
保存した秘密鍵ファイルを teraterm にドラッグ&ドロップでOK
- 保存ファイル名の変更
~/.ssh/authorized_keys
公開鍵ファイルの名前は authorized_keys に変更する。
転送先ディレクトリ、ファイル名を指定して、SCPを押せば転送開始。
ドラッグ&ドロップで、転送してくれる事を初めて知りました。(:D)r2
- 書き換え防止のために権限を変更
chmod 600 authorized_keys
sshd 設定ファイルの編集
- /etc/ssh/sshd_config (一部抜粋)
port 1024~65536までの間のポート番号を指定 PermitRootLogin no PasswordAuthentication no
- ssh のポート番号22から変更しておくとよさげ。
- root でのログインを許可しない
- パスワード認証を許可しない
これで気持ちセキュリティアップ!
ターミナルの設定
teraterm での設定方法
- ホスト名とポート番号を入力 -> OK
- RSA/DSA鍵を使うを選択 -> 秘密鍵ボタンを押して保存した秘密鍵ファイルを選択
ttpmenu での自動接続設定
自動ログインで楽がしたいでござる!
登録名は適当に、ホスト名にはホスト名とポートを「:」で繋いでポート番号を
例)host: 192.168.1.6 port:12345
192.168.1.6:12345
保存した秘密鍵ファイルを選択
最後に左向き ▲ を押して設定を保存。これで次回から自動ログインできるんじゃなかろうか
Samba
Samba とはなんぞ
Sambaとは、Microsoft ネットワークで使用される SMB/CIFS プロトコルを扱うソフトウェア
Microsoft ネットワークの仕組み
そもそもの、Microsoft ネットワークの仕組み
NetBIOS
NetBIOS とは、Network Input/Outpt System の略。TCP/IP がまだ主流ではなかった 1980年代に開発されたAPI (Application Programing Interface) 通信を行うための基本的なプログラムが BIOS(基本入出力システム)という形式で提供されたことから、MS-DOS で標準的に使われるようになった。
Microsoft ネットワークでの名前解決
コンピューター名を使って通信を行うには、そのコンピュータ名からIPアドレスを知る必要がある。Microsoft ネットワークでは、いくつかの名前解決手段が使われる。
ブロードキャストによる名前解決
ネットワーク上すべてのコンピューターに対してブロードキャストを行い、問い合わせに該当するコンピューターは問い合わせ元に返答することで名前解決を行う。
WINS による名前解決
WINS (Windows Internet Name Service) とは、DNSサーバのような役割を果たす。WINSサーバが名前解決を行い、他のコンピューターはWINSサーバに問い合わせを行う。
Samba の機能
Samba を使用することで、以下の機能が利用できる
- ファイルサーバ
- プリントサーバ
- ドメインコントローラ
- WINS サーバ
- Microsoft ネットワーククライアント
Samba のパッケージ
- samba
- samba-common
- samba-client
Samba サーバの設定
Samba サーバの設定
Samba の主な設定は /etc/samba/smb.conf で行う。smb.conf は、大きく分けて2つの部分から構成される。
- Global Settings
- Share Definitions
Global Settings
Samba サーバの全体的な設定を行う部分。この部分を変更した場合は Samba サーバの再起動が必要。
Share Definitions
ファイル共有やプリンタ共有の設定を行う部分。この部分を変更した場合は、Samba サーバの再起動は必要なし。
Samba サーバの設定例
global セクション
Samba サーバ全般に及ぶ設定を行う
workgroup
所属するグループ、またはドメイン名を指定
workgroup = MYGROUP
server string
アイコンに表示されるコメントを記述。You ブラウジング時に識別しやすい文字列を指定しちゃいなよ
server string = CentOS Samba Server
hosts allow
接続を許可するホストを指定。コメントアウトされている場合、すべてのホストからの接続を許可
hosts allow = 192.168.1.6
printcap name
printcap ファイルの絶対パスを指定。load printers と組み合わせて使う
load printers
プリンタごとにプリンタ共有を定義するのではなく、 /etc/printcap の設定に基づいてプリンタ共有を定義する。デフォルトは「yes」
load printers = yes
guest account
「guest ok = yes」の場合、ゲストユーザーとして利用されるアカウントを指定する。
※ ユーザーは /etc/passwd に存在するユーザーに限る。
guest account = nobody
log file
ログファイルを指定。デフォルトの場合、接続マシンごとにログファイルが分かれる。「%m」はクライアントの NetBIOS を表す。
log file = /var/log/samba/%m.log
max log size
最大ログサイズをキロバイト単位で指定する。「0」の場合、上限を設けない。
max log size = 50
security
セキュリティーモードの設定を行う
security = user
セキュリティモード | 内容 |
---|---|
share | 共有単位でパスワードを用いて認証する |
user | ユーザー名とパスワードを用いて認証する |
server | 他のサーバに認証を依頼する |
domain | ドメインコントローラに認証を依頼する |
ads | ActiveDirectory ドメインのドメインコントローラに認証を依頼する |
encrypt_passwd
暗号化パスワードを利用する。デフォルトは「yes」
encrypt_passwd = yes
smb passwd file
Sambaで利用するアカウントとパスワードが格納されるファイルを指定
smb passwd file = /etc/samba/smbpasswd
homes セクション
ユーザー毎のホームディレクトリを共有する場合の設定
comment
ブラウジング時に表示されるコメントを記述する
comment = Home Directories
browsable
「yes」の場合、ネットワークコンピューターでブラウズしたときに表示される
brouwsable = yes
writeable
書き込みも可能とする。read onli = no と writeable = yes は同意
writeable = yes
printers セクション
プリンタ共有のためのセクション
path
共有のパスを指定
printers = /var/spool/samba
printable
プリンタ出力を許可するかどうかを指定
printable = yes
map to guest
- never デフォルト
- bad user
- bad password
ユーザーアカウントの管理
セキュリティレベルが「user」時、Samba用ユーザーアカウントを作成しておく必要がある。Samba用ユーザーアカウントを作成するには、 pdbedit コマンドを使う
pdbedit
pdbedit -a -u centuser
オプション | 内容 |
---|---|
-a | ユーザーを追加 |
-u | ユーザーの指定 |
-L | ユーザー一覧を確認 |
-x | ユーザーを削除する |
smbpasswd
上記の pdedit 同様、ユーザーアカウントの管理の設定
smbpasswd -a centuser
※ なお、上記二つのコマンドで作成されるユーザーは、予め /etc/passwd ファイルに登録されている必要がある。ユーザー情報は /etc/samba/smbpasswd ファイルに格納される。
また、パスワード変更時にも使用する。
NetBIOS での名前解決
コンピューター名が hoge であるホストのIPアドレスを調べる
nmblookup hoge
ワークグループ WORKGROUP 内のマスターブラウザを検索
nmblookup -M WORKGROUP
FTP
FTP (File Transfer Protocol) サーバソフトウェアの代表的なものには
- wu-ftpd
- ProFTPD
- vsftpd etc...
などがあり、CentOS では、vsftpd (Very Secure ftpd) が採用されている
vsftpd の設定
vsftpd の設定ファイル
- /etc/vsftpd/vsftpd.conf
基本的な書式
設定項目名=設定値
匿名FTP の有無
匿名FTP とは、サーバにアカウントがない場合でも、ユーザー名として anonymous, パスワードとして利用者のメールアドレスを使用すればログインできるFTPサーバのこと。アカウントのあるユーザーのみにFTPの利用を許可したい場合は「No」にする。
anonymous_enable=YES
ローカルユーザーのログイン許可
アカウントのあるローカルユーザのログインを許可するかどうかを指定
local_enable=YES
匿名FTP でのファイルのアップロード
匿名FTP でのファイルのアップロードを許可するかどうかを指定。匿名FTP は誰もが利用可能なため、悪用されないよう基本的には禁止しておくが無難。その場合設定値は「NO」、もしくはコメントアウト(デフォルトではコメントアウトされ無効化)
anon_upload_enable=YES
ログファイルへの記録
ファイルのアップロード/ダウンロードの情報をログファイルに記録する。
デフォルトのログファイルは /var/log/vsftpd.log
xferlog_enable=YES
TCP/Wrappers の利用
TCP Wrapper を使ったアクセス制御の有効/無効化
tcp_wrappers=YES
ユーザーが利用できるディレクトリを制限
デフォルトの設定では、一般ユーザーで FTPログインした場合、そのユーザーのホームディレクトリに移動する。cdサブコマンドを使ってシステム内のディレクトリツリーを自由に移動できてしまうため、セキュリティ上よろしくない。
各ユーザーのホームディレクトリより一切↑にはいかなようにする
ホームディレクトリ以外に移動できないように設定
chroot_local_user=YES
ユーザーのログインディレクトリを変更
ユーザーのホームディレクトリ内に、ディレクトリを作成しておき、FTPログイン時に ~/ディレクトリ名 にログインするようにするには下記の通り。
local_root=ftp # Apache Webサーバを利用してユーザのホームディレクトリを公開している場合など loclal_root=public_html
PASV モードの対応
FTP は基本的に、データ転送に20番ポート、制御用に21番ポートと、サーバ側で2つのポートを利用する。一般的に、クライアントとサーバ間で通信が行われる場合、クライアント側からサーバ側へ接続を要求する。FTP のデータ転送については、サーバ側からクライアント側へ接続を要求する。が、FTPのデータ転送については、サーバ側からクライアント側に接続できない事態が発生する恐れがあるlこのような場合、、FTPサーバを PASVモードを利用することで回避できる
PASVモードでは、FTPデータ転送についても、制御接続と同様 クライアント側からサーバへ接続を要求する。
PASVモードの有効化
pasv_enable=YES
vsftpd PASVモードを利用する
- /etc/vsftpd/vsftpd.conf
pasv_enable=YES
FTP クライアントコマンド
コマンドラインでFTPサーバに接続してファイルのアップロード/ダウンロードを行うには lftpd コマンドが利用できる
アカウントを省略すると、匿名ユーザーとして自動的にログインできる
lftpd ホスト名
lftpd サブコマンド
コマンド | 内容 |
---|---|
ls | ファイル名一覧を表示 |
cd | ディレクトリを移動 |
lcd | ローカルのディレクトリを移動 |
pwd | カレントディレクトリを表示 |
get FILENAME | 指定したファイルをダウンロード |
mget FILENAME | 指定したファイル(複数)をダウンロード |
put FILENAME | 指定したファイルをアップロード |
mput FILENAME | 指定したファイル(複数)をアップロード |
mirror DIR | 指定したディレクトリをミラーリングダウンロード |
user USERNAME | 匿名ユーザーでログイン中、指定したユーザーで入りなおす |
!COMMAND | ローカルでシェルコマンドを実行 |
quit | 接続を終了 |