2009年02月05日

FTPサーバでPASVモードの怪

FTPサーバ導入については下
CentOSでFTPサーバの怪

そもそもPASVモードとは。

FTPの通常通信ではクライアントからサーバ⇒サーバからクライアントという手順を踏んで接続を確立します。
なので、クライアントがFirewallの内側にありFTPを拒否してる場合通常モードでは接続を確立出来ません。
そこで出来たのがPASV(パッシブ)モード通信です。
PASVモード通信ではクライアントからサーバ⇒クライアントからサーバという確認方法で一方向への流れしかありません。そのお陰でFirewallの内側からも接続を確立出来るようになります。

今回はVSFTPDでPASVモードを使う手順です。使用方法はあまりに簡単です。

手順
1.VSFTPDの設定ファイルにPASVモード有効設定を書き足しましょう。
# vi /etc/vsftpd/vsftpd.conf

---ファイルの中身---
〜末尾

#PASVモード有効
pasv_promiscuous=YES

#PASVモードで使うポートの範囲
pasv_min_port=50000 #最小
pasv_max_port=50005 #最大
-------------------

※開けるポートはFTPサーバを使用するユーザの総定数で適当な値にしましょう。

2.設定は終わったのでVSFTPDを再起動します。
# /etc/rc.d/init.d/vsftpd restart

3.PASVモードが使うポートの穴をFirewallに開けましょう。
# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 50000:50005 -j ACCEPT

設定保存
# /etc/rc.d/init.d/iptables save

4.後はルータのポートも忘れず開けましょう。
※もし、WAN─ルータ─サーバという構成の場合は追記に進んでください。


これでFFFTPなどでPASVモードにチェックを入れて通信する事が出来ます。


<追記>
PASVモードの場合1回目の通信で、2回目は何処に通信すれば良いのかをクライアントPCに教えます。普通はNICに割り当てられているIPアドレスを自動取得してクライアントに教えるのですが上で書いたようにルータなどでプライベートアドレスが割り振られている場合はプライベートアドレスを返してしまう場合があるようです。(何故かうまく行く時もありますが。)
そこで/etc/vsftpd/vsftpd.confの最後に以下を書き足しましょう。
[固定IPアドレスの場合]
pasv_address=ルータのWAN側IPアドレス

[非固定IPアドレスでDDNSを使用している場合]
pasv_addr_resolve=YES
pasv_address=ドメインアドレス

ドメインアドレスを使う場合はpasv_addr_resolveを必ず有効にしましょう。でないと下のエラーが出ます。
500 OOPS: invalid pasv_address: //
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

2009年02月04日

CentOSでFTPサーバの怪

微妙に苦労しました。慣れると楽です。

導入手順
1.FTPサーバをインストールします。
# yum install vsftpd

2.vsftpdの設定をします。設定ファイルは一つで楽なのですが、設定によって外部ファイルの役割が変わる仕様なのでまずは手順通りに設定して後から弄りましょう。
# vi /etc/vsftpd/vsftpd.conf

---ファイルの中身---

YESにすると匿名ユーザのログインを許可。
anonymous_enable=NO(推奨)

ローカルユーザ(Linuxユーザ)のログイン許可。
local_enable=YES

ローカルユーザのumask設定(パーミッションのビットマスクっぽい)
local_umask=022

YESにすると接続転送ログを保存する。
xferlog_enable=YES
保存場所
xferlog_file=/var/log/vsftpd.log
ログ保存するためにはここをNOにする。
xferlog_std_format=NO

アスキー転送を許可。許可しないと後々苦労します。
ascii_download_enable=YES
ascii_upload_enable=YES

Activeモード時のポート(変えてはいけない。)
connect_from_port_20=YES

FTPサーバのバージョンを隠す場合
ftpd_banner="適当な文字列が表示される"

デフォルトでホームディレクトリより上にアクセス出来ない。(※重要)
chroot_local_user=YES
リストファイルで許可する。NOにするとリストファイルで禁止する。
chroot_list_enable=YES
項目が無い場合は足しましょう。
上のリストファイル指定
chroot_list_file=/etc/vsftpd/chroot_list

ディレクトリ削除許可
ls_recurse_enable=YES

ユーザ制限設定(※重要)
NOにするとユーザ制限一切しない。
userlist_enable=YES
上がYESの場合有効。NOだとリストファイルに書かれたユーザのみログイン許可
YESだとリストに書かれたユーザのみ規制。
userlist_deny=NO
リストファイル指定
userlist_file=/etc/vsftpd/user_list

ユーザごとにホームディレクトリを設定するファイルを置くディレクトリ指定
user_config_dir=/etc/vsftpd/user_conf

--------------------


PASV設定は次の機会にします。
FTPサーバでPASVモードの怪

3.設定ファイルで指定したファイル達を作り設定します。
# cd /etc/vsftpd
# vi chroot_list
---ファイルの中身---
#ホームフォルダより上層にアクセス出来るユーザを指定
#基本は空ファイル
aaa
bbb
ccc
-------------------


# vi user_list
---ファイルの中身---
#色々書いてあるけどここは許可するユーザ設定にしたので
#全てのユーザをコメントアウトしてログインするユーザを書き足しましょう。
#root
sis
-------------------


# vi ftpusers
---ファイルの中身---
#ここに書いてあるユーザは設定に関係無くログイン出来ない。
root

--------------------


ユーザごとにホームディレクトリを設定する。
# mkdir /etc/vsftpd/user_conf
# cd /etc/vsftpd/user_conf
# vi sis(ユーザ名)
---ファイルの中身---
local_root=/home/html/sis(FTPのホームディレクトリパス)
-------------------



4.Firewallに穴を開けましょう。
# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport ftp -j ACCEPT
設定保存
/etc/rc.d/init.d/iptables save
火壁再起動
/etc/rc.d/init.d/iptables restart

5.VSFTPDを起動しましょう。
/etc/rc.d/init.d/vsftpd start
(設定変更の場合はrestart)

後はFFFTP等でアクセスするだけです。
PASVモード設定をしてないのでそのチェックを外しましょう。

最後にホームディレクトリのパーミッションに注意しましょう。
Linuxでログインして書き込めるようにしないとFTP上でも書き込めません。
chgrpとかchmodで検索すると良いです。


このままFTPサーバを外部に公開すると通信した物は簡単に読み取れてしまいます。もし外部に公開する場合は下の記事に進みましょう。

FTPサーバにSSL通信を導入の怪


[追記]
FFFTP ver1.17 and 1.96dにてファイル所有者が違うとファイルが表示されなかったり自分が所有者なのに表示されないという不具合があるのでおかしい場合は違うソフトを使いましょう。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:サーバー | このブログの読者になる | 更新情報をチェックする

2009年01月31日

CentOSでWindows用ファイルサーバの怪(CUI編)

WindowsからLinux上のディレクトリやファイルにアクセスするための方法です。Windows(クライアント)側からはあたかもWindows機の共有フォルダにアクセスしてるかのように見えます。でも確かにLinuxです。

今回はCUI操作なのでLinux全般で汎用性あると思います。インストールまでは違いますが設定関連は同じだと思います。

必要なモノ
・ネットワーク環境(すでにWindowsと同じネットワーク上にある)
・Samba

手順
1.まずSambaをインストールします。
# yum install samba

2.Sambaが使うポート(135〜139)を開けます。
# iptables -I RH-Firewall-1-INPUT -p tcp -m tcp --dport 135:139 -j ACCEPT
# iptables -I RH-Firewall-1-INPUT -p udp -m udp --dport 135:139 -j ACCEPT

3.再起動すると消えてしまいますので設定を保存します。
# /etc/rc.d/init.d/iptables save

4.Sambaを利用するユーザを登録します。
※Sambaユーザ(共有フォルダにアクセスするユーザ)の扱いはLinux上のユーザと全く同じですがSamba用のパスワードを用意します。

# useradd -p 'pass' name
(まずLinuxユーザを作ります。)(消す時はuserdelコマンド)

# pdbedit -a name
(Sambaユーザとして登録)
パスワード設定は共有フォルダにアクセスする時に必要な物です。
つまりここで登録したユーザ名とSambaパスワードで共有フォルダにアクセスします。
※消す時はpdbedit -x name


5.共有するディレクトリを作ります。
# mkdir /windows/public (好きな名前)

6.ディレクトリのアクセス権限を変えます。WindowsからでもSambaを通してLinuxユーザとしてアクセスする事になるのでLinuxユーザでアクセス権限を設定する事がそのまま共有フォルダへのアクセス権限設定になります。
# chmod 2777 /windows/public(公開する場合)

7.Sambaの設定をしましょう。設定ファイルは一つで判り易いので意外に簡単です。
# vi /etc/samba/smb.conf

---ファイルの中身---
〜〜〜〜〜〜〜
[global]
workgroup = MSHOME(Windowsで使ってるワークグループにします。)
server string = server(Windowsで言う所のコンピュータ名です。)

〜〜〜〜〜〜〜
wins support = yes
〜〜〜〜〜〜〜
passdb expand explicit = no#[global]セクションの最後に追加。passdbフィールドのマクロを変換をNOに。不具合があるそうなので。

#認証されないユーザをguestとして扱いたい場合は下を追加。
map to guest = Bad User
#===========Share Definitions ===============
#ここからが共有フォルダごとの設定です!
[homes]

#これはログインしたユーザのホームディレクトリを利用できるようにする物です。必要無いなら#を使って、このセクションをコメントアウトしてしまいましょう。

#ここからpublicディレクトリ共有設定を追加

[public]
comment = public(共有フォルダの説明になります。)
browseable = yes
create mode = 2777
(設定すると共有内で作成されたファイルのパーミッションをこれにします。)
  directory mode = 2777 (上のディレクトリ版)
  path = /windows/public (共有したいディレクトリ)
  public = yes
only guest = no (yesにするとアクセスした人をゲストとして扱う)
  read only = no (yesにすると書いてある通り。)
  valid users = @gloup(これでアクセス出来るグループを指定したり)
------------------

他にもwrite listやread listなんていうのもあります。

8.Sambaを起動しましょう。起動済みの場合は9へ。
# /etc/rc.d/init.d/smb start
# /etc/rc.d/init.d/nmb start
※自動実行されるようにしましょう。
# chkconfig smb on
# chkconfig nmb on

9.設定ファイルを適用しましょう。
# /etc/rc.d/init.d/smb reload

あとはWindowsのエクスプローラのアドレスバーから\\LinuxのIPアドレスを入力するだけです。設定したコンピュータ名でも良いのですがWindows2000だとうまく行きませんでした。XPだとそれでもアクセス出来ます。


WindowsからSambaのパスワードを変更する方法を書いておきます。
1.[CTRL]+[ALT]+[DEL]を押します。
2.パスワードの変更を押します。
3.以下のように設定します。
・Linuxでのユーザ名
・LinuxのIPアドレス
・古いパスワード 
・新しいパスワード
4.OKを押せば終了です。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:Windows関連 | このブログの読者になる | 更新情報をチェックする

2009年01月27日

Linuxでネットワーク設定の怪(CUI編)

DHCPでIPアドレスを自動取得するか固定で取得するかによって変わってきます。

ネットワークアダプタごとの設定手順
1.まずネットワークアダプタが認識されているか確認します。
# vi /etc/modprobe.conf
alias ethx(xに数値)ってあれば認識されている。


2.アダプタの設定ファイルを開く。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0


@DHCPで自動取得の場合
---ファイルの中身---

DEVICE=eth0(必須)
BOOTPROTO=dhcp(必須:DHCP指定)
HWADDR=00:00:00:00:00:00(必須:MACアドレス)
--------------------

A固定IPアドレスの場合
---ファイルの中身---
DEVICE=eth0(必須)
BOOTPROTO=static(必須:またはnoneを指定)
HWADDR=00:00:00:00:00:00(必須:MACアドレス)
IPADDR=192.168.0.2(マシンに割り振るIPアドレス)
NETMASK=255.255.255.0(必須:サブネットマスク)
GATEWAY=192.168.0.1(必須:ゲートウェイ)
--------------------

3.名前解決のためDNSサーバの設定をします。
# vi /etc/resolv.conf
---ファイルの中身---
serch ドメイン名(削ったら繋がった。
NAMESERVER 192.168.0.1(必須:プライマリDNS)
NAMESERVER 192.168.0.2(任意:セカンダリDNS)
--------------------

4.ネットワーク設定をします。
# vi /etc/sysconfig/network
---ファイルの中身---
NETWORKING=yes(ネットワークを有効)
NETWORKING_IPV6=no(IPV6使うならyes)
HOSTNAME=linux(マシンのネットワーク上の名前)
GATEWAYDEV=eth0(必須)
GATEWAY=192.168,0.1(必須:ゲートウェイIPアドレス)
(GATEWAY=192.168.1.1)
(GATEWAYDEV=eth1)
--------------------

5.設定を反映するためにネットワーク部分だけ再起動する。
# /etc/rc.d/init.d/network reload

6.インターネットに繋がるかチェックする。
# ping www.google.co.jp
うまくいったらCTRL+Cで止めます。


これで完了です。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:OS設定関連 | このブログの読者になる | 更新情報をチェックする

2009年01月27日

Linuxで起動時にフリーズする場合の対処法の怪

今回は起動中にフリーズし、そのまま起動出来ない場合の対処法です。
以下の条件の場合だけで有効な方法です。汎用性アリです。
・BIOSが立ち上がりカーネル選択も過ぎ、その後でフリーズ。
・シングルモードでは立ち上がる。

※デーモンはWindowsで言う所のサービスです。

GRUBを過ぎた後デーモンが始まる前に「I」キーを押すと各デーモンを起動するかしないかを選ぶ事が出来ます。つまりそれによってどれが悪さをしているか切り分ける事が出来るのです。それぞれ「y」か「n」で選びます。

切り分け方としては全てyで選んでいきフリーズする場所を調べて、そこだけnにしてみて検証していく方法です。うまく原因を特定する事が出来たら、そのデーモンが自動実行されないように設定しましょう。
シングルモードかその起動出来た状態でのCUIもしくは端末で以下のようにすれば自動実行を停止出来ます。
# chkconfig --del デーモンの名前

他にも自動実行されるデーモンを設定するコマンドとしてchkconfigは有効です。

自動実行するデーモンを追加する場合
# chkconfig --del デーモンの名前

オンオフリセットの場合
# chkconfig --level 「ランレベル」 デーモンの名前 on,off,reset

リストを表示する場合
# chkconfig --list デーモンの名前(指定しないと全てのデーモン)


GUIで設定したい場合やランレベルについては下のメモで詳しく書いてます。
Fedoraを起動時にソフトを自動起動の怪
タグ:CentOS5 CentOS Linux
書いた人 sis | Comment(0) | TrackBack(0) | Linux:OS設定関連 | このブログの読者になる | 更新情報をチェックする

2009年01月23日

VMwareServer2でUSB使用の怪

VMwareServerでは昔からUSBを使用する場合、USBの操作権限のような物を利用しています。ホストOSでUSBを使う時はゲストOSでは使えず、またゲストOSでUSBを使う時はホストOSでは使えません。こうする事によってUSBをあたかもゲストOSの仮想マシンに直接挿したかのように使えます。

問題はVMwareServer2を導入してゲストOSを入れ終わると起きました。USB切り替えの場所が判らないのです。散々あれこれ見た結果、上の擬似メニューバーにUSBのロゴが。そこから辿っていけば切り替えられました。

操作は1回押すとゲストOSに操作権限が移り、もう一回押すとホストOSに戻ります。挿さってるUSB機器ごとに設定出来ます。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:仮想化 | このブログの読者になる | 更新情報をチェックする

2009年01月22日

Fedora10にVMwareServer2をインストールの怪(GUI編)

Fedora10にVMwareServer2をインストールする手順です。
GUIでの導入です。
手順の汎用性を高めるためにrpmを使わずインストールする方法にしました。

端末(コンソール)使うのでCUIでも問題無いと思います。
そもそもVMwareServer2はサーバとしての機能を更に特化させた物です。
どういう事かと言いますとLinux上で動くVMwareServerはデーモンに徹して管理やゲストOSを見るのは全てFireFoxやIE等のブラウザ上から行ないます。Linux上で動くデーモンにアクセス出来れば良いので他のPCから設定や操作は勿論同じパソコンで操作する場合もウェブブラウザでlocalhostにアクセスして操作します。

手順
1.必要な物を用意します。(gcc,kerneldevel,xinetd)
# yum install gcc
# yum install kernel-devel
# yum install xinetd

2.下のアドレスからdownloadと進み会員登録しましょう。
http://www.vmware.com/download/server/

3.会員登録が済んだらダウンロード画面から以下二つをダウンロードしてきましょう。
・VMware Server 2 for Linux Operating Systems.(TAR image)
・VIX API 1.6 for Linux
64bitの場合は64bit用が用意されているのでそっちをダウンロードしてください。

4.適当なディレクトリに二つを解凍したらコンソールからvmware-install.plを実行します。どちらのディレクトリにもあるのでそれぞれ実行してください。

5.後は質問形式で進んでいきます。全てデフォルト設定でも問題ありません。

6.インストールが完了したらVMwareServerが使うポートを空けましょう。デフォルトでは8333ですが環境により変わります。

7.設定中にメモし忘れたので判らなかったのですが下のコマンドで普通に設定画面が開きます。
# vmware
これでポート番号を確認してファイアウォールの設定をすれば良いでしょう。

8.上で書いた通りコマンドで開く方法以外にはアドレスを打って表示する事も出来ます。こっち方がポピュラーです。
https://localhost:8333/(1台の場合)
https://Linux機のIPアドレス:8333/(違うパソコンからの場合)

9.アドレスを開くとログイン画面が表示されます。いきなり何の事かと思いますがLinuxでのユーザとパスワードを入力すればログインする事が出来ます。
※この時セキュリティ証明書が不明でアクセス出来ない場合がありますが適当に例外に指定してあげれば表示出来ます。画面の指示に従いましょう。

10.画面右の方のCommandsから色々操作できます。上のメニューバーもどきからでも良いでしょう。Virtual MachinesからCreate Virtual Machineで仮想マシンを作成する事が出来ます。

11.後は適当にOSをインストールするだけです。

12.最後にゲストOS側にVMwareドライバが必要になります。
左のゲストOSの一覧から選ぶ>右のStatusからVMware toolsをクリックすればゲストOS上でインストール画面が出ます。


以上で完了です。


---------------------
書き忘れてましたがゲストOSを表示するためにプラグインが必要になります。適当にクリックしてけば勝手にインストールされます。


Cannot access virtual machine console. The request timed out.と出る場合があります。FirefoxからIEにしたらうまく行きました。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:仮想化 | このブログの読者になる | 更新情報をチェックする

2009年01月21日

WINE1.1.13に更新の怪

1.1.13が出ていたので更新してみました。更新手順についてはWINE 1.1.12にアップデートの怪と同じです。


更新内容は以下の通りです。
* Freedesktop.org-compliant startup notifications.
* Many fixes for 64-bit application support.
* Improved graphics support in Internet Explorer.
* Various Richedit improvements.
* Better certificate manager dialog.
* Various bug fixes.

検証は後で色々やってみます。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:Windows関連 | このブログの読者になる | 更新情報をチェックする

2009年01月21日

moonlight1.0に更新の怪

今まで1.0bを使っていて1.0が出ていたのでインストールしてみました。やはり微妙です。1.0bで出来なかった事はほぼ出来ないと見て問題無いでしょう。

以下更新内容
# Final release of Moonlight 1.0
# Support for the Microsoft Media Pack
# Quick and easy installation of media codecs
# Several media releate bug fixes

サイト側の対応が必要無くなるレベルに早く達して欲しい所です。
書いた人 sis | Comment(0) | TrackBack(0) | Linux:Windows関連 | このブログの読者になる | 更新情報をチェックする

2009年01月19日

XenにゲストOSをインストールの怪

◆はじめに
Xenには完全仮想化と準仮想化があります。
・完全仮想化
 その名の通り全てを仮想化します。

・準仮想化
ゲストOSのカーネル一部をXenが改変してホストOSを経由せずにハードウェアに命令を出せるようにした物らしいです。

つまり準仮想化の方がパフォーマンスは上がりますが、カーネルを改変しないといけないのでWindowsでは使えません。なのでLinuxは準仮想化でインストールしてWindowsは完全仮想化でインストールのように使い分けるのが良いと思います。

手順

◆CUIでインストールの場合
CentOSを入れる手順です。他のディストリは適当に工夫してください。

1.CUI用インストールコマンドを入力します。
# virt-install

2.質問形式になるので答えて行きましょう。
Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating system.
完全仮想化をしますか?準仮想化なのでno

What is the name of your virtual machine?
ゲストOSの名前を入力してください。(好きな名前)
CentOS

How much RAM should be allocated (in megabytes)?
ゲストOSに割り当てるメモリ容量をMB単位で入力してください。

What would you like to use as the disk (file path)?
ゲストOSを保存するディスクもしくはファイルパスを指定してください。~./..img

How large would you like the disk (file path) to be (in gigabytes)?
ゲストOSに割り当てるHDD容量をGB単位で入力してください。

Would you like to enable graphics support?(yes or no)
yesにするとVNCでインストールになります。ここではnoにしました。

What is the install location?
OSのリポジトリを指定してください。
http://ftp.riken.jp/Linux/centos/5/os/i386/ (32bitの場合)
http://ftp.riken.jp/Linux/centos/5/os/x86_64/(64bitの場合)

3.後は通常のインストール画面になります。


◆GUIでインストールの場合

1.アプリケーション>システムツール>仮想マシンマネージャーを起動します。

2.localhostにあわせて新規を押します。

3.ダイアログが出るので説明に従って進む。後は適当に出来ます。


◆仮想マシンの起動
・GUIの場合は仮想マシンマネージャから出来ます。
・CUIの場合は以下のコマンドです。
# xm create -c /etc/xen/CentOS(設定ファイル)

ゲストOSのコンソール
# xm console CentOS

ゲストOS一覧表示
# xm list

ゲストOSを停止
# xm shutdown vm01

設定ファイルを弄りたい
# vi /etc/xen/CentOS
書いた人 sis | Comment(0) | TrackBack(0) | Linux:仮想化 | このブログの読者になる | 更新情報をチェックする