Cent OS 基本設定の覚書

Linux環境に触る経験するためにさくらのVPSを利用してみた。そこでの基本設定内容について覚書を残しておく。
今回は月間980円を利用。また利用する環境は簡単には次の通り。

OS:CentOS 5 x86_64
メモリ:512MB
HDD:20GB

ユーザの設定

  • 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用のRSA公開鍵を作成する。

% ssh-keygen -C 'XXXXXXXXX'

  • ~/.sshにid_rsa、id_rsa.pubが作成されていることを確認し、authorized_keysを作成する。

% 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のログインができなくなっていることを確認。
sshRSA公開鍵を設定した端末から接続できることを確認。

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-prohibited

COMMIT

  • 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 anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination
RH-Firewall-1-INPUT all -- anywhere anywhere

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Chain 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

システムの言語設定

  • システムを日本語に設定を変更する。

% sudo vi /etc/sysconfig/i18n
LANG="C"

LANG="ja_JP.UTF-8"

  • 設定完了後、ログインし直す。