ライン

ポイント:1ページにならないメモ

ライン

 はじめに

いつも入れているその他の設定

 FreeBSD 9.[1 2]-RELEASEでメモを残すことにしました。

 設定例

hosts.allow

 /etc/hosts.allowの設定を入れます。hosts.denyは特に設定しないで、hosts.allowのみに設定を入れます。
hosts.allowは、TCP Wrapper(TCPラッパー)により、サービスごとにIPアドレスごとに許可、拒否を入れることができます。

#
# hosts.allow access control file for "tcp wrapped" applications.
# $FreeBSD: release/9.1.0/etc/hosts.allow 161710 2006-08-29 09:20:48Z ru $
#
# NOTE: The hosts.deny file is deprecated.
#       Place both 'allow' and 'deny' rules in the hosts.allow file.
#       See hosts_options(5) for the format of this file.
#       hosts_access(5) no longer fully applies.

#        _____                                      _          _
#       | ____| __  __   __ _   _ __ ___    _ __   | |   ___  | |
#       |  _|   \ \/ /  / _` | | '_ ` _ \  | '_ \  | |  / _ \ | |
#       | |___   >  <  | (_| | | | | | | | | |_) | | | |  __/ |_|
#       |_____| /_/\_\  \__,_| |_| |_| |_| | .__/  |_|  \___| (_)
#                                          |_|
# !!! This is an example! You will need to modify it for your specific
# !!! requirements!


# Start by allowing everything (this prevents the rest of the file
# from working, so remove it when you need protection).
# The rules here work on a "First match wins" basis.
ALL : ALL : allow

# Wrapping sshd(8) is not normally a good idea, but if you
# need to do it, here's how
#sshd : .evil.cracker.example.com : deny

# Protect against simple DNS spoofing attacks by checking that the
# forward and reverse records for the remote host match. If a mismatch
# occurs, access is denied, and any positive ident response within
# 20 seconds is logged. No protection is afforded against DNS poisoning,
# IP spoofing or more complicated attacks. Hosts with no reverse DNS
# pass this rule.
ALL : PARANOID : RFC931 20 : deny

# Allow anything from localhost.  Note that an IP address (not a host
# name) *MUST* be specified for rpcbind(8).
ALL : localhost 127.0.0.1 : allow
# Comment out next line if you build libwrap without IPv6 support.
ALL : [::1] : allow
#ALL : my.machine.example.com 192.0.2.35 : allow

# To use IPv6 addresses you must enclose them in []'s
#ALL : [fe80::%fxp0]/10 : allow
#ALL : [fe80::]/10 : deny
#ALL : [2001:db8:2:1:2:3:4:3fe1] : deny
#ALL : [2001:db8:2:1::]/64 : allow

# Sendmail can help protect you against spammers and relay-rapers
sendmail : localhost : allow
#sendmail : .nice.guy.example.com : allow
#sendmail : .evil.cracker.example.com : deny
sendmail : ALL : allow

# Exim is an alternative to sendmail, available in the ports tree
exim : localhost : allow
#exim : .nice.guy.example.com : allow
#exim : .evil.cracker.example.com : deny
exim : ALL : allow

# Rpcbind is used for all RPC services; protect your NFS!
# (IP addresses rather than hostnames *MUST* be used here)
#rpcbind : 192.0.2.32/255.255.255.224 : allow
#rpcbind : 192.0.2.96/255.255.255.224 : allow
rpcbind : ALL : deny

# NIS master server. Only local nets should have access
# (Since this is an RPC service, rpcbind needs to be considered)
ypserv : localhost : allow
#ypserv : .unsafe.my.net.example.com : deny
#ypserv : .my.net.example.com : allow
ypserv : ALL : deny

# Provide a small amount of protection for ftpd
ftpd : localhost : allow
#ftpd : .nice.guy.example.com : allow
#ftpd : .evil.cracker.example.com : deny
ftpd : ALL : allow

# You need to be clever with finger; do _not_ backfinger!! You can easily
# start a "finger war".
fingerd : ALL \
        : spawn (echo Finger. | \
         /usr/bin/mail -s "tcpd\: %u@%h[%a] fingered me!" root) & \
        : deny

# The rest of the daemons are protected.
ALL : ALL \
        : severity auth.info \
        : twist /bin/echo "You are not welcome to use %d from %h."

上記がデフォルト値です。ALL : ALL : allowということで、すべての制限がかかっていない状態。
必要なものだけを開けるようにしたいので、閉じていきます。
(リモート作業で実施してしまうとつながらなくなりますので、注意して作業してください)

# telnet
telnetd: ALL : deny

# ssh
sshd :  192.168.1.12,\
        .osaka.ocn.ne.jp,\
        .example.co.jp : allow
sshd : .ac.jp,\
        .interq.or.jp : deny
sshd : ALL : deny

# sendmail
sendmail : localhost : allow
sendmail : ALL : allow
sendmail : .combzmail.jp,\
        59.40.74.104 : deny

# clamav-milter
clamav-milter : localhost : allow
clamav-milter : ALL : deny

# qpopper
qpopper: .cosmos.ne.jp,\
        .ocn.ne.jp : allow
qpopper : ALL : deny

# vsftpd
vsftpd : localhost,\
         192.168.1.0/255.255.255.0,\
        .cosmos.ne.jp,\
        .ocn.ne.jp : allow
vsftpd : ALL : deny

ALL : ALL : deny

サンプルとしてはこんな感じに設定。
これを書き込んだ状態で有効なので、まずは自分で再接続が可能になっているかを別セッションで確認して完了。

# tail /var/log/auth.log
Jan  3 11:30:57 HOST sshd[x]: refused connect from 192.168.0.8 (192.168.0.8)

ちゃんと拒否されました。ALL : ALL : denyは最後の方に記述することが必要です。
allow→denyという記述が必要であることを忘れないようにします。

 今時まだsendmail

/etc/mail

 Postfixでもqmailでもいいのですが、未だに残るsendmailを設定します。
accessというファイルを編集していきます。

fkimura.com                     RELAY
jane@example.ne.jp           DISCARD
mike@example.com           550 User unknown

バーチャルドメインでメールを受信するものは、RELAY行を並べておきます。
見ないで消してしまう設定やユーザがすでにいないようなステータスを返すこともできます。
うるさいDMなどに対策してしまいたいなどに適用できます。

次に、aliasesを編集します。mailmanなどの設定をする場合には、複数のaliasesを作成することもあるかも知れません。

root: fkimura55.66.77@gmail.com

この後は、helpfileというファイルを編集します。
いろいろいらない行をコメント化していますが、基本的には

#smtp   This is sendmail version $v

程度で良いです。バージョンをわざわざSPAMや悪意のあるサイトに知らせたくないので、この手は削除しておきました…ということです。
local-host-namesというファイルを作成します。中身には、扱うドメイン名を列挙しておきます。
mailer.confは、今回修正はありません。
mailertableというファイルを編集します。このファイルもlocal-host-namesに同様に扱うドメイン名を列挙します。

example.net          local
.example.net         local

のような記述方法をしていきます。
relay-domainsというファイルを作成します。このファイルもlocal-host-namesに同様に扱うドメイン名を列挙します。
virtusertable を記述します。簡単なバーチャルドメインのメールアドレスの作成は、このファイルで実現可能です。

thanks@example.or.jp             thanks5656.2828@gmail.com
ftpmail@example.or.jp            error:  550 User unknown
postmaster@example.ac.jp      acexample00
user01@example.ac.jp            acexampleuser01
user02@example.ac.jp            acexampleuser02
@example.ac.jp                     error:  550 User unknown
supports@example.ed.jp         error:  550 User unknown

例としては、上記のような設定が可能です。
そのまま、他のメールボックスで受信することを前提とする場合には、転送先を記述。
@ドメイン名のユーザをローカルのアカウントのメールに転送したい場合には、ローカルアカウントを記述。
記述していないドメインの扱いは、@ドメイン名の記述を右側に記述します。

ここまで記述したら、一度make allしておきます。

# make all
cp freebsd.mc HOST.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 HOST.mc > HOST.cf
cp freebsd.submit.mc HOST.submit.mc
/usr/bin/m4 -D_CF_DIR_=/usr/share/sendmail/cf/   /usr/share/sendmail/cf/m4/cf.m4 HOST.submit.mc > HOST.submit.cf
/usr/sbin/makemap hash mailertable.db < mailertable
chmod 0640 mailertable.db
/usr/sbin/makemap hash virtusertable.db < virtusertable
chmod 0640 virtusertable.db
/usr/sbin/makemap hash access.db < access
chmod 0640 access.db
/usr/sbin/sendmail -bi -OAliasFile=/etc/mail/aliases
/etc/mail/aliases: 36 aliases, longest 31 bytes, 468 bytes total
chmod 0640 /etc/mail/aliases.db

こんな感じで、HOST名のついたMCファイルが作成されます。
最後は、これを設定して完了です。

 Movable Type

/usr/ports/www/MT

 過去のページにはあったけど、今は作っていなかったみたいなのでこのページ内にメモ。
上記portsは現在5.2.9のバージョンになっている。

ある版以上は、DBが必要とは聞いていたけど、ほぼMySQLで使えという仕様っぽいな。昔のブログを見ると

.if defined(WITH_MYSQL)
DB_DIR=		/var/db/mysql/blog
USE_MYSQL=	yes
.elif defined(WITH_POSTGRES)
DB_DIR=		${PREFIX}/pgsql/data/blog	# Or somewhere defined in $PGDATA
RUN_DEPENDS=	postgres:${PORTSDIR}/databases/postgresql7
.else
DB_DIR=		${PREFIX}/${CGIDIR}/db
WITH_DEFAULTDB=	yes
.endif

とかだし。仕方が無いだろうな。

Apache連動もオプションなんだね。

さて、今回のメモは、バージョンはそのままにして使うための確認。以前ものだと

HTML::Template is from www/p5-HTML-Template
Image::Size is from graphics/p5-Image-Size
File::Spec is from devel/p5-File-Spec(p5-File-Spec-Native)
CGI::Cookie is from www/p5-CGI.pm 
LWP::UserAgent is from   www/p5-libwww
SOAP::Lite is from net/p5-SOAP-Lite
File::Temp is form devel/p5-File-Temp

ImageMagick support is from graphics/ImageMagick

が必要とか書かれているみたい。
ApacheはCGIを使うので、

LoadModule cgid_module libexec/apache24/mod_cgid.so

にしておく必要がある。日本語化しているので、

#  pkg install ja-jcode.pl ja-p5-Jcode

なども入れた。そのままの移行で別サーバにも引っ越しが簡単にできた。やっぱり新しいものよりも便利。

ImageMagickがうまく入らないので、

graphics/netpbm

を代わりにいれた。これで十分。

 FreeBSDのリッスンポート

 小さなメモページのアドレスを失念したので、ここにメモ。
今空いているポートは何か?を出すために。

# netstat -a | egrep 'Proto|LISTEN'

 と入力すればいいそうです。

 VMware ESXiの中でISOイメージを取得

 vSphere Clientよりの操作ではなく、sshでログインしてISOイメージをwgetで準備する方法。
sshでログインするための許可やアカウントについては、他のページで書いているので割愛。

# cd /vmfs/volumes/DISK1
# mkdir ISO-IMAGES
# cd ISO-IMAGES
# wget http://ftp6.jp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-disc1.iso

 のようにすれば取得できます。ftpポートでの取得がうまくいかなかったので、httpポートでの取得にしました。

こんな感じで利用できるようになります。


【改訂履歴】作成:2013/ 1/ 3 更新:2015/1/21

【リンク】

List open ports and listening services

Copyright © 1996,1997-2006,2007- by F.Kimura,