2008年9月29日

FTPのバージョンを表示させない方法

Solaris9 , Solaris10 のFTPサーバにアクセスした際に、FTPのバージョンが表示されるのを消す場合

%ftp test
Connected to test.
220 bow FTP server (Version wu-2.6.2+Sun) ready.
          ^^^^^^^^^^^^^^^^^^^^^^

FTPのバージョンが表示されてしまう原因は、in.ftpd プロセスの起動時の引数 と/etc/ftpd/ftpaccess の設定が影響している。

この表示をさせないようにするには、in.ftpd プロセス起動時に -a オプションを付けるように設定する ( = ftpaccess ファイルを読み込むように指定する ) ことと、ftpaccess ファイル内でバージョン情報を表示しないように設定する必要がある。

1)-a オプションを指定することによって、ftpaccess ファイルを有効にする。

▼ Silaris9 の場合 ▼

  -----------------------------------------------------------------------------
  # vi /etc/inetd.conf
::
  ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -a
  -----------------------------------------------------------------------------

man in.ftpd より抜粋
  ==========================================
  -a Enable use of the ftpaccess(4) file.
==========================================

-a の設定がされていない場合は設定し、設定後は、inetd プロセスに対して
  HUP シグナルを送信。

----------------------
  # pkill -HUP inetd
----------------------

▼ Solaris10 の場合 ▼

-----------------------------------------------------------------------------
# svccfg -s ftp editprop
:
: ここで vi が起動。
:
setprop inetd_start/exec = astring: ("/usr/sbin/in.ftpd -a")

※ コメント化を解除し、上記のようにする。
-----------------------------------------------------------------------------

実行後、以下のようにして設定を有効にする。

-----------------------------------------------------------------------------
# svcadm refresh ftp
-----------------------------------------------------------------------------

2) /etc/ftpd/ftpaccess ファイルを確認。

greeting の部分が "brief" になっていることを確認する。
  "brief" のみとなっていれば、ホスト名と "FTP Server ready" のみ
表示させる。

inetd.conf のftp のエントリに -a オプションがない場合、ftpaccess ファイルが
  有効にならないため、"full" の状態となるので、ftp のバージョンも出力され
  てしまう。

  # vi /etc/ftdp/ftpaccess
::
  greeting brief


  man ftpaccess より抜粋
==================================================================
greeting text message
greeting brief shows the hostname. greeting terse simply says
"FTP Server ready." Although full is the default,
brief is suggested.
==================================================================

投稿者 AJ : 20:01トラックバック (0)

2007年8月28日

FTP サーバをデバッグモードで動作させる

in.ftpd に -d オプションを付けて起動することで、デバッグモードで動作させることができる。デバッグモードで動作している場合、デバッグログが syslogd 経由で出力されるようになるため、このログを特定のファイルに出力するように設定を行う。

【設定例】

1) [ Solaris8, Solaris9 の場合 ]
/etc/inet/inetd.conf の in.ftpd エントリに、-dl オプションを付加

ctc# vi /etc/inet/inetd.conf
:
# FTPD - FTP server daemon
##ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd
ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -dl

[ Solaris10 の場合 ]
inetadm コマンドを使用して、in.ftpd のオプションに -dl オプションを付加

ctc# inetadm -l network/ftp
;
exec="/usr/sbin/in.ftpd" <--- !!!
;

ctc# inetadm -m network/ftp exec="/usr/sbin/in.ftpd -dl"

ctc# inetadm -l network/ftp
;
exec="/usr/sbin/in.ftpd -dl" <--- !!!
;

2) -dl オプションの付加により、デバッグログが syslogd 経由で出力されるようになるので、出力のための設定を行う。

ctc# vi /etc/syslog.conf
:
daemon.debug /var/adm/ftpd.log

// 最後の行などに追加を行う。
// daemon.debug とログファイル名の間は TAB で区切り、スペースは
// 入れないようにする。

3) デバッグログを出力するファイルを作成。

ctc# touch /var/adm/ftpd.log

[ Solaris8, Solaris9 の場合のみ ]
4) /etc/inet/inetd.conf の設定をそれぞれ再読込させるため、デーモンに SIGHUP を送信。

ctc# pkill -HUP inetd

5) /etc/syslog.conf の設定をそれぞれ再読込させるため、デーモンに SIGHUP を送信。

ctc# pkill -HUP syslogd

投稿者 AJ : 20:33トラックバック (0)

2007年8月 9日

FTPのバージョンを表示させない方法

Solaris9 のFTPサーバにアクセスした際に、FTPのバージョンが下記のように表示されてしまう。

%ftp test
Connected to test.
220 bow FTP server (Version wu-2.6.2+Sun) ready.
          ^^^^^^^^^^^^^^^^^^^^^^
FTPのバージョンが表示されてしまう原因は、/etc/inetd.conf と /etc/ftpd/ftpaccess の設定が影響している。
この表示をさせないようにするには、/etc/inetd.conf のftp の部分を編集することで実現できる。

1)-a オプションを指定することによって、ftpaccess ファイルを有効にする。

  -----------------------------------------------------------------------------
  # vi /etc/inetd.conf
::
  ftp stream tcp6 nowait root /usr/sbin/in.ftpd in.ftpd -a
  -----------------------------------------------------------------------------

man in.ftpd より抜粋
==========================================
 -a Enable use of the ftpaccess(4) file.
==========================================

-a の設定がされていない場合は設定し、設定後は、inetd プロセスに対してHUP シグナルを送信。

----------------------
  # pkill -HUP inetd
----------------------

2) /etc/ftpd/ftpaccess ファイルを確認。

greeting の部分が "brief" になっていることを確認。
"brief" のみとなっていれば、ホスト名と "FTP Server ready" のみ表示させる。

inetd.conf のftp のエントリに -a オプションがない場合、ftpaccess ファイルが有効にならないため、"full" の状態となるので、ftp のバージョンも出力されてしまう。

  # vi /etc/ftdp/ftpaccess
::
  greeting brief


man ftpaccess より抜粋
==================================================================
greeting text message
greeting brief shows the hostname. greeting terse simply says
"FTP Server ready." Although full is the default,
brief is suggested.
==================================================================

投稿者 AJ : 10:24トラックバック (0)

2006年7月27日

FTPにおけるユーザーのディレクトリ移動制限方法

Solaris 9 以降の、FTP で特定のユーザーに対し、ホームディレクトリより上位への移動を禁止するには以下のような設定をする。

# vi /etc/ftpd/ftpaccess
:
:
guestuser user111 user222

この設定で user111 , user222 の各ユーザーについては、ログイン後は自分のホームディレクトリが / に見え、それよりも上位への移動はできない。

尚、複数のユーザーに対して設定を行う場合、ユーザー名をスペースで区切って記述。
また、設定が有効になるのは次回ログイン以降となる。

投稿者 AJ : 20:41トラックバック (0)

2006年1月 6日

logadm(1M) でのログローテーション実行コマンドについて

Solaris 8 までの OS では、messages や syslog ファイルのローテーションは
/usr/lib/newsyslog スクリプトにより mv を行って、/dev/null を cp していた。
Solaris 9 からは (logadm を使用した場合には) どのようなコマンドが実行されのか?

■ /usr/lib/newsyslog スクリプト
:
LOG=messages
cd /var/adm
test -f $LOG.2 && mv $LOG.2 $LOG.3
test -f $LOG.1 && mv $LOG.1 $LOG.2
test -f $LOG.0 && mv $LOG.0 $LOG.1
mv $LOG $LOG.0
cp /dev/null $LOG
chmod 644 $LOG
:

──────────────────


logadm コマンドの -n オプションでローテーションのアクションを標準出力させることができ、その結果より実行コマンドを確認することが可能。
最後に実施結果を添付。

■ man logadm より抜粋

-n Print the actions that the logadm command will perform
without actually performing them.

This option is useful for checking arguments before
making any changes to the system.

It is important to remember, however, that since log
rotating actions are only printed with this option,
logadm might not find files that need expiring, but if
run without the -n logadm might create a file that
needs expiring by performing the log rotating actions.
Therefore, if you see no files being expired with the
-n option, files still might be expired without it.

■ logadm -n の実行結果

# logadm -n /var/log/syslog -p now
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.7 /var/log/syslog.8 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.6 /var/log/syslog.7 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.5 /var/log/syslog.6 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.4 /var/log/syslog.5 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.3 /var/log/syslog.4 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.2 /var/log/syslog.3 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.1 /var/log/syslog.2 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog.0 /var/log/syslog.1 # rotate log file
mkdir -p /var/log # verify directory exists
mv -f /var/log/syslog /var/log/syslog.0 # rotate log file
touch /var/log/syslog
chown 0:3 /var/log/syslog
chmod 644 /var/log/syslog
sh -c kill -HUP `cat /var/run/syslog.pid` # -a cmd
#

投稿者 AJ : 10:00トラックバック (0)

2005年12月27日

swap ファイル追加手順

Solaris9 の swap 容量を 1GB 拡張する事を目的として、ファイル [/swapfile] を作成し、swap として割り当てたいとした場合の手順。

1. swap ファイルとして割り当てるファイルを作成。

---------------------------------------------------------------------
# mkfile 1g /swapfile
---------------------------------------------------------------------


2. swap コマンドを使用して /swapfile を swap 領域に割り当て。

---------------------------------------------------------------------
# swap -a /swapfile
---------------------------------------------------------------------


3. /swapfile が swap 領域として割り当てられたことを確認。

---------------------------------------------------------------------
# swap -l
swap ファイル デバイス swaplo ブロック 空き容量
/dev/dsk/c0t0d0s1 136,1 16 2097632 2052592
/swapfile - 16 2097136 2097136 <== !!
#
---------------------------------------------------------------------


この時点で、/swapfile は swap 領域として割り当てられたが、システムをリブートした場合、設定は無効になります。
システムリブート後も /swapfile を swap 領域として使用する場合は、次の手順 4 も行う。


4. < リブート後も /swapfile を swap 領域として使用する場合 >
vi を使用して、/etc/vfstab を編集。
---------------------------------------------------------------------
# vi /etc/vfstab
:
/swapfile - - swap - no -
~
~
:wq!
#
---------------------------------------------------------------------


また、リブート後には swap ファイルは /etc/rc2.d/S73nfs.client 起動スクリプトでswap として追加されるので、この起動スクリプトがリネームされていないことも確認。

投稿者 AJ : 20:31トラックバック (0)

2005年12月14日

DNS の resolver cache のクリア方法

DNS クライアント上で nscd が動作している場合、DNS サーバに問い合わせたホスト情報は nscd を利用してキャッシュしています。DNS クライアントは名前解決の要求があると、まずは nscd によってキャッシュされた情報を参照し、そこに情報がなければ DNS サーバに問い合わせる。
従って、DNS サーバ側で提供している情報に変更があった場合、DNS クライアント側で即座に情報を反映させるためには
nscd でキャッシュされているホスト情報をクリアする必要がある。
システムを再起動することでもホスト情報のキャッシュをクリアすることが可能だが、以下の方法でもクリアすることができる。

 # /usr/sbin/nscd -i hosts [CR]

※ nscd コマンドに関しては、man nscd を参照。

投稿者 AJ : 18:17トラックバック (0)

2005年11月10日

sendmail のメッセージ(Group writable directory)について

messages ファイルに以下のエラーが出力された。

Nov 1 00:00:00 hakutake sendmail[1234]: [ID 801593 mail.crit] NOQUEUE:
SYSERR(root): /etc/mail/sendmail.cf: line 77: fileclass: cannot open
/etc/mail/local-host-names: Group writable directory

これは表示されているパスまでのパーミッションがデフォルトと異なっている可能性がある。

sendmailは、そのユーザーが利用するファイルおよびディレクトリのパーミッションをチェックしている。これは、セキュリティ面での強化を図ったもので、sendmailが想定するパーミッションより、過度のパーミッションが設定されていた場合に警告メッセージを表示する。

今回のメッセージは、グループに対して書き込み権があるために発生している警告メッセージで、表示されているパスまでに、グループに対して、書き込み権が設定されていないか確認が必要。これらのディレクトリは、本来、グループに書き込み権は必要がない。

# ls -ld /
# ls -ld /etc
# ls -ld /etc/mail
# ls -l /etc/mail/local-host-names

# ls -l /etc/mail/trusted-users

例 ) /etc のグループに書き込み権があった場合

# ls -ld /etc
drwxrwxr-x 80 root sys 4608 11月 2日 20:27 /etc

# chmod 755 /etc
# ls -ld /etc
drwxr-xr-x 80 root sys 4608 11月 2日 20:27 /etc

投稿者 AJ : 20:23トラックバック (0)

2005年11月 1日

BIND の forwarders の設定について

BIND にて、以下のように forwarders を設定。

options {
  directory "/var/named";
  forwarders {
         xxx.xxx.xxx.xx;
  };
  forward only ;
};

forwarders で、forward 先 DNS を複数設定し、冗長化することは可能か?
可能なら、その設定方法は?

forwarders の設定ですが、複数の転送先を指定することにより冗長化することが可能。例えば、1 つ目に指定されている転送先の DNS サーバがダウンしていて応答が得られない場合、2 つ目に指定されている DNS サーバへ問い合わせを転送するというように、forwarders に設定されている順番に回答を得るまで問い合わせを行うことができる。

設定方法は、以下の例の通り

※設定としては、forwarders に複数の DNS サーバを指定するだけ。

 # vi /etc/named.conf [CR]
:
options {
directory "/var/named";
forwarders {
192.168.100.101;
192.168.100.102;
}; ^^^^^^^^^^^^^^^ 追加
forward only ;
};



  :wq! [CR]

# ps -ef | grep named | grep -v grep [CR]
# kill -HUP [CR]

投稿者 AJ : 16:33トラックバック (0)

2005年9月15日

logadm.conf の設定方法

Solaris 9 では、messages や syslog ファイルのローテーションにlogadm が使用されているが、まず、ローテーションされるには以下の条件がある。

 ・ 前回のローテーションより 1週間以上経過していること
 ・ 1 byte 以上のデータが書き込まれていること

ローテイトされた時のタイムスタンプは /etc/logadm.conf の -P オプションで記述されており、このタイムスタンプを基準としている。

この条件を満たしていなくても必ず毎月 1 回ローテーションを行ない、また /etc/logadm.conf とは異なるファイルを読み込ませるには、次のようにする。

例)

 新しい設定ファイル名:/etc/logadm2.conf
 ユーザログファイル名:/var/tmp/logtest/log-file

  1. /etc/logadm2.conf ファイルを下記の内容で新規作成。

   # vi /etc/logadm2.conf
   /var/tmp/logtest/log-file -p now
   :wq!
   #

   ※ "-p now" : 直ちにローテーションを行なう設定。


  2. crontab を毎月 1日に実行させるために 日 の項目を
    "*" から "1" に変更し、新しい設定ファイルを -f
    オプションで指定。

   # crontab -e
   10 3 * * * /usr/sbin/logadm
   10 3 1 * * /usr/sbin/logadm -f /etc/logadm2.conf
            ^^^^^^^^^^^^^^^^^^^^
   :wq!
   #

 上記の設定を行うことにより、毎月1日の午前3時10分に /etc/logadm2.conf で定義された log-file のローテーションが(直ちに)行われるようになる。

投稿者 AJ : 18:22トラックバック (0)

2005年9月 5日

Solaris9: port 20/21 に加えて別のportでもftpサービスを提供したい

Solaris 9 の ftp サーバーデーモンは WU-FTPD をベースにしており、表題のような動作をさせることが可能。

 * Solaris 8 までの OS バージョンでは複数の任意のポートでサービスを提供することができない。
別途そのような機能を持った ftp デーモンソフトウェアなどを導入する必要がある。

具体的な方法ですが、幾つか方法は考えられるのですが、以下には inetd.confファイルを用いて設定する例を記載させて頂きます。(既存の port 20/21 はそのまま利用)
  1. /etc/inet/serives に以下のように、追加分の制御用ポート(2000)およびデータ用ポート(2001) を追記します。この際に注意が必要なのは既存の port 20/21 のサービス名とは重複しないようにすることです。

       # vi /etc/inet/services
       ...
       ftp-data    20/tcp
       ftp       21/tcp
       ...
       ftp-data2    2001/tcp
       ftp2      2000/tcp
       ...
  2. /etc/inet/inetd.conf ファイルに以下のように ftp2 (port# 2000)用エントリを追記します。この際にデータ用ポート番号は -P オプションで指定します。
    (厳密にはデータ用ポートに関しては servicesへの記載は必要ありませんが、混乱を避けるために記載して頂ければと存じます)

       # vi /etc/inet/inetd.conf
       ...
       ftp2  stream  tcp6  nowait  root  /usr/sbin/in.ftpd  in.ftpd -a -P 2001
       ...
  3. inetd デーモンに SIGHUP を送って inetd.conf ファイルの変更を有効にします。

       # pkill -HUP inetd
  4. netstat -a コマンドで ftp2 ポートが LISTEN されていることを確認します。

       # netstat -a | grep ftp2
          *.ftp2   *.*  0    0  49152  0 LISTEN
          *.ftp2    *.*  0    0  49152  0 LISTEN
  5. ftp クライアントから制御用ポート 2000 を指定して ftp してください。

    * ftp クライアントで制御用ポートを指定する方法は、ご使用頂きます ftp クライアントのマニュアルをご参照ください。  Solaris バンドルの ftp クライアントでは以下のようにして指定できます。

         $ ftp server port

    * server は ftp サーバーのホスト名または IP、port は制御用ポート番号にそれぞれ置き換えてください。

投稿者 AJ : 18:52トラックバック (0)

2005年7月12日

in.ftpd: デフォルト設定における anonymous login メッセージの抑止方法

質問:

Solaris 9 のデフォルトの設定でクライアントから ftp を実行した時、
ユーザ名に anonymous を入力すると

331 Guest login ok, send your complete e-mail address as password.

と表示されます。このメッセージが表示されてもログインは出来ませんが、
ログイン出来そうな表示なので、このメッセージを出さなくすることは可能
でしょうか。
------------------------------------

続きを読む "in.ftpd: デフォルト設定における anonymous login メッセージの抑止方法"

投稿者 AJ : 17:43トラックバック (0)

2005年7月 5日

TCP Wrapper を有効にする方法(Solaris9)

下記の手順で設定する。

■ 設定ファイル

 /etc/default/inetd : TCP Wrapper の機能を有効にする
 /etc/hosts.allow : 許可するサービスとホスト(ネットワーク)を記述する
 /etc/hosts.deny : 拒否するサービスとホスト(ネットワーク)を記述する

■ 設定例

 例) 192.168.1.10 のホストと 192.168.2 のネットワークからの rlogin だけを
   許可する

  1. /etc/default/inetd ファイルの "ENABLE_TCPWRAPPERS" を YES にして
   コメントアウトを外し、有効にする。

# vi /etc/default/inetd
:
:
ENABLE_TCPWRAPPERS=YES

  2. /etc/hosts.allow、/etc/hosts.deny ファイルを作成。

    # vi /etc/hosts.allow
    in.rlogind: 192.168.1.10, 192.168.2.
    ^^^^^^^^^^^ ========================
    サービス名 許可するホスト名 (IP address や network address でも結構です)

# vi /etc/hosts.deny
    ALL : ALL


  3. 設定を有効にする。

    # pkill -HUP inetd


  4. 動作確認を行う。

   許可していないサービス(例えば ftp)や、ホストからアクセスすると
   /var/adm/messages ファイルにログが記録される。

■ 確認コマンド

 /usr/sfw/sbin/tcpdchk : アクセス制御ファイルをチェックする
(オプション -av を使用すると総合的なレポートが
              表示される)
 /usr/sfw/sbin/tcpdmatch : アクセス制御ファイルをチェックして、指定ホスト
              が指定サービスを許可されているかどうかを確認で
              きる

投稿者 AJ : 15:32トラックバック (0)

2005年6月17日

プロセスcore の保存場所

質問:

プロセスで障害が発生し、コアダンプを生成した場合にプロセスの作業ディレク
トリに作成されます。コアダンプの保存先を別のディレクトリに変更する方法は
ありますか。また、生成を抑制することも可能でしょうか。
---------------------------------------------

続きを読む "プロセスcore の保存場所"

投稿者 AJ : 17:47トラックバック (0)

 
Powered by Movable Type 4.27-ja | RSS1.0 | RSS2.0 | ATOM