CentOS8で構築する自宅サーバ:方針

CentOS8パソコン自宅サーバ

さて、今のサーバの設定メモを残してみようかと思いましたが、せっかくなので次期サーバの構築過程の記録を残しておこうと思います。

まずは方針として

  • 従来のサービスやデータをすべて残すようにする。
  • お手軽にパッケージ導入して、凝った設定などしない。
  • IPv6対応にする。

従来のサービス他データをすべて残すようにする。

もともと古いサーバなので、今では使われていないサービスがあったりします。

例えば、メーリングリストはmajordomを使っていたり。これをpostfixに乗っけて動かさなければいけません。

また、Hotlineサーバとか。これは今でいうクローズドなSNSですね。

古いサーバは、ソースプログラムをコンパイルしてインストールすることになりますが、ちゃんと動くのでしょうか?

お手軽にパッケージ導入して、凝った設定などしない。

かつて、FreeBSDでサーバを構築していたときには、OSを含めて、すべてのアプリをソースからインストールしていました。

ソース修正やコンパイルオプションなどでカスタマイズしていたので、自分でもどこを直したのか管理できていませんでした。

もう一度同じものを構築しろと言われても無理でしたね。

その反省を踏まえて、Linuxではお手軽パッケージインストールに徹します!

「ああ、コンパイルオプションを変更するだけで日本語対応になるのに」と思っても我慢です!

IPv6対応にする。

いままで、自宅LANにNTTのフレッツ網から勝手にIPv6が降ってきていましたが、最近ようやくまともにIPv6に対応しました。

ネットワーク構成は

こんな感じです。

自宅サーバをインターネットに公開するために、IPv4およびIPv6ともに固定IPアドレスが必要なので、PPPoEで接続しています。

プロバイダはInterlink、IPv4ルータはNECのAterm、IPv6ルータはIIJのSEIL/x86を使っています。

IPoEのIPv6と共存させて、マルチホームにしようと試してみましたが、ホームゲートウェイのルータとしての機能が低いため、無理でした。

いまは、ホームゲートウェイから配られるIPv6はIPv6&IPv4ルータでブロックし、PPPoEで配られたIPのみをLAN内で使っています。

また、サーバとして公開するためにIPv4ルータでは、以下のようにポートをマッピングしています。

IPアドレス	プロトコル	ポート		コメント
192.168.1.4	TCP+UDP		53		domain
192.168.1.4	TCP+UDP		6667		ircd
192.168.1.4	TCP+UDP		5500-5501	hotline
192.168.1.4	TCP+UDP		21		ftp
192.168.1.4	TCP+UDP		80		www
192.168.1.4	TCP+UDP		443		https
192.168.1.4	TCP+UDP		22		ssh
192.168.1.4	TCP+UDP		25		smtp
192.168.1.4	TCP+UDP		465		smtps
192.168.1.4	TCP+UDP		110		pop3
192.168.1.4	TCP+UDP		995		pop3s
192.168.1.4	TCP+UDP		143		imap
192.168.1.4	TCP+UDP		993		imaps
192.168.1.4	TCP+UDP		587		submission

IPv6の方はサーバ含めて、全てのパソコンが外部からアクセスできるグローバル・ユニキャスト・アドレスが割り当てられています。

そのため、IPv6ルータには以下のようなファイヤーウォール設定を入れています。

filter add seil_ctl_lan0 interface lan0 direction in action pass protocol tcp src 192.168.1.0/24 srcport 0-65535 dst self dstport 0-65535 state disable logging off enable
filter add telnetd_block interface any direction in action block protocol tcp srcport 0-65535 dst self dstport 23 state disable logging on enable
filter add httpd_block interface any direction in action block protocol tcp srcport 0-65535 dst self dstport 80 state disable logging on enable
filter add sshd_block interface any direction in action block protocol tcp srcport 0-65535 dst self dstport 22 state disable logging on enable
filter6 add seil_ctl_lan0 interface lan0 direction in action pass protocol tcp src fe80::/10 srcport 0-65535 dst self dstport 0-65535 state disable logging off enable
filter6 add telnetd_block interface any direction in action block protocol tcpudp srcport 0-65535 dst self dstport 23 state disable logging on enable
filter6 add httpd_block interface any direction in action block protocol tcpudp srcport 0-65535 dst self dstport 80 state disable logging on enable
filter6 add sshd_block interface any direction in action block protocol tcpudp srcport 0-65535 dst self dstport 22 state disable logging on enable
filter6 add pass_icpm interface pppoe0 direction in/out action pass protocol ipv6-icmp state disable logging on enable
filter6 add pass_dhcp interface pppoe0 direction in action pass protocol udp srcport 0-65535 dst fe80::/10 dstport 546 state enable logging on enable
filter6 add outgoing interface pppoe0 direction out action pass state enable logging off enable
filter6 add pass_domain interface pppoe0 direction in action pass protocol tcpudp srcport 0-65535 dst 2001:2c0:cd03:ca01::4/128 dstport 53 state disable logging off enable
filter6 add pass_httpd interface pppoe0 direction in action pass protocol tcpudp srcport 0-65535 dst 2001:2c0:cd03:ca01::4/128 dstport 80 state disable logging on enable
filter6 add pass_https interface pppoe0 direction in action pass protocol tcpudp srcport 0-65535 dst 2001:2c0:cd03:ca01::4/128 dstport 443 state disable logging on enable
filter6 add pass_ftpd interface pppoe0 direction in action pass protocol tcpudp srcport 0-65535 dst 2001:2c0:cd03:ca01::4/128 dstport 21 state disable logging on enable
filter6 add pass_sshd interface pppoe0 direction in action pass protocol tcpudp srcport 0-65535 dst 2001:2c0:cd03:ca01::4/128 dstport 22 state disable logging on enable
filter6 add block_in interface pppoe0 direction in action block state disable logging on enable

簡単に解説すると、LAN内からの通信とその応答はすべて許可。外部からのサーバに向けた必要なポートだけ許可。それ以外は拒否。になります。

IPv6のLAN構築(ルータ設定)も苦労したので、どこかにメモを残しておきたいですね。

お勧めのKindle本です!

コメント