はじめに
作業用アカウントの作成
○作業用アカウントの作成
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 | ||
php | phpの最新版入れたいのでいろいろ設定。このあたりを参考に。 「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 です。 MailTo = hoge@example.com # hoge@example.com は、自分のメールアドレスに変えておいてください。 さらに詳細な設定は、第29 回 「logwatch によるログの収集」 とかを参考にすると良いと思うよ |