初期設定の内容をメモ書きしておく。
手順
システムのアップデート
[root@www ~]# yum update
コンソールの日本語化
[root@www ~]# cd /etc/sysconfig/ [root@www sysconfig]# cp i18n i18n.backup [root@www sysconfig]# vi i18n
1行目
LANG="C" → LANG="ja_JP.UTF-8"
ホスト名の変更
[root@www ~]# cd /etc/sysconfig/ [root@www sysconfig]# cp network network.backup [root@www sysconfig]# vi network
2行目
HOSTNAME=localhost.localdomain → HOSTNAME=XXXXX.XXXXX
SSH のポート変更
[root@www ~]# cd /etc/ssh [root@www ssh]# cp sshd_config sshd_config.backup [root@www ssh]# vi sshd_config
13行目
#Port 22 → Port XXXXX
SSH のポート変更の適用
[root@www ~]$ service sshd restart
ファイアウォールの設定
[root@www ~]# cd /etc/sysconfig/ [root@www sysconfig]# vi iptables
以下を書き込む(最終行に改行は不要)
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SSH -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport XXXXX -j ACCEPT # HTTP -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT # SMTP/SMTPS -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT # POP3 # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT # IMAP # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT # -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
ファイアウォールの設定の適用
[root@www sysconfig]# service iptables restart iptables: ファイアウォールルールを適用中: [ OK ] [root@www sysconfig]# service iptables restart iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ] iptables: ファイアウォールルールを消去中: [ OK ] iptables: モジュールを取り外し中: [ OK ] iptables: ファイアウォールルールを適用中: [ OK ]
IPv6 を無効化
[root@www~]# cd /etc/modprobe.d/ [root@www modprobe.d]# vi disable-ipv6.conf
以下を書き込む
options ipv6 disable=1
IPv6 関連のサービスの自動起動をしないように設定
[root@www ~]# /etc/init.d/ip6tables stop [root@www ~]# chkconfig ip6tables off [root@www ~]# chkconfig ip6tables --list ip6tables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
IPv6 の無効化により Postfix がエラーを出力するため、Postfix の IPv6 も無効にする
warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
warning: inet_protocols: configuring for IPv4 support only
[root@www ~]# cd /etc/postfix/ [root@www postfix]# cp main.cf main.cf.back [root@www postfix]# vi main.cf
119行目
inet_protocols = all → inet_protocols = ipv4
Postfix の IPv6 無効化設定の適用
[root@www ~]# /etc/init.d/postfix restart Shutting down postfix: [ OK ] Starting postfix: [ OK ]
Apache のインストール
[root@www ~]# yum install httpd
Apache の 設定
[root@www ~]# cd /etc/httpd/conf [root@www conf]# cp httpd.conf httpd.conf.backup [root@www conf]# vi httpd.conf
44行目
ServerTokens OS → ServerTokens Prod
262行目
ServerAdmin root@localhost → ServerAdmin XXXXX@XXXXX.XXXXX
331行目
Options Indexes FollowSymLinks → Options -Indexes FollowSymLinks
338行目
AllowOverride None → AllowOverride All
536行目
ServerSignature On → ServerSignature Off
Apache の設定の適用
[root@www ~]# service httpd start httpd を起動中: [ OK ] [root@www ~]# chkconfig httpd on [root@www ~]# chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL のインストール
[root@www ~]# yum install mysql-server
MySQL の設定
[root@www ~]# cd /etc/ [root@www etc]# cp my.cnf my.cnf.backup [root@www etc]# vi my.cnf
以下を追記
# character-set default-character-set=utf8 skip-character-set-client-handshake [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8
MySQL の設定の適用
[root@www ~]# service mysqld start MySQL データベースを初期化中: Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h XXXXX.XXXXX password 'new-password' Alternatively you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd /usr/mysql-test ; perl mysql-test-run.pl Please report any problems with the /usr/bin/mysqlbug script! [ OK ] mysqld を起動中: [ OK ] [root@www ~]# chkconfig mysqld on [root@www ~]# chkconfig --list mysqld mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL のパスワード設定
[root@www ~]# mysqladmin -u root password 'XXXXX'
不要なデータベースとユーザーの削除
[root@www ~]# mysql -u root -p mysql> drop database test; mysql> use mysql; mysql> select user, host , password from user; mysql> start transaction; mysql> delete from user where password = ''; mysql> select user, host , password from user; commit;
PHP のインストール
[root@www ~]# yum install php php-mbstring php-mysql php-pear php-mcrypt [root@www ~]# pear install -a Mail Mail_mimeDecode [root@www ~]# cd /etc/ [root@www etc]# cp php.ini php.ini.backup
946行目
;date.timezone = → date.timezone = Asia/Tokyo
[root@www ~]# service httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
ユーザーの作成
[root@www ~]# useradd XXXXX [root@www ~]# passwd XXXXX
SSH 接続用の鍵を作成
TeraTerm を起動
「新しい接続」ダイアログで「キャンセル」ボタンを押下
メニューから「設定」→「SSH鍵生成…」を選択
パスフレーズを入力し、「公開鍵の保存」と「秘密鍵の保存」ボタンを押下
鍵ファイルをローカルに保存
公開鍵は id_rsa.pub
秘密鍵は id_rsa とする
サーバーの SSH 設定を変更
公開鍵認証でログインしたいユーザーでログインする
公開鍵ファイルとなる id_rsa.pub を送信する
TeraTerm では、ログイン状態でウィンドウにファイルをドロップすれば、ユーザーの HOME に保存される
送信の際は、SCP ボタンを押下
[XXXXX@www ~]$ mkdir .ssh [XXXXX@www ~]$ mv id_rsa.pub .ssh/authorized_keys [XXXXX@www ~]$ chmod 600 .ssh/authorized_keys [XXXXX@www ~]$ chmod 700 .ssh/
SSH で root ログインとパスワードでログインを無効化する
[root@www ~]# cd /etc/ssh [root@www ssh]# vi sshd_config
42行目
#PermitRootLogin yes → PermitRootLogin no
64行目
#PasswordAuthentication yes → PasswordAuthentication no
SSH 変更の適用
[root@www ssh]# service sshd restart sshd を停止中: [ OK ] sshd を起動中: [ OK ]
sudo を使用するユーザーを wheel グループに追加する
[root@www ~]# usermod -G wheel XXXXX [root@www ~]# visudo
105行目
# %wheel ALL=(ALL) ALL → %wheel ALL=(ALL) ALL
コマンドのパスを通す
[XXXXX@www ~]$ vi .bash_profile
以下を追記する
PATH=$PATH:/sbin PATH=$PATH:/usr/sbin PATH=$PATH:/usr/local/sbin
反映する
[XXXXX@www ~]$ source ~/.bash_profile
メールボックスを用意する
[root@www ~]# mkdir -p /etc/skel/Maildir/{new,cur,tmp} [root@www ~]# chmod -R 700 /etc/skel/Maildir/ [XXXXX@www ~]$ mkdir Maildir [XXXXX@www ~]$ chmod 700 Maildir
Postfix の設定
[root@www ~]# cd /etc/postfix/ [root@www postfix]# vi main.cf
以下に変更
myhostname = XXXXX.XXXXX mydomain = XXXXX.XXXXX myorigin = $mydomain home_mailbox = Maildir/ smtpd_banner = $myhostname ESMTP unknown inet_interfaces = all inet_protocols = ipv4 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain local_recipient_maps = luser_relay = XXXXX
以下を追記
message_size_limit = 1024000
Postfix の設定の反映
[root@www ~]# service postfix restart postfix を停止中: [ OK ] postfix を起動中: [ OK ]
メール受信時に PHP のプログラムを実行
[root@www ~]# vi /etc/aliases XXXXX: cc "| /usr/bin/php -f /AAAAA/AAAAA.php" YYYYY: cc "| /usr/bin/php /BBBBB/app/Console/cake.php CCCCC" [root@www conf]# newaliases
以上、さくらインターネットVPSの初期設定についてでした。