CloudinaryでPDF等の画像や動画以外のファイルをアップロードし、共有する方法【blocked for delivery】 作成日時: 2021年9月30日 09時11分 最終更新日時: 2021年9月30日 09時11分 Categories: インフラ Tags: Heroku セキュリティ cloudinary どうやらPDF等の画像や動画以外の一部のファイルは配信拒否されてしまうらしい。セキュリティ対策の一貫として行われているそうな。 しかし、PDFを共有する前提のウェブアプリであればただの足かせでしか無いし、ユーザー認証や管理者が管理をきちんとしていればセキュリティ的な事案はある程度は低減できる。 本記事ではCloudinaryを使用してPDFを配信する方法を記す。 対策 対策は至ってシンプル。Cloudin ... 続きを読む
Nginxで特定IPアドレスのリクエストを拒否する 作成日時: 2021年9月28日 11時20分 最終更新日時: 2021年9月28日 11時20分 Categories: インフラ Tags: Nginx セキュリティ システム管理 tips 特定IPアドレスのリクエストを拒否したいのであれば、ロードバランサーやリバースプロキシなどのセキュリティ設定を書き換えれば済む話だが、環境によっては他のサービスなどに影響を及ぼす可能性もある。 そこで、Nginxの設定を書き換え、特定のサービスだけで特定のIPアドレスを使用したリクエストを拒否する方法をここに記す。 設定ファイルに追加する Nginxの設定ファイル( /etc/nginx/nginx.conf )に下記を追加する。 deny 192.168.XXX.XXX; /etc/n ... 続きを読む
Raspberry Pi Zeroに搭載したNginxの限界を試す【curlコマンド】 作成日時: 2021年9月28日 10時20分 最終更新日時: 2021年9月28日 10時20分 Categories: インフラ Tags: Raspberry Pi Nginx システム管理 シェルスクリプト Raspberry Pi Zeroの性能は無料プランのEC2やHerokuとほぼ同じ。Raspberry Pi Zeroの限界を知れば、ある程度EC2やHerokuの限界が予測できる。今回はウェブサーバーとして仕立てたRaspberry Pi Zeroにcurlコマンドでリクエストを大量送信し、サーバーダウンするまでのデータをここに記す。 なお、この行為は自分が管理していないサーバーで行うと、普通にDos攻撃になってしまうので、宛先 ... 続きを読む
Nginxのログをawkコマンドを使用して調べる【crontabで特定の条件下のログを管理者へ報告】 作成日時: 2021年9月23日 13時51分 最終更新日時: 2021年9月23日 13時51分 Categories: インフラ Tags: Nginx bash シェルスクリプト crontab システム管理 セキュリティ awk Nginxのログはスペース区切りで送信元IPアドレス、アクセス対象のURLなどが書かれてある。これはスペース区切りで文字を扱うことができるawkコマンドと相性が良い。 本記事では、awkコマンドを使用して、特定の条件下のログを報告したり、ログの情報を見やすくさせる方法を記す。 awkコマンドを使用して、表示する情報を絞る 基本。 cat access.log | awk '{print $1}' これで送信元IPアドレス(スペース区切りで1番目のデータ)が表示 ... 続きを読む
Nginxのログをチェックする、ログの出力設定を変更する 作成日時: 2021年9月21日 07時19分 最終更新日時: 2021年9月21日 07時19分 Categories: インフラ Tags: nginx システム管理 ウェブサーバー セキュリティ ネットワーク Ubuntu Linux 事案が発生した時、まっさきに確認するべきがサーバーのログ。とりわけウェブサーバーのNginxのログ確認方法、設定方法をここに記す。 Nginxのログの見方 Nginxの設定ファイル(/etc/nginx/nginx.conf)にログのパスが書かれてある ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ログは/var/log/nginx/access.logに保管されてある事がわかる。中身はこんな感じ。 左から順にこうなっている。 送信元 ... 続きを読む
UUIDを生成するコマンドuuidgen【予測されたくないページのURL割り当て等】 作成日時: 2021年9月19日 18時14分 最終更新日時: 2021年9月19日 18時14分 Categories: インフラ Tags: Ubuntu セキュリティ tips bash Ubuntuであれば、下記コマンドを実行するだけで自動的にUUIDが生成される。 uuidgen 用途 秘匿する必要のあるページ(管理サイト等)にURLとして割り当てることで、総当たりでヒットされにくくなる。 UUIDが重複する確立は途方もなく低いので、他のセキュリティ対策ができない場合の代替案として有効であると思われる。 例えば、sedコマンドなどを使用して、Djangoのurls.pyから管理サイトを割り当てている ... 続きを読む
リモートサーバーのデータを自動的にバックアップする方法論【scp+crontab】 作成日時: 2021年9月19日 18時12分 最終更新日時: 2021年9月19日 18時12分 Categories: インフラ Tags: システム管理 ssh django 手順 crontabを使って、一定時間おきにリモートサーバーがバックアップを取る crontabを使って、一定時間おきに任意の端末がscpでリモートサーバーのバックアップファイルをDL crontabを使って、一定時間おきにリモートサーバーがバックアップしたデータを削除 方法 例えば、Djangoであればこうなる。 リモートサーバーの/etc/crontabに以下の設定を施す。 00 * * * * ubuntu cd ~/Document/django/ && python3 manage.py dumpdata [任意の ... 続きを読む
シェルスクリプトでウェブサーバーの応答不能・ステータスコードをチェックして記録・通知する【pingとcurl、即メール送信にも有効】 作成日時: 2021年9月19日 08時51分 最終更新日時: 2021年9月19日 08時51分 Categories: インフラ Tags: シェルスクリプト システム管理 ウェブサーバー ネットワーク ubuntu bash サーバーが応答不能になった時、すぐに対処できるよう、通知機能が欲しい。そういうときのシェルスクリプト。 pingで応答不能をチェックする #! /bin/bash while true ; do ping -c 1 192.168.11.99 rc=$? if [[ $rc -eq 0 ]] ; then echo "正常です" else echo "失敗しました" fi sleep 1 done 後は『正常です』『失敗しました』のいずれかに任意の処理を書き込む。 curlで応答不能をチェックする curlはHTTPのステータスコードも手に入るの ... 続きを読む
サーバーを本格的に運用するようになったらやること・守ること 作成日時: 2021年9月14日 06時54分 最終更新日時: 2021年9月14日 06時54分 Categories: インフラ Tags: スタートアップシリーズ システム管理 セキュリティ 圧倒的に人手不足な組織でありがちなのが、『開発とデプロイができるならサーバー管理もできるだろう』と言わんばかりに経験も無いのにサーバー管理まで任されること。 そんな時に一通りチェックしておくと良いものを列挙する。 事前対策編【予防・抑止】 OSにインストールされているパッケージのアップデート(更新) OSにインストールされているパッケージは問題がなければ定期的にアップデートしておく。 sudo apt update && sudo apt -y upgrade && sudo apt ... 続きを読む
【AWS】EC2にムームドメインで取得した独自ドメインを割り当て、HTTPS通信を行う【Route 53 + Certificate Manager + ロードバランサ(ELB)】 作成日時: 2021年9月5日 15時32分 最終更新日時: 2021年9月5日 15時32分 Categories: インフラ Tags: aws ec2 システム管理 タイトルの通り。 【注意】この記事の通り、Route53のホストゾーンを割り当てる時、0.55ドルの課金が発生する。ホストゾーン1個につき1ヶ月で0.55ドル発生する。(2022年10月時点) 手順 EC2のインスタンスを作る セキュリティグループを書き換える ElasticIPを割り当てる Route53に独自ドメインを割り当てる【注意:要課金】 SSHで独自ドメインでログインしてみる Certificate Managerとロード ... 続きを読む