LinuxTips(旧コンテンツ抜粋)

  • WebMailで送信できない
    設定はあってるはずなのにメールが送信できない
    「エラー:501 Bad address syntax」のエラーメッセージがでる

    そもそも、同一マシンのメールサーバ(Postfix)を使用しての送信ができない

    解決方法としては

    postfixのmain.cfの以下の行を”no”にする事で送信できるようになった
    strict_rfc821_envelopes = yes

    メールアドレスがRFCに準拠していない場合は接続をキャンセルするオプションらしい

  • PXEブート
    その1

    VineLinux 4.0もリリースされたので新サーバ(ThinkPad X31)へのインストール作業を始めました
    まずはPXEブートでインストールするために環境を整備しています
    PXEのサーバとなるものは現行サーバ(自作マシン Vine2.6r4)です

    必要なものは
    ・dhcpサーバ
    ・tftpサーバ
    ・httpサーバ(http経由でインストールをする予定)
    の3つ

    1) dhcpサーバ
    apt-get install dhcpd
    でインストール
    /etc/dhcpd.conf
    を編集し、以下のようにしました

    —–
    subnet 192.168.0.0 netmask 255.255.255.0 {
    # — default gateway
    option routers 192.168.0.1;
    option subnet-mask 255.255.255.0;

    option nis-domain “domain.org”;
    option domain-name “domain.org”;
    option domain-name-servers 192.168.0.1;

    option time-offset -5; # Eastern Standard Time
    # option ntp-servers 192.168.1.1;
    # option netbios-name-servers 192.168.1.1;
    # — Selects point-to-point node (default is hybrid). Don’t change this unless
    # — you understand Netbios very well
    # option netbios-node-type 2;

    #lease range 192.168.0.128 – 192.168.0.199
    range dynamic-bootp 192.168.0.128 192.168.0.199;
    default-lease-time 21600;
    max-lease-time 43200;

    #option dhcp-class-identifier “PXEClient”;
    filename “/tftpboot/linux-install/pxelinux.0″;
    }
    —–
    デフォルトから変更したのはアドレスと下2行のPXEブートの設定ぐらいです

    あとは
    /etc/init.d/dhcpd start
    で起動

    これで、192.168.0.128~192.168.0.199の範囲でIPを割り当てるdhcpサーバが起動しました

    その2

    2) tftpサーバ
    apt-get install tftp-server
    でインストール可能なようです

    実はパッケージ名を確認せずに
    apt-get install tftpd
    でパッケージが見つからないのエラーになってしまった為
    atftpのtarボールからコンパイル・インストールしてしまいました

    /etc/inetd.confに
    tftp dgram udp wait root /usr/sbin/tcpd in.tftpd –tftpd-timeout 300 –retry-timeout 5 –mcast_port 1753 –mcast_addr 239.255.0.0-255 –maxthread 100 –verbose=5 /tftpboot
    以下を追加
    (atftpでの設定なのでvine2.6標準のtftp-serverでは設定が少々違うかも)

    /etc/init.d/inet restart
    でinetdを再起動します

    /tftpboot/linux-install
    /tftpboot/linux-install/pxelinux.cfg
    の2つのディレクトリを作成し
    /tftpboot/linux-installには
    VineLinux4.0のinitrd.imgとvmlinuzをコピーしておきます
    コピーする方法として以下のようにします
    mount -t iso9660 -o loop /home/filn/cdimage/Vine40-i386.iso /mnt/iso
    これでisoイメージファイルのまま中身のファイルにアクセスできます
    cp /mnt/iso/images/pxeboot/initrd.img /tftpboot/linux-install
    cp /mnt/iso/images/pxeboot/vmlinuz /tftpboot/linux-install

    ここで初めは勘違いをしていました
    /tftpboot/linux-installにはさらにsyslinuxの一部であるpxelinux.0をコピーしておく必要があります
    vine2.6にもsyslinuxは用意されていますが、今回はpxelinux.0だけが欲しいので
    パッケージでインストールするのではなく、syslinuxのtarボールからコンパイルしました(コンパイルだけでインストールはしていません)
    コンパイルして出来上がったpxelinux.0を/tftpboot/linux-installにコピーしておきます

    /tftpboot/linux-install/pxelinux.cfg/default
    を編集(新規作成)し、以下のようにします
    —–
    default Vine4

    label Vine4
    kernel vmlinuz
    append load initrd=initrd.img devfs=nomount
    —–

    これでtftpの準備はできました

    その3

    3) httpサーバ
    VineLinux4.0をインストールする際にファイルを取得するためにいくつかの転送方法がありますが
    今回はhttp経由にしました

    先ほど/mnt/iso以下にVineLinux4.0のisoイメージをマウントしてあるので
    それをhttpでアクセスできるようにします

    /etc/httpd/conf/httpd.conf

    —–
    Alias /vine4 “/mnt/iso”

    Options MultiViews Indexes FollowSymLinks
    Order deny,allow
    Deny from all
    Allow from 192.168.0.0/24 127.0.0.1 #LANの中からだけ許可します

    —–
    を追加して
    /etc/init.d/httpd restart
    でhttpサーバを再起動します

    これで、PXEブートでVineLinux4.0をインストールするすべての準備が整いました

    その4

    いよいよPXEブートによる、VineLinux4.0のインストールです
    X31の電源を入れ、F12を押してbootメニューを表示し、IBAという項目があるので選択します

    dhcpでipを割り当てたあと、tftpで起動イメージを取得して
    ほどなくインストーラが起動しました

    途中、IPの設定画面や転送方式、転送元の指定画面がある以外はCDで起動したインストーラと差はありません

    後で、個別にパッケージを指定してインストールしたいので
    最小構成でインストールします
    サーバ用途なのでX関係も必要ないですし

    準備はちょっと必要だけど光学ドライブが無くてもCDでの起動と変わりなくインストールができるのは便利です

  • DNSサーバ
    内向き(家庭内のLAN限定)のDNSサーバを構築します

    まずはインストール
    apt-get install bind bind-utils

    続いて設定ファイル
    /etc/named.conf
    —–
    options {
    directory “/var/named/”;
    version “unknown”;
    forwarders { #自分で解決できない場合はプロバイダのDNSに問い合わせる
    202.234.232.6; #プライマリ
    221.113.139.250; #セカンダリ
    };
    allow-query { #自分自身とローカルLANからのみ許可する
    127.0.0.1;
    192.168.0.0/24;
    };
    };

    zone “.” {
    type hint;
    file “named.ca”;
    };

    zone “filn.no-ip.org” {
    type master;
    file “filn.no-ip.org.db”;
    allow-update { none; };
    };

    zone “0.168.192.in-addr.arpa” {
    type master;
    file “0.168.192.in-addr.arpa.zone”;
    allow-update { none; };
    };
    —–

    /var/named/filn.no-ip.org.db
    —–
    $TTL 86400
    @ IN SOA filn.no-ip.org. root.filn.no-ip.org. (
    2006112701
    28800
    1440
    360000
    86400
    );

    IN NS filn.no-ip.org.
    IN MX 10 filn.no-ip.org.
    @ IN A 192.168.0.200
    * IN A 192.188.0.200

    rd-x6 IN A 192.168.0.101
    client IN A 192.168.0.50
    cap IN A 192.168.0.56
    enc IN A 192.168.0.57
    sc420 IN A 192.168.0.58
    —–

    /var/named/
    —–
    $TTL 86400
    @ IN SOA filn.no-ip.org. root.filn.no-ip.org. (
    2006112601
    28800
    1440
    3600000
    86400
    );

    IN NS filn.no-ip.org.
    IN MX 10 filn.no-ip.org.

    200 IN PTR filn.no-ip.org.
    101 IN PTR rd-x6.filn.no-ip.org.
    50 IN PTR client.filn.no-ip.org.
    56 IN PTR cap.filn.no-ip.org.
    57 IN PTR enc.filn.no-ip.org.
    58 IN PTR sc420.filn.no-ip.org.
    —–

    それぞれ上記のようにします

    ftp://ftp.rs.internic.net/domain/named.rootからダウンロードしたファイルを/var/named/named.caとして保存します

    ここに実は失敗談があって初め内側のドメインは引けるのに外部のドメインが引けない状態におちいった
    ここと同じ現象でnamed.caが問題だった
    外部に公開しないし、forwardersにプロバイダのDNSを指定したから空っぽでもいいだろうと
    単にtouch /var/named/named.caで作成しておいたのがまずかったっぽい
    forwardersに書いてあるんだからそっから引いてくれよと思いつつ

    /etc/init.d/named start
    で起動

    /etc/resolv.conf
    は以下のようにしてDNSサーバを自分自身と指定します
    —–
    search filn.no-ip.org
    nameserver 127.0.0.1
    —–
    「search filn.no-ip.org」とつけたのは、ドメイン名を省略するためです
    これで、clientでもclient.filn.no-ip.orgでも192.168.0.50が引けます

    DNSだけでも意外とたいへんよね・・・慣れればそうでもないんだろうけど

  • crontab
    ログのローテートや各種統計情報の取得のためにcronをセットしようとしたところ
    crontabが使えない・・・

    や、もちろん、/etc/crontabはありますよ?
    でも、crontab -lやcrontab -eのフロントエンド(?)が使えない

    現行環境では/usr/bin/crontabにあるし
    なにかパッケージが足りない

    現行環境でrpm -qa | grep cronをすると
    anacron-2.3-15
    crontabs-1.9-2vl1
    vixie-cron-3.0.1-63vl2
    と表示される

    vixie-cronが新環境には無いのでどうやらこれっぽい
    (新環境は最小パッケージでインストールしてある)

    apt-get install vixie-cron
    でインストールすると、無事crontab -eなどが使えるようになりました

    #crontab パッケージ等でググっても見つからなかったので
    #誰か同じ状況で困っているひとがこれを参考にして解決してくれるといいなぁ^^