GNU/Linux >> Linux の 問題 >  >> Debian

完璧なセットアップ-DebianWoody(3.0)

これは「コピー&ペースト」です ハウツー! このチュートリアルに従う最も簡単な方法は、コマンドラインクライアント/ SSHクライアント(PuTTY for Windowsなど)を使用し、コマンドをコピーして貼り付けることです(IPアドレス、ホスト名、パスワードなどの独自の情報を提供する必要がある場合を除く)。 )。これはタイプミスを回避するのに役立ちます。

PerfectSetup-Debian Woody(3.0)

バージョン1.6
作成者:Falko Timme

これは、 Debianをセットアップするために実行する手順の詳細な説明です。 ベースサーバー(DebianWoodyエイリアスDebian3.0)は、ISPおよびホスティング業者(Webサーバー(SSL対応)、メールサーバー(SMTP-AUTHおよびTLSを使用)、DNSサーバー、FTPサーバー、MySQLサーバー、POP3 / IMAP)に必要なすべてのサービスを提供します。クォータ、ファイアウォールなど)。

次のソフトウェアを使用します:

  • Webサーバー:Apache1.3.x
  • Mail Server:Postfix(sendmailよりも構成が簡単、sendmailよりもセキュリティホールの履歴が短い)
  • DNSサーバー:BIND9
  • FTPサーバー:proftpd(vsftpdも使用できます)
  • POP3 / IMAP:この例では、従来のUNIXメールボックス形式(qpopper / uw-imapdを使用)またはMaildir形式(この場合はCourier-POP3 / Courier-IMAPを使用します)。
  • Webサイト統計用のWebalizer

最終的には、確実に動作し、無料のwebhostingコントロールパネルISPConfigの準備ができているシステムが必要です(つまり、ISPConfigはその上で実行されます。ボックス)。

最初に、このようなシステムを設定する方法はこれだけではないことをお伝えしたいと思います。この目標を達成する方法はたくさんありますが、これが私のやり方です。これがあなたのために働くという保証はありません!

要件

このようなシステムをインストールするには、次のものが必要です。

  • theDebian Woody(Debian 3.0)リリースのCD 1(http://www.debian.orgから入手可能)>
  • Mandrake Linuxの最新リリースのCD1(この記事の執筆時点では9.2)(http://www.mandrakeから入手可能) -linux.com)(ハードドライブにパーティションを作成する必要がない場合は必要ありません)
  • このドキュメントでネットワークのインストールについて説明するので、インターネット接続

1TheBaseシステム

未使用のハードドライブがある場合は、最初にその上にパーティションを作成する必要があります(ハードドライブに既にパーティションがある場合は、この手順をスキップできます) )。これを行うにはDebianインストーラーを使用できますが、使用するのは難しいと思います(特に初心者の場合)。ここで少しごまかします。MandrakeCDをCD-ROMに挿入し、Mandrakeインストーラーを実行します( Linuxの世界で最高だと思うMandrakeのパーティショニングツールを使用せずにパーティションが作成されました。

2つのパーティションを作成します: / dev / hda1 / boot マウントポイントとして)および / dev / hda6 / さらに、スワップパーティションを作成します(通常は / dev / hda5 )。 / dev / hda1 には、50 MB〜100MBが適切なサイズだと思います。;スワップパーティションには500MBで十分です。残りは / dev / hda6用です (ユーザーのWebサイトなどが配置される場所)

パーティションが作成されたら、Mandrakeのインストールを停止し、Debian CDを挿入して、システムを再起動します。

起動プロンプトで、 bf24と入力します。 2.4 LinuxカーネルでDebianをインストールするには:

次に、言語を選択します:

その後、Debianインストーラのメインメニューに入ります。キーボードを構成します:

スワップパーティションを初期化してアクティブ化します:

質問された場合 Scanfor Bad Blocks? いいえを選択します

次に、Linuxパーティションを初期化します:

必要なファイルシステムを選択します。 ext3を使用します ここ。

/ dev / hda1を選択します 初期化するパーティションとして:

質問された場合 Scanfor Bad Blocks? いいえと入力します

/ bootを選択します / dev / hda1のマウントポイントとして

次に、2番目のLinuxパーティションを初期化する必要があります:

お好みのファイルシステムを選択します(ここでも、 ext3 ここ)。次に、 / dev / hda6を選択します。 初期化するパーティションとして:

質問された場合 Scanfor Bad Blocks? いいえと入力します

/を選択します / dev / hda6のマウントポイントとして

パーティションのフォーマットと初期化が完了したら、 InstallKernelおよびDriverModules<を選択します。 / font> メインメニューから。これ以上の説明は必要ないと思います。

DeviceDriverモジュールの構成:

ネットワークカード用のドライバーを必ずインストールしてください(正しいドライバーがわからない場合は、複数のドライバーをインストールしても安全です):

カーネルにiptablesサポート(ファイアウォール!)を含めるようにしてください:

ドライバーモジュールメニューを終了したら、ネットワークを構成する必要があります:

ホストホストについては、後でそのサーバーの仮想サイトに使用されないサブドメインを強くお勧めします。 server1のようなもの server2 、... 複数のサーバーを実行している場合にサーバーを区別できるため、非常に便利です。したがって、ドメインが example.comの場合 (実際のドメインをお勧めします!) server1.example.comでサーバーにアクセスできます。 example.comのDNSレコードを更新することを忘れないでください !)。

プロンプトが表示されたら自動ネットワーク構成 いいえを選択します

次に、システムのメインIPアドレス、そのネットワークマスク、ゲートウェイアドレス、およびシステムのドメインを入力します(ここでは example.com

システムが使用するDNSサーバーを指定します(例: 193.174.32.18 および 145.253.2.11

ベースシステムをインストールします:

システムを起動可能にする:

MBRでInstallLILOを選択

次に、システムを再起動します。必ずCD-ROMからDebianCDを取り出してください:

再起動後、タイムゾーンを構成します:

md5passwordsを有効にしないでください:

シャドウパスワードを有効にする:

次に、 rootpasswordを設定します。 、追加のユーザーを作成します admin 彼のパスワードを入力します。

pcmciaパッケージが必要ない場合は、それらを削除してください。

システムのインストールにPPP接続を使用しないでください(サーバーにはインターネットへの永続的な接続が必要です):

ネットワークインストールを実行したい(そのため、7つのDebian CD-ROMのうちディスク1のみが必要です)。したがって、 http AptConfigurationでDebianアーカイブにアクセスする方法として

お近くのミラーを選択してください:

通常、プロキシは使用しないため、フィールドは空のままにします:

質問された場合 security.debian.orgからのセキュリティ更新を使用しますか? 回答はい

重要: 2005年6月以降、Debian Sarge(3.1)はDebianの安定リリースです。 Sargeの代わりにDebianWoody(3.0)をここにインストールしたいので、ファイルを変更する必要があります /etc/apt/sources.list 先に進む前に! Woodyインストーラーは、Woodyがstablereleaseであるとまだ考えています。 Ctrl + Alt + F2を押します キーボードで。これでシェルになりました。 rootとしてログインします 。次に、 /etc/apt/sources.listを編集します。 テキストエディタを使用する(例: vi 安定を置き換えます with woody 表示される場所。その後、実行

apt-getupdate

そして、 Ctrl + Alt + F1を押します。 インストール画面に戻ります。

次に、 タスクセルを実行します。

最初は最小限のシステムにしたいので、 のみを選択します。メールサーバー およびCおよびC++ (必要に応じてソースをコンパイルできます)。他のソフトウェアは後でインストールされます。

実行しないでください dselect (考えさえしないでください、あなたは失われます!):

次の手順では、デフォルト値を受け入れることができます。

次に、ロケールを構成します。少なくとも en_USISO-8859-1を選択してください

デフォルトのロケールとして、 en_USを選択します。

次に、yoursshサーバーをセットアップします:

インストールが開始されます。最後に、以前にダウンロードした.debファイルを削除するかどうかを尋ねられます。 Yと答えることができます ここ。

インストーラーが eximを構成する場合 5と入力します (構成なし) 後置を使用するため メールサーバーとして。

これでベースシステムの準備が整いました:

2システムの残りの部分のインストールと構成

追加のIPアドレスを構成する

複数のIPアドレスがある場合は、 / etc / network / interfaces 。次のようになります:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

IPアドレスを追加する場合 192.168.0.101 > インターフェイス eth0 次のようにファイルを変更する必要があります:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface
auto lo
iface lo inet loopback

# The first network card - this entry was created during the Debian installation
# (network, broadcast and gateway are optional)
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

auto eth0:0
iface eth0:0 inet static
address 192.168.0.101
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

次に、ネットワークを再起動します:

/etc/init.d/networkingrestart


ホスト名の設定

echo server1.example.com> / etc / hostname
/ bin / hostname -F / etc / hostname


ソフトウェアのインストール/削除

追加

deb http://backports.debian.skynet.be woody cyrus-sasl2

から /etc/apt/sources.list 実行します

apt-getupdate
apt-get install wgetbzip2 rdate fetchmail libdb3 ++-dev unzip zip ncftp xlispstat libarchive-zip-perlzlib1g-dev libpopt -dev nmap openssl (1行!)
apt-get remove lpr nfs-commonportmap pidentd pcmcia-cs pppoe pppoeconf ppp pppconfig

update-rc.d -f exim remove
update-inetd --removedaytime
update-inetd --remove telnet
update-inetd- -時間の削除
update-inetd--remove finger
update-inetd --remove talk
update-inetd --remove ntalk
update-inetd --remove ftp
update-inetd --remove destroy
<-はい[y]

/etc/init.d/inetdリロード


割り当て

apt-get installquotaquotatool

編集 / etc / fstab このように表示します( 、usrquota、grpquotaを追加しました / dev / hda6を分割します ):

# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/hda1 /boot ext3 errors=remount-ro 0 1
/dev/hda5 none swap sw 0 0
proc /proc proc defaults 0 0
/dev/fd0 /floppy auto user,noauto 0 0
/dev/cdrom /cdrom iso9660 ro,user,noauto 0 0
/dev/hda6 / ext3 defaults,usrquota,grpquota 0 2

次に実行:

/quota.user/quota.groupをタッチ
chmod 600/quota.*
mount -o remount /
quotecheck -avugm

quote-avug


DNSサーバー

apt-getinstall bind9

セキュリティ上の理由から、BINDをchrootして実行したいので、次の手順を実行する必要があります。

/etc/init.d/bind9 stop

スタートアップスクリプトを編集 /etc/init.d/bind9 デーモンが非特権ユーザーとして実行されるように、' 誰も '、chrooted to / var / lib / named 。行を変更します: OPTS ="" OPTS ="-u nobody-t / var / lib / named"と表示されます。

#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin

# for a chrooted server: "-u nobody -t /var/lib/named"
OPTS="-u nobody -t /var/lib/named"

test -x /usr/sbin/named || exit 0

case "$1" in
start)
echo -n "Starting domain name service: named"
start-stop-daemon --start --quiet \
--pidfile /var/run/named.pid --exec /usr/sbin/named -- $OPTS
echo "."
;;

stop)
echo -n "Stopping domain name service: named"
/usr/sbin/rndc stop
echo "."
;;

reload)
/usr/sbin/rndc reload
;;

restart|force-reload)
$0 stop
sleep 2
$0 start
;;

*)
echo "Usage: /etc/init.d/bind {start|stop|reload|restart|force-reload}" >&2
exit 1
;;
esac

exit 0

/ var / libの下に必要なディレクトリを作成します

mkdir -p / var / lib / named / etc
mkdir / var / lib / named / dev
mkdir -p / var / lib / named / var / cache / bind
mkdir / var / lib / named / var / run

次に、configdirectoryをから移動します / etc から / var / lib / named / etc

mv / etc / bind / var / lib / named / etc

古い場所から新しい構成ディレクトリへのシンボリックリンクを作成します(将来、bindisがアップグレードされる際の問題を回避するため):

ln -s / var / lib / named / etc / bind / etc / bind

nullおよびrandomdevicesを作成し、ディレクトリの権限を修正します:

mknod / var / lib / named / dev / nullc 1 3
mknod / var / lib / named / dev / random c 1 8
chmod 666 / var / lib / named / dev / null / var / lib / named / dev / random
chown -R nobody:nogroup / var / lib / named / var / *
chown -R nobody:nogroup / var / lib / named / etc / bind

起動スクリプトを変更する必要があります /etc/init.d/ sysklogd sysklogd 重要なメッセージをシステムログに記録できるようにします。次の行を変更します: SYSLOGD ="" SYSLOGD ="-a / var / lib / named / dev / log"

#! /bin/sh
# /etc/init.d/sysklogd: start the system log daemon.

PATH=/bin:/usr/bin:/sbin:/usr/sbin

pidfile=/var/run/syslogd.pid
binpath=/sbin/syslogd

test -x $binpath || exit 0

# Options for start/restart the daemons
# For remote UDP logging use SYSLOGD="-r"
#
SYSLOGD="-a /var/lib/named/dev/log"

create_xconsole()
{
if [ ! -e /dev/xconsole ]; then
mknod -m 640 /dev/xconsole p
else
chmod 0640 /dev/xconsole
fi
chown root.adm /dev/xconsole
}

running()
{
# No pidfile, probably no daemon present
#
if [ ! -f $pidfile ]
then
return 1
fi

pid=`cat $pidfile`

# No pid, probably no daemon present
#
if [ -z "$pid" ]
then
return 1
fi

cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -1`

# No syslogd?
#
if [ "$cmd" != "$binpath" ]
then
return 1
fi

return 0
}

case "$1" in
start)
echo -n "Starting system log daemon: syslogd"
create_xconsole
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo "."
;;
stop)
echo -n "Stopping system log daemon: syslogd"
start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
echo "."
;;
reload|force-reload)
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
;;
restart)
echo -n "Stopping system log daemon: syslogd"
start-stop-daemon --stop --quiet --exec $binpath --pidfile $pidfile
echo "."
sleep 1
echo -n "Starting system log daemon: syslogd"
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
echo "."
;;
reload-or-restart)
if running
then
start-stop-daemon --stop --quiet --signal 1 --exec $binpath --pidfile $pidfile
else
start-stop-daemon --start --quiet --exec $binpath -- $SYSLOGD
fi
;;
*)
echo "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart}"
exit 1
esac

exit 0

ロギングデーモンを再起動します:

/etc/init.d/sysklogd再起動

BINDを起動し、 / var / log /syslog<を確認します。 / font> エラーの場合:

/etc/init.d/bind9 start

MySQL

apt-getinstall mysql-server mysql-client libmysqlclient10-dev
<-いいえ
<-はい

mysqladmin -u root passwordyourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

/etc/mysql/my.cnf 次の行をコメントアウトします:

スキップネットワーキング

これで、次のようになります。

# You can copy this to one of:
# /etc/mysql/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /var/lib/mysql) or
# ~/.my.cnf to set user-specific options.
#
# One can use all long options that the program supports.
# Run the program with --help to get a list of available options

# This will be passed to all mysql clients
[client]
#password = my_password
port = 3306
socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

[safe_mysqld]
err-log = /var/log/mysql/mysql.err

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
#
# You can also put it into /var/log/mysql/mysql.log but I leave it in /var/log
# for backward compatibility. Both location gets rotated by the cronjob.
#log = /var/log/mysql/mysql.log
log = /var/log/mysql.log
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-locking
#
# The skip-networkin option will no longer be set via debconf menu.
# You have to manually change it if you want networking i.e. the server
# listening on port 3306. The default is "disable" - for security reasons.
#skip-networking
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = thread_stack=128K
#
# Here you can see queries with especially long duration
#log-slow-queries = /var/log/mysql/mysql-slow.log
#
# The following can be used as easy to replay backup logs or for replication
#server-id = 1
#log-bin = /var/log/mysql/mysql-bin.log
#binlog-do-db = include_database_name
#binlog-ignore-db = include_database_name
#
# Read the manual if you want to enable InnoDB!
skip-innodb

[mysqldump]
quick
set-variable = max_allowed_packet=1M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
set-variable = key_buffer=16M

MySQLを再起動します:

/etc/init.d/mysqlrestart

ポート3306でMySQLにアクセスできるようにします( で確認できます) netstat-tap

Postfix / Qpopper

addgroup sasl
apt-get install postfix-tlsqpopper sasl-bin libsasl-modules-plain libsasl2 libsasl-gssapi-mit libsasl -digestmd5-dessasl2-bin libsasl2-modules (1line!)

<-Kerberos:デフォルト値を受け入れます(Kerberosを使用したくないので、あまり気にしません)
<-インターネットサイト
<-ドメイン名
<-いいえ
<-デフォルト値を受け入れる
<-Kerberos:デフォルト値を受け入れる
<-なし

cd /etc/init.d/
wget http://hanselan.de/postfix/pwcheck

アクセスできない場合 http://hanselan.de/postfix / pwcheck これが pwcheckです。 スクリプト:

#! /bin/sh
#
# pwcheck Startet pwcheck für SMTP-Auth mit Postfix
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/pwcheck
NAME=pwcheck
DESC="pwcheck daemon"

test -x $DAEMON || exit 0

set -e

case "$1" in
start)
echo -n "Starting $DESC: $NAME"
ln -s /var/spool/postfix/var/run/pwcheck /var/run/pwcheck
$DAEMON
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME "
rm /var/run/pwcheck
/usr/bin/killall -KILL $NAME
echo "."
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop}" >&2
exit 1
;;
esac

exit 0


chmod 755 /etc/init.d/ pwcheck
update-rc.d pwcheck defaults
mkdir -p /var/spool/postfix/var/run/pwcheck
chown postfix.root / var / spool / postfix / var / run / pwcheck /
chmod 700 / var / spool / postfix / var / run / pwcheck /
ln -s / var / spool / postfix / var / run / pwcheck / var / run / pwcheck

postconf -e'smtpd_sasl_local_domain =$ myhostname'
postconf -e'smtpd_sasl_auth_enable =yes'
postconf -e ' smtpd_sasl_security_options =noanonymous'
postconf -e 'broken_sasl_auth_clients =yes'
postconf -e 'smtpd_recipient_restrictions =permit_sasl_authenticated,permit_mynetworks,check_relay_domains'
postconf -e 'inet_interfaces =all'
echo ' pwcheck_method:pwcheck'>> /etc/postfix/sasl/smtpd.conf

mkdir / etc / postfix / ssl
cd / etc / postfix / ssl /
openssl genrsa- des3 -rand / etc / hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyoutcakey.pem -out cacert.pem -days3650

postconf -e'smtpd_tls_auth_only =no'
postconf -e'smtp_use_tls =yes'
postconf- e'smtpd_use_tls =yes'
postconf -e'smtp_tls_note_starttls_offer =yes'
postconf -e'smtpd_tls_key_file =/etc/postfix/ssl/smtpd.key'
postconf -e'smtpd_tls_cert_file =/ etc / postfix / ssl / smtpd.crt'
postconf -e' smtpd_tls_CAfile =/etc/postfix/ssl/cacert.pem'
postconf -e' smtpd_tls_loglevel =1'
postconf -e 'smtpd_tls_received_header =yes'
postconf -e'smtpd_tls_session_cache_timeout =3600s'
postconf -e'tls_random_source =dev:/ dev / urandom'

ファイル /etc/postfix/main.cf > これで次のようになります:

# see /usr/share/postfix/main.cf.dist for a commented, fuller
# version of this file.

# Do not change these directory settings - they are critical to Postfix
# operation.
command_directory = /usr/sbin
daemon_directory = /usr/lib/postfix
program_directory = /usr/lib/postfix

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
setgid_group = postdrop
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no
myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, localhost.example.com, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,check_relay_domains
inet_interfaces = all
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

/etc/init.d/pwcheckstart
/etc/init.d/postfix restart

To see if SMTP-AUTHand TLS work properly now run the following command:

telnetlocalhost 25

After you haveestablished the connection to your postfix mail server type

ehlolocalhost

If you see thelines

250-STARTTLS

and

250-AUTH

everything is fine.

Type

quit

to return to thesystem's shell.

Courier-IMAP/Courier-POP3

If you want touse a POP3/IMAP daemon that has Maildir support (if you do not want to use thetraditional Unix mailbox format) you can install Courier-IMAP and Courier-POP3.Otherwise you can proceed with the Apache configuration.

apt-get install courier-imapcourier-pop

qpopper and UW-IMAPwill then be replaced.

Then configurePostfix to deliver emails to a user's Maildir*:

postconf -e 'home_mailbox=Maildir/'
postconf -e 'mailbox_command ='

/etc/init.d/postfix restart

*Please note:Youdo not have to do this if you intend to use ISPConfigon your system as ISPConfig does the necessary configuration using procmailrecipes. But please go sure to enable Maildir under Management -> Settings ->EMail in the ISPConfig web interface.

Apache

Add

deb http://packages.dotdeb.org ./

to /etc/apt/sources.list and run

apt-getupdate

apt-getinstall apache apache-doc libapache-mod-ssl libapache-mod-ssl-doc
apt-get install libapache-mod-php4php4 php4-cli php4-common php4-curl php4-dev php4-domxml php4-gd php4-gmp php4-imapphp4-ldap php4-mcal php4-mcrypt php4-mhash php4-ming php4-mysql php4-odbc php4-pearphp4-xslt curl libwww-perl imagemagick (1 line!)

Edit /etc/apache/httpd.conf .Under LoadModules add:

LoadModulephp4_module /usr/lib/apache/1.3/libphp4.so
LoadModule ssl_module /usr/lib/apache/1.3/mod_ssl.so

Under Listen add:

Listen80
Listen 443

Under "Addtypeapplication" insert:


AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl

Before "Section3 :Virtual Hosts" add:


SSLCACertificateFile /etc/apache/ssl.crt/ca-bundle.crt
SSLPassPhraseDialog builtin
SSLSessionCache dbm:/var/run/ssl_scache
SSLSessionCacheTimeout 300
SSLMutex file:/var/run/ssl_mutex
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

Change

DirectoryIndexindex.html index.htm index.shtml index.cgi

から

DirectoryIndexindex.html index.htm index.shtml index.cgi index.php index.php3 index.pl

Save /etc/apache/httpd.conf and run

/etc/init.d/apacherestart

Proftpd

apt-getinstall proftpd

<- No

For security reasonsyou can add the following lines to /etc/proftpd.conf (thanks to Reinaldo Carvalho; more information can be found here:http://proftpd.linux.co.uk/localsite/Userguide/linked/userguide.html):

DefaultRoot ~
IdentLookups off
ServerIdent on "FTP Server ready."

and restart Proftpd:

/etc/init.d/proftpd restart

Webalizer

apt-getinstall webalizer

<- accept default values

Synchronizethe System Clock

If you want tohave the system clock synchronized with an NTP server you can add the followinglines to /var/spool/cron/crontabs/root (if the file does not exist, create it by running

touch/var/spool/cron/crontabs/root ):

#update time with ntp server
0 3,9,15,21 * * * /usr/sbin/rdate time.nist.gov | logger -t NTP

Then run

chmod600 /var/spool/cron/crontabs/root
/etc/init.d/cronrestart

Install somePerl Modules needed by SpamAssassin (comes with ISPConfig)

Installationusing the Perl Shell

Login to your commandline as root and run the following command to start the Perl shell:

perl -MCPAN -e shell

If you run thePerl shell for the first time you will be asked some questions. In most casesthe default answers are ok.

Please note:Ifyou run a firewall on your system you might have to turn it off while workingon the Perl shell in order for the Perl shell to be able to fetch the neededmodules without a big delay. You can switch it on afterwards.

The big advantageof the Perl shell compared to the two other methods described here is that itcares about dependencies when installing new modules. I.e., if it turns outthat a prerequisite Perl module is missing when you install another module thePerl shell asks you if it should install the prerequisite module for you. Youshould answer that question with "Yes".

Run the followingcommands to install the modules needed by SpamAssassin:

install HTML::Parser
install DB_File
install Net::DNS
(when prompted to enable tests, choose no)
install Digest::SHA1
q
(to leave the Perl shell)

If a module isalready installed on your system you will get a message similar to this one:

HTML::Parseris up to date.

Successful installationof a module looks like this:

/usr/bin/makeinstall -- OK

Compile a CustomKernel

If you need tocompile a new kernel for some reason (e.g. because you want to use the latestbleeding-edge kernel or need a feature that the standard Debian kernel doesnot offer), you can find more information here:Debian-Kernel-Compile-Howto.


The End

The configurationof the server is now finished, and if you wish you can now install ISPConfigon it.

A Note On SuExec

If you want torun CGI scripts under suExec, you should specify /var/www as the home directory for websites created by ISPConfig as Debian's suExec iscompiled with /var/www as Doc_Root .Run /usr/lib/apache/suexec -V ,and the output should look like this:

To select /var/www as the home directory for websites during the installation of ISPConfig do thefollowing:When you are asked for the installation mode, select the expertmode .

Later during theinstallation you are asked if the default directory /home/www should be the directory where ISPConfig will create websites in. Answer n and enter /var/www asthe home directory for websites.

Links

  • http://www.debian.org
  • http://www.debianplanet.org
  • http://www.debianforum.de(German)
  • http://www.debianhowto.de(German/English)
  • http://www.ispconfig.org

Debian
  1. Debian11でRsyslogサーバーをセットアップする方法

  2. ISPConfigPerfectServerをDebian10からDebian11に更新します

  3. Ubuntu 7.10サーバー(「完璧なセットアップ」+ ISPConfig)をUbuntu8.04LTSにアップグレードする方法

  1. Debian 11でRsyslogサーバーをセットアップする方法(Bullseye)

  2. 完璧なセットアップ-DebianSarge(3.1)

  3. 完璧なデスクトップ-DebianSqueeze

  1. 完璧なサーバー-Debian8Jessie(Apache2、BIND、Dovecot、ISPConfig 3)

  2. 完璧なサーバー-Debian8.4Jessie(Apache2、BIND、Dovecot、ISPConfig 3.1)

  3. 完璧なサーバー-Debian8.6(nginx、BIND、Dovecot、ISPConfig 3.1)