トップ 履歴 一覧 カテゴリ ソース 検索 ヘルプ RSS ログイン

OpenBSD/Server/47

INDEX

OpenBSDのサーバ関連の設定 (2010-06-25 4.7 ベースに)

起動時のサーバ起動設定

/etc/rc.conf, /etc/rc.conf.local にサービスごと起動の設定を書く。通常は rc.conf.local に記述する。※インストール時に ntpd を有効にするようにした場合、rc.conf.local に既に書かれている。

/etc/rc.conf では、sshd, inetd, pf(4.6から) が起動する設定になっている。また、sendmail はローカルのみの受信する設定で起動する。

## OpenNTPD = Network Time Protocol Daemon
ntpd_flags=             # for normal use ""

## OpenSSH = Secure Shell Daemon
#sshd_flags=""          # for normal use: ""
# It has already set it by ``/etc/rc.conf ''

## sendmail = Simple Mail Transfer Protocol Daemon
# For normal use: "-L sm-mta -bd -q30m", and note there is a cron job
#sendmail_flags="-L sm-mta -C/etc/mail/localhost.cf -bd -q30m"

## Apache = Hypertext Transfer Protocol Server
# use -u to disable chroot, see httpd(8)
# for normal use: "" (or "-DSSL" after reading ssl(8))
#httpd_flags=""

スーパーサーバ(inetd)の設定

/etc/inetd.conf にサービスごと起動の設定を書く

基本 inetd 経由でサービス起動ぢゃないのですべてコメントアウト。

pop3 でメールを受信する場合は、pop3 を有効にする。

ログローテート(newsyslog)の設定

/etc/newsyslog.conf に設定を書く

# logfile_name		owner:group     mode count size when  flags
/var/cron/log		root:wheel	600  3     10   *     Z
  • logfile_name は、対象のファイル名。
  • owner:group は、アーカイブしたファイルのオーナとグループ。省略するとログファイルと同じになる
  • mode は、新しいファイルの属性を指定。
  • count は、アーカイブのファイル数 (正確には、0 から count までの count+1 個)。
  • size は、このサイズ(KB単位)を超えたときにローテートする。* の場合はサイズでは行わない。
  • when は、この時間・時刻でローテートする。* の場合は時間では行わない。
  • flags は、オプション指定。Z はアーカイブを圧縮する。B はバイナリのログファイルとして扱い、新しいログファイルの先頭に newsyslog 自身のログを残さない。
  • pid_file は、PIDを含むファイルを絶対パスで指定する。指定があるとそのプロセスに対してSIGHUPを送る。

 httpd logs

通常はそのままでもよいが、webサーバのログは対象になっていないので必要なら追加する。(下記例は月1で10ヶ月分残す)

/var/www/logs/access_log	640  9     *    $M1D0   ZB   /var/www/logs/httpd.pid
/var/www/logs/error_log		640  9     *    $M1D0   ZB   /var/www/logs/httpd.pid
/var/www/logs/ssl_engine_log	640  9     *    $M1D0   ZB   /var/www/logs/httpd.pid
/var/www/logs/ssl_request_log	640  9     *    $M1D0   ZB   /var/www/logs/httpd.pid
/var/log/suexec_log		640  7     *    168     ZB

パケットフィルタ(pf)の設定

/etc/pf.conf に設定を書く

※4.6からデフォルトで起動するように rc.conf が変更されている。

 pfログ

パケットフィルタのログはバイナリ形式なので tcpdump を利用する。

# tcpdump -n -e -ttt -r /var/log/pflog

インタフェースを直接監視して、流れるパケットをリアルタイムにチェックする方法

# tcpdump -n -e -ttt -i pflog0

ネットワークタイムサーバ(ntpd)の設定

/etc/ntpd.conf に設定を書く

インストール時に ntpd を有効にして、サーバーを "default" とした場合、NTP Pool Time Servers が指定されている。そのままでも特に問題ない。

# $OpenBSD: ntpd.conf,v 1.11 2009/05/18 16:13:48 stevesk Exp $
# sample ntpd configuration file, see ntpd.conf(5)

# Addresses to listen on (ntpd does not listen by default)
#listen on *

# sync to a single server
#server ntp.example.org

# use a random selection of NTP Pool Time Servers
# see http://support.ntp.org/bin/view/Servers/NTPPoolServers
servers pool.ntp.org

# use a specific local timedelta sensor (radio clock, etc)
#sensor nmea0

# use all detected timedelta sensors
#sensor *

ただ、通常NTPではネットワーク的に近い場所と同期するようにすべきなので適に書き換える。

# $OpenBSD: ntpd.conf $
# sample ntpd configuration file, see ntpd.conf(5)
#listen on *
server 192.168.0.1

また、NTPサーバとしても利用する場合は、「listen on *」も追加する(コメントアウトをやめる)。ラウンドロビンなど複数のサーバがある場合で servers を指定すると、すべてのサーバと同期を行う。

ターミナルサーバ(telnetd)の設定 (☆)

telnetd は利用しないので(sshを利用)、設定のメモ書きだけ って、削除された??

ファイルサーバ(ftpd)の設定 (☆)

ftpdは利用しないので(sftpを利用)、設定のメモ書きだけ'

 起動の設定

ftpd をデーモンとして起動する場合は、/etc/rc.conf.local (/etc/rc.conf) で

ftpd_flags="-D"	# for non-inetd use: "-D"

ftpd を inetd から起動する場合は、/etc/inetd.conf で

ftp stream  tcp nowait  root    /usr/libexec/ftpd   ftpd -US

この時、anonymous FTP を無効にするには、ftpd に -n オプションを付けて。逆に anonymous FTP のみとする場合は、-A オプションを付けて起動します。

また、ftp のログを取るには、ftpd に -l オプションを指定する。-l の場合は、FTPのセッションを成功・失敗問わず記録する。-ll とした場合は、さらに操作(get, putなど)とその引数も記録する。

 Welcome メッセージ

/etc/ftpwelcome に FTP 接続時(認証前)の Welcome メッセージ設定する。ftpサーバへ接続した直後(認証前)に表示するWelcomeメッセージを記述します。このファイルは、初期状態では存在しない。

/etc/motd に FTP 接続時(認証後)の Welcome メッセージ設定する。ftpサーバへ接続した直後(認証後)に表示するWelcomeメッセージを記述します。

 chroot機能

/etc/ftpchroot に chroot されるユーザを列挙する。

#       $OpenBSD: ftpchroot,v 1.3 1996/07/18 12:12:47 deraadt Exp $
#
# list of users (one per line) given ftp access to a chrooted area.
# read by ftpd(8).
chrooted-user

ftp接続時にchroot機能を使用して、ホームディレクトリをルートディレクトリとするユーザを列挙する。先頭が "#" の行はコメントとなる(途中にあっても以降がコメントにはならないので注意)。

 接続の拒否リスト

/etc/ftpusers に FTP 接続の拒否リストを設定する。

#       $OpenBSD: ftpusers,v 1.40 2010/02/22 15:16:45 claudio Exp $
#
# list of users disallowed any ftp access.
# read by ftpd(8).
root
daemon
# (中略)
disallowed-user

 anonymous FTP

アカウントのないユーザ、不特定多数に配布するためなどに利用される匿名のFTPサービス。

アノニマスFTPを利用するには ftp というユーザアカウントを用意する。そして、ftp ユーザのホームディレクトリに chroot され、そのユーザ権限で読み書きが行われる。各ディレクトリに .message ファイルを作成すると、そのディレクトリに移動したときにファイルの内容がクライアントに表示される。また、chroot後の /etc/passwd (/etc/pwd.db)/etc/group が存在しないと、クライアント側でユーザとグループ名が表示されない。

1. ftp ユーザの作成。ホームは /var/ftp 、グループは users 、ログイン不可。

# useradd -b /var -s /sbin/nologin -g users -c "anonymous ftp" ftp
useradd: Warning: home directory `/var/ftp' doesn't exist, and -m was not specified

2. アノニマスFTPのディレクトリ作成

# mkdir -p /var/ftp
# mkdir -p /var/ftp/pub
# mkdir -p /var/ftp/etc
# chown -R root:wheel /var/ftp
# ls -l /var/ftp
total 8
drwxr-xr-x  2 root  wheel  512 Jul 30 18:48 etc
drwxr-xr-x  2 root  wheel  512 Jul 30 18:48 pub

3. passwd と group 作成

# cd /var/ftp/etc
# grep /etc/master.passwd -e "^root" -e "^ftp" > master.passwd
# grep /etc/group -e "^wheel" -e "^users" > group
# pwd_mkdb -d . master.passwd
# ls -l /var/ftp/etc
total 168
-rw-r--r--  1 root  wheel       27 Jul 30 19:12 group
-rw-------  1 root  wheel      174 Jul 30 19:12 master.passwd
-rw-r--r--  1 root  wheel    40960 Jul 30 19:12 pwd.db
-rw-r-----  1 root  _shadow  40960 Jul 30 19:12 spwd.db
# rm master.passwd spwd.db
# ls -l /var/ftp/etc
total 84
-rw-r--r--  1 root  wheel     27 Jul 30 19:12 group
-rw-r--r--  1 root  wheel  40960 Jul 30 19:12 pwd.db

セキュアシェルサーバ(sshd)の設定

/etc/ssh/sshd_config に設定する。詳しくは OpenBSD/sshd

webサーバ(httpd)の設定

/var/www/conf/httpd.conf に設定する。詳しくは OpenBSD/httpd

mailサーバ(sendmail)の設定

デフォルトではローカルのみ送受信出来るように設定・稼働されている。

(DynDNSでMXレコードが登録されるので)受信専用なSMTPサーバは立てたいな〜。

最終更新時間:2022年05月03日 13時20分28秒 指摘や意見などあればSandBoxのBBSへ。