VPS ≪サーバーを使う≫

はじめに

作業用アカウントの作成

 ○作業用アカウントの作成
   useradd [作業ユーザ]
 ○作業用アカウントのパスワード設定
   passwd [作業ユーザ]

(参考) ○ユーザの削除 userdel [消したいユーザ]

作業用アカウントをwheelグループに追加



○rmコマンド(ファイルやディレクトリを削除する)
rm sample.html →同一ディレクトリ内のsample.htmlを削除 rm -r directory →ディレクトリごとの削除
rm -rf directory →ディレクトリごとの削除(削除確認なし)
ただしfを入れることによって確認されないので カレントディレクトや削除するディレクトリの位置を確認しないと 不要でないディレクトリが削除されてしまうので注意してください。
心配なら絶対パスで指定することをおすすめします。 rm -rf /data/directory など
またディレクトやファイルの所有者やパーミッションによっては root権限かユーザの切り替えが必要な場合がありますが、 できればroot権限で無い方は、ディレクトリ指定の誤りにより システムファイルの消去を防止出来ます。




作業用アカウントをwheelグループに追加○作業用アカウントをwheelグループに追加し、作成した作業用ユーザがrootになれるようにする(→sudoを使えるようにする) usermod -G wheel [作業ユーザ]

rootでのログインを禁止
# vi /etc/ssh/sshd_config
PermitRootLogin yes  ↓ 以下のように変更 PermitRootLogin no





○idコマンド

○CentOS内のユーザ一覧を確認する cat /etc/passwd

コマンドについて

例)vi /etc/ssh/sshd_config
○ rootでのログイン時
vi /etc/ssh/sshd_config

作業用ユーザでのログイン時

sudo vi /etc/ssh/sshd_config
⇒通常は、作業用アカウントでログインするが  以下の説明では、”sudo”の記載はしない。(つもり)。  
必要時にsudoもしくはsuでrootになり、操作する。

SSHの設定変更






SSHの設定ファイル○編集 vim /etc/ssh/sshd_config vi /etc/ssh/sshd_config


設定変更内容



○SSHのポート番号の変更 22番ポート→(例)10022
ポート番号:WELL KNOWN PORT NUMBERS の 0~1023番以外なら自由に割り振れる

rootログインを無効○rootでログインできないようにする



○rootログインの禁止 #PermitRootLogin no ⇒(元は PermitRootLogin yes )


○パスワードログインの禁止



#PermitEmptyPasswords no ⇒ PermitEmptyPasswords no (パスワード無しのログインを禁止)


○rootのパスワードの変更 ○rootでログイン ○rootパスワード変更 passwd



#RSAAuthentication yes ⇒(RSA認証を許可) RSAAuthentication yes #PubkeyAuthentication yes ⇒(公開鍵認証を許可) PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys ⇒(認証鍵ファイルの場所を指定) AuthorizedKeysFile .ssh/authorized_keys #PasswordAuthentication yes ⇒ (rhost認証を無効) PasswordAuthentication no #RhostsRSAAuthentication no ⇒ (rhost認証を無効) RhostsRSAAuthentication no



設定の保存設定を保存する


SSHの再起動○sshの再起動(sshdを再起動) 設定を反映させるためにsshdをリスタートします /etc/init.d/sshd restart







作業用アカウントのホームに.sshを作って鍵SCPしたり、 Permission変えたり。 生成



なにはともあれ「yum -y install screen」。.screenrcの編集

visudoの編集(「%wheel ALL=(ALL) ALL」を有効化)。

作業用アカウントで再度ログイン。OKならrootで開いていた方を閉じる。

iptablesの設定

○iptablesはlinuxに組み込まれているパケットフィルター機能。

 iptablesを設定することで、必要ないパケット(ポート)を拒否し、セキュリティーの向上が期待できる可能性がある。






ルールセットファイルiptablesは /etc/sysconfig/iptables にある。 vi /etc/sysconfig/iptables ←(rootでのログイン時) ip sudo vi /etc/sysconfig/iptables ←(作業ユーザーでのログイン時) で、viが起動し、編集することが出来る。
○インストール yum install iptables
※さくらVPSでは、iptables は、初期設定でインストール済み。


○Webサーバとして運用するなら、SSH、HTTP、FTP、HTTPS 辺りを空けておく。





設定の反映(適用)○設定を反映(適用)させる  →iptablesを再起動
(参考) ○サービスの開始/停止/再起動 /etc/init.d/iptables start ←(開始) /etc/init.d/iptables stop ←(停止) /etc/init.d/iptables restart ←(再起動)
sudo /etc/rc.d/init.d/iptables restart(作業用ユーザでログインの場合)
iptablesのルールセットは、/etc/sysconfig/iptablesに記述する。 起動スクリプト/etc/init.d/iptablesを実行すると、iptables-restoreユーティリティを使ってルールセットファイルを読み込む
○設定の確認 iptables -L
場合によってはroot権限が必要



ルールセットファイルを修正したとき、再起動が必要

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
# HTTP, FTP1, FTP2, SSH -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 20 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT

<(参考)解説>
# SSH, HTTP, FTP1, FTP2,DNS,FTP(PASV)より上はおまじないと思ってもらって 詳しくしりた方はこちらに解説があります。
○SSHの設定で設定したポートを通す -A SERVICE -m state -state NEW -m tcp -p tcp -dport 1000 -j ACCEPT ○HTTPの通信を通す -A SERVICE -m state -state NEW -m tcp -p tcp -dport 80 -j ACCEPT ○FTPのデータ用の通信を通す -A SERVICE -m state -state NEW -m tcp -p tcp -dport 20 -j ACCEPTF ○FTPの制御用の通信を通す -A SERVICE -m state -state NEW -m tcp -p tcp -dport 21 -j ACCEPT ○DNSのTCPパケットを通す -A SERVICE -m state -state NEW -m tcp -p tcp -dport 53 -j ACCEPT ○DNSのUDPパケットを通す -A SERVICE -m state -state NEW -m udp -p udp -dport 53 -j ACCEPT ○FTPのパッシブモードのポート域を設定する[50000番~50500番] -A SERVICE -m state -state NEW -m tcp -p tcp -dport 50000:50500 -j ACCEPT
○今までの設定で引っかからなかったパケットを接続拒否して破棄する -A SERVICE -j REJECT -reject-with icmp-host-prohibited

※SSHのポート番号を22番から変更している場合は、変更したポート番号にする!





不要サービスの停止○不要サービスの停止(ここらへんを参考に)。





サーバーの再起動





設定変更の確認
○鍵認証の設定の確認  ・鍵認証でログインできるか  ・rootでログイン出来ないようになっているか

まだメールの設定を行ってませんが

httpの設定をコピーして、2行作成して

httpの80番→25(SMTP用)

httpの80番→110(POP3用)

↑↑↑↑↑

変更することでパケットを通す事ができるが、

25番ポートを不用意に開けるとメールの不正中継などで・・・・ので、十分注意。

システムを日本語に(ここらへん)。

○名前のないユーザーを削除

○chkconfig設定

chkconfig mysqld on

chkconfig sshd on

chkconfig iptables on

chkconfig httpd






apache○インストール yum -y install httpd ○起動 service httpd start


phpphpの最新版入れたいのでいろいろ設定。このあたりを参考に。 「yum -y install php php-devel php-pear php-mbstring php-gd php-mysql」でずんどこインストール。


Mysql○インストール yum -y install mysql-server ○
mysqlの文字コードをUTF-8に統一して再起動(このあたり)。 mysqlのrootのパスワード設定。



○メール・・・postfix とか



○VirtualHostとか

運用ツール

log監視
Logwatch毎日の運用ログを1日一回、各種ログをキレイに整形してメールで送ってくれる
○インストール sudo yum install logwatch
–print オプションをつけると、メールが送られずにコンソールに結果が表示されます。
sudo /usr/sbin/logwatch –print
設定ファイルは /etc/logwatch/conf/logwatch.conf です。
中を見てみると
# Local configuration options go here (defaults are in /usr/share/logwatch/default.conf/logwatch.conf)
とだけ書かれてますね。
デフォルト設定と違う設定にしたい場合は、このファイルに書いていってください。
デフォルトだと root 宛てにメールを送る設定になってるので以下のような行を追加して、メールのあて先を変更してやってください

MailTo = hoge@example.com
# hoge@example.com は、自分のメールアドレスに変えておいてください。 さらに詳細な設定は、第29回 「logwatch によるログの収集」 とかを参考にすると良いと思うよ