Cent OS 基本設定の覚書
Linux環境に触る経験するためにさくらのVPSを利用してみた。そこでの基本設定内容について覚書を残しておく。
今回は月間980円を利用。また利用する環境は簡単には次の通り。
ユーザの設定
- rootでログインして、rootのパスワードを変更。
passwd
- 自分の利用するユーザの作成して、利用ユーザのパスワード変更。
passwd xxxxx
- 利用ユーザをwheelグループに追加。
% usermod -G wheel xxxxx
wheelグループとは、UNIX系システム上でスーパーユーザー(root)特権を得ることのできるユーザーの
属するグループの名称。通常,UNIX系システムでは一般ユーザーがスーパーユーザー権限を得るために
suコマンドを使用するが,何らセキュリティの対処が行われていないシステムでは,多くの場合どの一般
ユーザーでもスーパーユーザー権限を得ることができる。PAMを利用すると,スーパーユーザー権限を得る
ことが可能な一般ユーザーを限定でき,この権利を持っている一般ユーザーをwheelと呼ばれるグループに
所属させる。
- visudoの編集で、wheelグループのコメントを外す。
wheel ALL=(ALL) ALL
- 作業用アカウントで再度ログイン。OKならrootで開いていた方を閉じる。
- パスを通す。PATH=$PATH:$HOME/binの下の行に追加。
% vi .bash_profile
PATH=$PATH:/sbin
PATH=$PATH:/usr/sbin
PATH=$PATH:/usr/local/sbin
sourceコマンドで確認。
% source .bash_profile
SSHの設定
% ssh-keygen -C 'XXXXXXXXX'
% cd ~/.ssh
% touch authorized_keys
% chmod 600 authorized_keys
% cat id_rsa.pub >> authorized_keys
- scpで作成したauthorized_keysを接続先のホストの.ssh配下にコピーする。
- SSHの設定変更(ポート番号の変更、パスワードログインの禁止、rootログインの禁止)。
% vi /etc/ssh/sshd_config
- SSHポート番号の変更
#Port 22
↓
Port 10022
- SSHでパスワードのログインの禁止
#PermitRootLogin yes
↓
PermitRootLogin no
- SSHでのrootログインの禁止
#PubkeyAuthentication yes
↓
PubkeyAuthentication yes
- SSHでのパスワードのログインの禁止。root以外のユーザにも公開鍵認証を必要とさせる。
#PasswordAuthentication yes
↓
PasswordAuthentication no
- sshdの再起動。
設定内容を反映させるためにsshdの再起動。
% /etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
- 鍵認証でログインできるか確認。
デフォルトポートでssh接続が行えなくなっていることを確認。
sshでrootのログインができなくなっていることを確認。
sshでRSA公開鍵を設定した端末から接続できることを確認。
screenの設定
- screenのインストール、設定(.screenrcの編集)
% yum -y install screen
- .screenrcの編集はまた別途。
screenの設定
- システムの更新
% yum update
iptablesの設定。
- /etc/sysconfig/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, HTTP, HTTPS, FTP1, FTP2, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT
-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 443 -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 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibitedCOMMIT
- iptablesの再起動と設定の確認
設定ファイルを作成した後にiptables を再起動する。
% sudo /etc/init.d/iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
% iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhereChain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhereChain OUTPUT (policy ACCEPT)
target prot opt source destinationChain RH-Firewall-1-INPUT (2 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT icmp -- anywhere anywhere icmp any
ACCEPT esp -- anywhere anywhere
ACCEPT ah -- anywhere anywhere
ACCEPT udp -- anywhere 224.0.0.251 udp dpt:mdns
ACCEPT udp -- anywhere anywhere udp dpt:ipp
ACCEPT tcp -- anywhere anywhere tcp dpt:ipp
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:10022
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp-data
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:mysql
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
システムの言語設定
- システムを日本語に設定を変更する。
- 設定完了後、ログインし直す。