今日の役に立たない一言 - Today’s Trifle! -

古い記事ではさまざまなテーマを書いていますが、2007年以降はプログラミング関連の話がほとんどです。

serversman の初期設定

元ネタの多くは http://centossrv.com/ のものだけど、元ネタのままだといろいろと情報がいっぱいなので、自分的にここまでやっとけばとりあえずいいかな的なメモ。
MyDTIからCentOSを初期化してからの設定手順を書いてみた。

ファイアウォールの設定

メール系サービス(SMTP/POP/IMAP)を動かすなら、そこんとこのコメントをはずしてね。

# vi iptables.sh

スクリプトを作成。
以下、スクリプトの内容。

#!/bin/bash

PATH=/usr/bin:/bin:/sbin
LAN=venet0 

# ※↑自宅鯖系ページからコピーすると eth0 になってるのでエラーになる

/etc/rc.d/init.d/iptables stop

iptables -P INPUT   DROP   # 受信はすべて破棄
iptables -P OUTPUT  ACCEPT # 送信はすべて許可
iptables -P FORWARD DROP   # 通過はすべて破棄

# 自ホストからのアクセスをすべて許可
iptables -A INPUT -i lo -j ACCEPT

# 内部から行ったアクセスに対する外部からの返答アクセスを許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# ブロードキャストを破棄
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A INPUT -d 224.0.0.1 -j DROP

# SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# HTTPS
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# FTP
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# FTP-DATA
iptables -A INPUT -p tcp --dport 60000:60030 -j ACCEPT 
# ↑dportで指定したポート番号は ftpd の設定に合わせてね

# SMTP
#iptables -A INPUT -p tcp --dport 25 -j ACCEPT

# SMTPS
#iptables -A INPUT -p tcp --dport 465 -j ACCEPT

# POP3
#iptables -A INPUT -p tcp --dport 110 -j ACCEPT

# POP3S
#iptables -A INPUT -p tcp --dport 995 -j ACCEPT

# IMAP
#iptables -A INPUT -p tcp --dport 143 -j ACCEPT

# IMAPS
#iptables -A INPUT -p tcp --dport 993 -j ACCEPT


# 設定を保存
/etc/rc.d/init.d/iptables save

# ファイアウォール起動
/etc/rc.d/init.d/iptables start

iptables.sh を保存して、chmod +x iptables.sh して実行する。

yum-prioritiesプラグインのインストール

# yum -y intall yum-priority

赤文字部分を追加。

# vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1

ClamAntiVirusのインストールと起動

# yum -y install clamd

設定を変更。

# vi /etc/clamd.conf
User clamav
↓
#User clamav コメントアウト

clamdを起動する。

# /etc/rc.d/init.d/clamd start ←起動
Starting Clam AntiVirus Daemon:       [  OK  ]

自動起動設定する。

# chkconfig clamd on 自動起動設定
# freshclam -d -c 24 ←デーモンで1時間ごとにウィルス定義を更新

ユーザーの追加と削除

デフォルトで admin が存在してるけど、別のユーザーを追加したら、この人には消えてもらう。

# useradd -G wheel username
# passwd username
New UNIX password: ほげほげ
Retype new UNIX password: ほげほげ

ssh でログインして su できることも確認したら、admin を消す。

# userdel -r admin

sshdの設定

最後に追加すれば、それまでに書かれてる設定を上書きするみたいなので、途中を編集せずに最後に追加する。

# vi /etc/ssh/sshd_config
PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication yes
AllowUsers username

su の設定変更

# vi /etc/pam.d/su
#auth    required    pam_wheel.so use_uid
  ↓
auth    required    pam_wheel.so use_uid ←コメントをはずす

ここから追記
pam_abl ってのをインストールした方がいいみたい。

# yum -y install pam_abl

ここまで追記

みんな、鍵方式のログインにしてパスワードによるログインを禁止してるけど、いつもとは違う端末からログインしたくなったときにどうするつもりなんだろうとか思ったり思ったり。(鍵なんだから持ち歩け?)
鍵でログインする人だったらログインしてくるアカウントはだいたい信用できるので、

#auth    sufficient    pam_wheel.so trust use_uid
  ↓
auth    sufficient    pam_wheel.so trust use_uid

として、su するときのパスワード入力をなくすのもいいかも。

あと、ssh でログインしたつもりがホスト側から全然反応がなくて、「設定ミスったかもー><」とOS初期化して最初からやり直したりした。が、実はホスト側の反応が遅いだけだったらしい。
やり直したあとにも同じような現象が出て、またやっちまったかと思いつつ、たまたま3分くらい用事があって放置して、戻ったらログインできてたなんてことがあった。

反省してとりあえずログインできてるシェルは可能な限りログアウトしないようにして、別のインスタンスからログインテストするようにした。ログアウトしてなきゃ、設定をミスってても修正できるから。少しは学習能力があるんだぞ。