2011年5月25日水曜日

Saasesのサーバー借りてみました その4(/4)

7. OpenVPNクライアント側の作業
OpenVPNのダウンロードページからファイルをダウンロードします。ここではOpenVPN 2.2.0 Windows Installerのを選びました。インストールはデフォルトのままです。

サーバーから必要なファイルを取得する。
CA証明書(/etc/openvpn/ca.crt)、クライアント証明書(/etc/openvpn/easy-rsa/keys/(クライアント名).crt)、クライアント秘密鍵(/etc/openvpn/easy-rsa/keys/(クライアント名).key)、TLS認証鍵(/etc/openvpn/ta.key) の各ファイルをOpenVPNをインストールしたフォルダにあるconfigフォルダ(デフォルトWindows7 x86環境だとC:\Program Files (x86)\OpenVPN\config)に入れる。

設定ファイル編集
OpenVPNをインストールしたフォルダにあるsaple-configフォルダからclient.ovpnをconfigフォルダにコピーし編集します。
remote my-server-1 1194
 ↓ に変更
remote (サーバーのIPとか名前とか) 1194

cert client.crt
key client.key
 ↓ に変更
cert (クライアント名).crt
key (クライアント名).key

;tls-auth ta.key 1
 ↓ ;を取ってコメント解除
tls-auth ta.key 1

接続してみます。
スタートメニューかデスクトップのOpenVPN GUIを実行し、タスクトレイのアイコンを右クリックしてConnectをクリック。
パスワードを入力すると接続できます。

これでradikoのページにアクセスしてみて東京エリアになってれば成功です。

Saasesのサーバー借りてみました その3(/4)

6. OpenVPNの設定
# yum -y install openvpn
CA証明書/鍵作成
# cp -r /usr/share/doc/openvpn-2.1.4/easy-rsa/2.0/ /etc/openvpn/easy-rsa
# cd /etc/openvpn/easy-rsa/
# chmod +x *
# source vars
# ./clean-all
# ./build-ca
Country Name (2 letter code) [US]:JP
State or Province Name (full name) [CA]:(県名とか)
Locality Name (eg, city) [SanFrancisco]:(市名とか)
Organization Name (eg, company) [Fort-Funston]:(会社名とか)
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [Fort-Funston CA]:(名前とかサーバー名とか)
Name []:
Email Address [me@myhost.mydomain]:(メールアドレス)
# cp keys/ca.crt /etc/openvpn/
サーバー証明書/秘密鍵作成
# ./build-key-server server
Country Name (2 letter code) [US]:JP
State or Province Name (full name) [CA]:(県名とか)
Locality Name (eg, city) [SanFrancisco]:(市名とか)
Organization Name (eg, company) [Fort-Funston]:(会社名とか)
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [server]:(サーバー名とか)
Name []:
Email Address [me@myhost.mydomain]:(メールアドレス)

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:Enter
An optional company name []:Enter
Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:''
stateOrProvinceName :PRINTABLE:''
localityName :PRINTABLE:''
organizationName :PRINTABLE:''
commonName :PRINTABLE:''
emailAddress :IA5STRING:''
Certificate is to be certified until May 21 09:56:14 2021 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
# cp keys/server.crt /etc/openvpn/
# cp keys/server.key /etc/openvpn/
DHパラメータ作成
# ./build-dh
# cp keys/dh1024.pem /etc/openvpn/
証明書廃止リスト作成
# ./build-key dmy
すべてEnterで、最後はyでOK。
# vi openssl.cnf
[ pkcs11_section ]
engine_id = pkcs11
dynamic_path = /usr/lib/engines/engine_pkcs11.so
MODULE_PATH = $ENV::PKCS11_MODULE_PATH
PIN = $ENV::PKCS11_PIN
init = 0
 ↓ #をつけてコメント
#[ pkcs11_section ]
#engine_id = pkcs11
#dynamic_path = /usr/lib/engines/engine_pkcs11.so
#MODULE_PATH = $ENV::PKCS11_MODULE_PATH
#PIN = $ENV::PKCS11_PIN
#init = 0
# ./revoke-full dmy
# cp keys/crl.pem /etc/openvpn/
# cd
OpenVPN設定
# openvpn --genkey --secret /etc/openvpn/ta.key
# cp /usr/share/doc/openvpn-2.1.4/sample-config-files/server.conf /etc/openvpn/
# cp /usr/share/doc/openvpn-2.1.4/sample-config-files/server.conf /etc/openvpn/
server 10.8.0.0 255.255.255.0
 ↓ に変更
server 192.168.11.0 255.255.255.0

;push "route 192.168.20.0 255.255.255.0"
 ↓ に変更
push "route 219.103.34.226 255.255.255.255"

;tls-auth ta.key 0 # This file is secret
 ↓ ;を取ってコメント解除
tls-auth ta.key 0 # This file is secret

;user nobody
;group nobody
 ↓ ;を取ってコメント解除
user nobody
group nobody

;log-append openvpn.log
 ↓ に変更
log-append /var/log/openvpn.log

下記を追加
management localhost 7505
crl-verify crl.pem
ログ設定
# vi /etc/logrotate.d/openvpn
下記を記述
/var/log/openvpn.log {
missingok
notifempty
sharedscripts
postrotate
/etc/rc.d/init.d/openvpn restart 2>&1 > /dev/null || true
endscript
}
OpenVPN起動
# vi /etc/rc.d/init.d/openvpn
#echo 1 > /proc/sys/net/ipv4/ip_forward
 ↓ #を取ってコメント解除
echo 1 > /proc/sys/net/ipv4/ip_forward

# service openvpn start
クライアント用証明書/鍵作成
# cd /etc/openvpn/easy-rsa/
# source vars
# ./build-key-pass (クライアント名)
はじめに接続用のパスワードを入力し、後聞かれることはサーバーのときと同様に。
サーバー側の設定はこれで終わりです。

Saasesのサーバー借りてみました その2(/4)

4. NTPの設定
# yum -y install ntp
パッケージを入れたら設定します
# vi /etc/ntp.conf
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
 ↓ に変更
server -4 ntp.nict.jp
server -4 ntp.jst.mfeed.ad.jp
保存したら、起動します。
# ntpdate ntp.nict.jp
# service ntpd start
# chkconfig ntpd on

5. iptables設定
OpenVPNで接続したクライアント用に192.168.11.0/24を割り当てるように想定して設定します。サーバーで開放するポートはSSH用10022番とOpenVPN用1194番です。OpenVPNで接続されたクライアントはIP Masqueradeで外に出れるようにします。
設定用ファイルを作ります。
# vi iptables.sh
下記を記述
#!/bin/bash

#---------------------------------------#
# 設定開始 #
#---------------------------------------#

# LANインタフェース名定義
WAN=eth0

# OpenVPN用設定
$LAN=tun0
LOCALNET_MASK=255.255.255.0
LOCALNET_ADDR=192.168.11.0
LOCALNET=$LOCALNET_ADDR/$LOCALNET_MASK

#---------------------------------------#
# 設定終了 #
#---------------------------------------#

# 自ホストIPアドレス取得
IPADDR=`ifconfig $WAN|sed -e 's/^.*inet addr:\([^ ]*\).*$/\1/p' -e d`

# ファイアウォール停止(すべてのルールをクリア)
/etc/rc.d/init.d/iptables stop

# パスMTU問題対処
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

# デフォルトルール(以降のルールにマッチしなかった場合に適用するルール)設定
iptables -P INPUT DROP # 受信はすべて破棄
iptables -P OUTPUT ACCEPT # 送信はすべて許可
iptables -P FORWARD DROP # 通過はすべて破棄

# SYN Cookiesを有効にする
# ※TCP SYN Flood攻撃対策
sysctl -w net.ipv4.tcp_syncookies=1 > /dev/null
sed -i '/net.ipv4.tcp_syncookies/d' /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies=1" >> /etc/sysctl.conf

# ブロードキャストアドレス宛pingには応答しない
# ※Smurf攻撃対策
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 > /dev/null
sed -i '/net.ipv4.icmp_echo_ignore_broadcasts/d' /etc/sysctl.conf
echo "net.ipv4.icmp_echo_ignore_broadcasts=1" >> /etc/sysctl.conf

# ICMP Redirectパケットは拒否
sed -i '/net.ipv4.conf.*.accept_redirects/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_redirects=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_redirects=0" >> /etc/sysctl.conf
done

# Source Routedパケットは拒否
sed -i '/net.ipv4.conf.*.accept_source_route/d' /etc/sysctl.conf
for dev in `ls /proc/sys/net/ipv4/conf/`
do
sysctl -w net.ipv4.conf.$dev.accept_source_route=0 > /dev/null
echo "net.ipv4.conf.$dev.accept_source_route=0" >> /etc/sysctl.conf
done

# フラグメント化されたパケットはログを記録して破棄
iptables -N LOG_FRAGMENT
iptables -A LOG_FRAGMENT -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES FRAGMENT] : '
iptables -A LOG_FRAGMENT -j DROP
iptables -A INPUT -f -j LOG_FRAGMENT
iptables -A FORWARD -f -j LOG_FRAGMENT

# 外からの送信元がプライベートIPアドレスのパケットはログを記録して破棄
# ※IP spoofing攻撃対策
iptables -N LOG_SPOOFING
iptables -A LOG_SPOOFING -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES SPOOFING] : '
iptables -A LOG_SPOOFING -j DROP
iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j LOG_SPOOFING
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j LOG_SPOOFING
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j LOG_SPOOFING
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j LOG_SPOOFING
iptables -A FORWARD -i eth0 -s 127.0.0.0/8 -j LOG_SPOOFING
iptables -A FORWARD -i eth0 -s 10.0.0.0/8 -j LOG_SPOOFING
iptables -A FORWARD -i eth0 -s 172.16.0.0/12 -j LOG_SPOOFING
iptables -A FORWARD -i eth0 -s 192.168.0.0/16 -j LOG_SPOOFING

# 外とのNetBIOS関連のアクセスはログを記録せずに破棄
iptables -A INPUT -i eth0 -p tcp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A INPUT -i eth0 -p udp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A OUTPUT -o eth0 -p udp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A FORWARD -i eth0 -p tcp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A FORWARD -i eth0 -p udp -m multiport --dports 135,137,138,139,445 -j DROP
iptables -A FORWARD -o eth0 -p tcp -m multiport --sports 135,137,138,139,445 -j DROP
iptables -A FORWARD -o eth0 -p udp -m multiport --sports 135,137,138,139,445 -j DROP

# 1秒間に4回を超えるpingはログを記録して破棄
iptables -N LOG_PINGDEATH
iptables -A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A LOG_PINGDEATH -j LOG --log-prefix '[IPTABLES PINGDEATH] : '
iptables -A LOG_PINGDEATH -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH

# 送信元IPアドレスがLANネットワーク範囲外のアクセスはログを記録して破棄
# ※Ingress対策
iptables -N LOG_INGRESS
iptables -A LOG_INGRESS -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES INGRESS] : '
iptables -A LOG_INGRESS -j DROP
iptables -A FORWARD -i $LAN -s ! $LOCALNET -j LOG_INGRESS

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

# LANからのアクセスをすべて許可
iptables -A INPUT -i $LAN -j ACCEPT
iptables -A FORWARD -i $LAN -j ACCEPT

# LANからのインターネットへの同時接続を可能にする
# ※IP masquerade(NAPT)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

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

# 外からの必須ICMPパケットを許可
iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A INPUT -p icmp --icmp-type source-quench -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A INPUT -p icmp --icmp-type parameter-problem -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type destination-unreachable -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type source-quench -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type parameter-problem -j ACCEPT

# 113番ポート(IDENT)へのアクセスには拒否応答
# ※メールサーバ等のレスポンス低下防止
iptables -A INPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
iptables -A FORWARD -p tcp --dport 113 -j REJECT --reject-with tcp-reset

# ACCEPT_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを許可するユーザ定義チェイン作成
ACCEPT_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
iptables -A ACCEPT_COUNTRY -s $addr -j ACCEPT
done
}

# DROP_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを破棄するユーザ定義チェイン作成
DROP_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
iptables -A DROP_COUNTRY -s $addr -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES DENY_COUNTRY] : '
iptables -A DROP_COUNTRY -s $addr -j DROP
done
}

# IPアドレスリスト取得
. /root/iptables_functions
IPLISTGET

# 日本からのアクセスを許可するユーザ定義チェインACCEPT_COUNTRY作成
iptables -N ACCEPT_COUNTRY
ACCEPT_COUNTRY_MAKE JP
# 以降,日本からのみアクセスを許可したい場合はACCEPTのかわりにACCEPT_COUNTRYを指定する

# 中国・韓国・台湾※からのアクセスをログを記録して破棄
# ※全国警察施設への攻撃元上位3カ国(日本・アメリカを除く)
# http://www.cyberpolice.go.jp/detect/observation.htmlより
iptables -N DROP_COUNTRY
DROP_COUNTRY_MAKE CN
DROP_COUNTRY_MAKE KR
DROP_COUNTRY_MAKE TW
iptables -A INPUT -j DROP_COUNTRY
iptables -A FORWARD -j DROP_COUNTRY

#----------------------------------------------------------#
# 自ホストが各種サービスを公開する場合の設定(ここから) #
#----------------------------------------------------------#

# WANからの22番ポート(SSH)へのアクセスを許可
# ※SSHサーバーを公開する場合のみ
iptables -A INPUT -i $WAN -p tcp --dport 10022 -j ACCEPT_COUNTRY

# WANからのTCP/UDP53番ポート(DNS)へのアクセスを許可
# ※WAN向けDNSサーバーを運用する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 53 -j ACCEPT
#iptables -A INPUT -i $WAN -p udp --dport 53 -j ACCEPT

# WANからの80番ポート(HTTP)へのアクセスを許可
# ※Webサーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 80 -j ACCEPT

# WANからの443番ポート(HTTPS)へのアクセスを許可
# ※Webサーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 443 -j ACCEPT

# WANからの21番ポート(FTP)へのアクセスを許可
# ※FTPサーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 21 -j ACCEPT_COUNTRY

# WANからのPASV用ポート(FTP-DATA)へのアクセスを許可
# ※FTPサーバーを公開する場合のみ
# ※PASV用ポート60000:60030は当サイトの設定例
#iptables -A INPUT -i $WAN -p tcp --dport 60000:60030 -j ACCEPT_COUNTRY

# WANからの25番ポート(SMTP)へのアクセスを許可
# ※SMTPサーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 25 -j ACCEPT

# WANからの465番ポート(SMTPS)へのアクセスを許可
# ※SMTPSサーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 465 -j ACCEPT_COUNTRY

# WANからの110番ポート(POP3)へのアクセスを許可
# ※POP3サーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 110 -j ACCEPT_COUNTRY

# WANからの995番ポート(POP3S)へのアクセスを許可
# ※POP3Sサーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 995 -j ACCEPT_COUNTRY

# WANからの143番ポート(IMAP)へのアクセスを許可
# ※IMAPサーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 143 -j ACCEPT_COUNTRY

# WANからの993番ポート(IMAPS)へのアクセスを許可
# ※IMAPSサーバーを公開する場合のみ
#iptables -A INPUT -i $WAN -p tcp --dport 993 -j ACCEPT_COUNTRY

# WANからのUDP1194番ポート(OpenVPN)へのアクセスを許可
# ※IMAPSサーバーを公開する場合のみ
iptables -A INPUT -i $WAN -p udp --dport 1194 -j ACCEPT_COUNTRY

# 上記のルールにマッチしなかったアクセスはログを記録して破棄
iptables -A INPUT -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES INPUT] : '
iptables -A INPUT -j DROP
iptables -A FORWARD -j LOG --log-tcp-options --log-ip-options --log-prefix '[IPTABLES FORWARD] : '
iptables -A FORWARD -j DROP

# 再起動時にも上記設定が有効となるようにルールを保存
/etc/rc.d/init.d/iptables save

# ファイアウォール起動
/etc/rc.d/init.d/iptables start
IPアドレスリスト取得用スクリプトを作ります。
# vi iptables_functions
下記を記述
# IPアドレスリスト取得関数定義
IPLISTGET(){
# http://nami.jp/ipv4bycc/から最新版IPアドレスリストを取得する
wget -q http://nami.jp/ipv4bycc/cidr.txt.gz
gunzip cidr.txt.gz
# 最新版IPアドレスリストが取得できなかった場合
if [ ! -f cidr.txt ]; then
if [ -f /tmp/cidr.txt ]; then
# バックアップがある場合はその旨をroot宛にメール通知して処理を打ち切る
echo cidr.txt was read from the backup! | mail -s $0 root
return
else
# バックアップがない場合はその旨をroot宛にメール通知して処理を打ち切る
echo cidr.txt not found!|mail -s $0 root
exit 1
fi
fi
# 最新版IPアドレスリストを /tmpへバックアップする
/bin/mv cidr.txt /tmp/cidr.txt
}
IPアドレスリスト更新チェック
# vi /etc/cron.daily/iplist_check-router.sh
下記を記述
#!/bin/bash

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# 新旧IPLIST差分チェック件数(0を指定するとチェックしない)
# ※新旧IPLIST差分がSABUN_CHKで指定した件数を越える場合はiptables設定スクリプトを実行しない
# ※新旧IPLIST差分チェック理由はhttp://centossrv.com/bbshtml/webpatio/1592.shtmlを参照
SABUN_CHK=100
[ $# -ne 0 ] && SABUN_CHK=${1}

# チェック国コード
COUNTRY_CODE='JP CN KR TW'

# iptables設定スクリプトパス
IPTABLES=/root/iptables-router.sh

# iptables設定スクリプト外部関数取り込み
. /root/iptables_functions

# IPアドレスリスト最新化
rm -f IPLIST.new
IPLISTGET
for country in $COUNTRY_CODE
do
if [ -f /tmp/cidr.txt ]; then
grep ^$country /tmp/cidr.txt >> IPLIST.new
else
grep ^$country /tmp/IPLIST >> IPLIST.new
fi
done
[ ! -f /tmp/IPLIST ] && cp IPLIST.new /tmp/IPLIST

# IPアドレスリスト更新チェック
diff -q /tmp/IPLIST IPLIST.new > /dev/null 2>&1
if [ $? -ne 0 ]; then
if [ ${SABUN_CHK} -ne 0 ]; then
if [ $(diff /tmp/IPLIST IPLIST.new | egrep -c '<|>') -gt ${SABUN_CHK} ]; then
(
diff /tmp/IPLIST IPLIST.new
echo
echo "$IPTABLES not executed."
) | mail -s 'IPLIST UPDATE' root
rm -f IPLIST.new
exit
fi
fi
/bin/mv IPLIST.new /tmp/IPLIST
$IPTABLES > /dev/null
else
rm -f IPLIST.new
fi
保存したら実行します。
# chmod 700 iptables.sh
# chmod +x /etc/cron.daily/iplist_check-router.sh
# ./iptables.sh

Saasesのサーバー借りてみました その1(/4)

SaasesのVPSサーバーを借りてみました。
とりあえず自宅PCからOpenVPNでサーバーに繋いで、radikoの関東エリアを聞けるようにしてみたいと思ってます。

1. 環境
Saases共用サーバーOsukiniサーバー(VPS) LT
CentOS5.5 x64(最小構成sshのみ)
設定はCentOSで自宅サーバー構築さんのページを主に参考にしてます。

2. sshのポート変更(22->10022)
他のサーバーも22番から10022番に変更しているので、ここも合わせました。
(前に22番への意味不明なアクセスが多かったので変更してからそのままなだけであまり意味ありません)
# vi /etc/ssh/sshd_config
#Port 22
 ↓ #を取ってコメント解除し、10022に変更
Port 10022
保存したら、一旦iptablesを停止しsshdを再起動します。
(できればiptablesを設定後sshdを再起動が良いと思いますが...)
# /sbin/service iptables stop
# /sbin/service sshd restart
その後sshを接続しなおします。

3. パッケージ更新
OSのインストール時にパッケージも更新されているように見えますが、念のため...
# yum -y update
それからパッケージの自動更新用にyum-cronもいれます。
# yum -y install yum-cron
次にyum-prioritiesもいれます。
# yum -y install yum-priorities
入れ終わったらリポジトリファイルを編集します。
# vi /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
priority=1 ←追加

#released updates
[updates]
name=CentOS-$releasever - 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 ←追加

[extras]
name=CentOS-$releasever - 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 ←追加

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1 ←追加

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
priority=1 ←追加
RPMforgeを使えるようにします。
# wget http://apt.sw.be/RPM-GPG-KEY.dag.txt
# rpm --import RPM-GPG-KEY.dag.txt
# rm -f RPM-GPG-KEY.dag.txt
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm
# yum -y update rpmforge-release
#