ホーム » コンピュータ » Linux » Debian (ページ 21)

Debian」カテゴリーアーカイブ

システム

最近の投稿

アーカイブ

カテゴリー

サーバのX関係の設定が改善

自宅サーバの出力はVGAとHDMIが付いていたけど、VGAは解像度が上がらず、HDMIはサブディスプレイ設定しかできず、あまり活用できていなかった。サーバだしそれでも良かったけどね。

でも改めて設定を見直しにチャレンジ。今までは、Xは/etc/X11/xorg.conf無しの自動設定で立ち上げていた。しかしサブディスプレイの設定を見直すにあたり、Xorg -config で xorg.conf を生成させた。すると今までサブディスプレイのミラー設定などで解像度が上げられない問題も解決。HDMIが1920×1080で使え、地デジテレビでサーバ画面が見れるようにできた。

さらにこの効果なのか、リモートデスクトップのxrdpが上手く立ち上がらないトラブルも、特に設定を変えていないのに解消。

これで、windowsパソコンが子どもに取られても、サーバ触れる。

ipsetを使って国別のFireWall設定

Web記事を探していたら、国別のFireWallでのブロックで ipset というものが使える との情報から、試してみた。 ipsetを使った理由は、iptables に、別物管理したい国別ルールを入れたくなかったため。

ちなみに、ipdeny から取得した CIDR なIPv4なアドレスブロック数は、以下のようになった。 ロシアが多いのは納得だけど、インターネットの普及のイメージとして中国≒インド≒韓国 ぐらいの感じを抱いていたけど、中国のアドレスブロックの数はインド・韓国の3倍。 人口の影響かな?後発出遅れで細切れアドレスになったのかな….

$ wc -l *.zone
2635 cn.zone
602 id.zone
706 in.zone
659 kr.zone
6520 ru.zone
388 tw.zone
11510 合計

また、mergecidr.pl によって、隣接CIDRをマージさせてみたけど、 元々の11510件が、併合で9255件に減らすことができた(20%減)。

mergecidr.pl

#!/usr/bin/perl

my %net = () ;
while( <> ) {
  if ( /^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/ ) {
    my $ip,$bt;
    ($ip,$bt) = ( ($1 << 24) + ($2 << 16)
              + ($3 << 8) + $4 , $5 ) ;
    $net{$ip} = $bt ;
    # printf( "# %08x/%02d\n" , $ip , $bt ) ;
  }
}
my $count = 1 ;
while( $count > 0 ) {
  my $lip = 0 ;
  my $lbt = 0 ;
  $count = 0 ;
  foreach my $ip ( sort { $a <=> $b } keys %net ) {
    my $bt = $net{$ip} ;
    if ( $bt > 0 ) {
      if ( $lbt == $bt && $bt > 1 ) {
        # printf( "%08x/%02d\n" , $ip , $bt ) ;
        my $dbt = $bt - 1 ;
        my $mask = (((1 << $dbt) - 1)
                   << (32 - $dbt)) ;
        if ( ($ip & $mask) == ($lip & $mask) ) {
          $count++ ;
          undef $net{$lip} ;
          undef $net{$ip} ;
          $net{$ip & $mask} = $dbt ;
          #printf( "%08x/%08x/%02d\n" ,
          #   ($ip & $mask) , $mask , $dbt ) ;
        }
      }
      $lip = $ip ;
      $lbt = $bt ;
    }
  }
}
foreach my $ip ( sort {$a <=> $b } keys %net ) {
  my $bt = $net{$ip} ;
  if ( $bt > 0 ) {
    printf( "%d.%d.%d.%d/%d\n" ,
            (($ip >> 24) & 0xff) ,
            (($ip >> 16) & 0xff) ,
            (($ip >>  8) & 0xff) ,
            ( $ip        & 0xff) ,
            $bt ) ;
  }
}

geoipdeny.sh

参考サイトのスクリプトをほぼ、そのまま借用。

DIR="/usr/local/etc/geoipdeny"
ZONEURL="http://www.ipdeny.com/ipblocks/data/countries"
# download zonefile
for GEO in cn.zone kr.zone ru.zone tw.zone id.zone in.zone
do
  /usr/bin/wget -q -O - "$ZONEURL/$GEO" \
  | /bin/grep -v "^#|^$" > $DIR/$GEO
done
/usr/sbin/ipset destroy GEOIPDENY > /dev/null 2>&1
/usr/sbin/ipset create GEOIPDENY hash:net
for IP in ` $DIR/mergecidr.pl $DIR/*.zone `
do
  /usr/sbin/ipset add GEOIPDENY $IP
done
/usr/sbin/ipset save GEOIPDENY > $DIR/geoipdeny.store
/usr/sbin/ipset destroy GEOIPDENY

fermの設定に登録

自宅のFirewallの設定には、iptablesな設定を、ブロック的にまとめて記載できる、 ferm というのを使っているので、その設定の中に、上記でできた ipset を参照させる。

(( 設定ファイルの先頭に ))
@hook post  "/usr/sbin/ipset destroy GEOIPDENY" ;
@hook pre   "/bin/cat /usr/local/etc/geoipdeny/geoipdeny.store
| /usr/sbin/ipset restore" ;
@hook flush "/usr/sbin/ipset destroy GEOIPDENY" ;
(( Firewallのブラックリストな設定部分に ))
mod set set GEOIPDENY ( src dst ) REJECT ;

次は動作確認。

# geoiplookup www.baidu.cn
GeoIP Country Edition: CN, China
# ipset test GEOIPDENY www.baidu.cn
220.181.111.147 is in set GEOIPDENY.
# w3m http://www.baidu.ch
これがなぜか接続成功するんだよな....

ということで、まだなにかオカシイ?

# export http_proxy=http://中国のOpenProxy:xxxx
# w3m http://tsaitoh.net/
Connection Refused...

おお、ちゃんと拒否られるな….

自宅からだと、間に透過PROXYでも入っているのかな…

NetatalkでTimeMachineを久々に運用

Mountain Lionへのアップグレードも終わり、新しい状態をバックアップと思ったけど、 TimeMachineの設定がはずれてる。 そういえば、以前Netatalkを運用したとき、TimeMachine が容量MAXまで 使い切るため、HDDが簡単に埋まるので運用を止めていたんだった。

改めて、バックアップを取ろうとしたら、 "Something wrong with the volume's CNID DB, using temporary CNID DB instead…" とのエラーメッセージが出て、動かない。このため、改めて Netatalk の設定を確認する。 まずは、以前のファイルとの不整合が考えられるので、Netatalkのディレクトリを 完全にまっさらに消して、あらためて以下の設定を行う。 TimeMachineが最大容量まで使うため、volsizelimit にて、100GB に制限しておく。

(( /etc/netatalk/AppleVolumes.default ))
/path.../MB  "AppleBackupMB"  volsizelimit:100000 ¥
options:usedots,upriv,tm allow:@home

courier-imapが接続できなくなった

自宅サーバ宛に届いたメールの確認のために、 courier-imap + courier-imap-ssl を動かし、 自宅以外でも、imap-ssl経由でメールの確認などができていた。

しかし、なぜか今朝から、imap,imap-ssl の接続が出来ないと、 Thunderbirdが文句を言う。 imapプロセスの再起動などもしてみたけど、効果なし。 パッケージ更新の影響が考えられるので、stable パッケージに してみたりしたけど、効果無し。

色々調べたけど、よく解らない。そのうち、Dovecot なる imap サーバソフトの記事が沢山ひっかかるので、 何も考えず、”aptitude install dovecot-imapd”にて、 courier-imap を捨てる….

nagios-pluginのnegateを使う

ルータにWZR-HP-G300NHを使っていて、出先からのsshのloginやァイルコピーのために、 ルータのVPNサーバの機能を使っている。 しかし、知らぬ間にパスワード総当たり攻撃などでクラックされたら、 筒抜けになるのは怖い。

そこで、VPNが使われたら携帯に警告メールを出したい。 最初、arpalert で監視すればいいと思ったけど、ルータ経由で入れるようになるんだから、 検知できるはずがない。 その代わりに、nagios で検出を考えたけど、どうすればいいのか?

WZR-HP-G300NHでは、"Internet/LAN"→"PPTPサーバ"→"拡張設定"→"サーバIPアドレス" にて、手動設定のアドレスを書き込んである。 そして、VPN未接続時に、このアドレスのpingチェックをすればいい。 ただし、pingが通らないのが通常状態で、pingが通ると"侵入の可能性あり"。

そこで、nagiosの設定は、negate を使う。

(( /etc/nagios-plugin/config/host-down.cfg ))
# 'check-host-down' command definition
define command{
command_name check-host-down
command_line /usr/lib/nagios/plugins/negate
/usr/lib/nagios/plugins/check_ping
-H '$HOSTADDRESS$' -w 50,100% -c 50,100% -p 1
}
(( /etc/nagios3/conf.d/localnet_nagios2.cfg ))
define host{
use        generic-host
host_name  router-vpn
alias      router-vpn
address    192.168.XX.1
check_command check-host-down
}

サーバのCPUファンが…

廃棄パソコンのメモリがあったので、サーバに移植できないかと 蓋を開けたらメモリは規格が違い使えなかった。

一番驚いたのは、ホコリが予想外に溜まっていたこと。 CPUファンの下の放熱板にホコリが溜まっていた。 筐体の吸気口は、ホコリを吸うとわかりやすいので、 それなりにマメに掃除していたつもりだけど、 約半年分のホコリ。

掃除をして起動したら、CPU温度が10℃以上温度が下がってら… 古いHDDは、掃除をしても温度変化が少なく、対比が明らか。

1204010552_497x340.png

ほとんどネットワーク性能試験

ドリカムのDVDをISOとm4v形式にしたものを、 ちょいとネットワーク越しに3枚コピー。
# ちゃんとDVD買ってるぞ!!

ほとんどネットワークの性能試験状態だな…

1203230948_497x340.png

15GBを4時間だから、15*8*1024^3/4/3600=9Mbpsか…~ 丹南光のupload-maxが10Mbpsって書いてあるから、そんなもんか… scpでの転送だから、多少ながら冗長性あるし、言ってるだけの速度出てるな。

Windows7をSNMP経由のmuninで監視

自宅サーバでは、動作状況をmuninでモニタリングしているけど、 Windows7のパソコンもモニタリングさせてみた。 どうせ、Windows Media Centerが動いているので、動きっぱなしだし。

Windows7でSNMPを動かす

Windows7 Professional であれば、SNMPは標準で入っているようで、 起動させるだけ。 Window7でSNMP設定を参考に、 権利:読み取りのみ,コミュニティ:public,追加:192.168.X.X(サーバのアドレス) を追加する。

muninの設定

パソコンのFQDN名が欲しかったので、/etc/hosts にパソコンのホスト名を登録。 監視対象としてパソコンを登録

((/etc/munin/munin.conf))
[パソコンのFQDN]
address localhost
use_node_name no

プラグインを登録するには、munin-node-configure でSNMPが使えるかどうかが 試せるので、

# munin-node-configure --snmpversion 1 --snmp パソコンのFQDN

色々な項目が表示されたら、プラグイン用のシンボリックリンクを作る。 といっても、"–shell"をつけて実行すれば、適当なシェルスクリプトを生成し てくれる。"| sh" を追加してもいいけど、いきなり全部は多いので、一旦 ファイルに吐き出して、使うものだけにしてから実行。

# munin-node-configure --snmpversion 1
--snmp パソコンのFQDN --shell >mn.sh
# vi mn.sh  # 適当な項目だけ残す
# sh mn.sh  # 本当にリンクを生成させる。

私は、df,df_ram,if_multi,processes,users,winload を残した。

最後に、snmp を実行するときの設定を、書き加える。

((/etc/munin/plugin-conf.d/munin-node))
[snmp_*]
env.version 1
env.community public

これで、Windowsパソコンの稼働状況がわかるようになったので、 春休みで勉強しないで遊んでいる子どもの状況も判るぜ….

送信者ドメイン書き換え

スイミングスクールがメールでの緊急連絡の運用を始めたみたい。 そこで指定アドレスに登録依頼メールを送ろうとしたけど、 丹南ケーブルでメールがはじかれる。 理由は、自宅内のメールサーバでは、自宅内でのみ有効なドメイン名を 使っていて「そんなドメイン知るか」と言われる。 ということで、自宅外に出るときに、ドメイン名を書き換える設定を加える。

((/etc/postfix/main.cf))
smtp_generic_maps = hash:/etc/postfix/generic
((/etc/postfix/generic))
@自宅内ドメイン   @自宅外でも有効なドメイン
@*.自宅内ドメイン @自宅外でも有効なドメイン
((更新を有効に))
# postmap /etc/postfix/generic
# postfix reload

lvmがエラー

古いマシンから取り出した中途半端なサイズのHDDを組み合わせて lvm を組んでいたけど、OS更新時の再起動で、エラーが出て マウントできなくなった。

OS起動が途中で止まってびびったけど、ひとまずlvmのマウントだけ 止めて普通に起動させ、lvm のチェック。

pvdisplay やら、lvdisplay などを実行しても、HDDを認識していない ということはないので、ハードウェア的な故障ではなさそう。

しかし、mount はやっぱりできないので、2次バックアップだし、 中身を捨てて再構築させようかともおもった。

でも単純に、fsck.ext3 /dev/lvm/lvm0 を実行したら、なんどか Fix<y>と聞かれたけど、yes で答えたら、普通に修復できた。

ちなみに、再起動のきっかけとなったOS更新だけど、 Linuxのカーネルが、linux-image-3.2.0-1-amd64 となった。 lvm のトラブルで、一旦 3.1 に戻したけど、簡単に修復できたし、 改めて 3.2.0 で起動したけど、問題ナシ~。

ついでに、lvm のマウント方法を、/dev/fstab に記載する方式から、 autofs でマウントする方法に移行させた。 どうも、エラーの原因となったのが、再起動が遅いので早めに reset を 押したためと反省中。automount なら、適度に umount するし、ちょっと危険が減るかな。

Google 検索

My Google   Yahoo

Microsoft

ファンサイト