以前に「さくらのVPS」を借りて CentOS の設定をした時のメモです
CentOS はまず最小構成でセットアップしました
--------------------------------------------------------
・まずはモジュール類のアップデート
yum update
--------------------------------------------------------
・セキュリティーがきついと色々設定しにくかったので selinux は disable に設定
/etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - SELinux is fully disabled.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= type of policy in use. Possible values are:
# targeted - Only targeted network daemons are protected.
# strict - Full SELinux protection.
SELINUXTYPE=targeted
# SETLOCALDEFS= Check local definition changes
SETLOCALDEFS=0
--------------------------------------------------------
・NTP を設定してみた
yum install ntp
chkconfig ntpd on
/etc/ntp.conf の server の処に書いてあるサーバーにとりあえず時間を合わす
ntpdate 0.centos.pool.ntp.org
最後にサービススタート
/etc/rc.d/init.d/ntpd start
しばらくして ntptrace で、localhost 以外が出ていればOKと思われる
--------------------------------------------------------
・なんで cron や at が入ってないかな・・・
yum install vixie-cron
chkconfig crond on
/etc/rc.d/init.d/crond start
yum install at
chkconfig atd on
/etc/rc.d/init.d/atd start
--------------------------------------------------------
・キーボードマップの変更(私は英語キーボードを使っているので・・・)
/etc/sysconfig/keyboard の KEYTABLE を us に変更して再起動
--------------------------------------------------------
・人まねでファイヤーウォールの設定
/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
# ここに開いておくポートを並べる
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
|
/etc/rc.d/init.d/iptables restart
--------------------------------------------------------
・ssh でパスワード認証を禁止
※クライアント認証キーを作ってから、パスワードなしでログインできるのを確認してからにすること
/etc/ssh/sshd_config の PasswordAuthentication を no に変更(追加)
/etc/init.d/sshd restart
--------------------------------------------------------
・ホスト名の変更
/etc/sysconfig/network の HOSTNAME を変更
--------------------------------------------------------
・ロケールの変更
(時代に反して、昔からSJISを使っているので・・・)
/etc/sysconfig/i18n の LANG を ja_JP.SJIS に変更
localedef -f SHIFT_JIS -i ja_JP ja_JP.SJIS
~/.exrc に 「set fileencodings=utf8,cp932,latin」を追加
--------------------------------------------------------
・タイムゾーンの変更
cp -p /usr/share/zoneinfo/Japan /etc/localtime
これだけ?
--------------------------------------------------------
・ftp が入ってない・・・
yum -y install vsftpd
chkconfig vsftpd on
・chroot する設定
/etc/vsftpd/vsftpd.conf の以下を修正
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
/etc/vsftpd/chroot_list ファイルを空で作っておく
・パッシブモードを有効に
/etc/vsftpd/vsftpd.conf の以下を修正
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10009
※ファイヤーウォールの設定をしているので、使用ポートを限定しないといけないので、ポートの設定をする。その後ファイヤーウォールのポートの設定も行う
・最後に起動
/etc/init.d/vsftpd start
--------------------------------------------------------
・apache のインストール
yum -y install httpd
/etc/httpd/conf/httpd.conf を編集
chkconfig httpd on
・suexec のエラーが出てたので、とりあえず使用しない方向で・・・
/usr/sbin/suexec のリネーム(無かったら使わないらしい)
・昔使ってた http用のカウンターの設定
http://www.yolinux.com/TUTORIALS/LinuxTutorialWWW-PageCounter.html でソースをダウンロード
適当なところに展開してビルド
./build --without-database --prefix=/home/www/Counter --with-cgi-bin-dir=/home/www/http/bin
※/home/www/Counter : カウンターのデータファイルなどの置き場所
※ /home/www/http/bin : カウンターのバイナリーの置き場所
・cgiparse これも昔から使っている変数のパーサー(CRENのサーバーについてたやつ)
https://www.w3.org/Daemon/Implementation/ で CGIParse.c をダウンロードしてコンパイル
その時エラーをつぶしながらコンパイルするけど、HTUnEscape が見つけれなかったので、自作
void HTUnEscape(char *arg){
int i; int h; char hex[ 3 ];
for ( i = 0 ; arg[ i ] != 0 ; i ++ ) {
if ( arg[ i ] == '%' ) {
hex[ 0 ] = arg[ i + 1 ];
hex[ 1 ] = arg[ i + 2 ];
hex[ 2 ] = 0;
h = strtol( hex , NULL , 16 );
sprintf( arg + i , "%c" , h );
for ( h = i + 1 ; arg[ h + 2 ] != 0 ; h ++ ) arg[ h ] = arg[ h + 2 ];
arg[ h ] = 0;
}
}
}
|
上記以外は、普通のCの書き方にすればコンパイルは通りました
BOOL -> bool とか
たぶんヘッダファイル
#include "HTUtils.h"
#include "HTParse.h"
に書いてあるだあろう BOOL や ARG2,ARG3 のマクロを作れば良いのだと今更ながら思う・・・
--------------------------------------------------------
・sendmailの設定(私は sendmail 派なんです!)
yum install sendmail-cf
以下を編集
/etc/mail/sendmail.mc
/etc/mail/access
/etc/mail/domaintable
/etc/mail/mailertable
/etc/mail/virtusertable
/etc/mail/local-host-names
makemap hash virtusertable < virtusertable
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
/etc/aliases ※ これを編集したら newaliases
service sendmail start
・rbl の設定も入れておこう
/etc/mail/sendmail.mc に以下の1行を追加
FEATURE(dnsbl,`all.rbl.jp',`"554 Rejected " $&{client_addr} " found in all.rbl.jp"')dnl
--------------------------------------------------------
・popのインストール
yum install dovecot
/etc/dovecot.conf で first_valid_uid = 150 を設定
※ ユーザーIDの一番若いのを指定する。これをしないと繋がらなかった!
chkconfig dovecot on
/etc/rc.d/init.d/dovecot start
--------------------------------------------------------
・pop befor smtp のインストール
適当なディレクトリーでにモジュールをダウンロードして展開
wget https://sourceforge.net/projects/popbsmtp/files/Source%20tar/1.42 /pop-before-smtp-1.42.tar.gz/download
tar xzvf pop-before-smtp-1.42.tar.gz
cd pop-before-smtp-1.42
cp pop-before-smtp.init /etc/rc.d/init.d/pop-before-smtp
cp pop-before-smtp /usr/sbin/
cp pop-before-smtp-conf.pl /etc
cp contrib/popauth.m4 /usr/share/sendmail-cf/hack
perl のスクリプトなので必要なモジュールをインストール
perl -MCPAN -e shell
(いろいろ質問が出されますが、基本的にはEnterキーで進めばOKらしい)
cpan> install Time::HiRes
cpan> install File::Tail
cpan> install Date::Parse
cpan> install Net::Netmask
cpan> install BerkeleyDB
/etc/pop-before-smtp-conf.pl を編集
$logto = '/var/log/pop-before-smtp'; ※出力ログの設定
$grace = 10*60; ※有効な時間
$file_tail{'name'} = '/var/log/maillog'; ※監視するログ
※ まず基本の設定
=cut #------------------------- Sendmail SMTP -------------------------START-
=cut #------------------------- Sendmail SMTP ---------------------------END-
上記2行の先頭の「=cut」をはずして間の行を有効にする
最後に
# For Dovecot POP3/IMAP when using syslog.
$pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
'Login: .*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';
#$out_pat = '^[LOGTIME] \S+ (?:dovecot: )?(?:imap|pop3)-login: ' .
# 'Disconnected.*? (?:\[|rip=)[:f]*(\d+\.\d+\.\d+\.\d+)[],]';
の部分のコメントをはずすんですが、下の2行を有効にすると、時間がたってもIPのリストが消えなかった
chkconfig dovecot on
/etc/rc.d/init.d/dovecot start
sendmail の方の設定
/etc/mail/sendmail.mc の追加
define(`POP_B4_SMTP_TAG', `')dnl
HACK(popauth)
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
service sendmail restart
#アドレスの確認
makemap -u hash /etc/mail/popauth.db
--------------------------------------------------------
・spamassassin を入れてみた
yum install spamassassin
chkconfig spamassassin on
/etc/cron.daily/spamassassin-update の作成
(https://tlec.linux.or.jp/がアクセスできないので、http://www.flcl.org/~yoh/user_prefs をダウンロードして加工する)
#!/bin/bash
# TLEC(http://tlec.linux.or.jp/)よりSpamAssassin設定ファイル最新版ダウンロード
cd /etc/mail/spamassassin
wget -qN http://www.flcl.org/~yoh/user_prefs
cp user_prefs local.cf
# スパム判断したメールを添付形式にしないように設定
echo "report_safe 0" >> local.cf
# メール件名に「[SPAM]」の文字列を付加するように設定
echo "rewrite_header Subject [SPAM]" >> local.cf
# SpamAssassin再起動
/etc/rc.d/init.d/spamassassin restart > /dev/null
/etc/cron.daily にコピーして毎日実行
/etc/sysconfig/spamassassin 修正
SPAMDOPTIONS="-d -c -m5 -H"
↓
SPAMDOPTIONS="-d -c -m5 -H -u smmsp"
/etc/rc.d/init.d/spamassassin start
wget ftp://fr2.rpmfind.net/linux/dag/redhat/el5/en/ x86_64/dag/RPMS/spamass-milter-0.3.1-1.el5.rf.x86_64.rpm
rpm -ivh spamass-milter-0.3.1-1.el5.rf.x86_64.rpm
/etc/sysconfig/spamass-milter の修正
EXTRA_FLAGS="-u smmsp -r 30 -i 127.0.0.1,192.168.0.2"
chkconfig spamass-milter on
/etc/rc.d/init.d/spamass-milter start
/etc/mail/sendmail.mc 編集
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
define(`confINPUT_MAIL_FILTERS', `spamassassin')dnl
define(`confMILTER_MACROS_ENVRCPT',`r, v, Z, b')dnl
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
service sendmail restart
--------------------------------------------------------
・SMTP AUTH を入れてみる
(今回 /etc/shadow を使用するので、cram-md5 方式や digest-md5 方式は設定できないらしいです)
yum install cyrus-sasl
yum install cyrus-sasl-md5
yum install cyrus-sasl-gssapi
yum install cyrus-sasl-plain
yum install cyrus-sasl-devel
/etc/sysconfig/saslauthd
MECH=shadow
saslpasswd2 -c -u xxxx ※/etc/sasldb の作成 これは不要だと思う
chkconfig saslauthd on
service saslauthd start
※AL-MAIL を使っている人は https://www.almail.com/op25b.html ここで PLAIN 対応版をダウンロードすれば使えました
・CentOSの設定
・SPFレコードのチェック
・CGI が動かなくなる
・CentOSのバージョンアップ
・PostgreSQLのバージョンアップではまった
・Postgresql の互換性
・Java Web Start の互換性(?)
|
|