2019年04月26日

Libevent 2.1.8 で LibreSSL を使うためのパッチ

Libevent 2.1.8LibreSSL を使うには以下のパッチが必要です。
--- ./openssl-compat.h.ORG	2016-12-07 07:13:44.000000000 +0900
+++ ./openssl-compat.h 2018-04-09 23:53:59.600157572 +0900
@@ -30,6 +30,10 @@

#define TLS_method SSLv23_method

+#elif defined(LIBRESSL_VERSION_NUMBER)
+
+#define BIO_get_init(b) (b)->init
+
#endif /* OPENSSL_VERSION_NUMBER < 0x10100000L */

#endif /* OPENSSL_COMPAT_H */
ちなみに古い(2.7系以前?)を使う場合は以下のファイル
openssl-compat.h
sample/https-client.c
sample/le-proxy.c
sample/openssl_hostname_validation.c
test/regress_ssl.c
に対して次のような修正が必要です。
元 #if OPENSSL_VERSION_NUMBER < 0x10100000L
新 #if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)
posted by yamaga at 10:10| Comment(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

Netatalk 3.1.12 で LibreSSL 2.7系以降を使うためのパッチ

Netatalk 3.1.12 は LibreSSL に対応しているのですが、LibreSSL 2.7系以降に対しては以下のパッチが必要です。
--- ./etc/uams/openssl_compat.h.ORG     2018-11-29 18:30:45.000000000 +0900
+++ ./etc/uams/openssl_compat.h 2019-04-26 07:40:55.857191351 +0900
@@ -11,7 +11,7 @@
#ifndef OPENSSL_COMPAT_H
#define OPENSSL_COMPAT_H

-#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
inline static int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
{
/* If the fields p and g in d are NULL, the corresponding input
なお、LibreSSL とは全く関係ないですが、Python3 を使う場合はこの↓パッチをあてたほうが良いです。
--- ./contrib/shell_utils/afpstats.ORG  2014-12-11 20:26:32.000000000 +0900
+++ ./contrib/shell_utils/afpstats 2018-12-25 19:34:54.635154719 +0900
@@ -23,7 +23,7 @@

reply = iface.GetUsers()
for name in reply:
- print name
+ print(name)

if __name__ == '__main__':
main()
posted by yamaga at 07:57| Comment(3) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2019年04月24日

MIT Kerberos5 1.17 で LibreSSL 2.9.1 を使うためのパッチ

LibreSSL 2.9系の最初の安定版となる 2.9.1 がリリースされたのですが、これがちょっと厄介。OpenSSL 1.1系との互換性を向上させたらしいのですが、相変わらず中途半端なので、これまでの
元 #if OPENSSL_VERSION_NUMBER < 0x10100000L
新 #if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)

元 #if OPENSSL_VERSION_NUMBER >= 0x10100000L
新 #if (OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)
と言った書き換えだけでは不充分なものもあり、例えば MIT Kerberos ではダメ。

ということで、MIT Kerberos5 1.17 に対する LibreSSL 2.9.1 を使うためのパッチを作ってみました。
diff -ruN ../krb5-1.17.ORG/src/plugins/preauth/pkinit/asn1t_add.h ./src/plugins/preauth/pkinit/asn1t_add.h
--- ../krb5-1.17.ORG/src/plugins/preauth/pkinit/asn1t_add.h 1970-01-01 09:00:00.000000000 +0900
+++ ./src/plugins/preauth/pkinit/asn1t_add.h 2019-04-24 20:09:19.848554267 +0900
@@ -0,0 +1,23 @@
+#ifndef HEADER_ASN1T_ADD_H
+#define HEADER_ASN1T_ADD_H
+#include <openssl/asn1t.h>
+
+# define static_ASN1_ITEM_start(itname) \
+ static const ASN1_ITEM itname##_it = {
+
+# define ASN1_ITEM_end(itname) \
+ };
+
+# define static_ASN1_SEQUENCE_END_name(stname, tname) \
+ ;\
+ static_ASN1_ITEM_start(tname) \
+ ASN1_ITYPE_SEQUENCE,\
+ V_ASN1_SEQUENCE,\
+ tname##_seq_tt,\
+ sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\
+ NULL,\
+ sizeof(stname),\
+ #stname \
+ ASN1_ITEM_end(tname)
+
+#endif /* HEADER_ASN1T_ADD_H */
diff -ruN ../krb5-1.17.ORG/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c ./src/plugins/preauth/pkinit/pkinit_crypto_openssl.c
--- ../krb5-1.17.ORG/src/plugins/preauth/pkinit/pkinit_crypto_openssl.c 2019-01-09 01:02:37.000000000 +0900
+++ ./src/plugins/preauth/pkinit/pkinit_crypto_openssl.c 2019-04-24 20:14:54.578620209 +0900
@@ -189,7 +189,7 @@
(*_x509_pp) = PKCS7_cert_from_signer_info(_p7,_si)
#endif

-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined(LIBRESSL_VERSION_NUMBER)

/* 1.1 standardizes constructor and destructor names, renaming
* EVP_MD_CTX_{create,destroy} and deprecating ASN1_STRING_data. */
@@ -3053,7 +3053,7 @@
return retval;
}

-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if ((OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= 0x20900000L)

/*
* We need to decode DomainParameters from RFC 3279 section 2.3.3. We would
diff -ruN ../krb5-1.17.ORG/src/plugins/preauth/pkinit/pkinit_crypto_openssl.h ./src/plugins/preauth/pkinit/pkinit_crypto_openssl.h
--- ../krb5-1.17.ORG/src/plugins/preauth/pkinit/pkinit_crypto_openssl.h 2019-01-09 01:02:37.000000000 +0900
+++ ./src/plugins/preauth/pkinit/pkinit_crypto_openssl.h 2019-04-24 20:15:42.128629575 +0900
@@ -46,8 +46,11 @@
#include <openssl/asn1.h>
#include <openssl/pem.h>

-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if ((OPENSSL_VERSION_NUMBER >= 0x10100000L) && !defined(LIBRESSL_VERSION_NUMBER)) || (LIBRESSL_VERSION_NUMBER >= 0x20900000L)
#include <openssl/asn1t.h>
+# ifdef LIBRESSL_VERSION_NUMBER
+# include "asn1t_add.h"
+# endif
#else
#include <openssl/asn1_mac.h>
#endif
LibreSSL とは全く関係ないですが、他にもこの↓パッチもあてたほうが良い場合もあるかも。
diff -ruN ../krb5-1.17.ORG/src/Makefile.in ./src/Makefile.in
--- ../krb5-1.17.ORG/src/Makefile.in 2019-01-09 01:02:37.000000000 +0900
+++ ./src/Makefile.in 2019-04-24 16:45:55.157416835 +0900
@@ -1,3 +1,4 @@
+localstatedir=@localstatedir@
datadir=@datadir@

mydir=.
posted by yamaga at 23:25| Comment(4) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2018年11月26日

OpenSMTPD の設定方法が大きく変更

2018年10月にリリースされた OpenSMTPD 6.4.0 以降では smtpd.conf の文法が大幅に変更されました。詳細は smtpd.conf(5) をご参照ください。smtpd.conf 以外は以前に紹介した方法のままで問題ありません。

典型的な例として、外部への配信に認証付きの SMTP サーバを経由する場合の smtpd.conf の内容を比較します。

[旧]
relayhost = "tls+auth://ラベル@リレーサーバ名:587"

table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets

listen on all

accept from any for local alias <aliases> deliver to mbox
accept for any relay via $relayhost auth <secrets>
[新]
relayhost = "smtp+tls://ラベル@リレーサーバ名:587"

table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets

listen on all

action "local" mbox alias <aliases>
action "relay" relay host $relayhost auth <secrets>

match from any for local action "local"
match for any action "relay"
ポイントは大きく以下の2点。
  • accept で始まる一文で記述されていたパターンマッチとアクションを別々に記述
  • リレーサーバに対するプロトコルとして tls+authsmtp+tls
from が省略された場合は以前と変わらず、from local を意味します。また、特定のアドレスブロック(例えば、192.168.0.0/24)から無条件でリレーを許可する場合、以前の設定方法では
mynetwork = "192.168.0.0/24"

accept from source $mynetwork for any relay via $relayhost auth <secrets>
のような設定を加えていましたが、新しい設定方法では
mynetwork = "192.168.0.0/24"

match from src $mynetwork for any action "relay"
を加えることになります。sourcesrc に変更されていることに注意が必要です。

因みに、STARTTLS ではなく、SMTPS を使う場合は以下のようにプロトコルとして smtps のみを設定します(以前は smtps+auth)。
relayhost = "smtps://ラベル@リレーサーバ名"

参考文献
posted by yamaga at 09:29| Comment(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年12月30日

libpng-1.6.27 (OpenBSD 6.0 自作パッケージソース)

libpng-1.6.27 のパッケージソースを作ってみました。
これは標準パッケージの png-1.6.23 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
png-1.6.27.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/graphics
# tar zxvf (somewhere)/png-1.6.27.pkgsrc.tgz
# cd png-1.6.27
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/png-1.6.27.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/png-1.6.27.tgz
これは OpenBSD プロジェクトによる png-1.6.26 のパッケージ (current) を png-1.6.27 に合わせて手直ししただけで全ての動作を確認したわけではありません。
ラベル:libpng
posted by yamaga at 08:38| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年12月22日

libgpg-error-1.26 (OpenBSD 6.0 自作パッケージソース)

libgpg-error-1.26 のパッケージソースを作ってみました。
これは標準パッケージの libgpg-error-1.23 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
libgpg-error-1.26.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/security
# tar zxvf (somewhere)/libgpg-error-1.26.pkgsrc.tgz
# cd libgpg-error-1.26
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/libgpg-error-1.26.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/libgpg-error-1.26.tgz
これは OpenBSD プロジェクトによる libgpg-error-1.25 のパッケージ (current) を libgpg-error-1.26 に合わせて手直ししただけで、全ての動作を確認したものではありません。あくまで自己責任でご利用ください。
ラベル:libgpg-error
posted by yamaga at 08:34| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年12月21日

gnupg-2.1.17 (OpenBSD 6.0 自作パッケージソース)

GnuPG 2.1.17 のパッケージソースを作ってみました。

(0) インストール済みのgnupg2があれば、あらかじめアンインストールしておきます。もちろん、同時にインストールされていたライブラリなどは残しておきます。

(1) gnupg2-2.1.17.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/security
# tar zxvf (somewhere)/gnupg2-2.1.17.pkgsrc.tgz
# cd gnupg2-2.1.17
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/gnupg-2.1.17.tgz
(2) インストールはroot権限で以下のように実行します。
# pkg_add -v -i (somewhere)/gnupg-2.1.17.tgz
これは OpenBSD プロジェクトによる gnupg-2.1.15 のパッケージ (current) を gnupg-2.1.17 に合わせて手直ししただけで、全ての動作を確認したものではありません。また FLAVOR は一切試していません。あくまで自己責任でご利用ください。
ラベル:gnupg
posted by yamaga at 09:05| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年12月16日

libgcrypt-1.7.5 (OpenBSD 6.0 自作パッケージソース)

libgcrypt-1.7.5 のパッケージソースを作ってみました。
これは標準パッケージの libgcrypt-1.7.1 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
libgcrypt-1.7.5.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/security
# tar zxvf (somewhere)/libgcrypt-1.7.5.pkgsrc.tgz
# cd libgcrypt-1.7.5
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/libgcrypt-1.7.5.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/libgcrypt-1.7.5.tgz
これは OpenBSD プロジェクトによる libgcrypt-1.7.4 のパッケージ (current) を libgcrypt-1.7.5 に合わせて手直ししただけで、全ての動作を確認したものではありません。あくまで自己責任でご利用ください。
ラベル:libgcrypt
posted by yamaga at 08:27| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年12月09日

gnutls-3.4.17 (OpenBSD 6.0 自作パッケージソース)

gnutls-3.4.17 のパッケージソースを作ってみました。
これは標準パッケージの gnutls-3.4.14 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
gnutls-3.4.17.pkgsrc.tgz をダウンロードし、root権限で以下のように実行してインストールします。
# cd /usr/ports/security
# tar zxvf (somewhere)/gnutls-3.4.17.pkgsrc.tgz
# cd gnutls-3.4.17
# make package
# pkg_add -v -r -i /usr/ports/packages/`machine`/all/gnutls-3.4.17.tgz
これは OpenBSD プロジェクトによる gnutls-3.4.16 のパッケージ (current) を gnutls-3.4.17 に合わせて手直ししただけで、全ての動作を確認したものではありません。あくまで自己責任でご利用ください。
ラベル:gnutls
posted by yamaga at 08:22| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年11月28日

stunnel-5.38 (OpenBSD 6.0 自作パッケージソース)

stunnel-5.38 のパッケージソースを作ってみました。

stunnel-5.38.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/security
# tar zxvf (somewhere)/stunnel-5.38.pkgsrc.tgz
# cd stunnel-5.38
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/stunnel-5.38.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/stunnel-5.38.tgz
これは OpenBSD プロジェクトによる stunnel-5.37 のパッケージ (current) を stunnel-5.38 に合わせて手直ししただけで全ての動作を確認したわけではありません。
ラベル:Stunnel
posted by yamaga at 08:58| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年11月23日

pinentry-1.0.0 (OpenBSD 6.0 自作パッケージソース)

pinentry-1.0.0 のパッケージソースを作ってみました。

pinentry-1.0.0.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/security
# tar zxvf (somewhere)/pinentry-1.0.0.pkgsrc.tgz
# cd pinentry-1.0.0
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/pinentry-1.0.0.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/pinentry-1.0.0.tgz
これは OpenBSD プロジェクトによる pinentry-0.9.7 のパッケージ (current) を pinentry-1.0.0 に合わせて手直ししただけで全ての動作を確認したわけではありません。
ラベル:pinentry
posted by yamaga at 11:16| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

npth-1.3 (OpenBSD 6.0 自作パッケージソース)

GnuPG 2.1系で使われるライブラリ npth-1.3 のパッケージソースを作ってみました。
これは標準パッケージの npth-1.2 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
npth-1.3.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/devel
# tar zxvf (somewhere)/npth-1.3.pkgsrc.tgz
# cd npth-1.3
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/npth-1.3.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/npth-1.3.tgz
これは OpenBSD プロジェクトによる npth-1.2 のパッケージを npth-1.3 に合わせて手直ししただけで全ての動作を確認したわけではありません。
ラベル:npth
posted by yamaga at 11:11| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年11月20日

gnupg-2.1.16 (OpenBSD 6.0 自作パッケージソース)

GnuPG 2.1.16 のパッケージソースを作ってみました。

(0) インストール済みのgnupg2があれば、あらかじめアンインストールしておきます。もちろん、同時にインストールされていたライブラリなどは残しておきます。

(1) gnupg2-2.1.16.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/security
# tar zxvf (somewhere)/gnupg2-2.1.16.pkgsrc.tgz
# cd gnupg2-2.1.16
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/gnupg-2.1.16.tgz
(2) インストールはroot権限で以下のように実行します。
# pkg_add -v -i (somewhere)/gnupg-2.1.16.tgz
これは OpenBSD プロジェクトによる gnupg-2.1.15 のパッケージ (current) を gnupg-2.1.16 に合わせて手直ししただけで、全ての動作を確認したものではありません。また FLAVOR は一切試していません。あくまで自己責任でご利用ください。
ラベル:gnupg
posted by yamaga at 12:30| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年11月15日

libgpg-error-1.25 (OpenBSD 6.0 自作パッケージソース)

libgpg-error-1.25 のパッケージソースを作ってみました。
これは標準パッケージの libgpg-error-1.23 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
libgpg-error-1.25.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/security
# tar zxvf (somewhere)/libgpg-error-1.25.pkgsrc.tgz
# cd libgpg-error-1.25
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/libgpg-error-1.25.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/libgpg-error-1.25.tgz
これは OpenBSD プロジェクトによる libgpg-error-1.24 のパッケージ (current) を libgpg-error-1.25 に合わせて手直ししただけで、全ての動作を確認したものではありません。あくまで自己責任でご利用ください。
ラベル:libgpg-error
posted by yamaga at 08:47| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年11月07日

stunnel-5.37 (OpenBSD 6.0 自作パッケージソース)

stunnel-5.37 のパッケージソースを作ってみました。

stunnel-5.37.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/security
# tar zxvf (somewhere)/stunnel-5.37.pkgsrc.tgz
# cd stunnel-5.37
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/stunnel-5.37.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/stunnel-5.37.tgz
これは OpenBSD プロジェクトによる stunnel-5.31 のパッケージを stunnel-5.37 に合わせて手直ししただけで全ての動作を確認したわけではありません。
ラベル:Stunnel
posted by yamaga at 23:06| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年10月21日

libpng-1.6.26 (OpenBSD 6.0 自作パッケージソース)

libpng-1.6.26 のパッケージソースを作ってみました。
これは標準パッケージの png-1.6.23 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
png-1.6.26.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/graphics
# tar zxvf (somewhere)/png-1.6.26.pkgsrc.tgz
# cd png-1.6.26
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/png-1.6.26.tgz
インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/png-1.6.26.tgz
これは OpenBSD プロジェクトによる png-1.6.25 のパッケージ (current) を png-1.6.26 に合わせて手直ししただけで全ての動作を確認したわけではありません。
ラベル:libpng
posted by yamaga at 09:06| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年10月10日

gnutls-3.4.16 (OpenBSD 6.0 自作パッケージソース)

gnutls-3.4.16 のパッケージソースを作ってみました。
これは標準パッケージの gnutls-3.4.14 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
gnutls-3.4.16.pkgsrc.tgz をダウンロードし、root権限で以下のように実行してインストールします。
# cd /usr/ports/security
# tar zxvf (somewhere)/gnutls-3.4.16.pkgsrc.tgz
# cd gnutls-3.4.16
# make package
# pkg_add -v -r -i /usr/ports/packages/`machine`/all/gnutls-3.4.16.tgz
これは OpenBSD プロジェクトによる gnutls-3.4.15 のパッケージ (current) を gnutls-3.4.16 に合わせて手直ししただけで、全ての動作を確認したものではありません。あくまで自己責任でご利用ください。
ラベル:gnutls
posted by yamaga at 17:00| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年09月13日

netatalk-3.1.10 (OpenBSD 6.0 自作パッケージソース)

netatalk-3.1.10 のパッケージソースを作ってみました。

(0) インストール済みのnetatalkがあれば、あらかじめアンインストールしておきます。もちろん、同時にインストールされていたライブラリなどは残しておきます。インストールされていなければ、標準パッケージをインストールすることで、必要なライブラリをインストールしておきます。
# pkg_add -v -i netatalk
# pkg_delete -v netatalk
(1) netatalk3-3.1.10.pkgsrc.tgz をダウンロードしてroot権限で以下のように実行します。
# cd /usr/ports/net
# tar zxvf (somewhere)/netatalk3-3.1.10.pkgsrc.tgz
# cd netatalk3-3.1.10
# make package
# make clean
すると以下のパッケージができます。
/usr/ports/packages/`machine`/all/netatalk-3.1.10.tgz
(2) インストールはroot権限で以下のように実行します。
# pkg_add -v -r -i (somewhere)/netatalk-3.1.10.tgz
なお、このパッケージソースは OpenBSD プロジェクトによる netatalk-3.1.9 のパッケージ (current) を netatalk-3.1.10 に合わせて手直ししただけで、全ての動作を確認したわけではありません。
ラベル:netatalk
posted by yamaga at 14:45| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年09月09日

gnutls-3.4.15 (OpenBSD 6.0 自作パッケージソース)

GNUTLS-SA-2016-3「OCSP validation issue」 を修正した gnutls-3.4.15 のパッケージソースを作ってみました。
これは標準パッケージの gnutls-3.4.14 をそのまま置き換えますが、互換性の問題で不具合が発生する可能性があります。ご利用に当たっては自己責任でお願いします。
gnutls-3.4.15.pkgsrc.tgz をダウンロードし、root権限で以下のように実行してインストールします。
# cd /usr/ports/security
# tar zxvf (somewhere)/gnutls-3.4.15.pkgsrc.tgz
# cd gnutls-3.4.15
# make package
# pkg_add -v -r -i /usr/ports/packages/`machine`/all/gnutls-3.4.15.tgz
これは OpenBSD プロジェクトによる gnutls-3.4.14 のパッケージを gnutls-3.4.15 に合わせて手直ししただけで、全ての動作を確認したものではありません。あくまで自己責任でご利用ください。
ラベル:gnutls
posted by yamaga at 08:19| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする

2016年09月04日

OpenSMTPD を使う

以下の内容は古く、2018年10月にリリースされた OpenSMTPD 6.4.0 以降では smtpd.conf の文法が大幅に変更されたので、詳細は smtpd.conf(5) をご参照ください。また、本記事で紹介している方法との差分だけを紹介した記事もご参照ください。
OpenBSD project による SMTP サーバの実装である OpenSMTPDOpenBSD の標準 MTA になって2年以上経ちましたので、改めて OpenSMTPD の設定についてまとめてみました。

内容は2年以上前に書いた記事とほぼ同じですが、OpenBSD 6.0 に標準で搭載されているバージョン 6.0.0 を前提とし、シンプルに書き直しています。

(0) smtpd を停止します(OpenBSDでは標準でローカル→ローカルおよびローカル→外部配送用に smtpd が起動しています)
# /etc/rc.d/smtpd stop

(1) メールサーバとして実際のホスト名とは異なるドメインを扱う場合は、/etc/mail/mailname を新規に作成し、そこにメールサーバ名(or ドメイン名、DNSで名前解決できるもの)を記述します。
# echo メールサーバ名 > /etc/mail/mailname
このファイルに記述する文字列は Postfix で言うところの myhostnamemydomain で設定する文字列に相当します。

(2) メールの外部への配送は、認証のある外部SMTPサーバにリレーさせるので、その認証情報を設定します。
# touch /etc/mail/secrets
# chmod 640 /etc/mail/secrets
# chown root:_smtpd /etc/mail/secrets
# echo "ラベル ユーザ名:パスワード" > /etc/mail/secrets
セキュリティを真面目に考えるなら echo ではなくて、vi などのエディタを使うべきでしょう。

(3) 設定ファイル /etc/mail/smtpd.conf を以下のような内容で作成します。
relayhost = "tls+auth://ラベル@リレーサーバ名:587"

table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets

listen on all

accept from any for local alias <aliases> deliver to mbox
accept for any relay via $relayhost auth <secrets>
上記の設定内容は「見たまま」なので説明は不要でしょう。ただし「from ほげほげ」を省略すると「from local」を意味します。因みに、特定のアドレスブロック(例えば、192.168.0.0/24)から無条件でリレーを許可する場合は以下のように設定します。
relayhost = "tls+auth://ラベル@リレーサーバ名:587"
mynetwork = "192.168.0.0/24"

table aliases file:/etc/mail/aliases
table secrets file:/etc/mail/secrets

listen on all

accept from any for local alias <aliases> deliver to mbox
accept from source $mynetwork for any relay via $relayhost auth <secrets>
accept for any relay via $relayhost auth <secrets>

(4) 文法に間違いがないか確認します。
# /usr/sbin/smtpd -n
configuration OK

(5) smtpd を起動します。
# /etc/rc.d/smtpd start

これで /etc/mail/mailname に設定したドメイン宛のメールを受け取れること、またローカルから外部への(リレーサーバ経由での)配送もできることを確認しました。

参考文献
ラベル:opensmtpd
posted by yamaga at 09:18| Comment(0) | TrackBack(0) | OpenBSD | このブログの読者になる | 更新情報をチェックする