<?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>自動 - BLACKND</title>
	<atom:link href="https://blacknd.com/tag/%E8%87%AA%E5%8B%95/feed/" rel="self" type="application/rss+xml" />
	<link>https://blacknd.com</link>
	<description>エンジニアがオススメするPCライフハック術</description>
	<lastBuildDate>Wed, 18 May 2022 07:19:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://blacknd.com/wp-content/uploads/2021/04/logo-mark-6-100x100.png</url>
	<title>自動 - BLACKND</title>
	<link>https://blacknd.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>WordPressをマルウェア感染や改ざんの被害から守る方法と対策まとめ</title>
		<link>https://blacknd.com/develop-wordpress/wordpress-malware-tampering-guard-block/</link>
					<comments>https://blacknd.com/develop-wordpress/wordpress-malware-tampering-guard-block/#respond</comments>
		
		<dc:creator><![CDATA[りゅう]]></dc:creator>
		<pubDate>Thu, 01 Mar 2018 13:04:08 +0000</pubDate>
				<category><![CDATA[開発・WordPress]]></category>
		<category><![CDATA[プラグイン]]></category>
		<category><![CDATA[テーマ]]></category>
		<category><![CDATA[SPAM]]></category>
		<category><![CDATA[リスト]]></category>
		<category><![CDATA[自動]]></category>
		<category><![CDATA[スパム]]></category>
		<category><![CDATA[SiteGuard]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[踏み台]]></category>
		<category><![CDATA[Wordfence]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[対策]]></category>
		<category><![CDATA[Edit Author Slug]]></category>
		<category><![CDATA[IPアドレス]]></category>
		<category><![CDATA[Postfix]]></category>
		<category><![CDATA[海外]]></category>
		<category><![CDATA[マルウェア]]></category>
		<category><![CDATA[キュー]]></category>
		<category><![CDATA[author]]></category>
		<category><![CDATA[改ざん]]></category>
		<category><![CDATA[削除]]></category>
		<category><![CDATA[隠す]]></category>
		<category><![CDATA[改竄]]></category>
		<category><![CDATA[除去]]></category>
		<category><![CDATA[非表示]]></category>
		<category><![CDATA[不正]]></category>
		<category><![CDATA[防御]]></category>
		<category><![CDATA[パスワード]]></category>
		<category><![CDATA[ログイン]]></category>
		<category><![CDATA[拒否]]></category>
		<category><![CDATA[スキャン]]></category>
		<category><![CDATA[管理画面]]></category>
		<guid isPermaLink="false">https://blacknd.com/?p=1967</guid>

					<description><![CDATA[<p><img src="https://blacknd.com/wp-content/uploads/2018/03/wordpress-malware-tampering-guard-block-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>WordPressがマルウェアに感染したり、ファイル等の改ざん被害を受けた際の対策をまとめました。 WordPressは狙われやすい WordPressは、世界で最も多く利用されているオープンソースのCMSです。 しかし [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://blacknd.com/wp-content/uploads/2018/03/wordpress-malware-tampering-guard-block-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>WordPressがマルウェアに感染したり、ファイル等の改ざん被害を受けた際の対策をまとめました。</p>



<h2 class="wp-block-heading">WordPressは狙われやすい</h2>



<p>WordPressは、世界で最も多く利用されているオープンソースのCMSです。</p>



<p>しかし利用者が多いということは、ITリテラシーやセキュリティ意識の低いユーザーが多い可能性も高くなります。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon-komari.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>つまり悪意あるユーザーにとっては格好の標的となります。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ということで今に始まったわけではありませんが、WordPressは悪意あるユーザーに「<strong>常に狙われている</strong>」状態にあるとまず考えましょう。</p>



<p>名の売れたサイトが狙われやすいのは当然ですが、「自分のところはアクセス数が少ないから対策しなくても大丈夫だろう」と高をくくるのは危険です。</p>



<p><strong>悪意あるユーザーが求めているのは、まさにそのようなセキュリティ意識の低いサイトです。</strong></p>



<p>被害に遭ってから対策するのはかなり骨の折れる作業になりますので、事前にできる限りの予防をしておきましょう。</p>



<h2 class="wp-block-heading">乗っ取り被害のチェック</h2>



<p>WordPressの管理画面にログインし、左メニューの「ユーザー」を確認します。</p>



<p>もし自分以外のユーザーが不正に登録されていたら、即座に削除しましょう。</p>



<p>さらに自分自身のパスワードも、長く難解なものに変更します。WordPress側で自動生成することもできます。</p>



<h3 class="wp-block-heading">adminユーザーに注意</h3>



<p>WordPressでは、デフォルトの管理ユーザーが<code>admin</code>になっています。</p>



<p>これをこのまま放置するのはセキュリティ上好ましくありませんので、管理権限を持つ別ユーザーを作成して、<code>admin</code>は削除することをおすすめします。</p>



<h2 class="wp-block-heading">ログインユーザー名が表示されるのを防ぐ</h2>



<p><code>http://******.***/?author=1</code>のように、自サイトのURLに<code>/?author=1</code>を追記してブラウザで表示してみてください。</p>



<p>管理者権限を持つユーザー名が表示される場合、これは危険な状態です。</p>



<p>WordPressの認証は基本的にユーザー名とパスワードの2要素で行いますので、そのうち1つがバレるというのはリスクが高いと考えてください。</p>



<h3 class="wp-block-heading">手動でなんとかする方法</h3>



<p>テーマディレクトリ内の<code>author.php</code>（無ければ作成）の内容を、以下の通りにします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php
    wp_redirect(home_url());
    exit();</code></pre></div>



<p>これで、authorのユーザー名を表示することなくトップページに強制転送します。若干無理やり感がありますが。</p>



<h3 class="wp-block-heading">プラグインを使用する方法</h3>



<p>Edit Author Slugというプラグインで対策できます。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-plugin-directory wp-block-embed-plugin-directory"><div class="wp-block-embed__wrapper">
https://wordpress.org/plugins/edit-author-slug/
</div></figure>



<p>ユーザーアーカイブのスラッグを変更することができますので、<code>/?author=1</code>のようにアクセスしても設定したスラッグのURLに転送され、ユーザー名が露呈することはありません。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>テーマによっては、ユーザー名の表示を無効化する機能を持っている場合もあります。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">ログイン保護と不正アクセス対策</h2>



<p>不正アクセスを防ぐためには様々な方法がありますが、まとめて行ってくれるプラグインがあります。</p>



<h3 class="wp-block-heading">SiteGuard WP Plugin</h3>



<figure class="wp-block-embed is-type-wp-embed is-provider-plugin-directory wp-block-embed-plugin-directory"><div class="wp-block-embed__wrapper">
https://ja.wordpress.org/plugins/siteguard/
</div></figure>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>既に改ざんや乗っ取り被害の跡が見られる場合は、WordPressの管理画面ではなくFTPなどでアップロードする方法をおすすめします。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>SiteGuardは国産のセキュリティプラグインで、ログインページの保護と不正アクセス対策に特化しています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="464" src="https://blacknd.com/wp-content/uploads/2018/03/20180228-234458-1024x464.png" alt="" class="wp-image-1976" srcset="https://blacknd.com/wp-content/uploads/2018/03/20180228-234458-1024x464.png 1024w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234458-300x136.png 300w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234458-768x348.png 768w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234458-1536x696.png 1536w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234458.png 1665w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>上の画像のように、ログイン履歴を見ることもできます。</p>



<p>注目すべきは右端の「タイプ」で、ログインページではなくXMLRPCからのログイン試行（失敗）が並んでいる点です。私がそのような操作を行ったことはありませんので、これは<strong>不正アクセスの試行</strong>を受けていることを意味しています。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>XMLRPCとは外部からWordPressを操作する仕組みと考えてください。外部連携には便利な機能ですが、悪用されやすいというデメリットがあります。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>SiteGuardでは、このXMLRPCを無効にする設定も可能です。</p>



<p>いくつかの機能がありますが、私は以下のように設定しました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="980" height="563" src="https://blacknd.com/wp-content/uploads/2018/03/20180228-234419.png" alt="" class="wp-image-1978" srcset="https://blacknd.com/wp-content/uploads/2018/03/20180228-234419.png 980w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234419-300x172.png 300w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234419-768x441.png 768w" sizes="auto, (max-width: 980px) 100vw, 980px" /></figure>



<p>日本語で項目ごとに説明が記述されているので迷うことは少ないでしょう。</p>



<p>「ログインページ変更」では、<code>/wp-admin/</code>と決まっている管理画面のURLを変更することができます。想像できる通り、ログインページからの不正ログイン試行の多くを防ぐことができます。</p>



<p>「画像認証」は、ひらがなによる画像認証を追加することができます。コメントにも仕掛けられますが、筆者はログインページだけにしておきました。</p>



<p>「XMLRPC防御」では、XMLRPCそのものを無効にしました。具体的には<code>.htaccess</code>に<code>xmlrpc.php</code>へのアクセスを禁止する記述が追加されます。</p>



<p>これでひとまず、不正ログインに関してはかなりセキュリティを強化することができます。</p>



<h2 class="wp-block-heading">改ざんと不正ファイルのチェック</h2>



<p>これらの被害に遭っているかどうかを手動で調査するのは、大変骨の折れる作業となります。</p>



<p>ここでは、セキュリティリスクをスキャンできるプラグインを使用して、被害に遭っているかどうかを確認します。</p>



<h3 class="wp-block-heading">Wordfence Security – Firewall &amp; Malware Scan</h3>



<figure class="wp-block-embed is-type-wp-embed is-provider-plugin-directory wp-block-embed-plugin-directory"><div class="wp-block-embed__wrapper">
https://ja.wordpress.org/plugins/wordfence/
</div></figure>



<p>Wordfenceは、WordPress本体のファイル改ざんや、不正なファイルが作成されていないかをスキャンすることができます。</p>



<p>また、古すぎたり更新が停止しているプラグインはスキャン結果で警告されますので、代替となるプラグインを探すことをおすすめします。</p>



<p>Wordfenceは英語のプラグインですが、使用するのは一部機能のみで設定も特に要らないため問題になることはないでしょう。</p>



<p>何はともあれ、まずは上記プラグインをインストール、有効化します。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>既に改ざんや乗っ取り被害の形跡が見られる場合は、WordPressの管理画面ではなくFTPなどでアップロードする方法をおすすめします。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>管理画面の左メニューに"Wordfence"が追加されますので、そこから"Scan"を選択します。</p>



<p>"START NEW SCAN"ボタンをクリックすれば、WordPressインストールディレクトリ以下の全ファイルを調査してくれます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="781" src="https://blacknd.com/wp-content/uploads/2018/03/20180228-234409-1024x781.png" alt="" class="wp-image-1972" srcset="https://blacknd.com/wp-content/uploads/2018/03/20180228-234409-1024x781.png 1024w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234409-300x229.png 300w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234409-768x586.png 768w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234409.png 1208w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>この画像では左下部の"Results Found"が空になっていますが、これは改ざんや不正なファイルが見つからなかったことを示しています。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>日本語版WordPressでは<code>wp-config-sample.php</code>と<code>readme.html</code>が「内容がオリジナルと異なる」と表示されますが、多くの場合正常です。<br>前者はPHPスクリプトなので、一応おかしなコードが埋め込まれていないか確認（後述）し、問題がなければどちらもIgnore（無効）にしてしまってOKです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>もし"Results Found"に改ざんされたファイルや不正に作成されたファイルが表示された場合、対策が必要です。</p>



<p>具体的には、以下のように対応します。</p>



<ul class="wp-block-list"><li><strong>改ざんされたファイル</strong>：対象ファイルをエディタで開き、後述のようなコードが埋め込まれていれば該当部分を削除する。</li><li><strong>不正に作成されたファイル</strong>：対象ファイルを削除する。</li></ul>



<p>このスキャン作業は、たまに行って確認するようにしましょう。日々の作業が増えますが、被害に遭ってから対応するよりよほど楽です。</p>



<h3 class="wp-block-heading">Live Trafficが便利</h3>



<p>Wordfenceには、他にも様々な機能がありますが、主に使用するのは上記のスキャンと、"Live Traffic"です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="831" src="https://blacknd.com/wp-content/uploads/2018/03/20180228-234716-1024x831.png" alt="" class="wp-image-1974" srcset="https://blacknd.com/wp-content/uploads/2018/03/20180228-234716-1024x831.png 1024w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234716-300x243.png 300w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234716-768x623.png 768w, https://blacknd.com/wp-content/uploads/2018/03/20180228-234716.png 1209w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>アクセスログをほぼリアルタイムに閲覧できる機能ですが、国名を見られたり、怪しいか問題のあったアクセスを色分けして表示してくれたりするので大変便利です。</p>



<p>この機能だけを持つプラグインもありますが、このように1本にまとめられているのは嬉しい限りです。</p>



<p>また、上の画像がまさにそうなのですが、不正なアクセスを行ったIPアドレスをブロックリストに入れることもできます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>ただし攻撃者は自らのPCではなく様々な国にある複数の踏み台を操って不正アクセスを試みますので、多くの場合IPアドレスは一定ではありません。<br>したがって単一のIPアドレスをブロックすることには（無意味とは言いませんが）あまりメリットはありません。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">改ざんされたファイルの修正</h2>



<p>Wordfenceのスキャンで改ざんされたファイルが見つかったら、エディタで開いてみます。</p>



<p>おそらくファイルの先頭に以下のようなコードが不正に埋め込まれています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>&lt;?php $xxxx = Array(/* 無意味に見える大量の英数字 */);
eval(xxxx_function($base64_data, $xxxx)); ?&gt;</code></pre></div>



<p>「無意味に見える大量の英数字」の部分をbase64でデコードすると、PHPのコードであることがわかります。</p>



<p>私は何度もいたちごっこを繰り返しましたが、改ざんされるファイルは毎回<code>index.php</code>, <code>wp-config.php</code>, <code>wp-settings.php</code>あたりでした。</p>



<p>これらのファイルはWordPressが毎回必ず読み込むファイルであるため、悪意あるコードを埋め込むにはうってつけというわけです。</p>



<p>上記のようなコードを発見したら、エディタで不正コード部分の<code>&lt;?php</code>から<code>?&gt;</code>までを削除してください。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon-komari.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>完全な原因究明と抜本的な対策が行われない限り、繰り返し改ざんが行われる場合があります。私もそうでした。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">不正に作成されたファイルの削除</h2>



<p>Wordfenceの"Live Traffic"の部分で紹介した画像のように、いかにもランダムで付けたファイル名である場合が多いですが、たまに意味ありげなファイル名になっていることもあります。拡張子は<code>.php</code>です。</p>



<p>作成されるディレクトリはまちまちで、<code>wp-admin/</code>や<code>wp-includes/</code>の中であったり、<code>wp-content/uploads/</code>の中であったり、プラグインやテーマのディレクトリ内であったりします。深い階層内に作成されることもあります。</p>



<p>該当ファイルをエディタで開くと、コードは概ね以下のように難読化されています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blacknd.com/wp-content/uploads/2018/03/20180301-185604-1024x768.png" alt="" class="wp-image-1984" srcset="https://blacknd.com/wp-content/uploads/2018/03/20180301-185604-1024x768.png 1024w, https://blacknd.com/wp-content/uploads/2018/03/20180301-185604-300x225.png 300w, https://blacknd.com/wp-content/uploads/2018/03/20180301-185604-768x576.png 768w, https://blacknd.com/wp-content/uploads/2018/03/20180301-185604.png 1379w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>最後の方で<code>eval</code>関数によって文字列がPHPコードとして評価されます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="red"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon-komari.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>実行されるコードは様々でしょうが、筆者の場合はSPAMを送信するコードになっていました。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>攻撃者はこの不正に作成したPHPファイルにPOSTメソッドでアクセスし、実行してきます。これはアクセスログやWordfenceの"Live Traffic"で確認することができます。</p>



<p>この不正ファイルを放置するのは大変危険ですので、見つけ次第 <strong>問答無用で削除してください</strong>。</p>



<h2 class="wp-block-heading">海外のIPアドレスを拒否する</h2>



<p>いささか乱暴ではありますが、攻撃はほぼすべて海外のIPアドレスから行われますので、サイトの公開対象が国内のみであれば、海外からのアクセスをすべて遮断してしまう方法があります。</p>



<p>これは大変効果的で、攻撃者とのいたちごっこを繰り返していた私が最終的に問題を解決するに至った手法です。</p>



<p>遮断する方法はいくつかありますが、ここでは最も修正が手軽な<code>.htaccess</code>によるアクセス制限を紹介します。</p>



<p>以下は、私が採用している<code>.htaccess</code>です。内容は、以下のような流れになっています。</p>



<ol class="wp-block-list"><li>すべてのアクセスを拒否</li><li>Googleやfacebook, Twitterなどbotからのアクセスを例外として許可</li><li>日本国内で使用されるIPアドレスを例外として許可（4千行以上）</li></ol>



<p>Apacheのバージョンによってアクセス制限の書式が異なる点に注意してください。</p>



<p>▼<strong>Apache 2.2系を使用している場合</strong></p>



<p>https://gist.github.com/ryu-blacknd/3625090cd46b2b60d7ce3700ae7d6b78</p>



<p>▼<strong>Apache 2.4系を使用している場合</strong></p>



<p>https://gist.github.com/ryu-blacknd/59dc7f1dbf5c82a3be507a9acb0146d9</p>



<p>多くの場合、既に何かが書かれた<code>.htaccess</code>ファイルが存在すると思いますので、その部分は残して上記コードを追記してください。</p>



<p>貼り付ける場所に悩んだら、<code># BEGIN WordPress</code>の直前にしておけばOKです。<br><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading">SPAM送信の踏み台にされた場合の対処</h2>



<p>私が実際に被害に遭ったサーバの環境は、OSがCentOS 7で、MTA（メールサーバ）はPostfixです。</p>



<p>ここではPostfixであった場合、かつ<code>root</code>による作業が可能な場合の対処方法を紹介します。</p>



<p>まずは現在溜まっているキューを確認します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>$ postqueue -p</code></pre></div>



<p>送信した覚えのないメールがズラッと表示された場合、既にSPAM送信が実行されています。</p>



<p>この場合は以下のコマンドでまずキューを削除します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>$ postsuper -d ALL</code></pre></div>



<p>上記対応によって問題が解決している場合は、このままPostfixの運用を続けて構いません。</p>



<p>まだ対策が完了していない場合はさらにキューが増加しますので、不本意ながらPostfixを停止しておきます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>$ systemctl stop postfix</code></pre></div>



<p>当然ですが、Postfixを停止している間はメールの送受信が機能しません。なるべく早期に対策を終え、再度Postfixを起動します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>$ systemctl start postfix</code></pre></div>



<p>一度SPAMの踏み台になってしまった以上、以後しばらくはキューの確認を行うことをおすすめします。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>既に書きましたが、最も効果的な対策は<strong>海外のIPアドレスを排除すること</strong>です。</p>



<p>すべての対策を行っても解決しない場合、最終手段は再セットアップということになります。WordPressのファイル群をすべて削除し、素のWordPressから再度環境を構築をすることで、クリーンな状態に戻せます。</p>



<p>ただし事前にバックアップを取ることはもちろんですが、バックアップしたファイルをそのまま書き戻さないこともまた重要です。<br>プラグインやテーマは改めて新規インストールし、手動で以前の設定を復元するべきです。</p>



<p>この作業は困難かつ時間がかかりますので、できることならここで紹介した方法で解決したいものです。</p>



<p>最後になりましたが、WordPress本体やプラグイン、テーマのアップデートは無視せず実行してください。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>公開されたばかりのバージョンであっても脆弱性が発見されることがしばしばありますので、常に目を光らせておいてください。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://blacknd.com/develop-wordpress/wordpress-malware-tampering-guard-block/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>目的別 動画編集・エンコードソフトェアまとめ</title>
		<link>https://blacknd.com/video-tv/video-edit-adobe-premiere-tmpgenc-aviutl-ffmpeg-avisynth-2017/</link>
					<comments>https://blacknd.com/video-tv/video-edit-adobe-premiere-tmpgenc-aviutl-ffmpeg-avisynth-2017/#respond</comments>
		
		<dc:creator><![CDATA[りゅう]]></dc:creator>
		<pubDate>Sat, 11 Mar 2017 13:09:26 +0000</pubDate>
				<category><![CDATA[動画・TV録画]]></category>
		<category><![CDATA[DVD]]></category>
		<category><![CDATA[avsp]]></category>
		<category><![CDATA[解除]]></category>
		<category><![CDATA[Blu-ray]]></category>
		<category><![CDATA[avsmod]]></category>
		<category><![CDATA[TMPGEnc]]></category>
		<category><![CDATA[BluRayブルーレイ]]></category>
		<category><![CDATA[プレビュー]]></category>
		<category><![CDATA[エンコード]]></category>
		<category><![CDATA[インターレース]]></category>
		<category><![CDATA[QSV]]></category>
		<category><![CDATA[自動]]></category>
		<category><![CDATA[逆テレシネ]]></category>
		<category><![CDATA[NVEnc]]></category>
		<category><![CDATA[PT3]]></category>
		<category><![CDATA[24fps]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[おすすめ]]></category>
		<category><![CDATA[30fps]]></category>
		<category><![CDATA[プラグイン]]></category>
		<category><![CDATA[premiere]]></category>
		<category><![CDATA[動画]]></category>
		<category><![CDATA[60fps]]></category>
		<category><![CDATA[AviUtl]]></category>
		<category><![CDATA[after effects]]></category>
		<category><![CDATA[バッチ]]></category>
		<category><![CDATA[BOB]]></category>
		<category><![CDATA[AviSynth]]></category>
		<category><![CDATA[高速]]></category>
		<category><![CDATA[バッチファイル]]></category>
		<category><![CDATA[x264]]></category>
		<category><![CDATA[爆速]]></category>
		<category><![CDATA[スクリプト]]></category>
		<category><![CDATA[必須]]></category>
		<guid isPermaLink="false">https://blacknd.com/?p=1274</guid>

					<description><![CDATA[<p><img src="https://blacknd.com/wp-content/uploads/2017/03/video-edit-adobe-premiere-tmpgenc-aviutl-ffmpeg-avisynth-2017-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>動画編集は目的によって最適な方法が異なり、正解というものはありません。本記事では目的別に定番を紹介します。 動画編集ソフトウェアの定番 Windowsで利用できる動画編集ソフトウェアは多数あります。かつては多くの選択肢が [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://blacknd.com/wp-content/uploads/2017/03/video-edit-adobe-premiere-tmpgenc-aviutl-ffmpeg-avisynth-2017-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>動画編集は目的によって最適な方法が異なり、正解というものはありません。本記事では目的別に定番を紹介します。</p>



<h2 class="wp-block-heading">動画編集ソフトウェアの定番</h2>



<p>Windowsで利用できる動画編集ソフトウェアは多数あります。かつては多くの選択肢がありましたが、近年では定番と呼べるものががだいぶ絞れてきたように思います。</p>



<p>ここではそんな定番たちを用途別に紹介しつつ、後半は個人的に特におすすめしたい、CUIによる動画編集とエンコードツールを紹介していきます。</p>



<h2 class="wp-block-heading">本格的な映像制作</h2>



<p>やはり筆頭は<strong><span class="swl-marker mark_yellow">Adobe After Effects</span></strong>と<strong><span class="swl-marker mark_yellow">Adobe Premiere Pro</span></strong>でしょう。VegasやEDIUSなど他社製品と比較されることもありますが、やはりAdobe製品のマーケットシェアは圧倒的です。</p>



<p>映像制作会社でAdobe系のソフトウェアがないと、外部とのファイル受け渡しに困ってしまいます。</p>



<h3 class="wp-block-heading">Adobe Creative Cloud</h3>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="640" height="400" src="https://blacknd.com/wp-content/uploads/2017/03/20170315-151916.jpg" alt="Adobe Premiere Pro CC" class="wp-image-1682" srcset="https://blacknd.com/wp-content/uploads/2017/03/20170315-151916.jpg 640w, https://blacknd.com/wp-content/uploads/2017/03/20170315-151916-300x188.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>



<p>Adobe CC（Creative Cloud）のライセンスを購入すると、期間内は好きなだけAdobe製品の最新版をダウンロードして使用できます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>太っ腹なことに2台分のライセンスになっています！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>

		<div class="pochipp-box"
			data-id="3957"
			data-img="l"
			data-lyt-pc="big"
			data-lyt-mb="vrtcl"
			data-btn-style="dflt"
			data-btn-radius="off"
			data-sale-effect="flash"
			 data-cvkey="5d24c432" data-auto-update="true"		>
							<div class="pochipp-box__image">
					<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB00FOHQZPI" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
						<img loading="lazy" decoding="async" src="https://m.media-amazon.com/images/I/41n8TQGddtL._SL500_.jpg" alt="" width="120" height="120" />					</a>
				</div>
						<div class="pochipp-box__body">
				<div class="pochipp-box__title">
					<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB00FOHQZPI" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
						Adobe Creative Cloud コンプリート|12か月版|Windows/Mac対応|オンラインコード版					</a>
				</div>

				
									<div class="pochipp-box__price">
						¥65,102						<span>（2022/06/08 13:51時点 | Amazon調べ）</span>
					</div>
				
							</div>
				<div class="pochipp-box__btns"
		data-maxclmn-pc="fit"
		data-maxclmn-mb="1"
	>
					<div class="pochipp-box__btnwrap -amazon">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB00FOHQZPI" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						Amazon					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700138&p_id=170&pc_id=185&pl_id=4062" width="1" height="1" style="border:none;">				</a>
			</div>
							<div class="pochipp-box__btnwrap -rakuten">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700078&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FAdobe%2520Creative%2520Cloud" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						楽天市場					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700078&p_id=54&pc_id=54&pl_id=616" width="1" height="1" style="border:none;">				</a>
			</div>
										<div class="pochipp-box__btnwrap -yahoo -long-text">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700139&#038;p_id=1225&#038;pc_id=1925&#038;pl_id=18502&#038;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3DAdobe%2520Creative%2520Cloud" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						Yahoo!ショッピング					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700139&p_id=1225&pc_id=1925&pl_id=18502" width="1" height="1" style="border:none;">				</a>
			</div>
									</div>
								<div class="pochipp-box__logo">
					<img loading="lazy" decoding="async" src="https://blacknd.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png" alt="" width="32" height="32">
					<span>ポチップ</span>
				</div>
					</div>
	


<p>Premiere Proは主にカット編集、トランジションなどのエフェクト適用を目的としたソフトウェアで、編集からエンコードまでのほぼ全行程をこれ一本で行えます。特にカット編集はさすがに秀逸です。</p>



<p>After Effectsはその前工程となる映像制作、つまりPremiere Proに渡すソース動画を制作する用途というイメージです。<br>動画版Photoshopと呼ばれることもあります。</p>



<p>Adobe製品は大量に存在する高度なプラグインやエフェクトが魅力です。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>映像制作において、Adobe CCでできないことというのはちょっと思い浮かびません。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h4 class="wp-block-heading">Adobe製品のパフォーマンスを向上するには</h4>



<p>CPUの内蔵GPUでは、十分なパフォーマンスを発揮できません。</p>



<p>おすすめはNVIDIAのCUDAによるハードウェアアクセラレーションが可能なGPUです。</p>


		<div class="pochipp-box"
			data-id="3960"
			data-img="l"
			data-lyt-pc="big"
			data-lyt-mb="vrtcl"
			data-btn-style="dflt"
			data-btn-radius="off"
			data-sale-effect="flash"
			 data-cvkey="6a1f3f66" data-auto-update="true"		>
							<div class="pochipp-box__image">
					<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB08WPRMVWB" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
						<img loading="lazy" decoding="async" src="https://m.media-amazon.com/images/I/51ClY8eDcpL._SL500_.jpg" alt="" width="120" height="120" />					</a>
				</div>
						<div class="pochipp-box__body">
				<div class="pochipp-box__title">
					<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB08WPRMVWB" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
						MSI GeForce RTX 3060 VENTUS 2X 12G OC グラフィックスボード VD7553					</a>
				</div>

									<div class="pochipp-box__info">MSI</div>
				
									<div class="pochipp-box__price">
						¥57,916						<span>（2022/06/08 13:51時点 | Amazon調べ）</span>
					</div>
				
							</div>
				<div class="pochipp-box__btns"
		data-maxclmn-pc="fit"
		data-maxclmn-mb="1"
	>
					<div class="pochipp-box__btnwrap -amazon">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB08WPRMVWB" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						Amazon					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700138&p_id=170&pc_id=185&pl_id=4062" width="1" height="1" style="border:none;">				</a>
			</div>
							<div class="pochipp-box__btnwrap -rakuten">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700078&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FMSI%2520GeForce%2520RTX%25203060" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						楽天市場					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700078&p_id=54&pc_id=54&pl_id=616" width="1" height="1" style="border:none;">				</a>
			</div>
										<div class="pochipp-box__btnwrap -yahoo -long-text">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700139&#038;p_id=1225&#038;pc_id=1925&#038;pl_id=18502&#038;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3DMSI%2520GeForce%2520RTX%25203060" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						Yahoo!ショッピング					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700139&p_id=1225&pc_id=1925&pl_id=18502" width="1" height="1" style="border:none;">				</a>
			</div>
									</div>
								<div class="pochipp-box__logo">
					<img loading="lazy" decoding="async" src="https://blacknd.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png" alt="" width="32" height="32">
					<span>ポチップ</span>
				</div>
					</div>
	


<h4 class="wp-block-heading">エンコード時に流行りのコーデックが使えない！</h4>



<p>具体的には<strong><span class="swl-marker mark_yellow">x264やNVEncが使えません</span></strong>。AviUtlなどからの乗り換え組にとっては衝撃の事実ですが、H.264に関してはメーカー製品が組み込まれていますので、ライセンス問題とか色々あるのでしょう。</p>



<p>この問題、実は対応可能です。別記事にまとめましたので参照してください。</p>



<p>https://blacknd.com/video-editing/adobe-cc-encode-codec-h264-avc-h265-hevc-x264-nvenc-geforce/</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">GUI操作が簡単な動画編集</h2>



<p>Adobe製品の低価格版のような製品が多く存在します。<br>具体的にはPowerDirectorとかVideoStudioとか、そういった製品です。</p>



<p>用途はエンコードやリサイズ、動画形式の変換が多いでしょう。併せてカット編集、リサイズ、インターレース解除、字幕入れなどの一般的な動画編集もよく行われます。</p>



<p>私の周囲では、企業で「会社の方針でフリーソフトは使えないが、Adobe CCは高額すぎる」という制限のあるところが、よく上記のような製品を導入していました。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>でも正直、そういうところは最近見なくなりましたね。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h3 class="wp-block-heading">TMPGEnc Video Mastering Works</h3>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="640" height="433" src="https://blacknd.com/wp-content/uploads/2017/03/20170315-153921.jpg" alt="TMPGEnc Video Mastering Works" class="wp-image-1683" srcset="https://blacknd.com/wp-content/uploads/2017/03/20170315-153921.jpg 640w, https://blacknd.com/wp-content/uploads/2017/03/20170315-153921-300x203.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>


		<div class="pochipp-box"
			data-id="3964"
			data-img="l"
			data-lyt-pc="big"
			data-lyt-mb="vrtcl"
			data-btn-style="dflt"
			data-btn-radius="off"
			data-sale-effect="flash"
			 data-cvkey="b2091e95" data-auto-update="true"		>
							<div class="pochipp-box__image">
					<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB07KTDF5Q1" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
						<img loading="lazy" decoding="async" src="https://m.media-amazon.com/images/I/51bvZ-4Aq+L._SL500_.jpg" alt="" width="120" height="120" />					</a>
				</div>
						<div class="pochipp-box__body">
				<div class="pochipp-box__title">
					<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB07KTDF5Q1" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
						TMPGEnc Video Mastering Works 7|ダウンロード版					</a>
				</div>

									<div class="pochipp-box__info">ペガシス</div>
				
									<div class="pochipp-box__price">
						¥12,069						<span>（2022/06/08 13:51時点 | Amazon調べ）</span>
					</div>
				
							</div>
				<div class="pochipp-box__btns"
		data-maxclmn-pc="fit"
		data-maxclmn-mb="1"
	>
					<div class="pochipp-box__btnwrap -amazon">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB07KTDF5Q1" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						Amazon					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700138&p_id=170&pc_id=185&pl_id=4062" width="1" height="1" style="border:none;">				</a>
			</div>
							<div class="pochipp-box__btnwrap -rakuten">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700078&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FTMPGEnc%2520Video%2520Mastering%2520Works%25207" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						楽天市場					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700078&p_id=54&pc_id=54&pl_id=616" width="1" height="1" style="border:none;">				</a>
			</div>
										<div class="pochipp-box__btnwrap -yahoo -long-text">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700139&#038;p_id=1225&#038;pc_id=1925&#038;pl_id=18502&#038;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3DTMPGEnc%2520Video%2520Mastering%2520Works%25207" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						Yahoo!ショッピング					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700139&p_id=1225&pc_id=1925&pl_id=18502" width="1" height="1" style="border:none;">				</a>
			</div>
									</div>
								<div class="pochipp-box__logo">
					<img loading="lazy" decoding="async" src="https://blacknd.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png" alt="" width="32" height="32">
					<span>ポチップ</span>
				</div>
					</div>
	


<p>バージョン6よりNVEnc（HEVC）のハードウェアエンコードに対応し、インターレース解除に新機能も登場し、順調にパワーアップを続けています。</p>



<p>カット編集機能は賛否両論ですが、サムネイル部分をマウスのボタンでザーッと流すあたりの操作性は気に入っています。個人的にCMカット最強と考えているTMPGEnc MPEG Smart Renderと同じように使えます。</p>


		<div class="pochipp-box"
			data-id="3965"
			data-img="l"
			data-lyt-pc="big"
			data-lyt-mb="vrtcl"
			data-btn-style="dflt"
			data-btn-radius="off"
			data-sale-effect="flash"
			 data-cvkey="d07eef81" data-auto-update="true"		>
							<div class="pochipp-box__image">
					<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB08D6NQ2DT" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
						<img loading="lazy" decoding="async" src="https://m.media-amazon.com/images/I/51MPh8dmLEL._SL500_.jpg" alt="" width="120" height="120" />					</a>
				</div>
						<div class="pochipp-box__body">
				<div class="pochipp-box__title">
					<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB08D6NQ2DT" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
						TMPGEnc MPEG Smart Renderer 6 |ダウンロード版					</a>
				</div>

									<div class="pochipp-box__info">ペガシス</div>
				
									<div class="pochipp-box__price">
						¥7,313						<span>（2022/06/06 01:00時点 | Amazon調べ）</span>
					</div>
				
							</div>
				<div class="pochipp-box__btns"
		data-maxclmn-pc="fit"
		data-maxclmn-mb="1"
	>
					<div class="pochipp-box__btnwrap -amazon">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700138&#038;p_id=170&#038;pc_id=185&#038;pl_id=4062&#038;url=https%3A%2F%2Fwww.amazon.co.jp%2Fdp%2FB08D6NQ2DT" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						Amazon					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700138&p_id=170&pc_id=185&pl_id=4062" width="1" height="1" style="border:none;">				</a>
			</div>
							<div class="pochipp-box__btnwrap -rakuten">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700078&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FTMPGEnc%2520MPEG%2520Smart%2520Renderer%25206" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						楽天市場					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700078&p_id=54&pc_id=54&pl_id=616" width="1" height="1" style="border:none;">				</a>
			</div>
										<div class="pochipp-box__btnwrap -yahoo -long-text">
								<a href="https://af.moshimo.com/af/c/click?a_id=1700139&#038;p_id=1225&#038;pc_id=1925&#038;pl_id=18502&#038;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3DTMPGEnc%2520MPEG%2520Smart%2520Renderer%25206" class="pochipp-box__btn" rel="nofollow external noopener noreferrer" data-wpel-link="external" target="_blank">
					<span>
						Yahoo!ショッピング					</span>
					<img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=1700139&p_id=1225&pc_id=1925&pl_id=18502" width="1" height="1" style="border:none;">				</a>
			</div>
									</div>
								<div class="pochipp-box__logo">
					<img loading="lazy" decoding="async" src="https://blacknd.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png" alt="" width="32" height="32">
					<span>ポチップ</span>
				</div>
					</div>
	

<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>後にAviSynth+の記事で登場しますが、TMPGEnc MPEG Smart Renderは少し特殊な役割を持っています。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>TMPGEncシリーズは、難しいこと抜きで今すぐGUIで使いこなしたい！という方や、AviUtlを学ぶ気になれない！面倒！という方に適しているでしょう。</p>



<h3 class="wp-block-heading">AviUtl</h3>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="640" height="388" src="https://blacknd.com/wp-content/uploads/2017/03/20170316-022801.jpg" alt="AviUtl" class="wp-image-1686" srcset="https://blacknd.com/wp-content/uploads/2017/03/20170316-022801.jpg 640w, https://blacknd.com/wp-content/uploads/2017/03/20170316-022801-300x182.jpg 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>



<p>http://spring-fragrance.mints.ne.jp/aviutl/</p>



<p>無料で使用できるフリーソフトウェアでは、やはり<strong><span class="swl-marker mark_yellow">AviUtlの人気が頭一つ抜けています</span></strong>。</p>



<p>単なるエンコードや動画形式変換なら他にもお手軽ツールがありますが、AviUtlは勉強と努力次第で高度な動画編集を可能にしたり、市販ソフトウェアで読み込めない動画ファイルを読み込んだりできる柔軟性があります。</p>



<p>国内の利用者が非常に多く、ネットの情報も豊富です。x264でエンコードする出力プラグインの登場が、普及に拍車をかけたように思います。</p>



<p><strong><span class="swl-marker mark_yellow">拡張編集プラグイン</span></strong>によりタイムライン編集もサポートし、Adobe Premiere Proっぽいことまでできてしまいます。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>無料でありながらこれ一本で大抵のことはできてしまう、優秀なフリーソフトウェアです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>ただしうまく活用するには、それなりの知識や経験が必要です。プラグインは古いものを含めると把握しきれないほど多く、入門者は似た機能を持つプラグインの取捨選択に戸惑うことでしょう。</p>



<p>急成長は止まった感がありますので、今から勉強する人はある意味入りやすいかもしれません。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>数年ぶりに新バージョンが登場しましたが、残念ながら期待された64bit化は（将来的にも）されないとのことです。プラグインの互換性が失われるため厳しいのでしょう。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>AviUtlについてはこのサイト内にもまとめ記事がありますので参照してください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-blacknd wp-block-embed-blacknd"><div class="wp-block-embed__wrapper">
https://blacknd.com/video-editing/aviutl-plugins-2013-interlace-nnedi3/
</div></figure>



<p>AviUtlは「手に馴染むツール」として上級者にも人気があります。他のツールと併用している人も多いですね。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">高速化・自動化できる映像編集</h2>



<p>動画編集やエンコードは、突き詰めればフィルタやプラグインの機能理解、知識と経験、そして独特のセンスが重要になってきます。</p>



<p><strong><span class="swl-marker mark_yellow">自動化や効率化を追求するようになると、だんだんGUIが邪魔になってきます</span></strong>。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>どうしても似たような作業の繰り返しが多くなりますので、いちいちGUIで操作するよりスクリプト化して使いまわす方が理に適っています。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>以下は独自のGUIを持たず、コマンドラインやスクリプトファイルによって動画編集を行うツールです。</p>



<h3 class="wp-block-heading">FFmpeg</h3>



<p>FFmpegは、メディアファイルの入力～編集～出力までを1行のコマンド（ワンライナー）で実行可能なツールです。<br><strong><span class="swl-marker mark_yellow">用途次第ではこれだけでほとんど何でもできてしまいます</span></strong>。</p>



<p>https://ffmpeg.org/</p>



<p>以下は、FFmpegによる簡単なパターンでのエンコード例です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>ffmpeg input.mp4 -s 1280x720 -sws_flags spline -vcodec nvenc_hevc -b:v 2M -vf bwdif=0:-1:1 output.mp4</code></pre></div>



<p><code>input.mp4</code>を読み込み、Splineで1280x720pxにリサイズし、コーデックをNVEnc（HEVC）とし、平均ビットレートを2Mbpsとし、インターレースを解除して、<code>output.mp4</code>にエンコード出力する、という内容です。</p>



<p>ご覧の通り「無敵か！」と思えるほどの簡便性ですが、後述するAviSynth（AviSynth+）に比べると周辺ツールやフィルタ選択の自由度、設定の多彩さで劣ります。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>しかしエンコードまでワンライナーで行える点では勝っています。用途次第ですね。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>万能かつコマンド1つという手軽さから、内部的にFFmpegを利用するソフトウェアも多く、例えば携帯動画変換君などはFFmpegのラッパーとなっています。<br>有名なフリーのDVDオーサリングツールであるDVDStylerも、内部でFFmpegを使用しています。</p>



<p>今はどうか知りませんが、Youtubeも内部のエンコードをFFmpegで行っていたと記憶しています。<br>動画サービスを扱うサーバで利用されていることは非常に多く、OSの垣根を超えて活躍しています。</p>



<h3 class="wp-block-heading">AviSynth</h3>



<p>「定形処理 → 即エンコード」を前提とした動画編集で、高画質化と高効率化を両立・追求するならAviSynth（またはAviSynth+）でしょう。</p>



<p>http://avisynth.nl/index.php/Main_Page</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>PT3のTV録画ファイルを扱う際等、たくさんのファイルに同じ編集処理を行いたい場合はコレで決まり！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>AviSynthはVirtualDubなどと共に古くから人気があり、実はAviUtl用プラグインはAviSynth用フィルタの移植、ということも少なくありません（たまに逆もあります）。<a href="https://blacknd.com/video-editing/aviutl-plugins-2013-interlace-nnedi3/" data-wpel-link="internal">過去の記事</a>で書いたNNEDI3もそうです。</p>



<p>AviSynthをおすすめする理由は、こういった優れたフィルタの存在だけでなく、その組み合わせやパラメータ指定、順序の組み立てにより、納得いくまで高画質化と高速化、高効率化を追求できるためです。</p>



<p>以下は本家サイトの説明をGoogle先生に翻訳してもらったものです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>AviSynthは、ビデオポストプロダクション用の強力なツールです。動画の編集や処理方法を提供します。<br>AviSynthはフレームサーバーとして機能し、一時ファイルを必要とせずに即座に編集できます。<br>AviSynth自体はグラフィカルユーザーインターフェイス（GUI）を提供しませんが、高度な非線形編集を可能にするスクリプトシステムに依存しています。これは、最初は面倒で直感的ではないように見えるかもしれませんが、それは非常に強力で、正確で一貫した再現性のある方法でプロジェクトを管理する非常に良い方法です。テキストベースのスクリプトは人間が読めるので、プロジェクトは本質的に自己文書化しています。<br>スクリプト言語はシンプルですがパワフルであり、基本操作から複雑なフィルタを作成して、有益なユニークなエフェクトの洗練されたパレットを作成することができます。</p></blockquote>



<p>無意味に難解ですが、<strong><span class="swl-marker mark_yellow">強力で、高速で、GUIがない代わりに効率的な処理ができるよ！</span></strong>ということですね。</p>



<p>AviSynthはCUIツールのため独自のGUIは持ちませんが、有志によるAvsPmodという有名なGUI（というかプレビュー付きのエディタ）が存在します。これは後の記事で紹介します。</p>



<p>具体的には、こういう使い方になります。</p>



<ul class="wp-block-list"><li><code>ファイル名.avs</code>というテキストファイルに適用したい処理を順に記述</li><li>上記avsファイルをコマンドライン版のx264やx265、QSVEncCやNVEncC、あるいはAviUtlなどに渡してエンコード</li></ul>



<p>他のコマンドやツールに渡す理由は、AviSynthは基本的に動画にフィルタをかけるだけのツールであり、単体でエンコードする機能を持たないためです。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>AviUtlも標準のAVI出力以外は外部ツールに頼っています。GUIでパラメータを指定して処理を投げているわけですが、これと同じことをコマンドラインやバッチファイルで行うわけです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>渡されたコマンド側からは、avsファイルは「<strong><span class="swl-marker mark_yellow">フィルタ適用済みの動画ファイル</span></strong>」のように見えます。</p>



<p>以下は非常に単純なAviSynthスクリプトの例です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>avsource = &quot;D:¥My Videos¥Video_001.mpg&quot;

LWLibavVideoSource(avsource)
AudioDub(last, LWLibavAudioSource(avsource, av_sync=true))

AssumeTFF()
TDeint(edeint=nnedi3)
Spline36Resize(1280, 720)

return last</code></pre></div>



<p>上記スクリプトでやっていることは以下の通りです。</p>



<p>1：読み込む動画ファイルを指定<br>3：映像を読み込む<br>4：映像と同期しつつ音声を読み込む<br>6：フィールドオーダーをトップフィールドファーストに指定<br>7：インターレースを解除<br>8：1280x720pxにリサイズ</p>



<p>AviSynthの魅力的なところは、<strong><span class="swl-marker mark_yellow">フィルタリングにかかる時間を惜しまなければ極限まで高画質化できる</span></strong>という点です。上の例ではインターレース解除やリサイズの処理が様々に工夫できます。</p>



<p>他にも放送局のロゴ除去、CMカット、逆テレシネ化（映画やアニメ録画番組の30→24fps化）、フレーム補完によるぬるぬる60fps化、色調補正、カット編集、黒ベタ、回転、再生速度変更、ぼかし、シャープ、字幕入れなど、<strong>AviUtlで可能なことは大体何でもできます</strong>。</p>



<p>スクリプトは単なるテキストファイルであり、上の例ではソースさえ書き換えれば同じ設定で<strong><span class="swl-marker mark_yellow">何度でも再利用できます</span></strong>。ソース部分を動的に取得または生成するバッチファイルを書けば、<strong><span class="swl-marker mark_yellow">処理を自動化できます</span></strong>。</p>



<p>先人による優れたスクリプトを単純なコピペで拝借することができる点も素敵です。</p>



<p>Avisynthの詳細については、別の記事で説明していますので参照してください。複数動画のエンコードを自動化するためのバッチファイルも公開しています。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-blacknd wp-block-embed-blacknd"><div class="wp-block-embed__wrapper">
https://blacknd.com/video-editing/avisynth-plus-64bit-mt-filters-plugins-install-windows10-x64/
</div></figure>



<p>次回以降はAviSynthから派生し高速化を図ったAviSynth+を紹介していきます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blacknd.com/video-tv/video-edit-adobe-premiere-tmpgenc-aviutl-ffmpeg-avisynth-2017/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>CentOS 7でGitBucketを動かしてJenkinsで自動デプロイ</title>
		<link>https://blacknd.com/develop-wordpress/centos7-gitbucket-jenkins-auto-deploy/</link>
					<comments>https://blacknd.com/develop-wordpress/centos7-gitbucket-jenkins-auto-deploy/#respond</comments>
		
		<dc:creator><![CDATA[りゅう]]></dc:creator>
		<pubDate>Tue, 23 Dec 2014 14:14:43 +0000</pubDate>
				<category><![CDATA[開発・WordPress]]></category>
		<category><![CDATA[プロキシ]]></category>
		<category><![CDATA[自動デプロイ]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[デプロイ]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[リポジトリ]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[自動]]></category>
		<category><![CDATA[設定]]></category>
		<category><![CDATA[インストール]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[GitBucket]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">https://blacknd.com/?p=597</guid>

					<description><![CDATA[<p><img src="https://blacknd.com/wp-content/uploads/2014/12/centos7-gitbucket-jenkins-auto-deploy-1-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>CentOS 7にLAMP環境を構築。GitBucketとJenkinsを動かし、自動ビルドや自動デプロイまでやってみます。 なぜGitBucketか GitBucketはGitHubクローンで、似たものに有名なGitL [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img src="https://blacknd.com/wp-content/uploads/2014/12/centos7-gitbucket-jenkins-auto-deploy-1-1024x576.jpg" class="webfeedsFeaturedVisual" /></p>
<p>CentOS 7にLAMP環境を構築。GitBucketとJenkinsを動かし、自動ビルドや自動デプロイまでやってみます。</p>



<h2 class="wp-block-heading">なぜGitBucketか</h2>



<p>GitBucketは<a href="https://github.com/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">GitHub</a>クローンで、似たものに有名な<a href="https://about.gitlab.com/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">GitLab</a>があります。 GitLabも最近はrpmコマンド一発でインストールできるほど簡単になっていますが、今回はより簡単 (.warファイルを置くだけ) で、見た目や使い勝手もGtiHubに近いGitBucketを選びました。</p>



<h2 class="wp-block-heading">概要</h2>



<ul class="wp-block-list"><li>ソースからのビルドは行わず、yumパッケージや.warファイルを使用</li><li>Apacheのmod_proxy_ajpを使い、Tomcatへはポート8080ではなく80でアクセス</li><li>GitBucketでリポジトリにpushがあったらJenkinsで自動ビルド</li><li>Jenkinsのビルドでは、rsyscでApacheの公開ディレクトリに自動デプロイ</li><li>自動デプロイ時のユーザーはtomcatではなくapacheで行う</li></ul>



<h2 class="wp-block-heading">動作環境</h2>



<p>CentOS 7のミラーサイト一覧で、日本のミラーから最新版をダウンロードしてください。 <a href="https://www.vagrantup.com/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Vagrant</a>で起ち上げた仮想マシンや<a href="https://www.docker.com/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Docker</a>のコンテナでも構いませんが、一部読み替えたり、ポートマッピング等の追加設定が必要になります。</p>



<h2 class="wp-block-heading">リポジトリの準備</h2>



<p>デフォルトではパッケージが少なかったり古かったりするので、EPELとremiのリポジトリを追加します。</p>



<p><strong>EPELリポジトリの追加</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>yum install -y epel-release</code></pre></div>



<p><strong>remiリポジトリの追加</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm</code></pre></div>



<h2 class="wp-block-heading">パッケージのインストールと起動設定</h2>



<p>とりあえずは最新の状態にしておきます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>yum -y update</code></pre></div>



<p>必須パッケージに加え、普段よく使うパッケージも入れておきます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>yum --enablerepo=epel,remi install -y sudo vim-enhanced syslog httpd httpd-devel php php-devel php-pear php-mysql php-gd php-mbstring php-pecl-imagick mariadb-server phpmyadmin wget git java-1.7.0-openjdk-devel tomcat</code></pre></div>



<p>各種サービスを起動し、さらに再起動時にもサービスが有効になるように設定します。</p>



<p>CentOS 6までは<code>service</code>(または<code>/etc/rc.d/init.d/</code>のスクリプト)と<code>chkconfig</code>コマンドを使用しましたが、CentOS 7では<code>systemctl</code>に変更されています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>systemctl enable --now httpd
systemctl enable --now tomcat
systemctl enable --now mariadb</code></pre></div>



<p>サービスの状況は以下のコマンドで確認できます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>systemctl list-unit-files</code></pre></div>



<h2 class="wp-block-heading">GitBucketをインストール</h2>



<p>先述の通り、.warファイルを置くだけの簡単インストールです。</p>



<p>https://github.com/gitbucket/gitbucket</p>



<p>releaseから最新版のgitbucket.warをダウンロードして、実行用のディレクトリにコピーします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cp gitbucket.war /var/lib/tomcat/webapps/</code></pre></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">Jenkinsをインストール</h2>



<p>こちらも.warファイルを置くだけです。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>簡単でいいですね！</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>https://jenkins.io/</p>



<p>最新版のJava Web Archive (.war)をダウンロードして、以下のディレクトリにコピーします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cp jenkins.war /var/lib/tomcat/webapps/</code></pre></div>



<p>ここでTomcatを再起動しておきます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>systemctl restart tomcat</code></pre></div>



<h2 class="wp-block-heading">ファイアウォールの設定</h2>



<p>CentOS 6まではiptablesを使用しましたが、CentOS 7ではfirewalldに変更されています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>firewall-cmd --add-port=80/tcp --permanent</code></pre></div>



<h2 class="wp-block-heading">Apacheのプロキシ設定</h2>



<p>AJPというプロトコルによって、ApacheとTomcatの相互通信を行い、外部への配信はApacheが担当するようにします。</p>



<p>TomcatのAJP通信は、ポート8080ではなく8009を用います。</p>



<p>以下のファイルを作成します。</p>



<p><strong>/etc/httpd/conf.d/gitbucket.conf</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>&lt;Location /gitbucket&gt;
    ProxyPass ajp://localhost:8009/gitbucket
&lt;/Location&gt;</code></pre></div>



<p><strong>/etc/httpd/conf.d/jenkins.conf</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>&lt;Location /jenkins&gt;
    ProxyPass ajp://localhost:8009/jenkins
&lt;/Location&gt;</code></pre></div>



<p>ファイルを作成したら、Apacheを再起動しておきます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>systemctl restart httpd</code></pre></div>



<h2 class="wp-block-heading">アクセスしてみる</h2>



<p>まずはGitBucketにアクセスしてみます。</p>



<p><code>http://<span style="color: #800000;">[hostname]</span>/gitbucket</code></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="674" height="286" src="https://blacknd.com/wp-content/uploads/2014/12/gitbucket_start.jpg" alt="" class="wp-image-760" srcset="https://blacknd.com/wp-content/uploads/2014/12/gitbucket_start.jpg 674w, https://blacknd.com/wp-content/uploads/2014/12/gitbucket_start-300x127.jpg 300w" sizes="auto, (max-width: 674px) 100vw, 674px" /></figure>



<ul class="wp-block-list"><li>ユーザー名：<strong>root</strong></li><li>パスワード：<strong>root</strong></li></ul>



<p>ログイン後はrootのパスワードを変更し、新規ユーザーを作成しておきます。</p>



<p>次にJenkinsにアクセスしてみます。</p>



<p><code>http://<span style="color: #800000;">[hostname]</span>/jenkins</code></p>



<figure class="wp-block-image"><img loading="lazy" decoding="async" width="674" height="286" src="https://blacknd.com/wp-content/uploads/2014/12/jenkins_start.jpg" alt="" class="wp-image-762" srcset="https://blacknd.com/wp-content/uploads/2014/12/jenkins_start.jpg 674w, https://blacknd.com/wp-content/uploads/2014/12/jenkins_start-300x127.jpg 300w" sizes="auto, (max-width: 674px) 100vw, 674px" /></figure>



<p>正常に起動し、アクセスできました。</p>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">Jenkinsにプラグインをインストールする</h2>



<p>「Jenkinsの管理」→「プラグインの管理」→「利用可能」へと進みます。</p>



<p>フィルタに「git」と入力して、以下のプラグインを選択して「再起動後にインストール」します。</p>



<ul class="wp-block-list"><li><a href="https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">Git Plugin</a></li><li><a href="https://wiki.jenkins-ci.org/display/JENKINS/GitBucket+Plugin" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer">GitBucket Plugin</a></li></ul>



<p>必要なプラグインがインストールされますので、「インストール完了後、ジョブがなければJenkinsを再起動する」にチェックを入れて待ちましょう。</p>



<p>長時間インストールが終わらない場合、実は既に終っているのに表示に変化がないだけということもあります。</p>



<h2 class="wp-block-heading">GitBucketとJenkinsの連携設定</h2>



<p>GitBucketのリポジトリを作成し、pushがあった際にJenkinsで自動デプロイを行うよう設定します。</p>



<h3 class="wp-block-heading">GitBucket の設定</h3>



<p>画面右上のレンチ型アイコンから設定画面へ進み、「System Settings」を選択します。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>設定値</th></tr></thead><tbody><tr><td>Base URL</td><td><code>http://<span style="color: #800000;">[hostname]</span>/gitbucket/</code></td></tr><tr><td>SSH access</td><td>■ Enable SSH access to git repository</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">GitBucketでリポジトリを作成する</h3>



<p>「new repository」からリポジトリ名を入力、「Initialize this repository with a README」にチェックを入れて新規リポジトリを作成します。</p>



<p>これで、リポジトリのトップページに表示されるREADME.mdのみがInitial commitされた状態になります。</p>



<p>次にリポジトリの「Settings」→「Service Hooks」と進み、「WebHook URLs」を入力します。</p>



<p><code>http://<span style="color: #800000;">[hostname]</span>/jenkins/gitbucket-webhook/</code></p>



<p>GitBucket側での設定は、このWebHookのみです。</p>



<h3 class="wp-block-heading">apacheユーザーでデプロイするための設定</h3>



<p>普通にデプロイの設定をすると、ファイル群はtomcatユーザーのままデプロイされます。<br>これだとApache的に都合が悪い場合もあるため、デプロイをapacheユーザーで行うようにします。</p>



<p>そのためには、Jenkinsを動かしているtomcatユーザーが、<code>sudo -u apache</code>できるようにしなければなりません。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>visudo</code></pre></div>



<p>▼<strong> 変更前</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>Defaults    requiretty</code></pre></div>



<p>▼<strong> 変更後</strong>（コメントアウトする）</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>$ Defaults    requiretty</code></pre></div>



<p>さらにtomcatユーザーがパスワード無しでsudoできるよう設定します。</p>



<p><strong>以下の行を追加</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>tomcat  ALL=(ALL)       NOPASSWD: ALL</code></pre></div>



<p>そして、デフォルトでは/var/www/htmlの所有者がrootになっており、このために自動デプロイが失敗するので、権限を変更しておきます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>chown -R apache. /var/www/html</code></pre></div>



<h3 class="wp-block-heading">Jenkinsの自動デプロイ用ジョブを作成</h3>



<p>新規ジョブ作成から、ジョブ名を入力 (例：project01)、「フリースタイル・プロジェクトのビルド」を選択してOKをクリックします。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>GitBucketのリポジトリページからコピペできる項目が多いです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>設定値</th></tr></thead><tbody><tr><td>GitBucket - URL</td><td><code>http://<span style="color: #800000;">[hostname]</span>/gitbucket/</code></td></tr><tr><td>ソースコード管理 -<br>Git - Repository URL</td><td><code>http://<span style="color: #800000;">[hostname]</span>/gitbucket/git/username/project01.git</code></td></tr><tr><td>リポジトリ・ブラウザ</td><td>GitBucket</td></tr><tr><td>リポジトリ・ブラウザ - URL</td><td><code>http://<span style="color: #800000;">[hostname]</span>/gitbucket/username/project01/</code></td></tr><tr><td>ビルド・トリガ</td><td>■ Build when a change is pushed to GitBucket</td></tr></tbody></table></figure>



<p>最後に「ビルド手順の追加」から「シェルの実行」を選択し、下記シェルスクリプトを記入します。割と<strong>ここが目玉</strong>です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo -u apache rsync -vr --delete --exclude &quot;.git/&quot; /usr/share/tomcat/.jenkins/jobs/project01/workspace/ /var/www/html/project01/</code></pre></div>



<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-0828111045403072"
     crossorigin="anonymous"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-0828111045403072"
     data-ad-slot="7288081085"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>



<h2 class="wp-block-heading">動作確認</h2>



<p>gitコマンド、またはお使いのGitクライアントから、ファイルに適当な修正を加えてコミット → プッシュしてみてください。</p>



<p>※尋ねられるアカウントは、<strong>GitBucketの</strong>ユーザーアカウントです。</p>



<p>GitBucketでは、GitHub同様にコミット履歴が加わっていれば成功です。こちらはまず大丈夫でしょう。</p>



<p>Jenkinsでは、リポジトリに対応するジョブが実行されて、<code>/var/www/html</code>以下に自動デプロイが行われたことを確認できればOKです。</p>



<h2 class="wp-block-heading">CentOS 6で構築する場合</h2>



<p>CentOS 6でも同様に、まずyumのリポジトリとしてEPELとremiをインストールします。</p>



<p>Tomcat 7もインストールできるため、一部CentOS 7独特の部分 (systemctlやファイアウォール等) 以外はそのまま進められます。</p>



<p>しかしJenkinsのGit Pluginが<strong>エラーを吐きます</strong>。</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="gray"><div class="c-balloon__icon -circle"><img decoding="async" loading="lazy" src="https://blacknd.com/wp-content/uploads/2019/12/ryu-icon.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"><span class="c-balloon__iconName">りゅう</span></div><div class="c-balloon__body -speaking -border-none"><div class="c-balloon__text">
<p>これはCentOS 6にyumでインストールしたGitのバージョンが、1.7.1等の古いバージョンだからです。</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<p>解決するためには、最新のソースからGitをインストールすることです。</p>



<p><strong>古いGitを削除</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>yum remove -y git</code></pre></div>



<p><strong>必要になるパッケージをあらかじめインストール</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel</code></pre></div>



<p><strong>新しいGitのソースファイルをダウンロード</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>wget https://git-core.googlecode.com/files/git-1.9.0.tar.gz</code></pre></div>



<p><strong>解凍してインストール</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>tar zxf git-1.9.0.tar.gz
cd git-1.9.0
./configure --prefix=/usr/local/
make
make install</code></pre></div>



<p>もし<code>/usr/local/bin</code>にPATHが通っていなければ、下記のように<code>.bash_profile</code>に追加しておいてください。</p>



<p><strong>.bash_profile</strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>PATH=$PATH:/usr/local/bin

export PATH</code></pre></div>



<p>そして上記変更を適用します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>source ~/.bash_profile</code></pre></div>



<p>一応Gitのバージョンを確認しておきましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>git --version</code></pre></div>



<p>これでJenkinsもエラーを吐くこと無く動作するはずです。</p>



<p>CentOS 7で採用されたApache 2.4の設定は従来とかなり変わっており、そのせいで戸惑うこともあるかと思いますので、馴染めない方は、少々面倒ですが上記の方法でCentOS 6上で構築してみるのも良いかと思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blacknd.com/develop-wordpress/centos7-gitbucket-jenkins-auto-deploy/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
