やってみた: 2008年1月アーカイブ
みなさんこんばんは、(っ´∀`)っ ゃー です。
ここんとこ無駄に忙しくてpopopoに書けるようなネタに困っていたのですが、
今日は久々に新しい小ネタができました。
(っ´∀`)っ ゃー がいる会社ではDNSサーバを持っているのですが、
外向きにはコンテンツサーバとして稼動させていて、再帰検索は
許可していませんでした。しかし、お客様から急遽「キャッシュサーバ作って♪」と
気楽に依頼されてしまったので、いそいそと作業することに。
■■ 環境
OS CentOS release 4.6 (Final)
インストールしたもの bind-9.2.4-28.el4
■■ bindインストール
■ yum コマンドでインストール
[root@hoge ~]# yum install bind
■■ named.conf編集
[root@hoge ~]# cd /etc/
※ デフォルトのnamed.confはこうなっています。
// Default named.conf generated by install of bind-9.2.4-28.el4
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
include "/etc/rndc.key";
ここに、必要な事項を書き加えてやります。
まずはオリジナルのファイルをバックアップしましょう。
[root@hoge etc]# cp -p named.conf named.conf.orig
そしてnamed.confの編集です。
[root@hoge etc]# vi named.conf
// Default named.conf generated by install of bind-9.2.4-28.el4
options {
directory "/var/named";
// dump-file "/var/named/data/cache_dump.db";
// statistics-file "/var/named/data/named_stats.txt";
allow-query { any; };
};
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/var/named/db.root";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa";
};
include "/etc/rndc.key";
■ ゾーンファイル作成
次に、ルートサーバのゾーンファイルと自分自身の名前解決のための
ゾーンファイルを作ってやります。
[root@hoge etc]# cd /var/named/
ルートサーバのnsレコードを検索して、db.rootというファイル名で
保存してやります。以下のコマンド一発でOKです。
[root@hoge named]# dig @A.ROOT-SERVERS.NET . ns > db.root
できあがったファイルを確認してみましょう。
[root@hoge named]# cat db.root
; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30
K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129
;L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12
L.ROOT-SERVERS.NET. 3600000 IN A 199.7.83.42
M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33
;; Query time: 81 msec
;; SERVER: 198.41.0.4#53(a.root-servers.net.)
;; WHEN: Sun Feb 1 11:27:14 2004
;; MSG SIZE rcvd: 436
次に、ローカルホストの正引ファイルを作ってやります。
[root@hoge named]# vi localhost.zone
$TTL 300
@ IN SOA localhost. root.localhost.(
2008013001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
IN A 127.0.0.1
そして、ローカルホストの逆引ファイルを作ってやります。
[root@hoge named]# vi 0.0.127.in-addr.arpa
$TTL 300
@ IN SOA localhost. root.localhost.(
2008013001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
■■ 確認
named-checkzoneコマンドで、ゾーンファイルの書式を確認します。
[root@hoge named]# named-checkzone localhost localhost.zone
zone localhost/IN: loaded serial 2008013001
OK
[root@hoge named]# named-checkzone 127.0.0.1 0.0.127.in-addr.arpa
zone 127.0.0.1/IN: loaded serial 2008013001
OK
named-checkconfコマンドで、named.confの書式を確認します。
[root@hoge named]# named-checkconf /etc/named.conf
■■ named起動
■ syslog (/var/log/messags) をtailしながら、namedを起動
[root@hoge named]# cd
[root@hoge ~]# /etc/init.d/named start
Starting named: [ OK ]
[root@hoge ~]# tail -f /var/log/messages
Jan 30 16:25:08 hoge named[7117]: starting BIND 9.2.4 -u named
Jan 30 16:25:08 hoge named[7117]: using 1 CPU
Jan 30 16:25:08 hoge named[7117]: loading configuration from '/etc/named.conf'
Jan 30 16:25:08 hoge named[7117]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 30 16:25:08 hoge named[7117]: listening on IPv4 interface eth0, 219.94.xxx.xxx#53
Jan 30 16:25:08 hoge named[7117]: command channel listening on 127.0.0.1#953
Jan 30 16:25:08 hoge named[7117]: command channel listening on ::1#953
Jan 30 16:25:08 hoge named[7117]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2008013001
Jan 30 16:25:08 hoge named[7117]: zone localhost/IN: loaded serial 2008013001
Jan 30 16:25:08 hoge named[7117]: running
Jan 30 16:25:08 hoge named: named startup succeeded
■ namedの自動起動設定
まずは現状確認
[root@hoge ~]# chkconfig named --list
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
自動起動
[root@hoge ~]# chkconfig named on
自動起動確認
[root@hoge ~]# chkconfig named --list
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
プロセス確認
[root@hoge ~]# ps auxwww | grep [n]amed
named 7117 0.0 0.1 37240 2512 ? Ssl 16:25 0:00 /usr/sbin/named -u named
■■ iptablesの設定
これまで、hogeサーバはメールサーバとして機能させていたので、tcp/udpの53番は
許可していませんでした。なので、iptablesの穴をあけてやることにします。
■ /etc/sysconfig/iptablesファイルの修正
[root@hoge ~]# cd /etc/sysconfig/
[root@hoge sysconfig]# cp -p iptables iptables.20080130
[root@hoge sysconfig]# vi iptables
以下を追記
# DNS
-A INPUT -p udp --dport 53 -j ACCEPT
-A INPUT -p tcp --dport 53 -j ACCEPT
[root@hoge sysconfig]# diff iptables iptables.20080130
56,59d55
< # DNS
< -A INPUT -p udp --dport 53 -j ACCEPT
< -A INPUT -p tcp --dport 53 -j ACCEPT
<
■ iptablesの解除タイマーを仕込む
万が一のOPミスでサーバにログインできなくなったらどうにもならないので、
iptablesをstopさせるよう、cronに仕込んでおきます。
[root@hoge sysconfig]# cd /etc/cron.d
[root@hoge cron.d]# vi iptables_clear
以下を追記
0,10,20,30,40,50 * * * * root /etc/init.d/iptables stop
■■ 事前確認
[root@hoge cron.d]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 218.219.xxx.xxx 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:4949
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 218.216.xx.yyz 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT udp -- 210.255.xx.xx/28 0.0.0.0/0 udp dpt:161
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
■■ iptables 再起動
[root@hoge cron.d]# /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 ]
■■ 事後確認
[root@hoge sysconfig]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 218.219.xxx.xxx 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:4949
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 218.216.xx.yyz 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ← ここ
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ← ここ
ACCEPT udp -- 210.255.xx.xx/28 0.0.0.0/0 udp dpt:161
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
■ iptablesの解除タイマーをoffにする
[root@hoge cron.d]# vi iptables_clear
以下、コメントアウトする
#0,10,20,30,40,50 * * * * root /etc/init.d/iptables stop
以上で、キャッシュサーバのできあがりです。
ね、簡単でしょ?
ここんとこ無駄に忙しくてpopopoに書けるようなネタに困っていたのですが、
今日は久々に新しい小ネタができました。
(っ´∀`)っ ゃー がいる会社ではDNSサーバを持っているのですが、
外向きにはコンテンツサーバとして稼動させていて、再帰検索は
許可していませんでした。しかし、お客様から急遽「キャッシュサーバ作って♪」と
気楽に依頼されてしまったので、いそいそと作業することに。
■■ 環境
OS CentOS release 4.6 (Final)
インストールしたもの bind-9.2.4-28.el4
■■ bindインストール
■ yum コマンドでインストール
[root@hoge ~]# yum install bind
■■ named.conf編集
[root@hoge ~]# cd /etc/
※ デフォルトのnamed.confはこうなっています。
// Default named.conf generated by install of bind-9.2.4-28.el4
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
include "/etc/rndc.key";
ここに、必要な事項を書き加えてやります。
まずはオリジナルのファイルをバックアップしましょう。
[root@hoge etc]# cp -p named.conf named.conf.orig
そしてnamed.confの編集です。
[root@hoge etc]# vi named.conf
// Default named.conf generated by install of bind-9.2.4-28.el4
options {
directory "/var/named";
// dump-file "/var/named/data/cache_dump.db";
// statistics-file "/var/named/data/named_stats.txt";
allow-query { any; };
};
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/var/named/db.root";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa";
};
include "/etc/rndc.key";
■ ゾーンファイル作成
次に、ルートサーバのゾーンファイルと自分自身の名前解決のための
ゾーンファイルを作ってやります。
[root@hoge etc]# cd /var/named/
ルートサーバのnsレコードを検索して、db.rootというファイル名で
保存してやります。以下のコマンド一発でOKです。
[root@hoge named]# dig @A.ROOT-SERVERS.NET . ns > db.root
できあがったファイルを確認してみましょう。
[root@hoge named]# cat db.root
; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30
K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129
;L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12
L.ROOT-SERVERS.NET. 3600000 IN A 199.7.83.42
M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33
;; Query time: 81 msec
;; SERVER: 198.41.0.4#53(a.root-servers.net.)
;; WHEN: Sun Feb 1 11:27:14 2004
;; MSG SIZE rcvd: 436
次に、ローカルホストの正引ファイルを作ってやります。
[root@hoge named]# vi localhost.zone
$TTL 300
@ IN SOA localhost. root.localhost.(
2008013001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
IN A 127.0.0.1
そして、ローカルホストの逆引ファイルを作ってやります。
[root@hoge named]# vi 0.0.127.in-addr.arpa
$TTL 300
@ IN SOA localhost. root.localhost.(
2008013001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
■■ 確認
named-checkzoneコマンドで、ゾーンファイルの書式を確認します。
[root@hoge named]# named-checkzone localhost localhost.zone
zone localhost/IN: loaded serial 2008013001
OK
[root@hoge named]# named-checkzone 127.0.0.1 0.0.127.in-addr.arpa
zone 127.0.0.1/IN: loaded serial 2008013001
OK
named-checkconfコマンドで、named.confの書式を確認します。
[root@hoge named]# named-checkconf /etc/named.conf
■■ named起動
■ syslog (/var/log/messags) をtailしながら、namedを起動
[root@hoge named]# cd
[root@hoge ~]# /etc/init.d/named start
Starting named: [ OK ]
[root@hoge ~]# tail -f /var/log/messages
Jan 30 16:25:08 hoge named[7117]: starting BIND 9.2.4 -u named
Jan 30 16:25:08 hoge named[7117]: using 1 CPU
Jan 30 16:25:08 hoge named[7117]: loading configuration from '/etc/named.conf'
Jan 30 16:25:08 hoge named[7117]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 30 16:25:08 hoge named[7117]: listening on IPv4 interface eth0, 219.94.xxx.xxx#53
Jan 30 16:25:08 hoge named[7117]: command channel listening on 127.0.0.1#953
Jan 30 16:25:08 hoge named[7117]: command channel listening on ::1#953
Jan 30 16:25:08 hoge named[7117]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2008013001
Jan 30 16:25:08 hoge named[7117]: zone localhost/IN: loaded serial 2008013001
Jan 30 16:25:08 hoge named[7117]: running
Jan 30 16:25:08 hoge named: named startup succeeded
■ namedの自動起動設定
まずは現状確認
[root@hoge ~]# chkconfig named --list
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
自動起動
[root@hoge ~]# chkconfig named on
自動起動確認
[root@hoge ~]# chkconfig named --list
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
プロセス確認
[root@hoge ~]# ps auxwww | grep [n]amed
named 7117 0.0 0.1 37240 2512 ? Ssl 16:25 0:00 /usr/sbin/named -u named
■■ iptablesの設定
これまで、hogeサーバはメールサーバとして機能させていたので、tcp/udpの53番は
許可していませんでした。なので、iptablesの穴をあけてやることにします。
■ /etc/sysconfig/iptablesファイルの修正
[root@hoge ~]# cd /etc/sysconfig/
[root@hoge sysconfig]# cp -p iptables iptables.20080130
[root@hoge sysconfig]# vi iptables
以下を追記
# DNS
-A INPUT -p udp --dport 53 -j ACCEPT
-A INPUT -p tcp --dport 53 -j ACCEPT
[root@hoge sysconfig]# diff iptables iptables.20080130
56,59d55
< # DNS
< -A INPUT -p udp --dport 53 -j ACCEPT
< -A INPUT -p tcp --dport 53 -j ACCEPT
<
■ iptablesの解除タイマーを仕込む
万が一のOPミスでサーバにログインできなくなったらどうにもならないので、
iptablesをstopさせるよう、cronに仕込んでおきます。
[root@hoge sysconfig]# cd /etc/cron.d
[root@hoge cron.d]# vi iptables_clear
以下を追記
0,10,20,30,40,50 * * * * root /etc/init.d/iptables stop
■■ 事前確認
[root@hoge cron.d]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 218.219.xxx.xxx 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:4949
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 218.216.xx.yyz 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT udp -- 210.255.xx.xx/28 0.0.0.0/0 udp dpt:161
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
■■ iptables 再起動
[root@hoge cron.d]# /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 ]
■■ 事後確認
[root@hoge sysconfig]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 218.219.xxx.xxx 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:4949
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 218.216.xx.yyz 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ← ここ
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ← ここ
ACCEPT udp -- 210.255.xx.xx/28 0.0.0.0/0 udp dpt:161
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
■ iptablesの解除タイマーをoffにする
[root@hoge cron.d]# vi iptables_clear
以下、コメントアウトする
#0,10,20,30,40,50 * * * * root /etc/init.d/iptables stop
以上で、キャッシュサーバのできあがりです。
ね、簡単でしょ?
sudoを使ってると、使うたびに /var/log/messages へ
ログが吐き出されます。これでいいっちゃーいいのですが
1) sudoのログを別にとって、監査証跡にしたい
(auditでもいい気がするが)
2) 実は /var/log/messages にsudoのログが吐かれるのは生理的にウザい
というわけで、sudoのログを分離することにします。
■■ sudoのログを取る
ここを見て、このとーりにやればできます。ただし、これだけだと、 /var/log/sudo.log にsudoに関するログが出力されるのはいいのですが、 /var/log/messages の出力がなくなるわけではありません。
■■ syslog.conf でsudoのログに関する設定
前の項では、local1でsudo.logをとる設定をしました(お手本サイトではlocal3と書いてありましたが、local0からlocal7まで、あいているものなら何でもよいです)。今度は、syslog.confで
1) /var/log/messagesにlocal1のログを吐かない
2) local1のログを /var/log/sudologとして吐き出す
という設定をします。
■ visudoコマンドでログに関する記述をする
sh-3.00# visudo
### 末尾に以下を追記
Defaults syslog=local1
■ syslog.conf修正
sh-3.00# cd /etc/
sh-3.00# cp -p syslog.conf syslog.conf.orig
sh-3.00# vi syslog.conf
ここを
local7.* /var/log/boot.log
こうする
local1.* /var/log/sudolog
local7.* /var/log/boot.log
ここを
*.info;mail.none;authpriv.none;cron.none /var/log/messages
こうする
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
■■ 反映
sh-3.00# /etc/init.d/syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
■■ 確認
sh-3.00$ sudo tail /var/log/sudolog
Jan 8 23:39:54 intra1 sudo: shasta : TTY=pts/1 ; PWD=/home/shasta ; USER=root ; COMMAND=/usr/bin/tail /var/log/sudolog
sh-3.00# grep sudo /var/log/messages
※ 何も出力されていないこと
以上で設定は完了です。
※ 余談ですが・・・
以前、誤って syslog.conf で
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
とするべきところを
*.info;mail.none;authpriv.none;cron.none;sudo.none /var/log/messages
としてしまい、一切のsyslog(/var/log/messages)が出力されなかったことがあります。。。その他のアプリケーションでエラーログが出て「あー俺バカだなー。こんな凡ミスしてらー」と気が付くことはあっても、そもそものsyslogが出力されないと、全く気が付く術がありません。この時は、コンソールに流れるメッセージで気が付きましたが、手元にないサーバだったら、きっとハマってたかもです。。。
ログが吐き出されます。これでいいっちゃーいいのですが
1) sudoのログを別にとって、監査証跡にしたい
(auditでもいい気がするが)
2) 実は /var/log/messages にsudoのログが吐かれるのは生理的にウザい
というわけで、sudoのログを分離することにします。
■■ sudoのログを取る
ここを見て、このとーりにやればできます。ただし、これだけだと、 /var/log/sudo.log にsudoに関するログが出力されるのはいいのですが、 /var/log/messages の出力がなくなるわけではありません。
■■ syslog.conf でsudoのログに関する設定
前の項では、local1でsudo.logをとる設定をしました(お手本サイトではlocal3と書いてありましたが、local0からlocal7まで、あいているものなら何でもよいです)。今度は、syslog.confで
1) /var/log/messagesにlocal1のログを吐かない
2) local1のログを /var/log/sudologとして吐き出す
という設定をします。
■ visudoコマンドでログに関する記述をする
sh-3.00# visudo
### 末尾に以下を追記
Defaults syslog=local1
■ syslog.conf修正
sh-3.00# cd /etc/
sh-3.00# cp -p syslog.conf syslog.conf.orig
sh-3.00# vi syslog.conf
ここを
local7.* /var/log/boot.log
こうする
local1.* /var/log/sudolog
local7.* /var/log/boot.log
ここを
*.info;mail.none;authpriv.none;cron.none /var/log/messages
こうする
#*.info;mail.none;authpriv.none;cron.none /var/log/messages
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
■■ 反映
sh-3.00# /etc/init.d/syslog restart
Shutting down kernel logger: [ OK ]
Shutting down system logger: [ OK ]
Starting system logger: [ OK ]
Starting kernel logger: [ OK ]
■■ 確認
sh-3.00$ sudo tail /var/log/sudolog
Jan 8 23:39:54 intra1 sudo: shasta : TTY=pts/1 ; PWD=/home/shasta ; USER=root ; COMMAND=/usr/bin/tail /var/log/sudolog
sh-3.00# grep sudo /var/log/messages
※ 何も出力されていないこと
以上で設定は完了です。
※ 余談ですが・・・
以前、誤って syslog.conf で
*.info;mail.none;authpriv.none;cron.none;local1.none /var/log/messages
とするべきところを
*.info;mail.none;authpriv.none;cron.none;sudo.none /var/log/messages
としてしまい、一切のsyslog(/var/log/messages)が出力されなかったことがあります。。。その他のアプリケーションでエラーログが出て「あー俺バカだなー。こんな凡ミスしてらー」と気が付くことはあっても、そもそものsyslogが出力されないと、全く気が付く術がありません。この時は、コンソールに流れるメッセージで気が付きましたが、手元にないサーバだったら、きっとハマってたかもです。。。
GIGAZINEさまの記事 MySQLの状態がリアルタイムでわかるMySQL用topコマンド「mytop」と「innotop」 に触発されて、mytopを入れてみた。GIGAZINEさまの記事ではソースからコンパイルしているが、なんでもrpmで入れたい派の私は、rpmforgeからパッケージを探すことにした。
■■ パッケージを探す
sh-3.00# yum --enablerepo=rpmforge search mytop
Loading "fastestmirror" plugin
Searching Packages:
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
Excluding Packages in global exclude list
Finished
mytop.noarch 1.4-1.el4.rf rpmforge
Matched from:
mytop
mytop is a console-based (non-gui) tool for monitoring the threads and
overall performance of a MySQL 3.22.x, 3.23.x, and 4.x server. It runs
on most Unix systems (including Mac OS X) which have Perl, DBI, and
Term::ReadKey installed. And with Term::ANSIColor installed you even
get color. If you install Time::HiRes, you'll get good real-time
queries/second stats. As of version 0.7, it even runs on Windows
(somewhat).
http://jeremy.zawodny.com/mysql/mytop/
■■ パッケージを探す
sh-3.00# yum --enablerepo=rpmforge search mytop
Loading "fastestmirror" plugin
Searching Packages:
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
Excluding Packages in global exclude list
Finished
mytop.noarch 1.4-1.el4.rf rpmforge
Matched from:
mytop
mytop is a console-based (non-gui) tool for monitoring the threads and
overall performance of a MySQL 3.22.x, 3.23.x, and 4.x server. It runs
on most Unix systems (including Mac OS X) which have Perl, DBI, and
Term::ReadKey installed. And with Term::ANSIColor installed you even
get color. If you install Time::HiRes, you'll get good real-time
queries/second stats. As of version 0.7, it even runs on Windows
(somewhat).
http://jeremy.zawodny.com/mysql/mytop/
【MySQL】mytopを入れてみたの続きを読む
blogcubeのサーバは、ココを参考にしてproftpdの認証データをmysqlに持たせている。
この方法でサーバ作ろうと思い立ったのが1年くらい前で、当時わけもわからずコピペで作ったのだが、ちょっと運用に難が出たというか、ちょびっとだけ面倒だなーと思うようになってきた。
理由は、ftpのアカウントを作るのにわざわざSSHでログインしてmysqlぶっ叩いてinsertするのが面倒だから。せっかくphpMyAdmin入れてるんだから、そこからアカウント作ったり消したりパスワード変更したりできたほうがよい。勿論、phpMyAdminのセキュリティをガッチリしておかないとならないのは言うまでもないが、ここでは本筋じゃないので割愛。
■ 変更箇所
旧) SQLAuthTypes Crypt
新) SQLAuthTypes Plaintext
あとはproftpdを再起動してやれば、プレーンテキスト(平文)としてパスワードが表示される。ただし、今までCrypt化したパスワードは、一度作りなおしてやらなければならない。ちなみに、ほかに使える認証方式はココを参考にすれば大丈夫でしょう。
この方法でサーバ作ろうと思い立ったのが1年くらい前で、当時わけもわからずコピペで作ったのだが、ちょっと運用に難が出たというか、ちょびっとだけ面倒だなーと思うようになってきた。
理由は、ftpのアカウントを作るのにわざわざSSHでログインしてmysqlぶっ叩いてinsertするのが面倒だから。せっかくphpMyAdmin入れてるんだから、そこからアカウント作ったり消したりパスワード変更したりできたほうがよい。勿論、phpMyAdminのセキュリティをガッチリしておかないとならないのは言うまでもないが、ここでは本筋じゃないので割愛。
■ 変更箇所
旧) SQLAuthTypes Crypt
新) SQLAuthTypes Plaintext
あとはproftpdを再起動してやれば、プレーンテキスト(平文)としてパスワードが表示される。ただし、今までCrypt化したパスワードは、一度作りなおしてやらなければならない。ちなみに、ほかに使える認証方式はココを参考にすれば大丈夫でしょう。
CentOSでランダムなパスワードを生成するには「mkpasswd」コマンドを使えばできるのだが、残念ながらデフォルトではインストールされていない。ただし、baseリポジトリにあるexpectというパッケージに含まれているので、何も考えずにyumコマンドでインストールすることができる。
■■ yum search expect の出力結果(該当部分のみ抜粋)
expect.i386 5.42.1-1 base
Matched from:
expect
Expect is a tcl application for automating and testing
interactive applications such as telnet, ftp, passwd, fsck,
rlogin, tip, etc. Expect makes it easy for a script to
control another program and interact with it.
■■ インストール
sh-3.00# yum install expect
■■ まずは使ってみる
sh-3.00$ mkpasswd
!3bWVyoy1
このように、パスワードに使えそうなランダムな文字列が出力された。
再度実行してみると・・・
sh-3.00$ mkpasswd
Sfv7@Mhv2
今度は違う文字列が出てきました。
■■ ちょっと応用
大文字小文字の有無や記号使用の有無、数字使用の有無や文字数の指定もできます。
以下は、「記号を使わない」「大文字は2文字」「数字は2文字」で「8文字で出力」をオプション指定したものです。
sh-3.00$ mkpasswd -s 0 -C 2 -d 2 -l 8
tdg07HHq
■■ もうちょっと応用
linuxには、大量にUNIXアカウントを作成するツールとして「newusers」コマンドがあります。
# newusers 【平文パスワードが記載されたパスワードファイル】
というように、newusersコマンドの引数にファイルを指定してやればユーザの大量登録ができますが、
ユーザ追加のたびに手打ちでパスワードをつけるのは骨です。そこで今回は、新しく「user01」という
ユーザを1名作成する場合を想定した例をあげましょう。
【user01のデータを作成】
# echo user01:`mkpasswd -s 0 -C 2 -d 2 -l 8`:501:501:User 01:\/home\/user01:\/bin\/bash > userdata.txt
【newusersコマンドでuser01を登録】
# newusers userdata.txt
【/etc/passwd を確認】
# grep ^user01 /etc/passwd
user01:x:501:501:User 01:/home/user01:/bin/bash
【できあがったパスワードを確認】
# cat userdata.txt
user01:Foj89Xea:501:501:User 01:/home/user01:/bin/bash
【user01でログインして確認】
login as: user01
user01@192.168.0.110's password:
Last login: Fri Jan 4 22:21:50 2008 from 192.168.0.101
-bash-3.00$ id
uid=501(user01) gid=501(user01) groups=501(user01)
以上でランダムなパスワードを用いたユーザ作成の手順は終了です。
■■ yum search expect の出力結果(該当部分のみ抜粋)
expect.i386 5.42.1-1 base
Matched from:
expect
Expect is a tcl application for automating and testing
interactive applications such as telnet, ftp, passwd, fsck,
rlogin, tip, etc. Expect makes it easy for a script to
control another program and interact with it.
■■ インストール
sh-3.00# yum install expect
■■ まずは使ってみる
sh-3.00$ mkpasswd
!3bWVyoy1
このように、パスワードに使えそうなランダムな文字列が出力された。
再度実行してみると・・・
sh-3.00$ mkpasswd
Sfv7@Mhv2
今度は違う文字列が出てきました。
■■ ちょっと応用
大文字小文字の有無や記号使用の有無、数字使用の有無や文字数の指定もできます。
以下は、「記号を使わない」「大文字は2文字」「数字は2文字」で「8文字で出力」をオプション指定したものです。
sh-3.00$ mkpasswd -s 0 -C 2 -d 2 -l 8
tdg07HHq
■■ もうちょっと応用
linuxには、大量にUNIXアカウントを作成するツールとして「newusers」コマンドがあります。
# newusers 【平文パスワードが記載されたパスワードファイル】
というように、newusersコマンドの引数にファイルを指定してやればユーザの大量登録ができますが、
ユーザ追加のたびに手打ちでパスワードをつけるのは骨です。そこで今回は、新しく「user01」という
ユーザを1名作成する場合を想定した例をあげましょう。
【user01のデータを作成】
# echo user01:`mkpasswd -s 0 -C 2 -d 2 -l 8`:501:501:User 01:\/home\/user01:\/bin\/bash > userdata.txt
【newusersコマンドでuser01を登録】
# newusers userdata.txt
【/etc/passwd を確認】
# grep ^user01 /etc/passwd
user01:x:501:501:User 01:/home/user01:/bin/bash
【できあがったパスワードを確認】
# cat userdata.txt
user01:Foj89Xea:501:501:User 01:/home/user01:/bin/bash
【user01でログインして確認】
login as: user01
user01@192.168.0.110's password:
Last login: Fri Jan 4 22:21:50 2008 from 192.168.0.101
-bash-3.00$ id
uid=501(user01) gid=501(user01) groups=501(user01)
以上でランダムなパスワードを用いたユーザ作成の手順は終了です。
いつもいつも、configファイルを編集するのに、私の場合はviで既存の行をコピーしてコメントアウトし、その真下に変更後の内容を書きます。こうすることで、変更履歴がわかりやすくなるのと、万が一元に戻す必要がある場合に楽だからです。
今までviでyypしてたりしてたのですが、シェルスクリプトなどで行う際に、なるべく対話式じゃないやり方でできないかなーと思ったのです。そこで思いついたのが、sedを使う方法。
まず、hogeというファイルのaaaという行をコメントアウトして、aaaとbbbの間にabcを挿入するという例でやってみます。
sh-3.00$ cat hoge
aaa
bbb
ccc
ddd
eee
それでは、いざ置換!
sh-3.00$ sed s/aaa/#aaa'\n'abc/g hoge
#aaa
abc
bbb
ccc
ddd
eee
こうすることで、aaaの行がコメントアウトされ、aaaとbbbの行の間にabcが挿入されました。
けど、aaaという行が複数あって、どこか1箇所だけ置換したい・・・って場合は、、、
誰か教えてくださいorz
「sed 改行 置換」でググったら2chのスレにそのものズバリな答えが出てきたのでできました。
例えば、「aaa<改行>bbb」は置換せずに、「aaa<改行>ccc」は「#aaa<改行>abc<改行>ccc」にしたいという場合、
sh-3.00$ sed -n '${p;q};:s; N;s/aaa\nccc/#aaa\nabc\nccc/;P;D;b s' hoge
aaa
bbb
#aaa
abc
ccc
ddd
eee
これでできます!
これで、例えば新しくサーバ作ったときに、sshd_configでrootの直接sshログインを禁止したりするのに役立ちそうです。
# cd /etc/ssh
# cp -p sshd_config sshd_config.orig
【rootでのsshログインを禁止する】
# sed -i s/#PermitRootLogin\ yes/#PermitRootLogin\ yes'\n'PermitRootLogin\ no/g sshd_config
【X11転送を禁止する】
# sed -i s/#X11Forwarding\ no/X11Forwarding\ no/g sshd_config
# sed -i s/X11Forwarding\ yes/#X11Forwarding\ yes/g sshd_config
【接続元の名前解決にDNSを使わない】
# sed -i s/#UseDNS\ yes/#UseDNS\ yes'\n'UseDNS\ no/g sshd_config
これをシェルスクリプトに組み込んでやれば、人間が介在する手間を最小限に、設定ファイルの編集ができそうです。
今までviでyypしてたりしてたのですが、シェルスクリプトなどで行う際に、なるべく対話式じゃないやり方でできないかなーと思ったのです。そこで思いついたのが、sedを使う方法。
まず、hogeというファイルのaaaという行をコメントアウトして、aaaとbbbの間にabcを挿入するという例でやってみます。
sh-3.00$ cat hoge
aaa
bbb
ccc
ddd
eee
それでは、いざ置換!
sh-3.00$ sed s/aaa/#aaa'\n'abc/g hoge
#aaa
abc
bbb
ccc
ddd
eee
こうすることで、aaaの行がコメントアウトされ、aaaとbbbの行の間にabcが挿入されました。
けど、aaaという行が複数あって、どこか1箇所だけ置換したい・・・って場合は、、、
「sed 改行 置換」でググったら2chのスレにそのものズバリな答えが出てきたのでできました。
例えば、「aaa<改行>bbb」は置換せずに、「aaa<改行>ccc」は「#aaa<改行>abc<改行>ccc」にしたいという場合、
sh-3.00$ sed -n '${p;q};:s; N;s/aaa\nccc/#aaa\nabc\nccc/;P;D;b s' hoge
aaa
bbb
#aaa
abc
ccc
ddd
eee
これでできます!
これで、例えば新しくサーバ作ったときに、sshd_configでrootの直接sshログインを禁止したりするのに役立ちそうです。
# cd /etc/ssh
# cp -p sshd_config sshd_config.orig
【rootでのsshログインを禁止する】
# sed -i s/#PermitRootLogin\ yes/#PermitRootLogin\ yes'\n'PermitRootLogin\ no/g sshd_config
【X11転送を禁止する】
# sed -i s/#X11Forwarding\ no/X11Forwarding\ no/g sshd_config
# sed -i s/X11Forwarding\ yes/#X11Forwarding\ yes/g sshd_config
【接続元の名前解決にDNSを使わない】
# sed -i s/#UseDNS\ yes/#UseDNS\ yes'\n'UseDNS\ no/g sshd_config
これをシェルスクリプトに組み込んでやれば、人間が介在する手間を最小限に、設定ファイルの編集ができそうです。
