2019年12月アーカイブ

samba + bind9 + isc-dhcpでDDNS

| コメント(0)

誰得な備忘録.

下記の記事の通りなのだが,そのままでは動かず.

https://wiki.samba.org/index.php/Configure_DHCP_to_update_DNS_records_with_BIND9

/var/log/named/named.logに以下のようなエラーを吐いて動作しない.

18-Dec-2019 18:39:59.111 database: error: samba_dlz: spnego update failed

様々試してみた結果,以下の方法で動作する様になった.

https://lists.samba.org/archive/samba/2017-December/212948.html

systemdを使用しているので,systemdで起動する際に環境変数を設定する.

ここ(https://docs.docker.jp/engine/articles/systemd.html)を参考にする.

sudo mkdir /etc/systemd/system/named.service.d
sudo vi /etc/systemd/system/named.service.d/local.conf
--------------
[Service]
Environment="KRB5RCACHETYPE=none"
--------------
sudo systemctl daemon-reload

設定ファイルが読み込まれたのを確認する.

$ sudo systemctl show named --property Environment
Environment="KRB5RCACHETYPE=none"

再起動する.

$ sudo systemctl restart named

y2blog - LeopardサーバのRADIUS #7 : WindowsXP標準サプリカントへの対応から。

FreeRadiusにてEAP-TLS or EAP-PEAP認証サーバを構築し、WindowsXP以降の標準サプリカントにて利用する場合には、証明書にあるextensionが含まれている必要がある。

通常のサーバ証明書の作成手順で署名要求書まで作成する。

CAの署名時に(gentoo Linuxの場合、/etc/raddb/certs/以下にある)xpextensionsファイルを利用する。
以下、引用。


 サーバの署名要求 (CSR) とクライアントの署名要求を作成する所までは今までと同じです.異なるのはCAによる署名手続きです.サーバの場合とクライアントの場合で組み込む extension が異なります.extensionの定義ファイル "xpextension" の内容は次のようになっています.

#
#  For use with the 'CA.all' script.
#
[ xpclient_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.2

[ xpserver_ext]
extendedKeyUsage = 1.3.6.1.5.5.7.3.1
サーバ用のコマンド例
#openssl ca  -policy policy_anything -out newcert.pem -extensions xpserver_ext -extfile xpextensions \
-infiles newreq.pem -config openssl.cnf
クライアント用のコマンド例
#openssl ca  -policy policy_anything -out newcert.pem -extensions xpclient_ext -extfile xpextensions \
-infiles newreq.pem -condig openssl.cnf

以上。
 

Enhanced by Zemanta

オレオレ証明書の作り方-2019年版 (2)

| コメント(0)

サーバ証明書作成編。

まず、サーバ用の秘密鍵を作成

openssl genrsa -camellia256 -out dwctsv01-key.pem 4096

このままだと、何かのサービスを立ち上げるたびにパスフレーズを要求されるため、
パスフレーズを解除する。当然セキュリティレベルは低下するので、利便性との
トレードオフ。

openssl rsa -in dwctsv01-key.pem -out dwctsv01-nopasskey.pem

それを利用して、CAに対しての署名要求書を作成する。

openssl req -new -days 3650 -key dwctsv01-key.pem -out dwctsv01-csr.pem -config openssl.cnf

CAとして、書名要求書に署名する。

openssl ca -in dwctsv01-csr.pem -keyfile private/ca_key.pem -cert RootCA_cert.pem -out dwctsv01-cert.pem -config openssl.cnf

あとは、サービスごとに必要な設定をする。

なお,サーバ証明書の場合には,例えば,openssl-server.cnfという名前で以下のファイルを作成する.

basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth

そしてCAの署名時に以下のコマンドを実行する。

openssl ca -in dwctsv01-csr.pem -keyfile private/ca_key.pem -cert RootCA_cert.pem -out dwctsv01-cert.pem -config openssl.cnf -extfile openssl-server.cnf

クライアント証明書の場合は,例えば,openssl-client.cnfという名前で以下のファイルを作成する.

basicConstraints = CA:FALSE
keyUsage = digitalSignature
extendedKeyUsage = clientAuth

openssl ca -in dwctsv01-csr.pem -keyfile private/ca_key.pem -cert RootCA_cert.pem -out dwctsv01-cert.pem -config openssl.cnf -extfile openssl-client.cnf

オレオレ証明書の作り方-2019年版 (1)

| コメント(0)

誰得な備忘録。

libreSSLを使用した場合の,rootCAの公開証明書と秘密鍵の作成。

なお,セキュリティ的には次の文書を参照すること.

https://www.ipa.go.jp/security/ipg/documents/ipa-cryptrec-gl-3001-2.0.pdf

適当なディレクトリを掘って、sslフォルダからopenssl.cnfをコピーする。

んで編集。
----- ここから -----
--- /etc/ssl/openssl.cnf 2012-01-28 08:50:35.982866598 +0900
+++ openssl.cnf 2012-03-08 10:10:34.342555551 +0900
@@ -39,7 +39,7 @@
####################################################################
[ CA_default ]

-dir = /root/privateCA # Where everything is kept
+dir = /root/wctCA # Where everything is kept
certs = $dir/certs # Where the issued certs are kept
crl_dir = $dir/crl # Where the issued crl are kept
database = $dir/index.txt # database index file.
@@ -70,7 +70,7 @@
# crlnumber must also be commented out to leave a V1 CRL.
# crl_extensions = crl_ext

-default_days = 365 # how long to certify for
+default_days = 3650 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = default # use public key default MD
preserve = no # keep passed DN ordering
@@ -103,7 +103,7 @@

####################################################################
[ req ]
-default_bits = 1024
+default_bits = 4096
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
attributes = req_attributes
@@ -126,24 +126,25 @@

[ req_distinguished_name ]
countryName = Country Name (2 letter code)
-countryName_default = AU
+countryName_default = JP
countryName_min = 2
countryName_max = 2

stateOrProvinceName = State or Province Name (full name)
-stateOrProvinceName_default = Some-State
+stateOrProvinceName_default = Hokkaido

localityName = Locality Name (eg, city)
+localityName_default = Kushiro

0.organizationName = Organization Name (eg, company)
-0.organizationName_default = Internet Widgits Pty Ltd
+0.organizationName_default = Kushiro NCT

# we can do this but it is not needed normally :-)
#1.organizationName = Second Organization Name (eg, company)
#1.organizationName_default = World Wide Web Pty Ltd

organizationalUnitName = Organizational Unit Name (eg, section)
-#organizationalUnitName_default =
+organizationalUnitName_default = WCT-Lab, Dept. of Electronic Eng.

commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_max = 64
@@ -167,13 +168,13 @@
# This goes against PKIX guidelines but some CAs do it and some software
# requires this to avoid interpreting an end user certificate as a CA.

-basicConstraints=CA:FALSE
+basicConstraints=CA:TRUE

# Here are some examples of the usage of nsCertType. If it is omitted
# the certificate can be used for anything *except* object signing.

# This is OK for an SSL server.
-# nsCertType = server
+nsCertType = server

# For an object signing certificate this would be used.
# nsCertType = objsign
@@ -245,7 +246,7 @@
# keyUsage = cRLSign, keyCertSign

# Some might want this also
-# nsCertType = sslCA, emailCA
+nsCertType = sslCA, emailCA

# Include email address in subject alt name: another PKIX recommendation
# subjectAltName=email:copy
@@ -327,7 +328,7 @@
[ tsa_config1 ]

# These are used by the TSA reply generation only.
-dir = /root/privateCA # TSA root directory
+dir = /root/wctCA # TSA root directory
serial = $dir/tsaserial # The current serial number (mandatory)
crypto_device = builtin # OpenSSL engine to use for signing
signer_cert = $dir/tsacert.pem # The TSA signing certificate

------ ここまで ------

コマンドは以下の通り。

ルート証明書の秘密鍵の作成

openssl ecparam -genkey -noout -name secp521r1 -param_enc explicit -out "./private/ca_key.pem"

ルート証明書の公開鍵の作成

openssl req -x509 -key "./private/ca_key.pem" -out "RootCA_cert.pem" -days 3650

これによって、オレオレルート証明書(公開鍵・秘密鍵)が作成された。

Windowsなどにインポートできる形式にするには以下のコマンド。

openssl x509 -in RootCA_crt.pem -outform DER -out wct.elctro.kushiro-ct.ac.jp_cert.der

サーバ証明書などは、別記事にて。