私は、私たちのビジネスのためのいくつかのアプリケーションをホストするために使用されるマシンにOSを再インストールする過程にあります。アプリケーションはローカルのみです。外部クライアントからのアクセスはVPN経由のみになります。
以前のセットアップでは、ほとんどの管理者にホスティングコントロールパネル(Plesk)を使用し、再インストールに別の同様のソフトウェアを使用することを検討していましたが、最終的にすべての仕組みを学ぶ必要があると考えました。ソフトウェアが私のために行うことのほとんどを行うことができますが、すべての共生については不明です。これは、可能な限り、Configuration Programmer / Programmerの土地から遠ざけるための試みです。
私が探しているものの完全なウォークスルーをどこにも見つけることができないので、私はこの質問を立てると思った、そして答えでこれを編集し、私の進捗状況を文書化する方法で人々が私を助けることができるかどうか落とし穴。いつかこれが誰かの助けになることを願っています。
詳細:
- CentOS 5.5 x86_64
- httpd:Apache / 2.2.3
- MySQL:5.0.77(アップグレード予定)
- PHP:5.1(アップグレード予定)
要求事項:
- セキュリティ!!
- 安全なファイル転送
- 安全なクライアントアクセス(SSL証明書とCA)
- 安全なデータストレージ
- 別のローカルマシン(MySQL)への安全な接続
- 仮想ホスト/複数のサブドメイン
- ローカル電子メールはいいですが、重要ではありません
手順:
中に、別のPleskのような管理者を使用することになると考えて、サーバーコンポーネントオプションをチェックしました。後から考えると、私は自分の道を歩もうと決めたので、これはおそらく最良のアイデアではなかったでしょう。
ユーザー、ネットワーク/ IPアドレスなどを設定します。Yumの更新/アップグレード。
PHPとMySQLを最新バージョンにアップグレードするには、CentOS以外の別のリポジトリを探す必要がありました。IUSは素晴らしく見え、見つけたことがうれしいです!
IUSリポジトリをパッケージマネージャーに追加する
cd /tmp
wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm
rpm -Uvh epel-release-1-1.ius.el5.noarch.rpm
wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-4.ius.el5.noarch.rpm
rpm -Uvh ius-release-1-4.ius.el5.noarch.rpm
yum list | grep -w \.ius\. # list all the packages in the IUS repository; use this to find PHP/MySQL version and libraries you want to install
古いバージョンのPHPを削除し、IUSから新しいバージョンをインストールします
rpm -qa | grep php # to list all of the installed php packages we want to remove
yum shell # open an interactive yum shell
remove php-common php-mysql php-cli #remove installed PHP components
install php53 php53-mysql php53-cli php53-common #add packages you want
transaction solve #important!! checks for dependencies
transaction run #important!! does the actual installation of packages.
[control+d] #exit yum shell
php -v
PHP 5.3.2 (cli) (built: Apr 6 2010 18:13:45)
IUSリポジトリからMySQLをアップグレードする
/etc/init.d/mysqld stop
rpm -qa | grep mysql # to see installed mysql packages
yum shell
remove mysql mysql-server #remove installed MySQL components
install mysql51 mysql51-server mysql51-devel
transaction solve #important!! checks for dependencies
transaction run #important!! does the actual installation of packages.
[control+d] #exit yum shell
service mysqld start
mysql -v
Server version: 5.1.42-ius Distributed by The IUS Community Project
IUSのwikiのアップグレードの手順礼儀:http://wiki.iuscommunity.org/Doc/ClientUsageGuide。
scp
およびsftp
アクセスするssh
cd /tmp
wget http://dag.wieers.com/rpm/packages/rssh/rssh-2.3.2-1.2.el5.rf.x86_64.rpm
rpm -ivh rssh-2.3.2-1.2.el5.rf.x86_64.rpm
useradd -m -d /home/dev -s /usr/bin/rssh dev
passwd dev
/etc/rssh.conf
rsshユーザーにSFTPへのアクセスを許可するように編集します。
vi /etc/rssh.conf
コメント解除または追加:
allowscp
allowsftp
これにより、TransmitでSFTPプロトコルを介してマシンに接続できます(選択したFTPプログラム。他のFTPアプリケーションと同様だと確信しています)。
RSSH命令は(感謝して!)充当からhttp://www.cyberciti.biz/tips/linux-unix-restrict-shell-access-with-rssh.html。
ifconfig eth1:1 192.168.1.3 up #start up the virtual interface
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth1 ifcfg-eth1:1 #copy default script and match name to our virtual interface
vi ifcfg-eth1:1 #modify eth1:1 script
#ifcfg-eth1:1 | 次のように変更し ます 。DEVICE =
eth1:1
IPADDR = 192.168.1.3
NETMASK = 255.255.255.0
NETWORK = 192.168.1.0
ONBOOT = yes
NAME = eth1:1
繰り返して、必要に応じて仮想インターフェイスを追加します。ONBOOT=yes
ifcfg-eth1:1ファイルの行のため、このインターフェイスは、システムの起動時またはネットワークの起動/再起動時に起動されます。
service network restart
インターフェースeth0のシャットダウン:[OK]
インターフェースeth1のシャットダウン:[OK]
ループバックインターフェースのシャットダウン:[OK]
ループバックインターフェースの起動:[OK]
インターフェースeth0の起動:[OK]
インターフェースeth1:の起動:[OK]
ping 192.168.1.3
192.168.1.3から64バイト:icmp_seq = 1 ttl = 64 time = 0.105 ms
上記のrsshセクションで、SFTPに使用するユーザーを追加しました。このユーザーのホームディレクトリに、「https」というフォルダーを作成しました。これは、このサイトのドキュメントが存在する場所なので、それを指す仮想ホストを追加する必要があります。このサイト(上記ではdev.site.local)に上記の仮想インターフェイスを使用します。
vi /etc/http/conf/httpd.conf
httpd.confの最後に次を追加します。
<VirtualHost 192.168.1.3:80>
ServerAdmin dev@site.local
DocumentRoot /home/dev/https
ServerName dev.site.local
ErrorLog /home/dev/logs/error_log
TransferLog /home/dev/logs/access_log
</VirtualHost>
すべてをチェックアウトするためだけに、ダミーのindex.htmlファイルをhttpsディレクトリに配置しました。私はそれをブラウズしようとしましたが、許可が拒否されましたエラーが見つかりました。ログは、何が起こっているかについてのあいまいな参照のみを提供しました。
[2010年5月17日14:57:11] [エラー] [クライアント192.168.1.100](13)許可が拒否されました:/index.htmlへのアクセスが拒否されました
chmod 777 etを試しました。だが、役に立たない。結局のところ、httpsディレクトリとその親ディレクトリをchmod + xする必要がありました。
chmod +x /home
chmod +x /home/dev
chmod +x /home/dev/https
これで問題は解決しました。
ローカルWindows Server 2003ボックスを介してDNSを処理しています。ただし、BINDのCentOSのドキュメントは次の場所にあります:http : //www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-bind.html
SSLを機能させるために、httpd.confで以下を変更しました。
NameVirtualHost 192.168.1.3:443 #make sure this line is in httpd.conf
<VirtualHost 192.168.1.3:443> #change port to 443
ServerAdmin dev@site.local
DocumentRoot /home/dev/https
ServerName dev.site.local
ErrorLog /home/dev/logs/error_log
TransferLog /home/dev/logs/access_log
</VirtualHost>
残念ながら、SSLでページにアクセスしようとすると、エラー(ssl_error_rx_record_too_long)エラーが発生し続けます。JamesHannahが以下に優雅に指摘したように、httpd.confで証明書の場所を設定していなかったため、ブラウザが動かなくなる証明書としてページがブラウザにスローされました。
そのため、最初にCAをセットアップし、証明書ファイルを作成する必要がありました。http://www.debian-administration.org/articles/284のプロセスに関する素晴らしい(古い場合)チュートリアルを見つけました。
その記事から私が取った関連するステップは次のとおりです。
mkdir /home/CA
cd /home/CA/
mkdir newcerts private
echo '01' > serial
touch index.txt #this and the above command are for the database that will keep track of certs
dirにopenssl.cnf
ファイルを作成し、/home/CA/
上記のリンクのチュートリアルごとに編集します。(参照用に、完成したopenssl.cnfファイルは次のようになりました:http ://pastebin.com/raw.php?i=hnZDij4T )
openssl req -new -x509 -extensions v3_ca -keyout private/cakey.pem -out cacert.pem -days 3650 -config ./openssl.cnf #this creates the cacert.pem which gets distributed and imported to the browser(s)
openssl.cnf
ウォークスルー手順ごとに再度変更されました。
#generates certificate request, and key.pem which I renamed dev.key.pem.
openssl req -sha1 -new -nodes -out dev.req.pem -config ./openssl.cnf
openssl.cnf
ウォークスルー手順ごとに再度変更されました。
#create and sign certificate.
openssl ca -out dev.cert.pem -md sha1 -config ./openssl.cnf -infiles dev.req.pem
重要!
ファイルを移動し、新しい場所にあるhttpd.confから参照します
cp dev.cert.pem /home/dev/certs/cert.pem
cp dev.key.pem /home/certs/key.pem
httpd.confを更新して証明書を反映し、SSLEngineをオンにしました:
NameVirtualHost 192.168.1.3:443
<VirtualHost 192.168.1.3:443>
ServerAdmin dev@site.local
DocumentRoot /home/dev/https
SSLEngine on
SSLCertificateFile /home/dev/certs/cert.pem
SSLCertificateKeyFile /home/dev/certs/key.pem
ServerName dev.site.local
ErrorLog /home/dev/logs/error_log
TransferLog /home/dev/logs/access_log
</VirtualHost>
CA cert.pemをWebアクセス可能な場所に置き、ブラウザにダウンロード/インポートします。これで、エラーや警告なしでhttps://dev.site.localにアクセスできます。
そして、これは私がいるところです。進行中にこれを編集し続けます。SSL電子メールの設定方法、および/またはMySQLサーバーとなる別のBoxへの安全な接続の設定に関するヒントをいただければ幸いです。