Yuya Sato のアーカイブ

【MySQL】 テーブル・カラム毎に権限を変更する

2016年12月28日

MySQLにおいて、特定のユーザに対して * usersテーブルには読み込みだけ(select) * postsテーブルには読み書き両方(select, insert, update, delete) と言った風にテーブル毎に権限を変更したい場合は、 ``` GRANT 権限 ON db_name.table_name TO user; ``` のようにして権限を変更することができます。 具体的には、 ``` mysql> GR
続きを読む

sendmailバージョン確認

2016年12月21日

sendmailのバージョンは「-v」や「--version」オプションではなく以下によって確認します。 ``` $ /usr/sbin/sendmail -d0.101 ```
続きを読む

RemoteDesktopでローカルのファイルを共有する

2016年12月16日

Microsoft Remote Desktopを使用してWindowsマシンを操作している時にローカルマシンにあるファイルを送信したい時があります。 FTPなどには専用のソフトをインストールする必要があるので、Remote Desktopの機能を使用してローカルのファイルをWindowsに共有します。 設定したいDesktopの項目を右クリックし「編集」を選択。 「Redirection」の項目で、共有したいファイル・ディレクトリを追加します。 [リモー
続きを読む

PowerShellでcurlもどき

2016年12月16日

LinuxではCLI上でWebリクエストを送信したい時にcurlを使用しますが、windowsのPowerShellではcurlがありません。 そこで、PowerShell上でInvoke-RestMethodを使用しcurlもどきをして、Webリクエストを送信します。 ``` GETリクエストを送信 C:¥> Invoke-RestMethod -Uri "http://hogehoge.com" -Method GET POSTリクエストを送信 C
続きを読む

PowerShellでtelnetもどき

2016年12月14日

Linuxではサーバのポートが開いているか確認する時にtelnetを使用しますが、windowsのPowerShellではtelnetがありません。 そこで、PowerShell上でtelnetもどきをして、ポートが開いているか確認します。 ``` TCPクライアントオブジェクトを生成 C:¥> $tc = New-Object System.Net.Sockets.TcpClient 確認したいサーバに接続 C:¥> $tc.connect("1
続きを読む

htopコマンド

2016年12月9日

Linux環境上でCPU使用率などを確認する時にはtopコマンドを使用しますが、htopコマンドの方が見やすく、様々な設定も可能です。 ``` yum install htop (epelリポジトリを有効にする必要あり) ``` htopコマンドではCPU使用率やMem使用率などがグラフ上で表示されます。 また、F2キーを押して表示させる内容を好みの設定にすることができます。 [参考文献](https://orebibou.com/2016/05/
続きを読む

大量ファイルの転送

2016年11月30日

大量のファイルをリモートに転送する時に普通にscpなどで転送すると時間がかかります。 そこで一旦tarに圧縮して転送という方法も考えられますが、今度はtarの圧縮に時間がかかってしまいます。 リモートに直接ファイルを書き込み、リモートで展開するようにすると、無駄なI/Oを削減できます。 ``` $ tar -zc [path] | ssh remote-server "tar -zx -C [destination]" ```
続きを読む

knife soloで「Cannot find sub command for ‘solo’」というエラー

2016年11月9日

原因として2つのknifeコマンドが共存している状態にあるため、knifeからsoloサブコマンドが見えなくなってしまっているためエラーが発生します。 解決策として、 ``` sudo /opt/chef/embedded/bin/gem install knife-solo ``` などとして、soloが見えていない方にknife-soloをインストールすると解決します。
続きを読む

Webアクセス解析ツール3タイプ

2016年11月2日

Webサイトなどのアクセス解析をするツールは主に3つのタイプに分けることができます。 ### サーバログ取得型 サーバログ取得型は、apacheのアクセスログなどのログファイルに記録されたものからアクセス数や日時を解析するタイプです。 AWStatsやvisitorsなどといった解析ツールがこれに当たります。 ### Webビーコン型 Webビーコン型は、htmlに記述されたJavascriptのタグが動作することによってアクセスデータを解析
続きを読む

【PHP】パスワード付きzipファイルの生成

2016年10月26日

通常PHPでzipファイルを作成するときには以下のようにしてZipArchiveクラスを使用して作成すると思います。 ``` $zip = new ZipArchive(); $res = $zip->open('./zip/hoge.zip', ZipArchive::CREATE); if ($res === true) { $zip->addFile('hoge.png'); $zip->addFile('hoge.jpg');
続きを読む

mysql冗長化

2016年10月12日

mysqlをマスター・スレイブ構成にして冗長化を図るときには以下のような設定を行います。 ### マスター側の設定 /etc/my.cnfに以下を追加し再起動 ``` server-id = 1 log-bin = /var/lib/mysql/mysql-bin ``` レプリケーション用のユーザを作成し、replication slave権限を追加 ``` CREATE USER 'repl'@'(スレーブのIP)' IDENTIFI
続きを読む

sysstatによるログの確認

2016年10月5日

sysstatはサーバのLoadAverageやCPU使用率、メモリ使用率の監視を行います。sysstatによって得られたログはsarコマンドを用いて確認できます。 ### ログの種類 sysstatのログは/var/log/saディレクトリ内に保存されます。このディレクトリには大きく分けて以下の2種類のファイルが存在します。 * saXX: sarコマンドによって指定した項目を表示します。XXには日付が入ります。 * sarXX: saXXの情報を保存し
続きを読む

PHPでPGP・S/MIMEによる暗号化

2016年9月21日

問い合わせメールフォームなどでメール送信が発生する時、サイトはSSLに対応していてもメールが平文で送られてしまってはセキュリティ的に良くないので、PGPやS/MIMEを使用して暗号化することができます。 PGP・S/MIMEはメール文書の暗号化などに使われます。基本的なシーケンスは以下のようになります。 1. 平文を暗号化する際に、まず当該平文を圧縮する 2. セッション鍵と呼ばれる使い捨ての秘密鍵を作成し、共通鍵暗号方式で暗号化する 3. セッション鍵は受け
続きを読む

Postfixのキューにあるメールを確認する

2016年9月14日

Postfixのキューにあるメール一覧は以下のように確認できます。 ``` $ mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 2A20B41858* 1641 Wed Sep 14 11:22:22 support@example.jp s1t5y3y1@gmail.com
続きを読む

NFDをNFCに変換

2016年9月8日

Macでは濁点などの日本語はNFD形式(本体の文字と濁点を別々の文字としエンコードする形式)で扱われるのに対して、Windowsなど他のOSではNFC形式(本体の文字と濁点を1つの文字としてエンコードする形式)で扱われるので、表示のされ方が異なります。 そこで、Mac・Windows両方で統一した表示のされ方になるようNFD形式をNFC形式に変換します。 PHPではNormalizer::normalize()関数を使い変換します。 (php-intlを入れてい
続きを読む

Postfixメール転送設定

2016年9月7日

Postfixでメールを転送するための設定です。 sendmailでは/etc/aliasesに転送先を記述します。以下のような記述があった場合root@example.com宛のメールをtensou@example.comに転送します。 ``` root: tensou ``` また、root@example.com宛にメールが来たら任意のプログラムを実行する設定記述することもできます。以下ではroot宛にメールがあった場合sample.phpプログラムを
続きを読む

SSL/TLS周りまとめ③【Webサーバへの設置】

2016年9月1日

Webサーバを構築する時にSSLを有効化する設定を行うことが良くあります。 しかし、サーバの鍵を作って、証明書を作って、それをWebサーバのconfファイルに設定してなどとしていると、「証明書」「電子署名」「.pem」「.csr」「.crt」など色々な用語が出てきてわけが分からなくなってしまいます。 そこでSSL/TLS周りの知識の整理として今回はWebサーバへの設置についてまとめていきます。 # SSL/TLSプロトコル SSL/TLSはインターネット
続きを読む

SSL/TLS周りまとめ②【PKI(公開鍵基盤)】

2016年8月31日

Webサーバを構築する時にSSLを有効化する設定を行うことが良くあります。 しかし、サーバの鍵を作って、証明書を作って、それをWebサーバのconfファイルに設定してなどとしていると、「証明書」「電子署名」「.pem」「.csr」「.crt」など色々な用語が出てきてわけが分からなくなってしまいます。 そこでSSL/TLS周りの知識の整理として今回はPKI(公開鍵基盤)についてまとめていきます。 # PKI(公開鍵基盤) **PKI(公開鍵基盤)**は公開
続きを読む

SSL/TLS周りまとめ①【公開鍵暗号化・電子署名】

2016年8月31日

Webサーバを構築する時にSSLを有効化する設定を行うことが良くあります。 しかし、サーバの鍵を作って、証明書を作って、それをWebサーバのconfファイルに設定してなどとしていると、「証明書」「電子署名」「.pem」「.csr」「.crt」など色々な用語が出てきてわけが分からなくなってしまいます。 そこでSSL/TLS周りの知識の整理として今回は公開鍵暗号化・電子署名についてまとめていきます。 公開鍵暗号化・電子署名はどちらも秘密鍵と公開鍵のペアを使いますが、
続きを読む

WordPressでbasic認証を導入する際の注意点

2016年8月26日

ブルートフォースアタックなどでWordpressの管理画面に不正ログインされる危険性があります(https://wpdocs.osdn.jp/%E3%83%96%E3%83%AB%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%82%B9%E6%94%BB%E6%92%83)。 安全性を高める1つの手段として管理画面にbasic認証をかけ2重認証化することなどが考えられます。basic認証のために以下のような.htacce
続きを読む