各種設定

CentOS7 ssh

Server refused our key

sshd_configの設定は以前と一緒だが、Server refused our keyのエラーが表示される。
~/.ssh にはデフォルトでssh_home_tという適切なコンテキストが付与されているのでそれを復帰する作業が必要とのこと。
restorecon -R -v /home/USERNAME/.ssh

PLESKのIPアクセス制限管理

間違えてログイン出来なくなった場合の解除方法

エラー: 現在適用されている IP アクセス制限ポリシーにより、アドレス '111.222.333.444' からの管理者アクセスは制限されています。

と表示されるようになり、困りました。Pleskのサーバー、管理者情報、アクセスの「リストにないネットワークからの接続を拒否する」を「リストに存在するネットワークからの接続を拒否する」にしてしまったようで、
mysqlのDB psa のmiscテーブルに該当パラメータparam=access_policy があり、val=denyをallowに変えると直る。

IPアドレスを間違えた場合は上のDNS_Allow_Transfer0やDNS_Allow_Transfer1のvalを直せばOK。サブネットがあるようなら111.222.333.444/29こんな感じ。


rsyncによるディレクトリコピー

下記HDDの自動マウントにも書いたが、rsyncでソフトウェアRAID的なことをしているが、書き方ひとつで大変なことになったのでメモ。

1 5 * * * rsync -auv --delete /var/ /backup/var/
1 3 * * * rsync -auv --delete /etc/ /backup/etc/
1 4 * * * rsync -auv --delete /home/ /backup/home/
Cronに上記の通り記載しているが、これのディレクトリの一番最後の/を外すと
1 5 * * * rsync -auv --delete /var /backup/var
1 3 * * * rsync -auv --delete /etc /backup/etc
1 4 * * * rsync -auv --delete /home /backup/home
CentOSではvar home etcなどが日々再帰的にコピーされてしまい、1ヶ月程度でHDDが埋まってしまいあせりました。(^^ゞ


HDDの自動マウント

vi /etc/fstab

debianで、起動ディスク以外は起動時に自動でmountされない。
fstabファイルに下記のような記述を追加。
/dev/sdb1 /mount ext3 errors=remount-ro 0 0

HDDのまるごとコピー

dd if=/dev/sda of=/dev/sdb bs=4096

ddというコマンドで簡単にまるごとコピーを取ることが出来る。
これでsdbのhddをsdaの挿さっていたところに挿せば問題なく起動できる。
これを使って毎朝rsyncでソフトウェアRAID的なことをしてバックアップしてます。


▲ページトップへ

qmail

qmailの設定に関すること。

Debianでqmailの設定

apt-get remove --purge exim4 exim4-base exim4-config
apt-get install ucspi-tcp-src
build-ucspi-tcp

apt-get install qmail-src 

cd /usr/local/src
wget http://jaist.dl.sourceforge.net/sourceforge/vpopmail/vpopmail-5.4.27.tar.gz

	-> 27はmakeファイルがおかしい。下記エラーがでます。

	gcc -g -O2 -Wall -o vchkpw vchkpw.o md5.o hmac_md5.o libvpopmail.a -lcrypt 
	libvpopmail.a(libvpopmail_a-vpopmail.o): In function `vdeluser':
	/root/vpopmail-5.4.27/vpopmail.c:1769: undefined reference to `backfill'
	libvpopmail.a(libvpopmail_a-vpopmail.o): In function `make_user_dir':
	/root/vpopmail-5.4.27/vpopmail.c:2371: undefined reference to `backfill'
	collect2: ld はステータス 1 で終了しました
	make[2]: *** [vchkpw] エラー 1
	make[2]: ディレクトリ `/root/vpopmail-5.4.27' から出ます
	make[1]: *** [all-recursive] エラー 1
	make[1]: ディレクトリ `/root/vpopmail-5.4.27' から出ます
	make: *** [all] エラー 2

tar xvzf vpopmail-5.4.27.tar.gz

groupadd -g 90 vchkpw
mkdir /home/vpopmail/
mkdir /home/vpopmail/etc

useradd -g vchkpw -d /home/vpopmail -u 90 -s /bin/false vpopmail

cd /home/vpopmail/etc
vi vpopmail.mysql

localhost|0|vpopmailuser|vpopmailpassword|vpopmaildb

mysql -u root -p

CREATE DATABASE vpopmaildb;
GRANT select,insert,update,delete,create,drop ON vpopmaildb.* 
TO vpopmailuser@localhost IDENTIFIED BY 'vpopmailpassword';
quit

apt-get install libmysqlclient15-dev

./configure \
--enable-roaming-users \                 # pop-before-smtpを許可
--enable-relay-clear-minutes=30 \        # pop認証結果を30分保存する(デフォルト180)
--enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp \
--enable-logging=p \                     # popエラーをsyslog(/var/log/maillog)に
--disable-ip-alias-domains \             # IPエイリアスドメインをサポートしない
--disable-passwd \                       # /etc/passwdユーザーを使わない
--enable-clear-passwd \                  # 管理人がvuserinfoなどを使って平文のパスワードを読める
(以下はmysqlを使うときのみ指定)
--enable-auth-module=mysql \             # ドメイン、アカウント管理はcdbでなくmysqlを使う
--enable-incdir=/usr/include/mysql \     # MySQLインストール時のものを
--enable-libdir=/usr/lib/mysql \         # 同上
--enable-many-domains \                  # ドメイン毎にテーブルを作らない
--enable-auth-logging \                  # 最後のpop認証データをmysqlに保存する
--enable-sql-logging \                 # pop認証エラーをmysqlのvlogテーブルに保存する
--disable-valias \                       # MySqlにvalias処理用データを格納しない
--disable-mysql-limits                   # MySQLでなく.qmailadmin-limitsファイルを使う




./configure --enable-roaming-users --enable-relay-clear-minutes=10 --enable-tcpserver-file=/home/vpopmail/etc/tcp.smtp
 --enable-logging=p --disable-ip-alias-domains --disable-passwd --enable-clear-passwd --enable-auth-module=mysql
 --enable--sqlincdir=/usr/include/mysql --enable-libdir=/var/lib/mysql --enable-many-domains --enable-auth-logging
 --enable-sql-logging --disable-valias --disable-mysql-limits


           vpopmail 5.4.27
            Current settings
---------------------------------------

vpopmail directory = /home/vpopmail
 domains directory = /home/vpopmail/domains
               uid = 90
               gid = 90
     roaming users = ON  --enable-roaming-users
    tcpserver file = /home/vpopmail/etc/tcp.smtp
    open_smtp file = /home/vpopmail/etc/open-smtp
rebuild tcpserver file = ON  --enable-rebuild-tcpserver-file (default)
 password learning = OFF --disable-learn-passwords (default)
     md5 passwords = ON  --enable-md5-passwords (default)
      file locking = ON  --enable-file-locking (default)
vdelivermail fsync = OFF --disable-file-sync (default)
     make seekable = ON  --enable-make-seekable (default)
      clear passwd = ON  --enable-clear-passwd (default)
 user dir hashing  = ON  --enable-users-big-dir (default)
address extensions = OFF --disable-qmail-ext (default)
          ip alias = OFF --disable-ip-alias-domains (default)
   onchange script = OFF --disable-onchange-script (default)
       auth module = mysql --enable-auth-module=mysql
 mysql replication = OFF --disable-mysql-replication (default)
       sql logging = ON  --enable-sql-logging
      mysql limits = OFF --disable-mysql-limits (default)
  SQL valias table = OFF --disable-valias (default)
          auth inc = -I/usr/include/mysql
          auth lib = -Xlinker -R -Xlinker /var/lib/mysql -L/var/lib/mysql  -lmysqlclient -lz -lm
  system passwords = OFF --disable-passwd (default)
        pop syslog = show failed attempts with clear text password --enable-logging=p
      auth logging = ON  --enable-auth-logging (default)
all domains in one SQL table = --enable-many-domains (default)
      spamassassin = OFF --disable-spamassassin (default)
          maildrop = OFF --disable-maildrop (default)


vi /home/vpopmail/etc/tcp.smtp

127.:allow,RELAYCLIENT=""
192.168.:allow,RELAYCLIENT=""

#clearopensmtp 
0-59/10 * * * * root /home/vpopmail/bin/clearopensmtp 2>&1 > /dev/null

cd /var/qmail/ 

vi ./rc

#!/bin/sh 
# Using splogger to send the log through syslog. 
# Using qmail-local to deliver messages to ~/Mailbox by default. 
exec env - PATH="/var/qmail/bin:$PATH" \ 
qmail-start ./Maildir splogger qmail

chmod 755 ./rc

vi /etc/rc.d/init.d/qmail

=================================================================
起動シェル

=================================================================

chmod 755 qmail

/etc/rc.d/init.d/qmail cdb <- 上記tcp.smtpをcdb化

chkconfig --add qmail

/home/vpopmail/bin/vadddomain ドメイン名

cd /usr/local/src

wget http://www.inter7.com/devel/ezmlm-0.53-idx-0.41.tar.gz 
tar xvzf ezmlm-0.53-idx-0.41.tar.gz 
make 
make setup

wget http://jaist.dl.sourceforge.net/sourceforge/qmailadmin/qmailadmin-1.2.12.tar.gz

tar xvzf qmailadmin-1.2.12.tar.gz

cd qmailadmin-1.2.12

※autoresponderを入れていないので、--enable-autoresponder-path=nとする 

./configure --enable-autoresponder-path=n --enable-htmldir=/var/www --enable-cgibindir=/usr/lib/cgi-bin/

make

            qmailadmin 1.2.12
            Current settings
---------------------------------------
       cgi-bin dir = /usr/lib/cgi-bin/
          html dir = /var/www
         image dir = /var/www/images/qmailadmin
         image URL = /images/qmailadmin
      template dir = /usr/local/share/qmailadmin
         qmail dir = /var/qmail
      vpopmail dir = /home/vpopmail
   autorespond dir = n
         ezmlm dir = /usr/local/bin/ezmlm
         ezmlm idx = yes
   mysql for ezmlm = yes
              help = no
      modify quota = no
   domain autofill = no
 modify spam check = no

make install-strip


mailコマンドでテスト!
# apt-get install mailutils

qmailの削除 qmailのqueueを削除するには?

qmailをアンインストールする必要があり、普通にdpkgで削除しようとしたら固まって先に進みません。

いろいろ見ていたらキューに残っていると削除できないことが判明。

今回のように全削除なら、/var/qmail/queue の配下mess,info,remote,localディレクトリの下にある、数字ディレクトリの中の数字だけのファイルを全部削除すれば良いようです。

▲ページトップへ

開放ポート

DNSやWEBサーバーの設定を確認する。

LSOF

このコマンドは「ファイルやデバイスなどを開いているユーザーを調べるコマンド」です。オプションでポートを利用しているプロセスを調べることが出来ます。

lsof -i:80

-i でポートを調べる。 :80でポート番号を指定。

Debian 3.1での結果

COMMAND   PID     USER   FD   TYPE  DEVICE SIZE NODE NAME
apache2  4187 www-data    4u  IPv4 1300861       TCP *:www (LISTEN)
apache2 21450     root    4u  IPv4 1300861       TCP *:www (LISTEN)
apache2 21531 www-data    4u  IPv4 1300861       TCP *:www (LISTEN)
apache2 21532 www-data    4u  IPv4 1300861       TCP *:www (LISTEN)
apache2 21533 www-data    4u  IPv4 1300861       TCP *:www (LISTEN)

Apacheが待ち受けていることが分かる。

▲ページトップへ

DNS

スペルミスで嫌な思いをする前に下記コマンドで確認!

nslookup

nslookup ドメイン名

Windowsからも同名のコマンドで確認可能。

OKの場合

>nslookup a-pock.co.jp
Server:         127.0.0.1
Address:        127.0.0.1#53

Name:   a-pock.co.jp
Address: 122.249.88.122
IPアドレスが返ってくる。

NGの場合

>nslookup apock.co.jp
Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find apock.co.jp: NXDOMAIN

このようにIPアドレスが返ってこない。

 

dig

dig @a-pock.co.jp a-pock.co.jp

@が問合せするDNS。省略可能

OKの場合

; <<>> DiG 9.2.4 <<>> a-pock.co.jp
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13058
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 2

;; QUESTION SECTION:
;a-pock.co.jp.                  IN      A

;; ANSWER SECTION:
a-pock.co.jp.           86400   IN      A       122.249.88.122

;; AUTHORITY SECTION:
a-pock.co.jp.           86400   IN      NS      dns2.a-pock.co.jp.
a-pock.co.jp.           86400   IN      NS      ns.a-pock.co.jp.
a-pock.co.jp.           86400   IN      NS      ns2.a-pock.co.jp.
a-pock.co.jp.           86400   IN      NS      dns1.a-pock.co.jp.

;; ADDITIONAL SECTION:
ns.a-pock.co.jp.        86400   IN      A       122.249.88.123
ns2.a-pock.co.jp.       86400   IN      A       122.249.88.122

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat May 17 16:31:21 2008
;; MSG SIZE  rcvd: 151

NGの場合

; <<>> DiG 9.2.4 <<>> apock.co.jp
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 63389
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;apock.co.jp.                   IN      A

;; AUTHORITY SECTION:
jp.                     649     IN      SOA     z.dns.jp. root.dns.jp. 1211008501 3600 900 604800 900

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat May 17 16:34:11 2008
;; MSG SIZE  rcvd: 76

dig @a-pock.co.jp a-pock.co.jp MX

一番後ろに「MX A NS」などを付けることで、該当するレコードを返してくれる。省略時はA

; <<>> DiG 9.2.4 <<>> a-pock.co.jp mx
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17927
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 2

;; QUESTION SECTION:
;a-pock.co.jp.                  IN      MX

;; ANSWER SECTION:
a-pock.co.jp.           86400   IN      MX      10 ns.a-pock.co.jp.

;; AUTHORITY SECTION:
a-pock.co.jp.           86400   IN      NS      dns1.a-pock.co.jp.
a-pock.co.jp.           86400   IN      NS      dns2.a-pock.co.jp.
a-pock.co.jp.           86400   IN      NS      ns.a-pock.co.jp.
a-pock.co.jp.           86400   IN      NS      ns2.a-pock.co.jp.

;; ADDITIONAL SECTION:
ns.a-pock.co.jp.        86400   IN      A       122.249.88.123
ns2.a-pock.co.jp.       86400   IN      A       122.249.88.122

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat May 17 16:37:22 2008
;; MSG SIZE  rcvd: 151

※バグなどがありましたら、ダウンロードしたソースにあるメールアドレスまでご一報ください。

▲ページトップへ