08 « 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 10

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Posted on --/--/-- --. --:-- [edit]

category: スポンサー広告

TB: --    CM: --

--

CentOS7でLAMPサーバインストールメモ【CentOS7+Apache+MySQL(MaridaDB)+PHP】 




【お知らせ】この記事は、http://blog.apar.jp/linux/194/ に引越いたしました。



RHEL7.0から約1ヶ月で CentOS7.0 がリリースされました。バージョン7にちなんで、7月7日にリリースするあたりに余裕を感じます。

・CentOS 7.0.1406 リリースノート
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS7


大きな変更点としては、Kernel3.x の採用や、標準のファイルシステムが xfs になったようです。ほかにも細かい部分でかなりの変更があり、少し戸惑いました(^^;) 全体的に Fedora ぽくなってきましたね。

・変更点
 serviceコマンド、chkconfigコマンドが、systemctlコマンドに統合
 NICの名前が、eth0→enp0s3、eth1→enp0s8 に変更(名前は環境によって違うようです)
 iptables が firewalld に変更
 ntpd が chronyd に変更
 Apacheのパッケージが 2.2 から 2.4 に変更(ディレクティブが多少違うので注意です)
 MySQL が MariaDB に変更(サービス識別子が mariadb になっています) 


さっそく、CentOS7でLAMP構成をインストールする手順をメモしておきました。

インストールにあたってダウンロードページから CentOS7の Everything.iso をダウンロードしておきます。


========== マシン構成 ==========
VirtualBoxの仮想マシンにインストール

○仮想マシン構成
 メモリ:1024MB
 NIC1:NATアダプター
 NIC2:ホストオンリーアダプター

○ネットワーク構成(※ご自分の環境に書換えてください)
 ホスト名:  centos70
 IPアドレス: 192.168.56.201/24
 DNSサーバ: 8.8.8.8


========== CentOS7のインストール ==========
[CentOS 7]
Install CentOS 7

[WELCOME TO CENTOS 7.]
日本語 Japanese

[インストールの概要]
・「ソフトウェアの選択」をクリックし、下記にチェックを入れて「完了」
 最小限のインストール>開発ツール

・「インストール先」をクリックし、インストール先のデバイスを選択して「完了」
 ※2回選択しないと設定が反映されないことがあるようです。

・「ネットワークとホスト名」をクリックし、ホスト名に下記を入力して「完了」
 ホスト名:centos70

上記の設定が済んだら「インストールの開始」をクリック
パーティションの作成とインストールが開始します

[ユーザーの設定]
・「rootパスワード」をクリックし、パスワードを設定したら「完了」

~~~ インストールが完了するまでしばらく待ちます ~~~

[完了しました!]
再起動してください


========== ネットワーク関連設定 ==========
※ネットワークアダプタの名前は環境によって、異なるようです。ご自分の環境にあわせて設定してください。

・NIC1の設定(NATアダプター)
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
---(下記を変更)---------------------------
IPV6INIT=yes
 ↓
IPV6INIT=no

ONBOOT=no
 ↓
ONBOOT=yes
------------------------------

・NIC2の設定(ホストオンリーアダプター)
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
---(HWADDRの行以外を削除して下記を追加)---------------------------
HWADDR=08:00:27:XX:XX:XX  ←【この行は残す】
TYPE=Ethernet
BOOTPROTO=none
NAME=enp0s8
ONBOOT=yes
IPV6INIT=no
IPADDR=192.168.56.201
NETMASK=255.255.255.0
------------------------------

・ネットワークサービス再起動
service network restart

・DNSサーバの設定
vi /etc/resolv.conf
---(全て削除して下記を追加)---------------------------
nameserver 8.8.8.8
------------------------------

・上記設定で sshログインができるようになります
ssh root@192.168.56.201


========== 基本コマンドのインストール ==========
yum -y groupinstall base
yum -y groupinstall network-tools


========== yumアップグレード ==========
yum -y upgrade


========== 不要サービスの停止 ==========
systemctl disable abrt-ccpp
systemctl disable abrt-oops
systemctl disable abrt-vmcore
systemctl disable abrt-xorg
systemctl disable abrtd
systemctl disable atd
systemctl disable auditd
systemctl disable avahi-daemon
systemctl disable kdump
systemctl disable mdmonitor
systemctl disable dmraid-activation


========== SELinux無効設定 ==========
vi /etc/sysconfig/selinux
---(下記を変更)---------------------------
SELINUX=enforcing
 ↓
SELINUX=disabled
------------------------------

・OSを再起動します。
shutdown -r now


========== firewalld設定 ==========
・現在の設定の確認
firewall-cmd --list-all-zones
------------------------------
(略)
public (default, active)
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client ssh
(略)
------------------------------
初期設定では publicゾーンに ssh のみ許可されています

・追加で http と https を許可設定します
firewall-cmd --add-service=http --zone=public --permanent
firewall-cmd --add-service=https --zone=public --permanent

・設定を読込みます
firewall-cmd --reload

・設定を確認します
firewall-cmd --list-services --zone=public
---(下記表示であればOK)---------------------------
dhcpv6-client http https ssh
------------------------------


========== Chrony設定(NTP) ==========
・初回は手動で時間合わせをします。
ntpdate ntp.nict.jp

・オリジナルのコンフィグをバックアップします。
mv -i /etc/chrony.conf /etc/chrony.conf.org

・コンフィグを作成します。
vi /etc/chrony.conf
---(下記を追加)---------------------------
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
------------------------------

・サービスを起動します。
systemctl restart chronyd

・自動起動設定をします。
systemctl enable chronyd

・10分ほど経過したら動作を確認します。
chronyc sources -v
---(このような表示があればOKです)---------------------------
^+ ntp-a3.nict.go.jp 1 6 7 3 -591us[ -154us] +/- 2435us
^+ ntp-a2.nict.go.jp 1 6 7 2 -770us[ -333us] +/- 3106us
^* ntp-b3.nict.go.jp 1 6 7 2 +485us[ +922us] +/- 2348us
------------------------------


========== Gmailリレー設定 ==========
・GmailのSMTP認証情報ファイルの作成
vi /etc/postfix/gmail
---(下記を追加)---------------------------
[smtp.gmail.com]:587 <Gmailのアドレス>:<Gmailのパスワード>
---------------------------
chmod 600 /etc/postfix/gmail
postmap /etc/postfix/gmail

・Postfixの設定
vi /etc/postfix/main.cf
---(下記を最終行に追加)---------------------------
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
------------------------------

・設定した内容を読込みます
systemctl reload postfix

・root宛メールの送信先を変更します
vi /etc/aliases
---(下記を追加)---------------------------
root: <Gmailのアドレス>
---------------------------

・設定を反映させます。
newaliases

・メールが送信できる事を確認します
echo test | mail -s `hostname` root


========== リポジトリの追加(64bit) ==========
・RPMForge
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

・epal(2014-07-08の時点ではベータ版です)
rpm -ivh http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm
rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7

・remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

vi /etc/yum.repos.d/remi.repo
---(下記を変更)---------------------------
[remi]
name=Les RPM de remi pour Enterprise Linux 7 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/7/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/7/remi/mirror
enabled=0
 ↓
enabled=1
------------------------------


========== 各種ミドルウェアインストール ==========
※バージョンは2014年7月8日時点のものです。

・Apache(2.4.6-17)
yum -y install httpd-devel
yum -y install mod_ssl

・PHP(5.4.30-1)
yum -y install php
yum -y install php-devel
yum -y install php-pdo
yum -y install php-mysql
yum -y install php-mbstring
yum -y install php-mcrypt
yum -y install php-gd
yum -y install php-pear
yum -y install php-pear-DB
yum -y install php-pear-Auth-*
yum -y install php-pecl-apc-devel
yum -y install zlib-devel

・MySQL(MariaDB)(5.5.37-1)
yum -y install mysql-devel
yum -y install mysql-server

・memcached(1.4.20-1)
yum -y install memcached-devel
yum -y install php-pecl-memcache


========== リポジトリの無効化 ==========
vi /etc/yum.repos.d/rpmforge.repo
---(下記を変更)---------------------------
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
 ↓
enabled = 0
------------------------------

vi /etc/yum.repos.d/epel.repo
---(下記を変更)---------------------------
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
 ↓
enabled=0
------------------------------

vi /etc/yum.repos.d/remi.repo
---(下記を変更)---------------------------
[remi]
name=Les RPM de remi pour Enterprise Linux 7 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/7/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/7/remi/mirror
enabled=1
 ↓
enabled=0
------------------------------


========= Apacheの設定 ==========
・不要なコンフィグを読込まないようにする
mv -i /etc/httpd/conf.d/autoindex.conf /etc/httpd/conf.d/autoindex.conf.org
mv -i /etc/httpd/conf.d/userdir.conf /etc/httpd/conf.d/userdir.conf.org
mv -i /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org

・オリジナルのコンフィグをバックアップします。
mv -i /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

・コンフィグを作成します。
vi /etc/httpd/conf/httpd.conf
---(下記を追加)---------------------------
httpd.conf
------------------------------
アクセス制限の記述「Require all granted」を忘れずに! また、「NameVirtualHost *:80」は不要です。

・起動
systemctl start httpd

・自動起動設定
systemctl enable httpd


========== PHPの設定 ==========
・エラーログ出力先作成
mkdir /var/log/php
chown apache /var/log/php
chmod 755 /var/log/php

vi /etc/php.ini
---(下記を変更)---------------------------
expose_php = On
 ↓
expose_php = Off

;date.timezone =
 ↓
date.timezone = 'Asia/Tokyo'

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
 ↓
error_reporting = E_ALL & ~E_NOTICE

;error_log = php_errors.log
 ↓
error_log = "/var/log/php/php_errors.log"
------------------------------

・セッションの保存先をmemcacheに設定
vi /etc/php.d/memcache.ini
---(下記を変更)---------------------------
;session.save_handler=memcache
 ↓
session.save_handler=memcache

;session.save_path="tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
 ↓
session.save_path="tcp://localhost:11211"
------------------------------

vi /etc/httpd/conf.d/php.conf
---(下記を変更)---------------------------
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
 ↓
#php_value session.save_handler "files"
#php_value session.save_path "/var/lib/php/session"
------------------------------


========== memcachedの設定 ==========
vi /etc/sysconfig/memcached
運用で様子をみて適度に変更
---(デフォルト値)---------------------------
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
------------------------------

・自動起動設定
systemctl enable memcached

・起動
systemctl start memcached
systemctl restart httpd


========== MySQL(MariaDB)の設定 ==========
・ログの出力先作成
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql

・オリジナルのコンフィグをバックアップします。
mv -i /etc/my.cnf /etc/my.cnf.org

・コンフィグを作成します。
vi /etc/my.cnf
---(下記を追加)---------------------------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
user=mysql
character-set-server = utf8
skip-character-set-client-handshake

slow_query_log=1
slow_query_log_file=/var/log/mysql/slow_query.log
long_query_time=1
min_examined_row_limit=1000

[client]
default-character-set = utf8

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
------------------------------

・起動 ※サービス識別子が「mariadb」なので注意です
systemctl start mariadb

・自動起動設定
systemctl enable mariadb

・初期設定
mysql_secure_installation
 対話式で設定が始まります。
 rootにパスワードを設定する以外は、すべてエンターでOKです。(不要なユーザ等を削除してくれます)
---------------------------
(略)
Set root password? [Y/n]
New password: <パスワード>
Re-enter new password:<パスワード>
(略)
---------------------------


========= ログローティション設定 ==========
・不要なログの削除
systemctl stop httpd
rm -f /var/log/httpd/*
systemctl start httpd

vi /etc/logrotate.d/httpd
---(全て削除し下記内容に変更)---------------------------
/var/log/httpd/*log /var/log/php/*log {
    daily
    missingok
    dateext
    rotate 60
    create 644 apache apache
    sharedscripts
    postrotate
        /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
    endscript
}
------------------------------

・確認します
logrotate -dv /etc/logrotate.d/httpd
---下記のような表示であればOKです---------------------------
reading config file /etc/logrotate.d/httpd

Handling 1 logs

rotating pattern: /var/log/httpd/*log /var/log/php/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/httpd/access_log
log does not need rotating
(略)
------------------------------

vi /etc/logrotate.d/mariadb
---(全て削除し下記内容に変更)---------------------------
/var/log/mysql/*log {
    daily
    missingok
    dateext
    rotate 60
    sharedscripts
    postrotate
    if test -x /usr/bin/mysqladmin && \
        /usr/bin/mysqladmin ping -u root -p<パスワード> &>/dev/null
    then
        /usr/bin/mysqladmin flush-logs -u root -p<パスワード>
    fi
    endscript
}
------------------------------

・パスワードを書いているのでパーミッション設定
chmod 600 /etc/logrotate.d/mariadb

・確認します
logrotate -dv /etc/logrotate.d/mariadb
---下記のような表示であればOKです---------------------------
reading config file /etc/logrotate.d/mariadb

Handling 1 logs

rotating pattern: /var/log/mysql/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/mysql/mysqld.log
log does not need rotating
considering log /var/log/mysql/slow_query.log
log does not need rotating
not running postrotate script, since no logs were rotated
------------------------------


========== 自動起動設定確認 ==========
systemctl list-unit-files | grep -e httpd -e mariadb -e memcached

---下記のような表示であればOKです---------------------------
httpd.service enabled
mariadb.service enabled
memcached.service enabled
------------------------------

・システムを再起動後して各種サービスが自動起動している事を確認します。
shutdown -r now


========== サーバー用秘密鍵・自己署名証明書の作成(SSL用) ==========
・作成用ディレクトリに移動します
cd /etc/pki/tls/certs/

・オリジナルのMakeファイルをバックアップします
cp -ip Makefile Makefile.org

・サーバー用証明書有効期限を1年から10年に変更します
sed -i 's/365/3650/g' Makefile

・サーバー用秘密鍵・自己署名証明書の作成
make server.crt
---下記を入力---------------------------
Enter pass phrase:1234(←表示されません)
Verifying - Enter pass phrase:1234(←表示されません)
Enter pass phrase for server.key:1234(←表示されません)
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:<空エンター>
Locality Name (eg, city) [Default City]:<空エンター>
Organization Name (eg, company) [Default Company Ltd]:<空エンター>
Organizational Unit Name (eg, section) []:<空エンター>
Common Name (eg, your name or your server's hostname) []:centos70
Email Address []:<空エンター>
------------------------------

・サーバー用秘密鍵からパスワード削除
openssl rsa -in server.key -out server.key
---下記を入力---------------------------
Enter pass phrase for server.key:1234(←表示されません)
------------------------------


========== Apacheの設定(SSL) ==========
・SSL設定ファイルのオリジナルをバックアッップします
mv -i /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org

・コンフィグを作成します。
vi /etc/httpd/conf.d/ssl.conf
---(下記を追加)---------------------------
ssl.conf
------------------------------

・httpd再起動
systemctl restart httpd

・httpsで接続できることを確認(自己署名証明書なので警告が表示されます)


以上です。

スポンサーサイト

Posted on 2014/07/09 Wed. 00:42 [edit]

category: サーバ

thread: Linux  -  janre: コンピュータ

TB: 0    CM: 4

09

CentOS7リリース間近 

RHEL7が6月10日にリリースされたようです。CentOS7のサイト の記事を見ると、そろそろリリースのようですね。

Posted on 2014/07/02 Wed. 06:23 [edit]

category: サーバ

TB: 0    CM: 0

02

Apache 画像ファイルへのアクセスログを記録しない設定の間違い  

サーバの入替作業をしているときに「css」というディレクトリに index.php を作成して、アクセスログを確認しようと思ったのですが、なぜか index.php へのアクセスログが出力されない、、、

あちこち設定ミスが無いかと探って小一時間、原因はこれでした。

SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)|(js)$" nolog


Apacheのアクセスログに、画像ファイルなどへのアクセスのログが記録されてしまうと見通しがよくないため、該当する拡張子のファイルはアクセスログへ記録しないように設定していたつもりでしたが、この設定だとディレクトリ名やファイル名に「.gif」「jpg」「png」「css」が含まれているとアクセスログに記録されません。

ようは正規表現のミスですな(^^;)

. (ドット)の後に「gif」か「jpg」か「png」か「png」か「css」か「js」で終わるURLリクエストを指定したつもりが

該当する拡張子が () で囲われているため

「.gif」か「jpg」か「png」か「png」か「css」が含まれるか「js」で終わるURLリクエストが指定されてしまっています。

そこで、両端の () 以外を削除して Apache再起動、アクセスログが無事に出力されました(^^)/

SetEnvIf Request_URI "\.(gif|jpg|png|css|js)$" nolog


参考にさせて頂いたサイト
・サルにもわかる正規表現入門 
 http://www.mnet.ne.jp/~nakama/regexp4.html

Posted on 2014/05/16 Fri. 06:18 [edit]

category: サーバ

thread: サーバー  -  janre: コンピュータ

TB: 0    CM: 0

16

WordPress 3.8.1 インストールメモ 

ひさびさにWordPressを扱う案件があったので、復習もかねてインストールメモ φ(^^)

はじめに LAMP環境をインストール しておきます。

WordPressのインストールにあたって、なにかキーワードを決めておくのがオススメです。
運用管理がしやすくなり、セキュリティの強化にもつながります。

今回は「arpanet」をキーワードとして設定しました。※キーワードはアルファベット小文字のみが使えます。


========== データベースの作成 ==========
mysql -u root -p
---------------------------
・データベース作成
CREATE DATABASE arpanet;

・WordPress用のDBユーザ作成
GRANT ALL PRIVILEGES ON arpanet.* TO arpanet@localhost IDENTIFIED BY '<パスワード>';
FLUSH PRIVILEGES;

・WordPress用ユーザが作成されていることを確認
select user,host,password from mysql.user;
(略)
---------------------------
| arpanet | localhost | *BF8DCD5E77E5B3EF791D75A7C181C540D4706A81 |
---------------------------

---------------------------


========== ソースの配置 ==========
wget http://ja.wordpress.org/wordpress-3.8.1-ja.tar.gz
tar xvzf wordpress-3.8.1-ja.tar.gz
rm -rf /var/www/html
mv wordpress /var/www/html

・賛否はありますが、WordPressソースのオーナーは、WEBサーバの実行ユーザに設定するのがよいでしょう。
chown -R apache:apache /var/www/html


========== 設定 ==========
・コンフィグファイルの作成
mv /var/www/html/wp-config-sample.php /var/www/html/wp-config.php
vi /var/www/html/wp-config.php
--(下記を変更)---------------------------
define('DB_NAME', 'database_name_here');
 ↓
define('DB_NAME', 'arpanet');

define('DB_USER', 'username_here');
 ↓
define('DB_USER', 'arpanet');

define('DB_PASSWORD', 'password_here');
 ↓
define('DB_PASSWORD', '<パスワード>');

$table_prefix = 'wp_';
 ↓
$table_prefix = 'arpanet_';
---------------------------

・認証用ユニークキーの設定
 WordPress.org の秘密鍵サービス https://api.wordpress.org/secret-key/1.1/salt/ にアクセスし、表示されたユニークキーをWordPressのコンフィグファイルに貼付けます。

vi /var/www/html/wp-config.php
--(下記を変更)---------------------------
define('AUTH_KEY', 'put your unique phrase here');
define('SECURE_AUTH_KEY', 'put your unique phrase here');
define('LOGGED_IN_KEY', 'put your unique phrase here');
define('NONCE_KEY', 'put your unique phrase here');
define('AUTH_SALT', 'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT', 'put your unique phrase here');
define('NONCE_SALT', 'put your unique phrase here');
 ↓
表示されたユニークキー
---------------------------


========== コンフィグファイルの保護 ==========
「wp-config.php」にはデータベースのパスワードを書いていますので、このファイルは強固に守るのがよいでしょう。

・パーミッション変更(apacheのみアクセス可能)
chmod 600 /var/www/html/wp-config.php

・ブラウザからの「wp-config.php」へのアクセスは不可とする
vi /etc/httpd/conf/httpd.conf
--(下記を変更)---------------------------
    <Directory "/var/www/html">
        Options MultiViews
        AllowOverride None
    </directory>
   ↓
    <Directory "/var/www/html">
        Options MultiViews
        AllowOverride None
        <files wp-config.php>
            order allow,deny 
            deny from all 
        </files> 
    </directory>
---------------------------

・Apacheを再起動
service httpd restart


========== WordPressのインストール実行 ==========
http://centos65 にアクセスします。(URLはご自身の環境に読替えてください)
WP01.png

必要情報を入力し、[WordPressをインストール]をクリックすればインストール完了です。ほんと「これだけです!」ね。(^^)/


========== Login LockDown プラグイン追加 ==========
セキュリティのため、WordPressの管理画面(http://<ドメイン名>/wp-admin/)には接続元IPアドレス制限をしたいところなのですが、個人事業主の方、協力会社の方でもノマドワーカー的な働き方をしている方が多いので(うらやましいなあ)接続元のIPアドレスを固定することができません(^^;)

とはいえ、何もしないのではブルートフォースアタックが怖いので、Login LockDown プラグインを追加しました。インストール方法は管理画面から、プラグイン>新規追加「Login LockDown」を検索して、[いますぐインストール]をクリックするだけです。
WP02.png

デフォルトの設定では、3回パスワードを間違えると、その接続元IPアドレスからは1時間ログインすることができなくなります。



以上です。

Posted on 2014/02/15 Sat. 02:15 [edit]

category: サーバ

thread: Linux  -  janre: コンピュータ

TB: 0    CM: 0

15

LAMPサーバ構築メモ(CentOS6.5+Apache+MySQL+PHP)  




【お知らせ】この記事は、http://blog.apar.jp/linux/147/ に引越いたしました。



RHEL6.5から10日で CentOS6.5がリリースされました。マイナーバージョンが上がるにつれてリリースが早くなってますね(^^)/


早速、新規インストールの設定メモ。

========== マシン構成 ==========
VirtualBoxの仮想マシンにインストール

○仮想マシン構成
 メモリ:1024MB
 NIC1:NATアダプター
 NIC2:ホストオンリーアダプター

○ネットワーク構成(※ご自分の環境に書換えてください)
 ホスト名:  centos65
 IPアドレス: 192.168.56.201/24
 DNSサーバ: 8.8.8.8


========== CentOS6.5のインストール ==========
[Welcom to CentOS 6.5!]
Install or upgrade an existing system

[Disc Found]
SKIP(Tabキーで選択)

[CentOS6]
NEXT

[What language 〜]
Japanese(日本語)

[このシステム用の適切なキーボードを選択します]
日本語

[どちらのタイプのストレージデバイスにインストールしますか?]
基本ストレージデバイス

[ストレージでバイスの警告]
はい。含まれていません。どのようなデータであっても破棄してください
(※警告の通りです。ご注意下さい)

[ホスト名]
centos65

[使用するタイムゾーン〜]
アジア/東京
「システムクロックでUTCを使用」のチェックを外す

[rootパスワード]
<パスワード>

[どのタイプのインストールをしますか?]
すべての領域を使用する

[ストレージ構成をディスクに書き込み中]
(データがすべて失われる旨の警告が表示されます)
データが削除されても問題がなければ「変更をディスクに書込む」を押します

[CentOSのデフォルトインストールは最小限インストールです。オプションとして追加の〜]
Minimal
「今すぐカスタマイズ」を選択して「次へ」

下記を選択して「次へ」
・ベースシステム>ネットワーキングツール
・ベースシステム>ベース
・開発>開発ツール

インストールが開始します

[おねでとうございます。CentOSのインストールが完了しました]
再起動してください


========== ネットワーク関連設定 ==========
・NIC1の設定(NATアダプター)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
---(下記を変更)---------------------------
ONBOOT=no
NM_CONTROLLED=yes
 ↓
ONBOOT=yes
NM_CONTROLLED=no
------------------------------

・NIC2の設定
vi /etc/sysconfig/network-scripts/ifcfg-eth1
---(HWADDRの行以外を削除して下記を追加)---------------------------
DEVICE=eth1
HWADDR=08:00:27:XX:XX:XX  ←【この行は残す】
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
IPADDR=192.168.56.201
NETMASK=255.255.255.0
------------------------------

・ネットワークサービス再起動
service network restart

・DNSサーバの設定
vi /etc/resolv.conf
---(全て削除して下記を追加)---------------------------
nameserver 8.8.8.8
------------------------------

・上記設定で sshログインができるようになります
ssh root@192.168.56.201


========== yumアップグレード ==========
yum -y upgrade


========== 不要サービスの停止 ==========
chkconfig --level 0123456 abrt-ccpp off
chkconfig --level 0123456 abrtd off
chkconfig --level 0123456 acpid off
chkconfig --level 0123456 atd off
chkconfig --level 0123456 auditd off
chkconfig --level 0123456 blk-availability off
chkconfig --level 0123456 cpuspeed off
chkconfig --level 0123456 haldaemon off
chkconfig --level 0123456 ip6tables off
chkconfig --level 0123456 kdump off
chkconfig --level 0123456 mdmonitor off
chkconfig --level 0123456 messagebus off
chkconfig --level 0123456 netfs off


========== SELinux無効設定 ==========
vi /etc/sysconfig/selinux
---(下記を変更)---------------------------
SELINUX=enforcing
 ↓
SELINUX=disabled
------------------------------

・OSを再起動します。
shutdown -r now


========== iptables設定 ==========
・オリジナルのコンフィグをバックアップします。
mv -i /etc/sysconfig/iptables /etc/sysconfig/iptables.org

・ssh と httpd のみ許可設定
vi /etc/sysconfig/iptables
---(下記を追加)---------------------------
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -m multiport --dports 80,443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
------------------------------

・iptablesを再起動します
service iptables restart


========== NTP設定 ==========
・初回は手動で時間合わせをします。
ntpdate ntp.nict.jp

・オリジナルのコンフィグをバックアップします。
mv -i /etc/ntp.conf /etc/ntp.conf.org

・コンフィグを作成します。
vi /etc/ntp.conf
---(下記を追加)---------------------------
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
------------------------------

・サービスを起動します。
service ntpd start

・自動起動設定をします。
chkconfig ntpd on

・10分ほど経過したら動作を確認します。
ntpq -p
---(このような表示があればOKです)---------------------------
*ntp-b2.nict.go. .NICT. 1 u 64 64 377 14.514 -2.500 10.347
+ntp-a3.nict.go. .NICT. 1 u 58 128 377 33.064 -12.271 21.193
+ntp-a2.nict.go. .NICT. 1 u 57 128 377 21.539 -4.624 11.474
------------------------------


========== Gmailリレー設定 ==========
・GmailのSMTP認証情報ファイルの作成
vi /etc/postfix/gmail
---(下記を追加)---------------------------
[smtp.gmail.com]:587 <Gmailのアドレス>:<Gmailのパスワード>
---------------------------
chmod 600 /etc/postfix/gmail
postmap /etc/postfix/gmail

・Postfixの設定
vi /etc/postfix/main.cf
---(下記を最終行に追加)---------------------------
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/gmail
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
------------------------------

・postfixを再起動します
service postfix restart

・root宛メールの送信先を変更します
vi /etc/aliases
---(下記を追加)---------------------------
root: <Gmailのアドレス>
---------------------------

・設定を反映させます。
newaliases

・メールが送信できる事を確認します
echo test | mail -s `hostname` root


========== リポジトリの追加(64bit) ==========
・RPMForge
rpm -ivh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt

・epal
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6

・remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

vi /etc/yum.repos.d/remi.repo
---(下記を変更)---------------------------
[remi]
name=Les RPM de remi pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
enabled=0
 ↓
enabled=1
------------------------------


========== 各種ミドルウェアインストール ==========
※バージョンは2013年12月3日時点のものです。

・Apache(2.2.15-29)
yum -y install httpd-devel
yum -y install mod_ssl

・PHP(5.4.22-1)
yum remove php php-*
yum -y install php
yum -y install php-devel
yum -y install php-pdo
yum -y install php-mysql
yum -y install php-mbstring
yum -y install php-mcrypt
yum -y install php-gd
yum -y install php-pear
yum -y install php-pear-DB
yum -y install php-pear-Auth-*
yum -y install php-pecl-apc-devel
yum -y install zlib-devel

・MySQL(5.5.34-1)
yum -y install mysql-devel
yum -y install mysql-server

・memcached(1.4.15-2)
yum -y install memcached-devel
yum -y install php-pecl-memcache


========== リポジトリの無効化 ==========
vi /etc/yum.repos.d/rpmforge.repo
---(下記を変更)---------------------------
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el6/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
 ↓
enabled = 0
------------------------------

vi /etc/yum.repos.d/epel.repo
---(下記を変更)---------------------------
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=1
 ↓
enabled=0
------------------------------

vi /etc/yum.repos.d/remi.repo
---(下記を変更)---------------------------
[remi]
name=Les RPM de remi pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
enabled=1
 ↓
enabled=0
------------------------------


========= Apacheの設定 ==========
・不要なコンフィグを読込まないようにする
mv -i /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org

・オリジナルのコンフィグをバックアップします。
mv -i /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org

・コンフィグを作成します。
vi /etc/httpd/conf/httpd.conf
---(下記を追加)---------------------------
httpd.conf
------------------------------

・起動
service httpd start

・自動起動設定
chkconfig httpd on


========== PHPの設定 ==========
・エラーログ出力先作成
mkdir /var/log/php
chown apache /var/log/php
chmod 755 /var/log/php

vi /etc/php.ini
---(下記を変更)---------------------------
expose_php = On
 ↓
expose_php = Off

;date.timezone =
 ↓
date.timezone = 'Asia/Tokyo'

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
 ↓
error_reporting = E_ALL & ~E_NOTICE

;error_log = php_errors.log
 ↓
error_log = "/var/log/php/php_errors.log"
------------------------------

・セッションの保存先をmemcacheに設定
vi /etc/php.d/memcache.ini
---(下記を変更)---------------------------
;session.save_handler=memcache
 ↓
session.save_handler=memcache

;session.save_path="tcp://localhost:11211?persistent=1&weight=1&timeout=1&retry_interval=15"
 ↓
session.save_path="tcp://localhost:11211"
------------------------------

vi /etc/httpd/conf.d/php.conf
---(下記を変更)---------------------------
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
 ↓
#php_value session.save_handler "files"
#php_value session.save_path "/var/lib/php/session"
------------------------------


========== memcachedの設定 ==========
vi /etc/sysconfig/memcached
運用で様子をみて適度に変更
---(デフォルト値)---------------------------
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""
------------------------------

・自動起動設定
chkconfig memcached on

・起動
service memcached start
service httpd restart


========== MySQLの設定 ==========
・ログの出力先作成
mkdir /var/log/mysql
chown -R mysql:mysql /var/log/mysql

・オリジナルのコンフィグをバックアップします。
mv -i /etc/my.cnf /etc/my.cnf.org

・コンフィグを作成します。
vi /etc/my.cnf
---(下記を追加)---------------------------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
user=mysql
character-set-server = utf8
skip-character-set-client-handshake

slow_query_log=1
slow_query_log_file=/var/log/mysql/slow_query.log
long_query_time=1
min_examined_row_limit=1000

[client]
default-character-set = utf8

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
------------------------------

・起動
service mysqld start

・自動起動設定
chkconfig mysqld on

・初期設定
mysql_secure_installation
 対話式で設定が始まります。
 rootにパスワードを設定する以外は、すべてエンターでOKです。(不要なユーザ等を削除してくれます)
---------------------------
(略)
Set root password? [Y/n]
New password: <パスワード>
Re-enter new password:<パスワード>
(略)
---------------------------


========= ログローティション設定 ==========
・不要なログの削除
service httpd stop
rm -f /var/log/httpd/*
service httpd start

vi /etc/logrotate.d/httpd
---(全て削除し下記内容に変更)---------------------------
/var/log/httpd/*log /var/log/php/*log {
daily
missingok
dateext
rotate 60
create 644 apache apache
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
------------------------------

・確認します
logrotate -dv /etc/logrotate.d/httpd
---下記のような表示であればOKです---------------------------
reading config file /etc/logrotate.d/httpd
reading config info for /var/log/httpd/*log /var/log/php/*log

Handling 1 logs

rotating pattern: /var/log/httpd/*log /var/log/php/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/httpd/access_log
log does not need rotating
(略)
------------------------------

vi /etc/logrotate.d/mysql
---(下記を追加)---------------------------
/var/log/mysql/*log {
daily
missingok
dateext
rotate 60
sharedscripts
postrotate
if test -x /usr/bin/mysqladmin && \
/usr/bin/mysqladmin ping -u root -p<パスワード> &>/dev/null
then
/usr/bin/mysqladmin flush-logs -u root -p<パスワード>
fi
endscript
}
------------------------------

・パスワードを書いているのでパーミッション設定
chmod 600 /etc/logrotate.d/mysql

・確認します
logrotate -dv /etc/logrotate.d/mysql
---下記のような表示であればOKです---------------------------
reading config info for /var/log/mysql/*log

Handling 1 logs

rotating pattern: /var/log/mysql/*log after 1 days (60 rotations)
empty log files are rotated, old logs are removed
considering log /var/log/mysql/mysqld.log
log does not need rotating
considering log /var/log/mysql/slow_query.log
log does not need rotating
not running postrotate script, since no logs were rotated
------------------------------


========== 自動起動設定確認 ==========
chkconfig --list | grep :on

---下記のような表示であればOKです---------------------------
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
irqbalance 0:off 1:off 2:off 3:on 4:on 5:on 6:off
lvm2-monitor 0:off 1:on 2:on 3:on 4:on 5:on 6:off
memcached 0:off 1:off 2:on 3:on 4:on 5:on 6:off
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
postfix 0:off 1:off 2:on 3:on 4:on 5:on 6:off
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
sysstat 0:off 1:on 2:on 3:on 4:on 5:on 6:off
udev-post 0:off 1:on 2:on 3:on 4:on 5:on 6:off
------------------------------

・システムを再起動後して各種サービスが自動起動している事を確認します。
shutdown -r now


========== サーバー用秘密鍵・自己証明書の作成(SSL用) ==========
・作成用ディレクトリに移動します
cd /etc/pki/tls/certs/

・オリジナルのMakeファイルをバックアップします
cp -ip Makefile Makefile.org

・サーバー用証明書有効期限を1年から10年に変更します
sed -i 's/365/3650/g' Makefile

・サーバー用秘密鍵・自己証明書の作成
make server.crt
---下記を入力---------------------------
Enter pass phrase:1234(←表示されません)
Verifying - Enter pass phrase:1234(←表示されません)
Enter pass phrase for server.key:1234(←表示されません)
Country Name (2 letter code) [GB]:JP
State or Province Name (full name) [Berkshire]:<空エンター>
Locality Name (eg, city) [Newbury]:<空エンター>
Organization Name (eg, company) [My Company Ltd]:<空エンター>
Organizational Unit Name (eg, section) []:<空エンター>
Common Name (eg, your name or your server's hostname) []:centos65
Email Address []:<空エンター>
------------------------------

・サーバー用秘密鍵からパスワード削除
openssl rsa -in server.key -out server.key
---下記を入力---------------------------
Enter pass phrase for server.key:1234(←表示されません)
------------------------------


========== Apacheの設定(SSL) ==========
・SSL設定ファイルのオリジナルをバックアッップします
mv -i /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.org

・コンフィグを作成します。
vi /etc/httpd/conf.d/ssl.conf
---(下記を追加)---------------------------
ssl.conf
------------------------------

・httpd再起動
service httpd restart

・httpsで接続できることを確認(自己証明書なので警告が表示されます)


以上です。

Posted on 2013/12/04 Wed. 00:33 [edit]

category: サーバ

thread: Linux  -  janre: コンピュータ

TB: 0    CM: 2

04

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。