デビアンな生活 2009年06月

デビアンな生活

日本語コンソールベースのDebianTIPS集として始めたが、結局LXDEになってしまった。

ftpサーバ

軽く高速と言われるvsftpdで設定
# aptitude
> vsftpd
# vi /etc/vsftpd.conf
> anonymous_enable=NO
> local_enable=YES
> write_enable =YES
設定ファイルを変更して終了。
もちろん、iptablesを変更して、ftpポートを内部LANに対して開放しておく。
ネットワークカメラでは、何故かアクディブモードにしないと書き込みができなかった。
pasv_promiscuous=YESの設定が必要なのかもしれないが、とりあえずこのままで。
スポンサーサイト

バックアップ

バックアップには、引き続き差分バックアップができるdarを使用して、スクリプトを作成。
# aptitude
> dar

/etc/cron.dailyにバックアップスクリプトを入れておけば完璧です。当然、/optは別のハードディスクドライブに割り当ています。
# cat > /etc/cron.daily/backup-daily
#!/bin/sh
# backup script
do_dar() {
SAVEPATH=$1 ; TARGET=$2
if test `date +\%d` = 01 ; then
if test -a ${SAVEPATHi}.1.dar ; then
cp -a ${SAVEPATH}.1.dar ${SAVEPATH}`date +\%m`.1.dar
fi
fi
case `date +\%w` in
0)
dar -j -R / -c "$SAVEPATH"0 $TARGET
mv "$SAVEPATH"0.1.dar "$SAVEPATH".1.dar
;;
*)
dar -j -R / -c "$SAVEPATH"`date +\%w` -A $SAVEPATH $TARGET
;;
esac
}
# main
do_dar /opt/etc "-g etc -g root"
do_dar /opt/home "-g home"
do_dar /opt/var "-g var"
exit 0
^d

darの基本的使い方は以下の通り
# dar -c /opt/test -z -R / -g var -P var/run
これで、/opt/test.1.darにgzipで圧縮されたアーカイブができます。
-cがアーカイブ名、-Rが基準ディレクトリ、-gが対象ディレクトリ、-Pが除外ディレクトリ、-zがgzip圧縮です。

# dar -c /opt/new -y -R / -g var -A /opt/test
これで、testからの差分アーカイブができます。
-jがbzip2圧縮、-Aが参照アーカイブです。
bzip2はgzipよりも圧縮率に優れており、Athlon1Gでは圧縮時間も短く、便利です。darのフルバックアップは、tarとサイズはほぼ同じですが、実行時間はやや短縮しています。また、差分バックアップすると、ほんとに高速で快適です。

# dar -l /opt/new -as
これで、実際に保存されている内容が確認できます。

# dar -x /opt/new -g var/log
これで、logディレクトリが展開できます。

パケットフィルタリング

iptablesのスクリプトを作成して、etc/network/if-up.dにおいた。
run-partsで実行しているので、スクリプト名は英数字とハイフンとアンダーバーのみであり、ドットは使えない。
forwardのためには、
# vi /etc/sysctl.conf
> net.ipv4.conf.default.forwarding=1をコメントアウト
# reboot
sysctl -pより、rebootが簡単

iptablesの設定は難しいので、下記のログを出力して、設定を調節している。
iptables -A INPUT -j LOG --log-tcp-options --log-ip-options --log-prefix "INPUT: "
iptables -A FORWARD -j LOG --log-tcp-options --log-ip-options --log-prefix "FORWARD: "
iptables -A OUTPUT -j LOG --log-tcp-options --log-ip-options --log-prefix "OUTPUT: "

# tail -f /var/log/messages
これでログをモニタしておけば便利。

samba

sambaでネットワークドライブを運用し、家庭内LANでデータ共有をしています。
# aptitude
> samba
# vi /etc/samba/smb.conf
> [global]で文字コードをセット
> dos charset = CP932
> unix charset = UTF8
> display charset = UTF8
> [netdrive]に共有設定
[netspace]
comment = Windows Storage
path = /home/netspace
browseable = yes
writable = yes
create mask = 0660
directory mask = 0770
force group = windows
# smbpasswd -a user
> ユーザ登録をして、パスワードを設定
/etc/samba/smb.confでunix password sync = yesを設定していても、rootで、ユーザのパスワードを変更した場合は、unix passwdは変更されない。

Windows XP homeでは、接続ごとにパスワードを入力しないといけないが、net useコマンドで接続すると、2回目からはパスワード入力をスキップできるので、バッチを作成しておくと便利。

swatを導入すれば、Webブラウザで設定ができるが、あまり必要はなさそう。
使う場合は、iptablesで901ポートを開いておく必要がある。

apache2とWebDAV

いまは、WebDAVが外部から利用するときに手放せない。
# aptitude
> apache2, libapache2-mod-encoding
# cat > /etc/apache2/mods-available/encoding.conf

EncodingEngine on
NormalizeUsername on
SetServerEncoding UTF-8
DefaultClientEncoding JA-AUTO-SJIS-MS SJIS

# cd /etc/apache2/sites-available
# cp /usr/share/doc/apache2.2-commmon/examples/apache2/extra/httpd-dav.conf dav-ssl
# vi dav-ssl.conf
default-sslを参考に、ssl接続に変更する。
> DavLockDB "/var/lock/apache2/DavLock"に変更
> Directory "/var/www"を必要な場所に変更
> 認証をDigestからBasicに変更
> 認証fileを/etc/apache2/user.passwd
# htpasswd -c "/etc/apache2/user.passwd ユーザ名
パスワードファイルとユーザを作成。既にパスワードファイルがあるなら、-cはつけない。
> passwdord
# cd /etc/pache2/sites-available
# cat >> vhost1

ServerName test.domain.net
ServerAlias exam.domain.net
DocumentRoot /var/www/vhost1/

Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined

defaultを参考にネームベースのバーチャルホストを設定。
defaultは使わないほうが、設定が簡単。コピーして増やすだけで、ホストがいくらでも増やせる。
ssl接続では、ネームベースのバーチャルホストは使用できないので注意。
# a2enmod encoding
# a2enmod dav
# a2enmod dav_fs
dav_lockは不要
# a2enmod ssl
# a2dissite default
# a2ensite vhost1
# s2ensite dav-ssl.conf
# /etc/init.d/apache2 reload

Windows Xp IE6のファイル-開くよりWebフォルダを選択し、https://ドメイン名でWebDAVが開く。
また、ServerNameを変更してvhostを設定すれば、ホストを増やせる。

dnsmasq

サーバには、DHCPサーバ機能が必須であるが、DNSキャッシュの機能を持ったdnsmasqが便利。
# apptitude
> dnsmasq
設定は、/etc/dnsmasq.confで行うのであるが、最後のincludeをコメントアウトして、/etc/dnsmasq.more.confに、設定を記載するほうが、環境の移行時に便利。
また、イントラネットのために、/etc/hostsにローカルドメインのipを記載しておけば、内部からもドメイン名でアクセスできるので便利。変更した場合は、dnsmasqの再スタートが必要。

ダイナミックDNS

自宅サーバーのためには、Dynamic DNSを使う必要がある。
主な無料サービス用のクライアントとして、Debianのパッケージには、以下のものがある。

www.no-ip.com
# aptitude
> noip2
インストール時に設定を聞いてくる。
iptablesで、ポート8245を開けておく必要がある。
#noip2 -S
設定の確認

www.dyndns.com
# apptitude
> ddclient
インストール時に設定を聞いてくる。
ホームページで、/etc/ddclient.confの推奨設定が表示されるが、debianではdaemonの設定が無視されているので、/etc/default/ddclientのdaemon_intervalを変更して、更新間隔をデフォルトの300秒から延長しておく
ポート80が使用されるので、iptablesの変更は不要。

www.ddns.nu
# aptitude
> ddns3-client
# vi /etc/default/ddns3-client
HANDLEにIP handleme名をセットして、DDNSを一括更新する。
更新は、rc.dとcron.dailyで行われる。
iptablesで、ポート5000を開けておく必要がある。

www.dhis.org
# aptitude
> dhis-client
# vi /etc/dhid.conf
ホームページでの登録時に表示される設定を、記載する。
iptablesで、udp ポート58800を開けておく必要がある。

www.ieserver.net
提供されているperlスクリプトを改変して、/etc/cron.hourlyに入れる。
スクリプト名に"."を含むと実行されないので注意。
iptablesで、ポート3495を開けておく必要がある。

DNSの確認は、pppoeで接続するか、proxyを利用して行う。

FC2Ad