<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pleroma | 央樹の葉</title>
	<atom:link href="https://www.terfes.net/tag/pleroma/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.terfes.net</link>
	<description>ターフェス＠浅田和哉のまったり戯言ブログ</description>
	<lastBuildDate>Wed, 08 May 2019 07:00:57 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
<site xmlns="com-wordpress:feed-additions:1">7770719</site>	<item>
		<title>RaspberryPiにPleromaをインストールしてみる（Pleroma導入編）</title>
		<link>https://www.terfes.net/2018/05/05/post-1470/</link>
					<comments>https://www.terfes.net/2018/05/05/post-1470/#respond</comments>
		
		<dc:creator><![CDATA[ターフェス／浅田和哉]]></dc:creator>
		<pubDate>Fri, 04 May 2018 15:00:56 +0000</pubDate>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[pleroma]]></category>
		<category><![CDATA[Raspberrypi]]></category>
		<guid isPermaLink="false">https://www.terfes.net/?p=1470</guid>

					<description><![CDATA[前のエントリの続き。Pleromaのインストールから。 目次 概略必須パッケージのインストール基本ツールパッケージのインストールelixirのインストールPleromaのインストールpleromaユーザの作成Plerom [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.terfes.net/?p=1433&amp;preview=true">前のエントリ</a>の続き。Pleromaのインストールから。</p>
<p><span id="more-1470"></span></p>

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2"><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">概略</a></li><li><a href="#toc2" tabindex="0">必須パッケージのインストール</a><ol><li><a href="#toc3" tabindex="0">基本ツールパッケージのインストール</a></li><li><a href="#toc4" tabindex="0">elixirのインストール</a></li></ol></li><li><a href="#toc5" tabindex="0">Pleromaのインストール</a><ol><li><a href="#toc6" tabindex="0">pleromaユーザの作成</a></li><li><a href="#toc7" tabindex="0">Pleromaのインストール</a></li><li><a href="#toc8" tabindex="0">ローカル環境での動作確認</a></li><li><a href="#toc9" tabindex="0">ルーターのポート開放</a></li><li><a href="#toc10" tabindex="0">nginxの設定</a></li><li><a href="#toc11" tabindex="0">Let&#8217;s Encryptの証明書取得</a></li><li><a href="#toc12" tabindex="0">pleromaのサービス登録</a></li></ol></li><li><a href="#toc13" tabindex="0">&nbsp;最終作業</a><ol><li><a href="#toc14" tabindex="0">外部ブラウザでアクセス</a></li><li><a href="#toc15" tabindex="0">アカウント追加を停止する</a></li><li><a href="#toc16" tabindex="0">Let&#8217;s Encryptの自動更新を有効にする</a></li></ol></li><li><a href="#toc17" tabindex="0">参考にしたサイト</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">概略</span></h2>

<a rel="noopener" target="_blank" href="https://i2p.rocks/blog/the-magical-world-of-pleroma-setting-up-your-instance.html" title="404 Not Found" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fi2p.rocks%2Fblog%2Fthe-magical-world-of-pleroma-setting-up-your-instance.html?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">404 Not Found</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://i2p.rocks/blog/the-magical-world-of-pleroma-setting-up-your-instance.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">i2p.rocks</div></div></div></div></a>
<p>このページがPleromaのインストールの手順としてはいいらしいのだけど、他のページもいくつか参考にしてある程度独自にやって見た。</p>
<h2><span id="toc2">必須パッケージのインストール</span></h2>
<h3><span id="toc3">基本ツールパッケージのインストール</span></h3>
<p>まずは、<code>git</code>、<code>nginx</code>、<code>postgresql</code>など必要なものをインストール</p>
<pre><code>$&nbsp;sudo update &amp;&amp; sudo apt dist-upgrade &amp;&amp; sudo apt autoremove &amp;&amp; sudo apt autoclean
$ sudo apt-get install build-essential git postgresql nginx letsencrypt</code></pre>
<p><code>build-essential</code>は最新になっていてインストールされなかったので外してもいいかも。<br />
<code>certbot</code>はなんかよく分からないけど認証取ってもらえなかったので、最終的に<code>letsencrypt</code>を利用する方向にしたのでここでインストールしておく。</p>
<p>後、この時点でDDNS取ってるので、万が一に備えて<code>/var/www/html/index.html</code>を作成しておく。</p>
<pre><code>$ sudo nano /var/www/html/index.html</code></pre>
<p>nginxを使っていることを隠すのが目的なので、内容はなんでもいいのですが、</p>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="ja"&gt;
&lt;head&gt;
&lt;meta charset="utf-8"&gt;
&lt;title&gt;test&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;test&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<p>こんな感じのものにしています。</p>
<h3><span id="toc4">elixirのインストール</span></h3>
<p>elixirのインストールに関しては、ほとんどのサイトでDebianかUbuntu用の手順なので、下記ページのRaspbian手順通りにインストール準備を進める。</p>

<a rel="noopener" target="_blank" href="https://elixir-lang.org/install.html#raspberry-pi" title="Installing Elixir" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/elixir-lang.org/images/social/elixir-og-card.jpg?resize=320%2C180&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Installing Elixir</div><div class="blogcard-snippet external-blogcard-snippet">Website for Elixir</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://elixir-lang.org/install.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">elixir-lang.org</div></div></div></div></a>
<pre><code>$ echo "deb https://packages.erlang-solutions.com/debian stretch contrib" | sudo tee /etc/apt/sources.list.d/erlang-solutions.list
$ wget https://packages.erlang-solutions.com/debian/erlang_solutions.asc
$ sudo apt-key add erlang_solutions.asc
$ sudo apt update</code></pre>
<p>これで準備ができたので、<code>elixir</code>と<code>esl-erlang</code>のインストールを実施。</p>
<pre><code>$ sudo apt-get install --no-install-recommends elixir esl-erlang</code></pre>
<p>インストールできたら、キーチェインファイルは一応削除しておく</p>
<pre><code>$ rm erlang_solution.asc</code></pre>
<h2><span id="toc5">Pleromaのインストール</span></h2>
<p>インストール可能な必要パッケージのインストールが済んだので、ここからPleromaのインストール。</p>
<h3><span id="toc6">pleromaユーザの作成</span></h3>
<p>最初にPleroma用ユーザーを作成。ほぼ悩まなくていいと思います。フルネーム〜その他までは特に必要ないのでEnterで大丈夫。</p>
<pre><code>$ sudo adduser pleroma
新しいグループ `pleroma' (1001) を追加しています...
新しいユーザ `pleroma' (1001) をグループ `pleroma' として追加しています...
ホームディレクトリ `/home/pleroma' を作成しています...
`/etc/skel' からファイルをコピーしています...
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: パスワードは正しく更新されました
pleroma のユーザ情報を変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
	フルネーム []: 
	部屋番号 []: 
	職場電話番号 []: 
	自宅電話番号 []: 
	その他 []: 
以上で正しいですか? [Y/n] y</code></pre>
<p>次に、pleromaユーザーをsudoグループに所属させ、pleromaユーザに切り替える。</p>
<pre><code>$ usermod -aG sudo pleroma
$ su - pleroma</code></pre>
<h3><span id="toc7">Pleromaのインストール</span></h3>
<p>pleromaのソースをクローンする。</p>
<pre><code>$ git clone https://git.pleroma.social/pleroma/pleroma</code></pre>
<p>クローンしたら、配下にできた<code>~/pleroma</code>ディレクトリへ移動して、追加で必要なパッケージのインストール。</p>
<pre><code>$ cd pleroma
$ mix deps.get
!!! RUNNING IN LOCALHOST DEV MODE! !!!
FEDERATION WON'T WORK UNTIL YOU CONFIGURE A dev.secret.exs
Could not find Hex, which is needed to build dependency :phoenix
Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] y</code></pre>
<p>上記のように<code>Hex</code>のインストールを聞かれるのでインストールする。</p>
<p>作業が終わったら、コンフィグを生成する。</p>
<pre><code> $ mix generate_config
!!! RUNNING IN LOCALHOST DEV MODE! !!!
FEDERATION WON'T WORK UNTIL YOU CONFIGURE A dev.secret.exs
Could not find "rebar3", which is needed to build dependency :parse_trans
I can install a local copy which is just used by Mix
Shall I install rebar3? (if running non-interactively, use "mix local.rebar --force") [Yn] y</code></pre>
<p>ここでも<code>rebar3</code>のインストールを求められるので、インストール。<br />
少し時間がかかるので、まったり待つ。<br />
少々Warningメッセージが目立つログが流れるが動作に支障はなさそうなので待つ。</p>
<p>最後に、ドメイン名、インスタンス名、メールアドレスを尋ねられるのでそれぞれ入力して終了。</p>
<pre><code>--- THIS WILL OVERWRITE YOUR config/generated_config.exs! ---

What is your domain name? (e.g. pleroma.soykaf.com): [ドメイン名]
What is the name of your instance? (e.g. Pleroma/Soykaf): [インスタンス名]
What's your admin email address: [メールアドレス]

Writing config to config/generated_config.exs.

Check it and configure your database, then copy it to either config/dev.secret.exs or config/prod.secret.exs

Writing setup_db.psql, please run it as postgre superuser, i.e.: sudo su postgres -c 'psql -f config/setup_db.psql'</code></pre>
<p>生成した<code>generated_config.exs</code>を記載通りに<code>prod.secret.exs</code>に変更する。</p>
<pre><code>$ cp config/generated_config.exs config/prod.secret.exs</code></pre>
<p><code>postgresql</code>データベースもセットアップファイルを生成してるので記載通りにコマンドを走らせる。</p>
<pre><code>$ sudo su postgres -c 'psql -f config/setup_db.psql'</code></pre>
<p>データベースを作成したら、マイグレーションを実行する</p>
<pre><code>$ MIX_ENV=prod mix ecto.migrate</code></pre>
<p>これも時間もかかり、warningも目立つがそのまま待つ。</p>
<h3><span id="toc8">ローカル環境での動作確認</span></h3>
<p>マイグレーション終わったら、まずはローカル環境で動作確認。<br />
そのため、<code>pleroma</code>を起動する。</p>
<pre><code>$ MIX_ENV=prod mix phx.server</code></pre>
<p>起動するとログがガンガン流れるので、ブラウザで4000番ポートへアクセスする</p>
<pre>http://[ラズパイのIPアドレス]:4000/</pre>
<p>これでサイトが表示ができれば問題ないので、CTRL+Cで<code>pleroma</code>を終了させる。</p>
<h3><span id="toc9">ルーターのポート開放</span></h3>
<p>ここまででやっておいていいけど、ここでルーターのポート解放を実施するのが吉かなと。</p>
<p>我が家は、NTTのHGW（PR-500MI）なので、詳細設定→静的NAT設定→ワンタッチ設定にあるWebサーバ設定を有効にして、ラズパイのIPアドレスを指定して終わり。</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="aligncenter size-medium wp-image-1503" src="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/05/pr500mi_nat.png?resize=500%2C172&#038;ssl=1" alt="" width="500" height="172" srcset="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/05/pr500mi_nat.png?resize=500%2C172&amp;ssl=1 500w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/05/pr500mi_nat.png?resize=768%2C265&amp;ssl=1 768w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/05/pr500mi_nat.png?resize=800%2C276&amp;ssl=1 800w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/05/pr500mi_nat.png?resize=320%2C110&amp;ssl=1 320w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/05/pr500mi_nat.png?resize=414%2C143&amp;ssl=1 414w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/05/pr500mi_nat.png?resize=600%2C207&amp;ssl=1 600w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/05/pr500mi_nat.png?w=1292&amp;ssl=1 1292w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<h3><span id="toc10">nginxの設定</span></h3>
<p><code>pleroma</code>側で<code>nginx</code>の設定ファイルを用意してくれているので、<code>/etc/nginx/sites-enabled/</code>へコピーする。</p>
<pre><code>$&nbsp;cp /home/pleroma/pleroma/installation/pleroma.nginx /etc/nginx/sites-enabled/</code></pre>
<p>設定ファイルを開き、<code>example.tld</code>になっている箇所を漏れなく自分のドメイン名に変更する。</p>
<pre><code>$ sudo nano /etc/nginx/sites-enabled/pleroma.nginx</code></pre>
<h3><span id="toc11">Let&#8217;s Encryptの証明書取得</span></h3>
<p>ここが一番苦しんだ。参考にしているサイトの手順で行うと、nginxが再起動を受け付けなくなる（<code>/etc/nginx/sites-enabled/pleroma.nginx</code>が証明書取得している前提の設定になっているのが原因なのだが、設定の再読み込みする必要があるため）</p>
<p>仕方ないので<code>certbot</code>を諦めて、<code>letsencrypt</code>を実行する方法を取った。</p>
<pre><code>$ sudo letsencrypt certonly --standalone -d [ドメイン名]</code></pre>
<div class="memo-box">結局<code>--standalone</code>オプションを使ったので<code>certbot</code>でも大丈夫な気はする</div>
<p>証明書の取得ができたら、<code>nginx</code>を再起動して設定を読み込ませる。</p>
<pre><code>$ sudo systemctl restart nginx</code></pre>
<p>ここで、エラーが出るようだと証明書の取得に失敗しているか、<code>/etc/nginx/sites-enabled/pleroma.nginx</code>に間違いがある。</p>
<h3><span id="toc12">pleromaのサービス登録</span></h3>
<p>先にこれを行ってもいいのだけど、なんとなくここで。実際は<code>nginx</code>の設定を終わらせた直後に行なうべきかと。</p>
<p>最初に、pleromaに用意してある<code>systemctl</code>用のスクリプトを<code>/etc/systemd/system/</code>へコピーする</p>
<pre><code>$ cp /home/pleroma/pleroma/installation/pleroma.service /etc/systemd/system/</code></pre>
<p>コピーした<code>pleroma.service</code>に追記が必要なので<code>nano</code>で編集する。追記箇所は下の+の1行。</p>
<pre><code>[Unit]
Description=Pleroma social network
After=network.target postgresql.service

[Service]
User=pleroma
WorkingDirectory=/home/pleroma/pleroma
Environment="HOME=/home/pleroma"
+ Environment="MIX_ENV=prod"
ExecStart=/usr/local/bin/mix phx.server
ExecReload=/bin/kill $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
Alias=pleroma.service</code></pre>
<p>編集後、サービスを有効化する。</p>
<pre><code>$ sudo systemctl enable pleroma --now</code></pre>
<div class="memo-box">
<p>既にサービスが動いてる旨のエラーが出るかも（<code>--now</code>オプションの影響）なので、以下のコマンドでもいいかも</p>
<pre><code>$ sudo systemctl enable pleroma
$ sudo systemctl start pleroma</code></pre>
</div>
<h2><span id="toc13">&nbsp;最終作業</span></h2>
<h3><span id="toc14">外部ブラウザでアクセス</span></h3>
<p>設置作業は以上で終わりなので、スマホ等でサイトへアクセスする。（PCからならテザリングか外部のVPN経由で）</p>
<p>問題なければ、ちゃんと表示されるのでアカウントを作成する。</p>
<h3><span id="toc15">アカウント追加を停止する</span></h3>
<p>アカウントができたら、これ以上のアカウント追加をできないよう<code>/home/pleroma/pleroma/config/prod.secret.exs</code>を<code>nano</code>で開く。</p>
<pre><code>$ sudo nano /home/pleroma/pleroma/config/prod.secret.exs</code></pre>
<p><code>registrations_open</code>を下記のように編集する</p>
<pre><code>  registrations_open: false</code></pre>
<p>編集終了後、<code>pleroma</code>サービスを再起動して置く</p>
<pre><code>$ sudo systemctl reload pleroma</code></pre>
<h3><span id="toc16">Let&#8217;s Encryptの自動更新を有効にする</span></h3>
<p>30日を超えて証明書の更新がないと無効になるようなので、定期的に自動更新をするように設定する必要がある。</p>
<p>まずは、ちゃんと更新ができるか確認。</p>
<pre><code>$ sudo certbot renew</code></pre>
<p>以下のようなメッセージが出ているならOK。</p>
<pre><code>Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/[ドメイン名].conf
-------------------------------------------------------------------------------
Cert not yet due for renewal

The following certs are not due for renewal yet:
  /etc/letsencrypt/live/[ドメイン名]/fullchain.pem (skipped)
No renewals were attempted.</code></pre>
<p>要するに、取得したばかりで更新の必要がないと言ってるだけで、更新手続きそのものは正常にできてる。</p>
<p>今度は、<code>crontab</code>ファイルに定期実行するよう追記する。</p>
<pre><code>0  1    1,15 * *        root    /usr/bin/cerbot renew --quiet</code></pre>
<p>毎月1日15日AM1:00に更新を実行するようにしています。</p>
<h2><span id="toc17">参考にしたサイト</span></h2>

<a rel="noopener" target="_blank" href="https://i2p.rocks/blog/the-magical-world-of-pleroma-setting-up-your-instance.html" title="404 Not Found" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img fetchpriority="high" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fi2p.rocks%2Fblog%2Fthe-magical-world-of-pleroma-setting-up-your-instance.html?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">404 Not Found</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://i2p.rocks/blog/the-magical-world-of-pleroma-setting-up-your-instance.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">i2p.rocks</div></div></div></div></a>

<a rel="noopener" target="_blank" href="https://git.pleroma.social/pleroma/pleroma/wikis/Pleroma%e3%81%ae%e5%85%a5%e3%82%8c%e6%96%b9" title="https://git.pleroma.social/pleroma/pleroma/wikis/Pleroma%e3%81%ae%e5%85%a5%e3%82%8c%e6%96%b9" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fgit.pleroma.social%2Fpleroma%2Fpleroma%2Fwikis%2FPleroma%25e3%2581%25ae%25e5%2585%25a5%25e3%2582%258c%25e6%2596%25b9?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://git.pleroma.social/pleroma/pleroma/wikis/Pleroma%e3%81%ae%e5%85%a5%e3%82%8c%e6%96%b9</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://git.pleroma.social/pleroma/pleroma/wikis/Pleroma%e3%81%ae%e5%85%a5%e3%82%8c%e6%96%b9" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">git.pleroma.social</div></div></div></div></a>
<p><iframe title="Pleromaのお一人様インスタンスをUbuntu 16.04で立てた作業ログ - にせねこメモ" src="https://hatenablog-parts.com/embed?url=https%3A%2F%2Fnixeneko.hatenablog.com%2Fentry%2F2018%2F03%2F20%2F152316" class="embed-card embed-blogcard" scrolling="no" frameborder="0" style="display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;"></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.terfes.net/2018/05/05/post-1470/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1470</post-id>	</item>
		<item>
		<title>RaspberryPiにPleromaをインストールしてみる（下準備編）</title>
		<link>https://www.terfes.net/2018/05/05/post-1433/</link>
					<comments>https://www.terfes.net/2018/05/05/post-1433/#respond</comments>
		
		<dc:creator><![CDATA[ターフェス／浅田和哉]]></dc:creator>
		<pubDate>Fri, 04 May 2018 15:00:32 +0000</pubDate>
				<category><![CDATA[技術]]></category>
		<category><![CDATA[pleroma]]></category>
		<category><![CDATA[Raspberrypi]]></category>
		<guid isPermaLink="false">https://www.terfes.net/?p=1433</guid>

					<description><![CDATA[たまたま、浮いてるラズパイもあるしでやってみた記録を自分用にメモ。 但し、サーバー建ては初体験。 目次 Raspbian Stretch LiteのインストールRaspbianの初期設定アップデートと自動更新の設定IPア [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>たまたま、浮いてるラズパイもあるしでやってみた記録を自分用にメモ。<br />
但し、サーバー建ては初体験。<br />
<span id="more-1433"></span></p>

  <div id="toc" class="toc tnt-number-detail toc-center tnt-number_detail border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4"><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">Raspbian Stretch Liteのインストール</a></li><li><a href="#toc2" tabindex="0">Raspbianの初期設定</a><ol><li><a href="#toc3" tabindex="0">アップデートと自動更新の設定</a></li><li><a href="#toc4" tabindex="0">IPアドレスの固定</a></li><li><a href="#toc5" tabindex="0">raspi-configの設定</a></li><li><a href="#toc6" tabindex="0">セキュリティ向上作業</a></li></ol></li><li><a href="#toc7" tabindex="0">秘密鍵を使ってssh接続する＋パスワード入力を省略する</a><ol><li><a href="#toc8" tabindex="0">Mac側での作業</a></li><li><a href="#toc9" tabindex="0">ラズパイ側での作業</a></li><li><a href="#toc10" tabindex="0">SSHのクライアントのConfigファイルの設定</a></li></ol></li><li><a href="#toc11" tabindex="0">DDNSの設定</a><ol><li><a href="#toc12" tabindex="0">DUC（Dynamic Update Client）のインストール</a></li><li><a href="#toc13" tabindex="0">DUCをサービス登録する</a></li></ol></li><li><a href="#toc14" tabindex="0">参考にしたサイト</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">Raspbian Stretch Liteのインストール</span></h2>
<p>Etcherを使ってimgファイルを書きこみ。</p>

<a rel="noopener" target="_blank" href="https://etcher.io" title="balenaEtcher - Flash OS images to SD cards &amp; USB drives" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img data-recalc-dims="1" loading="lazy" decoding="async" src="https://i0.wp.com/uploads-ssl.webflow.com/636ab6ba0e1bd250e3aaedaf/65ef146b4576693f0c5d825b_OG%20image.png?resize=320%2C180&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">balenaEtcher - Flash OS images to SD cards & USB drives</div><div class="blogcard-snippet external-blogcard-snippet">A cross-platform tool to flash OS images onto SD cards and USB drives safely and easily. Free and open source for makers...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://etcher.io" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">etcher.io</div></div></div></div></a>
<p>一度マウントが解除されるのでマウントし直して、ターミナルから次のコマンドで空ファイルを作り、SSHを有効にしておく（今のバージョンは無効になってるらしいので）</p>
<pre><code>&gt; touch /Volumes/boot/ssh</code></pre>
<div class="memo-box">何度かやり直してるので面倒になってimgファイルに直接埋めこんだので、今は省略してる</div>
<p>ラズパイは有線LAN接続して、SDカードを入れ電源をONにする。</p>
<h2><span id="toc2">Raspbianの初期設定</span></h2>
<h3><span id="toc3">アップデートと自動更新の設定</span></h3>
<p>SSHで接続して、アップデート実施。</p>
<pre><code>$ sudo apt-get update &amp;&amp; sudo apt-get -y dist-upgrade &amp;&amp; sudo apt-get -y autoremove &amp;&amp; sudo apt-get autoclean
$ sudo rpi-update</code></pre>
<div class="alert-box"><code>rpi-update</code>はやらなくてもいいかもだけど、最終的に外部公開するのが目標なので念のため実施</div>
<p>次に、ソフトの自動更新するようunattended-upgradesを導入。</p>
<pre><code>$ sudo apt-get install -y unattended-upgrades</code></pre>
<p>このままでは動作しないようなので、<code>/etc/apt/apt.conf.d/20auto-upgrades</code>を再生成する。</p>
<pre><code>$ sudo dpkg-reconfigure -plow unattended-upgrades</code></pre>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="aligncenter size-medium wp-image-1483" src="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades1.png?resize=500%2C302&#038;ssl=1" alt="" width="500" height="302" srcset="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades1.png?resize=500%2C302&amp;ssl=1 500w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades1.png?resize=320%2C193&amp;ssl=1 320w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades1.png?resize=414%2C250&amp;ssl=1 414w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades1.png?w=570&amp;ssl=1 570w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<p>この画面で、「アップデートがあった場合、自動的にダウンロードとアップデートしていいか？」と聞かれるので&lt;Yes&gt;を選択。</p>
<p><a href="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades2.png?ssl=1"><img data-recalc-dims="1" loading="lazy" decoding="async" class="aligncenter wp-image-1484 size-medium" src="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades2.png?resize=500%2C302&#038;ssl=1" alt="" width="500" height="302" srcset="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades2.png?resize=500%2C302&amp;ssl=1 500w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades2.png?resize=320%2C193&amp;ssl=1 320w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades2.png?resize=414%2C250&amp;ssl=1 414w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/unattended-upgrades2.png?w=570&amp;ssl=1 570w" sizes="(max-width: 500px) 100vw, 500px" /></a></p>
<p>次にこの画面になるので、画像にあるように次の内容に修正する。</p>
<pre><code>"origin=${distro_id},codename=${distro_codename}";</code></pre>
<p>最低限これで動作するはず。これ以外の設定は下記ページ参照。</p>

<a rel="noopener" target="_blank" href="https://qiita.com/kitsuyui/items/11b4c0ebb9d1d2181853" title="Debian 系で unattended-upgrades を有効にする場合の追加設定 (メール通知, autoremove, autoclean, 再起動) - Qiita" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGMjU4ODYlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2ODQ0MzQ_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmJnPUZGRkZGRiZmbT1wbmczMiZzPTg5NzlkMzZjMGY1MGUzMTQ1ZDFhYmYyOTViYmY1ZDk0%26blend-x%3D120%26blend-y%3D462%26blend-w%3D90%26blend-h%3D90%26blend-mode%3Dnormal%26mark64%3DaHR0cHM6Ly9xaWl0YS1vcmdhbml6YXRpb24taW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnMzLWFwLW5vcnRoZWFzdC0xLmFtYXpvbmF3cy5jb20lMkZxaWl0YS1vcmdhbml6YXRpb24taW1hZ2UlMkZkYTI2NzkwZDYyYzk3YzE5NzQ4ODFlZjhkMmM3ZmIwZDYyMDdiN2RjJTJGb3JpZ2luYWwuanBnJTNGMTQxNzc2NTQxMj9peGxpYj1yYi00LjAuMCZ3PTQ0Jmg9NDQmZml0PWNyb3AmbWFzaz1jb3JuZXJzJmNvcm5lci1yYWRpdXM9OCZiZz1GRkZGRkYmYm9yZGVyPTIlMkNGRkZGRkYmZm09cG5nMzImcz01MGE5NDE2ZDgzMDQ1MTM0ZThjY2QwNWJjYmI1OGU3Ng%26mark-x%3D186%26mark-y%3D515%26mark-w%3D40%26mark-h%3D40%26s%3D5cd3b46d72757ae161e3d3dd5185718c?ixlib=rb-4.0.0&#038;w=1200&#038;fm=jpg&#038;mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9RGViaWFuJTIwJUU3JUIzJUJCJUUzJTgxJUE3JTIwdW5hdHRlbmRlZC11cGdyYWRlcyUyMCVFMyU4MiU5MiVFNiU5QyU4OSVFNSU4QSVCOSVFMyU4MSVBQiVFMyU4MSU5OSVFMyU4MiU4QiVFNSVBMCVCNCVFNSU5MCU4OCVFMyU4MSVBRSVFOCVCRiVCRCVFNSU4QSVBMCVFOCVBOCVBRCVFNSVBRSU5QSUyMCUyOCVFMyU4MyVBMSVFMyU4MyVCQyVFMyU4MyVBQiVFOSU4MCU5QSVFNyU5RiVBNSUyQyUyMGF1dG9yZW1vdmUlMkMlMjBhdXRvY2xlJUUyJTgwJUE2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9ZjY5MTk3ZGVlODViZTRlYmQxYzMzMmZiZTc4ZDEwMTE&#038;mark-x=120&#038;mark-y=112&#038;blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBraXRzdXl1aSZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTNkODAwMTdiMDBiZmMzMTM1MTkzZjMxNWNlMmNlNzI3&#038;blend-x=242&#038;blend-y=454&#038;blend-w=838&#038;blend-h=46&#038;blend-fit=crop&#038;blend-crop=left%2Cbottom&#038;blend-mode=normal&#038;txt64=5qCq5byP5Lya56S-5LiA5LyR&#038;txt-x=242&#038;txt-y=539&#038;txt-width=838&#038;txt-clip=end%2Cellipsis&#038;txt-color=%231E2121&#038;txt-font=Hiragino%20Sans%20W6&#038;txt-size=28&#038;s=1a503e2e68b7afbc316b013150b5c22b" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Debian 系で unattended-upgrades を有効にする場合の追加設定 (メール通知, autoremove, autoclean, 再起動) - Qiita</div><div class="blogcard-snippet external-blogcard-snippet">何台か趣味のサーバ用に Ubuntu Server を動かしている。 趣味のサーバは時間が取れないことがあるので、手動アップデートだと忘れてしまうことがある。 unattended-upgrades を有効にすると、セキュリティ上重要なアッ...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://qiita.com/kitsuyui/items/11b4c0ebb9d1d2181853" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">qiita.com</div></div></div></div></a>
<h3><span id="toc4">IPアドレスの固定</span></h3>
<p><code>/etc/dhcpcd.conf</code>を編集する。</p>
<pre><code>sudo nano /etc/dhcpcd.conf</code></pre>
<p>編集するのは次の箇所。</p>
<pre><code>interface eth0
static ip_address=[固定するラズパイのIPアドレス]
static routers=[デフォルトゲートウェイ（基本的にルータのIPアドレス）]
static domain_name_servers=[DNSサーバアドレス（基本的にルータのIPアドレス）] 1.1.1.1</code></pre>
<p>ルータ側で払い出しIPアドレスを固定することができるならそっちもしておいた方が、いざって時にいいかも。</p>
<p>セカンダリDNSに指定した1.1.1.1は、最近公開されたプライバシー重視らしいパブリックDNS。<br />
詳しいことはこちら。</p>

<a rel="noopener" target="_blank" href="https://1.1.1.1/ja-JP/" title="1.1.1.1 — インターネットを高速にする無料アプリ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img data-recalc-dims="1" loading="lazy" decoding="async" src="https://i0.wp.com/1.1.1.1/media/social-share.png?resize=320%2C180&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">1.1.1.1 — インターネットを高速にする無料アプリ</div><div class="blogcard-snippet external-blogcard-snippet">携帯電話でのインターネット利用を高速化し、プライバシー保護と信頼性を強化する無料アプリを、インストールしてください。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://1.1.1.1" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">1.1.1.1</div></div></div></div></a>
<div class="information-box">別に定番のGoogleのパブリックDNSである8.8.8.8でもいいと思う。</div>
<h3><span id="toc5">raspi-configの設定</span></h3>
<p><code>raspi-config</code>を起動して、設定を実施。</p>
<p><img data-recalc-dims="1" loading="lazy" decoding="async" class="aligncenter size-medium wp-image-1482" src="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/raspi-config.png?resize=500%2C302&#038;ssl=1" alt="" width="500" height="302" srcset="https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/raspi-config.png?resize=500%2C302&amp;ssl=1 500w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/raspi-config.png?resize=320%2C193&amp;ssl=1 320w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/raspi-config.png?resize=414%2C250&amp;ssl=1 414w, https://i0.wp.com/www.terfes.net/wp/wp-content/uploads/2018/04/raspi-config.png?w=570&amp;ssl=1 570w" sizes="(max-width: 500px) 100vw, 500px" /></p>
<ul>
<li>Change User Passwordでパスワードを変更</li>
<li>Localisation Options→Change Localeでja_JP.UTF-8を指定</li>
<li>Localisation Options→Change TimezoneでAsia→Tokyoを指定</li>
</ul>
<p>ここまでは必須。以下は任意。</p>
<ul>
<li>Overclock→Highに変更</li>
<li>Advanced Options→Expand FilesystemでSDカード全域を利用する（初回起動時に設定されてるぽい）</li>
</ul>
<p>&lt;Finish&gt;を選択すると再起動するか確認されるので、再起動実施。</p>
<h3><span id="toc6">セキュリティ向上作業</span></h3>
<p>最低限のセキュリティを確保するために、初期ユーザーであるpiのユーザー名を切り替えます。</p>
<p>そのままでは、当然変更できないので作業用ユーザ（temp）を作成する。</p>
<pre><code>$ sudo useradd -M temp</code></pre>
<p>そのままでは、<code>sudo</code>コマンドが利用できないので、作業用ユーザをsudoグループに追加し、パスワードを設定して、一度SSHから抜ける。</p>
<pre><code>$ sudo gpasswd -a temp sudo
$ sudo passwd temp
$ exit</code></pre>
<p>今度は、作業用ユーザでログインしてpiを新ユーザ名に変更する。</p>
<pre><code>$ sudo usermod -l [新ユーザ名] pi</code></pre>
<p>その後で、ホームディレクトリも新ユーザ名に合わせて作成し、piからデータを移動させる（でもここまでの作業でホームディレクトリは空なので必要ないかも）</p>
<pre><code>$ sudo usermod -d /home/[新ユーザ名] -m [新ユーザ名]</code></pre>
<p>さらに、piグループも新ユーザ名に変更してログアウト。</p>
<pre><code>$ sudo groupmod -n [新ユーザ名] pi
$ exit</code></pre>
<p>これで、piから新ユーザ名に切り替わったので、新ユーザ名でSSHでログインします。<br />
その上で作業用ユーザを削除します。</p>
<pre><code>$ sudo userdel temp</code></pre>
<p>さらに、rootユーザも有効になっているため、ロックして無効化します（sudoつけるの面倒だけど、セキュリティ上無効にしておきたい）</p>
<pre><code>$ sudo passwd -l root</code></pre>
<p>これで最低限のセキュリティは確保できたはず。</p>
<h2><span id="toc7">秘密鍵を使ってssh接続する＋パスワード入力を省略する</span></h2>
<p>sshの秘密鍵を作ってsshの設定も済ませてしまう。</p>
<h3><span id="toc8">Mac側での作業</span></h3>
<p>Macのターミナルで次のコマンドで鍵を作る。</p>
<pre><code>&gt; ssh-keygen -t rsa</code></pre>
<p>作成する際、次の３つの質問があるが全部Enterキーで空入力する</p>
<pre><code>Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tool-lab/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:</code></pre>
<p>※今回はラズパイ1台だけなのでkeyファイル名はデフォルトのままにしてるだけ。複数台で鍵の使い分けが必要なら１行目のkeyファイル名の指定は必須。</p>
<p>出来上がった<code>.ssh/id_rsa.pub</code>をラズパイへコピー。</p>
<pre><code>&gt; scp .ssh/id_rsa.pub pi@raspberrypi.local:</code></pre>
<h3><span id="toc9">ラズパイ側での作業</span></h3>
<p>ログインして、次のコマンドでkeyファイルを~/.sshディレクトリへ移動と名前を変更する。</p>
<pre><code>$ mkdir .ssh
$ cat id_rsa.pub &gt;&gt; .ssh/authorized_keys</code></pre>
<p>外部からのアクセスを禁止するためパーミッションの変更を実施し、~/id_rsa.pubを削除。</p>
<pre>$ chmod 700 .ssh
$ chmod 600 .ssh/authorized_keys
$ rm id_rsa.pub</pre>
<p>鍵の準備ができたので、sshサーバーの設定を変更するため、/etc/ssh/sshd_configを編集する。</p>
<pre><code>$ sudo nano /etc/ssh/sshd_config</code></pre>
<p>※エディタはviでも<code>emacs</code>でも<code>vim</code>でもご自由に。<code>Raspbian</code>のデフォルトが<code>nano</code>で使いやすいからなだけ。</p>
<p>編集箇所と編集内容は次の通り。<br />
基本的にはコメントアウトされてるので解除してyes/noに変更するだけ。</p>
<pre><code>Port [任意のポート番号(10000〜65535)]
PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no</code></pre>
<p>Portは、22番から任意の番号に変更する。<br />
変更後、次のコマンドでsshdの再起動をして変更を反映する。</p>
<pre><code>$ sudo systemctl restart ssh</code></pre>
<p>新しくターミナルを開いて、ログインがうまく行くことを確認する。<br />
うまくいかない時はやり直し。</p>
<h3><span id="toc10">SSHのクライアントのConfigファイルの設定</span></h3>
<p>このままだとSSHを起動する時にオプションやらつけて入力が面倒なのでMacに<code>~/.ssh/config</code>ファイルを作る。内容は次の通り。</p>
<pre><code>Host [任意の名前]
 HostName [ラズパイのIPアドレス]
 User [新ユーザ名]
 Port [ラズパイの/etc/ssh/sshd_config内のPortで指定した番号]
 IdentityFile ~/.ssh/id_rsa</code></pre>
<p>これで、任意の名前でSSHログイン可能になる。</p>
<h2><span id="toc11">DDNSの設定</span></h2>
<p>DDNSには、No-IP.comを利用しました。</p>

<a rel="noopener" target="_blank" href="https://www.noip.com" title="No-IP | Smarter DNS Starts Here
" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.noip.com?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">No-IP | Smarter DNS Starts Here
</div><div class="blogcard-snippet external-blogcard-snippet">No-IP is a Free Dynamic DNS and Managed DNS provider with 100% uptime. Get free DDNS, plus domain registration and SSL c...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.noip.com" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.noip.com</div></div></div></div></a>
<h3><span id="toc12">DUC（Dynamic Update Client）のインストール</span></h3>
<p>ドメイン名を確保したら、以下のページにある手順でDUCをインストールしてグローバルIPの変更に対応できるようにする。</p>

<a rel="noopener" target="_blank" href="http://www.noip.com/support/knowledgebase/installing-the-linux-dynamic-update-client-on-ubuntu/" title="How to Install the Linux Dynamic Update Client (DUC) | Support | No-IP Knowledge BaseSupport | No-IP Knowledge Base" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/http%3A%2F%2Fwww.noip.com%2Fsupport%2Fknowledgebase%2Finstalling-the-linux-dynamic-update-client-on-ubuntu%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">How to Install the Linux Dynamic Update Client (DUC) | Support | No-IP Knowledge BaseSupport | No-IP Knowledge Base</div><div class="blogcard-snippet external-blogcard-snippet">What is No-IP’s Linux  DUC? No-IP’s Dynamic Update Client for Linux is a lightweight program that keeps a hostname in sy...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.noip.com/support/knowledgebase/install-linux-3-x-dynamic-update-client-duc" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.noip.com</div></div></div></div></a>
<p>実際のコマンドは次の通り。</p>
<pre><code>$ cd /usr/local/src
$ sudo wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
$ sudo tar xzf noip-duc-linux.tar.gz
$ cd noip-2.1.9-1
$ sudo make install</code></pre>
<p>※ディレクトリ名は執筆時当時のものなので確認して実行すること。</p>
<p><code>make install</code>するときにエラーが出るけど、問題がないので無視してOK。<br />
<code>make install</code>を実行したら、No-IP.comのID（メールアドレス）とパスワードを聞かれるので入力。<br />
次に更新間隔を分単位で入力するので、短めの時間（3〜5分）で一度設定。入力しない場合は30分間隔で更新する。</p>
<pre><code>Please enter an update interval:[30]</code></pre>
<p>その後</p>
<pre><code>Do you wish to run something at successful update?[N] (y/N)</code></pre>
<p>と、更新成功時に何か実行するかと聞かれるけど、実行するものもないのでそのままEnter。</p>
<p>終了したら、次のコマンドでDUCを起動して様子見。</p>
<pre><code>$ sudo /usr/local/bin/noip2</code></pre>
<p>指定した時間が過ぎたら、</p>
<pre><code>$ sudo /usr/local/bin/noip2 -S</code></pre>
<p>でIPが取得されているか確認。</p>
<pre><code>$ sudo /usr/local/bin/noip2 -U 30
$ sudo /usr/local/bin/noip2 -S</code></pre>
<p>これを実行して、更新間隔を30分にして、更新間隔が30分になっていることを確認。</p>
<h3><span id="toc13">DUCをサービス登録する</span></h3>
<p>再起動した時に自動的に起動できるよう、サービス登録をする。<br />
ググって見つけてきた<a rel="noopener" target="_blank" href="https://gist.github.com/NathanGiesbrecht/da6560f21e55178bcea7fdd9ca2e39b5">こちら<span class="fa fa-external-link external-icon anchor-icon"></span></a>の設定ファイルを利用。</p>
<pre><code>$ sudo nano /etc/systemd/system/noip2.service</code></pre>
<p>で、コードをコピペして保存したら、コードに記載されているコマンドを実行してサービスに登録→再起動。</p>
<pre><code>$ sudo systemctl enable noip2
$ sudo systemctl start noip2
$ sudo reboot</code></pre>
<p>再起動後に、ちゃんと動いていることを確認しておく。</p>
<pre>$ sudo systemctl status noip2
$ sudo /usr/local/bin/noip2 -S</pre>
<p>後は30日に1回メールが来るはずなので、その都度ログインして更新しておく。</p>
<h2><span id="toc14">参考にしたサイト</span></h2>
<p>以下のページを参考にしました。</p>

<a rel="noopener" target="_blank" href="https://jyn.jp/raspbian-setup/" title="【Buster対応】Raspbianのインストールと最強の初期設定 | なうびるどいんぐ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img data-recalc-dims="1" loading="lazy" decoding="async" src="https://i0.wp.com/jyn.jp/wp-core/wp-content/uploads/2019/12/raspberry-pi-4-008.jpg?resize=320%2C180&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【Buster対応】Raspbianのインストールと最強の初期設定 | なうびるどいんぐ</div><div class="blogcard-snippet external-blogcard-snippet">Raspberry Piをサーバーにして使うときにやっておきたい設定いろいろ。Raspberry Piで使うDebian系LinuxのRaspbian(Raspberry Pi OS)、セットアップの時にやってる「インストールしたらこれをや...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://jyn.jp/raspbian-setup/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">jyn.jp</div></div></div></div></a>

<a rel="noopener" target="_blank" href="https://tool-lab.com/2013/11/raspi-key-authentication-over-ssh/" title="Raspberry Piに公開鍵認証を使ってssh接続する | ツール・ラボ" class="blogcard-wrap external-blogcard-wrap a-wrap cf"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Ftool-lab.com%2F2013%2F11%2Fraspi-key-authentication-over-ssh%2F?w=320&#038;h=180" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Raspberry Piに公開鍵認証を使ってssh接続する | ツール・ラボ</div><div class="blogcard-snippet external-blogcard-snippet">Raspberry Piに固定IPアドレスを割り当てて、Macのターミナルからssh接続できるようにしました。今回は、もうちょっと安全&amp;簡単に接続できるように設定してみます。 ssh接続時の認証方法 前回までのRaspberry P</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://tool-lab.com/raspi-key-authentication-over-ssh/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">tool-lab.com</div></div></div></div></a>
]]></content:encoded>
					
					<wfw:commentRss>https://www.terfes.net/2018/05/05/post-1433/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1433</post-id>	</item>
	</channel>
</rss>
