スキップしてメイン コンテンツに移動

投稿

7月, 2024の投稿を表示しています

postfix + dovecot で let's encryptを使いipv4/ipv6両対応かつspf/dkim/dmarcレコード対応のimaps/smtpsなメールサーバを構築

独自ドメインを運用するにあたり、メールでの連絡が必要なので、postfix と dovecot で 公開型のimpasサーバだけをipv4/ipv6両対応で構築してみました。 MXレコードが必要なのは昔も今も変わりませんが、今どきのメールサーバはdnsにspfレコードがないとgmailやoutlookではメールを受信できません。メールを送信しても、はじき返されるならまだしも、そのまま破棄されてしまう場合もあります。これに加え、dkimレコードとdmarcレコードも必要になります。作業量はかなり多いので、今回変更部分はなるべくパッチファイルで作業できるようにしてみました。なお環境はDebian 12でメールサーバはmx01.example.com、ドメインはexample.com、サブドメイン運用無しとしています。また、事前にmx01.example.comの正引き・逆引きをIPv4/IPv6ともにできるようにしておいてください。 まず、最初に postfix と dovecot と certbot(let's encrypt)をインストールします。 apt-get install postfix dovecot-imapd certbot Postfixのコンフィグレーションを聞かれた場合は、No configurationを指定してください。 つづいて、certbotを使ってlet's encryptのssl証明書類を発行してもらいます。 certbot certonly --standalone -d mx01.example.com -m admin@example.com --agree-tos 次に/etc/postfix/main.cfのパッチファイルです。 --- main.cf.proto 2024-07-26 23:12:02.216307005 +0900 +++ main.cf 2024-07-27 00:45:20.765008342 +0900 @@ -96,14 +96,14 @@ # other configuration parameters. # #myhostname = host.domain.tld -#myhostname = virtual.domain

Debian 12 apache2 で Let's Encrypt SSL証明書を利用する

Let's Encryptについての情報は他のサイト等沢山あるのですが、バーチャルホストを使わずに単独でapache2のサイトを立ち上げるのに少し手間取ったので備忘録として挙げてみることにしました。まず、最小限のconfを/etc/apache2/sites-available/exmaple.com.conf に記述します。 <VirtualHost *:443> ServerAdmin admin@example.com ServerName vm101.example.com DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # SSLEngine on <FilesMatch "\.(?:cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> <VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> ここで、Debian 12 の場合は、コンフィグをenableさせます。 a2ensite Your choices are: 000-de

tagged vlan を設定し dhcpv6 クライアントを特定せずに kea dhcpv6 でvlan毎に固定のdhcpv6 pd を行う

フレッツ光の場合、宅内のルータが何であれ、半固定のプレフィックスが降りてきます。一見なんの変哲もないように思えますが、よく考えてみるとDHCPv6クライアントとしてのルータのhw-addressやduidが異なっても同じプレフィックスが降りてくるのは不思議だなと思いました。 フレッツ光(クロス含む)で使われている光回線では、局側に10G-EPONという装置が導入されており、1PON(Passive Optical Network)あたり最大(おそらく4x8=)32分岐で各加入者宅ONUと通信します。つまり、1PONあたり32ユーザで回線を共有しているわけですが、10G-EPON <--> ONU ではONUに半固定のプレフィックスが降りてきます。回線共有しているのにセグメントの異なる半固定のプレフックスが降りてくるというのは、やはり不思議です(そう思うのは筆者だけかもしれませんが。)おそらくは、回線は共有していても、PON<-->ONU間は専用線のイメージに近いのだろうと思います。そこでしらべたところ、以下の資料が見つかりました。 EPONおよび10G-EPONの概要 (引用以下) EPONダウンストリーム通信の原理 EPONはダウンストリーム方向にブロードキャストモードを採用しています。 すべてのONUは同じデータを受信できます。異なるONUデータはLLID(論理リンク識別子)によって区別され、ONUはブロードキャストメッセージをフィルタリングして独自のデータを受信します。 異なるONUデータはLLID(論理リンク識別子)によって区別され、ONUはブロードキャストメッセージをフィルタリングして独自のデータを受信します。 EPONアップストリーム通信の原理 ONUからOLTへのアップストリーム方向では、時分割多元接続技術(TDMA)を適用して、タイムスロットでアップストリームトラフィックを送信します。 (引用以上) 凡そですが、ビンゴです。イメージとしては1PONあたり最大32セグメントを下りではLLIDを使って"マルチプレクス”して、ONUで"デマルチプレクス"するという感じだと思います。つまり、回線は共有しているがPON仮想1ポート<-->1ONU間は専用線のイメージに

Hypver-V gest間で 特定のネットワークアダプターに名前付けしてlinux tagged vlanでvm同士を通信させる

Hyper-VゲストのLinux(Debian 12)間でvlanを構成したのですが当初は通信できませんでした。特に難しい設定ではないので、同様の設定を物理マシン間で再現したところ、通信できたので、どうやらHyper-Vは何もしていない場合、Guest上で設定したtagged vlanではvm間で通信できないようです。 そこで調べたところ、以下の様にするとVM同士のVLAN間で取敢えず通信できましたが、複数のNICを持たせてある場合、他が通信できなくなる落とし穴がありました。 Set-VMNetworkAdapterVlan r20 –Trunk –AllowedVlanIdList 1-4094 –NativeVlanId 0 Set-VMNetworkAdapterVlan r21 –Trunk –AllowedVlanIdList 1-4094 –NativeVlanId 0 Set-VMNetworkAdapterVlan r22 –Trunk –AllowedVlanIdList 1-4094 –NativeVlanId 0 trunkはトランク接続つまりtagged vlan 接続のことであり、このコマンドレットでr21-r22のGuest間でtagged vlan接続できるようになりましたが、複数のネットワークアダプターを持っている場合、上述のコマンドだとすべてのアダプターに対して、トランクモードが設定されてしまい、Hyper-Vマネージャで設定したvlan設定もすべてすっ飛んでしまいます。 > Get-VMNetworkAdapterVlan r20 VMName VMNetworkAdapterName Mode VlanList ------ -------------------- ---- -------- r20 ネットワーク アダプター Trunk 0,1-4094 r20 ネットワーク アダプター Trunk 0,1-4094 r20 ネットワーク アダプター Trunk 0,1-4094 r20 ネットワーク アダプター Trunk 0,1-4094 r20 ネットワーク アダプター Trunk 0,1-4094 r20 ネットワーク アダプター Trunk 0,1-