忍者ブログ
RoboCup Junior Japan Rescue Kanto OB

             2005~2013
[1]  [2
平成中に記事を上げるといったじゃろ?

有言実行のスタンスは変わりません。ちなみにPythonの記事も実は用意があります。

急遽、文化放送の某番組を録音する必要が出てしまいました。

当初はメインPCであるwin機を使って・・・と色々考えたのですが、

調べた限り、時間設定で自動起動→録音してくれて、文化放送をカバーしてくれるとなると厳しそう・・・。
バケツは常にカンストしてて貰っても使い道がなく消えていきます。イベントはよ

今日はyumの話です。
第13回ですがネタに困ったので、SQLについて軽く流していこうと思います。
よく考えたらhtmlってサーバーあんま関係ないしね(´・ω・`)

例えば、Webサイトとかで入力フォームとかってありますよね。

なんかの登録だとか登録だとか登録だとかの画面に出てくるアレです。


あれは簡単にいえばサイトに入力した内容をサーバーが自分のデータベースに保存するものなのですが、

SQLっていうのはそのデータベースそのものです。

データベースっていう単語自体は一般化されてて広義に取られていることが多いですが、

簡単にいえばデータの管理システムみたいなものです。

データベースにはいくつかの種類があって、SQLはリレーショナルデータベースというデータベースのひとつです。
TwitterとかSNSではKVS形式のデータベースが多く採用されていますね(´・ω・`)


SQLはデータをエクセルみたいに表形式で管理していて、例えばこんな感じデータが入っています。

名前 年齢 住所 電話番号
A 22 xxx-xxx-xxx 00-0000-0000
B 25 yyy-yyy-yyy 11-1111-1111
C 16 zzz-zzz-zzz 22-2222-2222

この表1つ1つをテーブルと呼んでいます。

データベースは複数のテーブルで構成されていて、

このテーブル同士の関係をうまく使って情報を保存するのでリレーショナルDBと呼ばれます。


・・・とまぁこういったものなので、

ぶっちゃけ趣味で何かするときに使う可能性があるかというとかなり微妙な位地合いのものですね。


多人数いる団体の中でのデータ管理とかに使うんだったら使えるかとは思いますが、

まぁ趣味の範囲だとそれくらいでしょうか。

例えばらずべりーぱいとかに乗っけてあげて、

センサーの値をデータベース化して・・とかだったらネットで見れるし便利かもしれませんが、

いまいち優位性がないというか・・・ぱっとしない(´・ω・`)

用途が限られてきますね。



勿論実用的にはこれなかったら今の社会成り立たないってほどにはあっちこっちに使われています。

顧客情報扱うのもこれだし、社員や学生情報もこれだし、製品情報もこれでしょう。


ほんとにこれが消えると情報化社会の何もかもが終了してしまうようなシステムとなっています。

趣味範囲の有用性はともかく、一度どんなものか触ってみる分には悪くないのではないでしょうか。


因みにSQLはphpなどのwebスクリプトはもちろんcやpythonからでもデータのやり取りが行えます。

僕は一昨年の12月、C言語を使ったSQL更新プログラムを使ってDBの単位を勝ち取りました。


それでは今日はこのへんで。次回は多分SQLの構文についてかな?


(^・ω・)ノ RadiumProduction at curonet
12回目です。今回はDNSについて。

DNSとは、Domain Name Systemの略語です。GoogleIMEで”Doma”まで入力したら、変換候補に出てくるくらいには有名ですね。

以前の記事でサイトに接続することはサーバーに接続することだという話をして、

PCなどの端末は全てIPアドレスという識別アドレスを持っているという話をしました。


それで、相手のPCなどのIPアドレスを入力することで相手のサイト、

つまりサーバーに接続ができるという話でした。


でも、IPアドレスなんて普段インターネットを使っていてもまず耳にすることはないでしょう。

情報工学科の人間は自分の家とgoogle、yahooのIPアドレスが言えて初めて一人前ですが、

そうでない方にはまずあり得ない話ですし、

そもそも情報科でも普段使うサイト全てのIPアドレスなんて覚えているわけがありません。


では一体何がどうなっているのかといいますと、URLというものがありますね。

今は検索サイトが主流ですが、勿論今でもURLを入力すればそのサイトに行くことは出来ますし、

お気に入り、Bookmark等のデータも中に入っているデータはURLです。

実はDNSとはこのURLとIPアドレスを変換してくれるシステムのことになります。


で、今回は何をするかというと、DNSサーバーの構築をしても良かったのですが、

今はルータに標準でDNS機能が搭載されており、作る必要性がほぼ皆無です。


と、いう訳で今回は自分のwebサーバーにローカルではなく、

DNSを使って外部から接続をできるようにしようと思います。



まず大事なのがドメインの取得です。ドメインというのは端的に言えばURLのことです。まぁ厳密には違うけど

世界中でURLは使われていますから皆が皆勝手にドメインを決めていっていいというわけではありません。

ちゃんと取得手続きというものがあってめんどくさい手続きがある上に結構マネーが必要です。

と、いう訳で今回はフリーのドメイン取得サービスという物を使っていきます。

要するにこれはドメインが只で取得ができるサービスです。

ブログサービスとかもこれを利用してURL取得をしていますね。


今回はieServer.Netを使っていきます。なんでこれかって?サイトが日本語だし資料も多いんです!

まずはこちらのサイトでドメインを取得します。ドメイン取得はサイトの通りやれば終了です。

ユーザー名が指定するサブドメイン、あとはdip.jpなど好きなドメインを選択すれば

ユーザー名.dip,jpが取得したドメイン名となります。


次にドメイン名とIPアドレスを紐付けるわけですが、これにはDiCEというものを使います、はい定番ですね

基本的にIPアドレスは時間が経つと変わってしまい、

ieServer.Netに登録したものと違うアドレスになってしまうとieServer.Netは使えなくなります。

そこでDiCEを使って定期的に新しいIPアドレスをieServer.Netに転送する必要があります。

DiCEについては此方のサイトを参照に設定します。

簡潔に言えば/local/binに移動してDiCEをインストールして、あとはDiCEを起動して言われた通りの設定を行い、

終わったらDiCEの自動起動の設定を行う。これだけです。


ちなみにDiCEは日本語対応しているので起動すると日本語が表示されます。

但し、文字コードがEUCとなっている為SSHで行う場合には予め文字コードをEUCにする必要があります。


DNSの設定は以上です。殆ど指示されたとおりにやるだけなのでリンク張って終わりにします。

次はhtmlかSQL,気が向いた方をやろうかなと思います。


(^・ω・)ノ RadiumProduction at curonet
サーバー構築日誌 9が消失しました。

記事ごと消えているようで、既に再生できなくなっているっぽいです。ブログサービス側の不具合?

内容はfirewallでしたが、記事を守りきることは出来なかったようです・・・。


時間があれば書き直しという形で再掲するかもしれませんが、消えてしまったということでご報告を。

ちなみにソフトはiptablesを使用していました。

メジャーなものですのでGoogle先生に聞けばすぐに使い方を教えてくれるはずです。

消えたと思ったか!?残念!

カテゴリー登録忘れてただけだよ!!!!

その9はちゃんとカテゴリー追加しました(´・ω・`)


という訳で予定通り今回はFTPについての記事となります。

FTPとは、ファイル転送のプロトコルのことです。

つまり、例えば、webページはhtmlやphpファイルとかで作られていますが、

このようなページは勿論作っただけではインターネットから閲覧することはできず、

インターネットから閲覧できるようにするにはwebサーバーにUPする必要があります。
webサーバーは第8回までで作りました。

このwebサーバーにデータをUPするのがFTPとなっています。


FTPソフトは自分でカタカタして作ってもいいのですが、フリーソフトがあるので使いましょう。

有名なフリーソフトだと、FilezillaFFFTPというものがあります。※FFFTPリンクは窓社行きです。

まぁどっちでもいいのですが、個人的にはFilezillaの方が使いやすいのでお勧めです。

また、Filezillaはサーバーのパスを不正に抜き取る機能を持った偽物が出回りましたので、

ダウンロードする際は公式から行ったほうが良いと思います。
出現から去年の発見まで2年近くも存在に誰も気が付かなかったというのだから驚きです。



まずDLしてインストールしたら初期設定からです。

FTPはネットワークを介してサーバーと通信をするのでサーバー側もネットワークに繋ぎましょう。

ひとまず今回はローカル回線で接続することを考えます。web使う場合もIP変えるだけなんですが。

・まずはサイトマネージャーだったり、新しい接続だったりをクリックして新しい接続を作ります。

・次にホストにサーバーのローカルアドレス(192.168.1.30)を入力します。

・ポートは21ですが、多分記入しなくても標準が21なので問題無いと思います。

・プロトコルをSFTPに設定します。

・ログインの種類を通常にし、ユーザー名、パスワードにサーバーのアカウントのものを入力します。

・転送設定かどこかにある転送モードをパッシブにします。(アクティブでも可)

・既定のローカルディレクトリを送信したいファイルのあるフォルダに設定します。

・既定のリモートディレクトリを/var/www/にします。


これで接続を押せばサーバーとの接続が確立します。

失敗した場合は
・FireWall側で21番及び60000-60030を拒絶している

・プロトコルを明示的なFPS over TLSに変更してみる

・サーバーが落ちている

この辺を確認してみましょう。

webからだとルータでも21番
及び60000-60030番を開放する必要があります。


これでファイルを送信できるはずです。

送信したいファイルを送信する方法はダブルクリックとか右クリックでメニューから選んだり

あとはその辺にボタンとかあるんじゃないかな。


サーバーの接続がうまくいっているのにアクセス権利がないとかで送信できなかった場合は

一旦SSHか何かでサーバーにログインして


# cd /var

# sudo chmod 777 www


と入力しておきます。

これでアクセス権限が与えられます。操作が終わったらchmod 644 www としておくと安心です。


以上です。汎用性を保たせるために説明が雑でしたが、まぁ、きっと、多分、大丈夫でしょう。


という訳で以上です。次はSQLの話かhtmlの話か、あるいは放置しているDNSか。どれかです。

ちなみにBBBの方も同様にデータ転送ができるのでBBBの方も次に進みます。

BBBの方もDNSかなぁ。BBBとサーバー構築日誌では違うフリーDNSを紹介する予定です。

BBBはあぱっちが標準で入っているので何も設定せずに普通のhtmlファイルは使えるはずです。
まぁ簡易版なのでSSL通信とか仕掛けようとすると色々入れないといけませんが。

それでは

(^・ω・)ノ RadiumProduction at curonet
DNSやろうと思いましたが、とばして先にこっちやります。


前回までで、とりあえず最低限のサーバーとしての機能は全て実装しました。

一応あれだけやればサーバーとして動作してくれます。

が、あれだけでは何もないサーバです。webサイトも置けないメールも見れない・・・

という訳でここからはオプションです。


今回はwebサイト構築についての第一段階を行っていこうと思います。


例えば、なんでもいいから自分のサーバーにページをあげたいとなった時に何が必要かという話です。

SQLとかSQLとかSQLとかの話は後回しとして・・・。まずいるのが

Webサーバー

FTPサーバー

この2つになります。

Webサーバ-っていうのはいわずもがな。webサイトのページが有るサーバーです。


具体的にはブラウザとかからサーバーに対してwebページ見せてよ!っていう要求に対して

対応するページを見せてあげる機能そのものと言ってもいいのかな。凄いさっくりだけど。


サーバーにはwebサイト以外にも様々な機能がありますから

ページが見たいっていう要求に答えることが出来る機能であるwebサーバーを入れないと

サーバーはサイトを外部に公開することができなくなるわけですね。




FTPサーバーっていうのはサーバーにデータを送るサーバーです。

webページというのは基本的にhtmlだったりのファイルな訳ですが、

PCで作成したファイルをサーバーに送らなければ、webサーバーの中身は空っぽになってしまいます。

その、PCで作成したファイルをサーバーにアップロードするのがFTPサーバーです。


という訳でこの2つがwebに必要なサーバーのたぐいです。


今回はざっくりとwebサーバーの実装についてやっていきます。

webサーバー、色々ありますが、今回は非常にめんどくさいことを避けるために

一般的に用いられているapatcheというものを使っていきます。


まずは以下のコマンドでインストールを行います。


yum -y install httpd
yum -y install php php-mbstring


次にwebサーバーはサーバー起動時に立ち上がってくれないと困るので自動起動の設定をします。

chkconfig httpd on

最近知ったのですが、どうやらCentOS7以降ではどうにもこの自動起動の方法が違うようです。

調べてみたら

systemctl enable httpd

で出来るようですが、こちらの環境は6.5なので確認していません。悪しからず。


最後に起動します。

/etc/rc.d/init.d/httpd start

これで下に起動中と出ればOKです。

この状態でブラウザ上で

http://192.168.1.30←サーバーのIPアドレス

と打ってなんかページっぽいものが出てくれば成功です。

多分apatche入れた最初の段階ではindex.htmlが自動生成されているはずなので何かしら出てくるはずです。


これでPC側設定は終わりなのですが、外部からwebサイトを接続するにはこれだけではできません。

というもの、以前にポートの話をした際に

ポート番号を使ってサーバーは要求の内容を判断しているという感じのことを書いた気がします。


ファイヤーウォールも同様に、ファイヤーウォールもポートごとにアクセスの制限を行うことができました。

で、そのファイヤーウォールですが、前回、PC側ではポートの設定(開放)を行いましたが、

実はルーター側にもファイヤーウォールがあったりします。

なのでルーターの方もポート開放を行ってやる必要があったりするんです。


ルーターのポート開放についてはメーカーごとに方法がバラバラなので調べてくださいとしか言えませんが

大体ブラウザで192.168.0.1か192.168.1.1にアクセスすればルーターにアクセス出来るはずです。


ユーザーに優しいメーカーなら、方法を調べなくてもなんとなく見つかるかもしれません。

アクセス制御とかポートなんとかって書いてある当たりに行けばなんとなくいいんじゃないでしょうか。

ここで、80番のポートを開放するように設定します。

IPアドレスの欄にはとりあえず全部サーバーのアドレスを、

TCPとか聞かれる欄があったらTCP選んでおけば多分大丈夫です。ダメなら調べよう。

ポートが開放されているかの確認はこちらのサイトで行えます。

ドメインとポートを入力するだけでそのドメインのポートが開放されているかがわかります。


現在の段階ではまだドメインを持っていないので"http://自宅のグローバルアドレス"を入力します。

自宅のグローバルアドレスはこちらのサイトで確認できます。

アクセスするだけで書いてあります。わかりやすいです。
コマンドプロンプトでipconfigって打ってもローカルアドレスしか出してくれませんので。

ここまでやれば、ブラウザ上で”http://自宅のグローバルアドレス”を入力すれば

先ほどと同じ画面が出てくれるはずです。出てくれば成功です。


出てこない場合はサーバーかルーターのポート開放がおかしい可能性がありますね。

ポート開放の確認をして見たら多分ダメって言われる感じですね。
もしダメって言われなかったらなんだろう・・・webサーバーのインストール失敗したかな。


という訳で今回はwebサーバーのインストールについてでした。

次回はきっとFTPサーバーのインストールについて書く予定です。

それでは


(^・ω・)ノ RadiumProduction at curonet
第9回です。今回は前回に引き続き、悪いことする人たちから身を守る方法についてご紹介します。

今回はファイヤーウォールの設定を行っていきます。

ちょっと前にBBBの方でufwをインストールした記事を紹介したかと思いますが、

今回はcentosにデフォで導入されているパケットフィルタリングのiptablesを使っていこうと思います。


まずは設定ですが、ufwのようにコマンド上で

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

こんな感じに打って設定していくことができるのですが、いちいち全部打つのは面倒なので、

今回は直接viで設定を書いてみます。


まずはviで設定ファイルを開きます。

 vi /etc/sysconfig/iptables


次に中身を書いていきます。

-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT

-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 20 -j ACCEPT
-A INPUT -p tcp --dport 21 -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 25 -j ACCEPT
-A INPUT -p tcp --dport 60000-60030 -j ACCEPT

とりあえずココらへんのポートを開放しておきます。

80はhttpなのでサイトを公開する際には必須

443はSSLです。hhtpsを使いたい場合はこれも必須です。

20、21、60000-60030はFTPで使います。サーバーにFTPでデータをアップロードしたい場合は必須です。

22はSSHです。今使ってるはずなのでこれがないとiptables起動したらSSHできなくなりますね。

25はSMTP、よーするにメールサーバ実装したい際はこれ開放しないと使えません。


とまぁこんな感じ。ポートの詳細はちょっと調べればどことなく書いてあるので詳細はそちらで。


そして設定が終わったらお馴染みの再起動です。

特に確認とかしていませんが、多分これで再起動できるはずです。

service iptables restart


以上でファイヤーウォール設定は終了です。

実はiptablesではもっと複雑なアクセス制御を行うことも可能で、

特定の国からのアクセスを排除したり、特定のIPアドレスからのアクセスの制限とかも行うことができます。


現在うちのサーバでもiptablesを使って某国からのアクセスは完全にシャットアウトしていたりします。

どこぞの国からの攻撃が怖い場合はこういう処置をしてみてはいかがでしょうか?
DROP_COUNTRYでググれば出てくるよ。多分。


という訳で今日はこの辺で。

4/2追記
カテゴリー外れてたっぽいので追加しました('ω')✌

(^・ω・)ノ RadiumProduction at curonet
サーバー構築日誌も第8回まで来ました。

ちょっと諸事情で現在家のサーバーの電源は落ちていますが気にせず記事を続けましょう。


今回の内容は前回告知したようにセキュリティについてです。

といっても後ろに()がつきそうな感じでは有りますけどね。

というのも、やることはアンチウィルスソフトをインストールするのと、ファイヤーウォールの設定だけです。


ファイル改竄防止ソフトとかrootkitの検知ソフトとか、ものすごく必要な気がしますが、

今回は見られて困るものを入れておく訳ではありませんので省略します。

ちゃんとしたサーバーを作るのであれば、絶対に入れておくべきだと思います。
バックドアとか食らったら溜まったもんじゃないからね!


という訳でまずはアンチウィルスソフトから。

今回は割りとメジャーらしいClam AntiVirusというソフトを入れてみようと思います。


あっちこっちに参考サイトがありますので、もうここを見る必要も無いんじゃないかな(´・ω・`)


まずはインストール。wgetとかしなくてもそのままyumでインストールできるはずです。


yum -y install clamd

このコマンドでインストールができます。

次に起動させます。

/etc/rc.d/init.d/clamd start

rootに入って起動させてください。


次に自動起動の設定をします。これがないと、サーバー起動時に自動起動されないので

毎回起動コマンドを打たないといけません。


chkconfig clamd on


自動起動コマンドはよく使うので覚えておいて損はないかと思います。因みに自分は覚えていません。


次にウイルス定義の更新の設定を行います。

これをしないと最新のウィルスをウィルスとして認識してくれません、



sed -i 's/^Example/#Example/g' /etc/freshclam.conf

freshclam

この2つのコマンドで設定を行います。

一度この設定を行えば、後は自動でウィルス定義は最新のものに更新してくれます。


それで肝心のウィルススキャンなのですが、起動しただけでは自動で行ってくれず、

シェルスクリプトを組む必要があります。

こちらのサイトに上がっていたものを丸っとコピらせて頂いたのですが、


まず、プロンプト上で、ルート権限で


vi virusscan

と打ち込んで、viエディタを開きます。

viを開いたら一旦terateamから離れて以下のシェルスクリプトを全てコピーします。



#!/bin/bash

PATH=/usr/bin:/bin

# clamd update

yum --enablerepo=epel -y update clamd > /dev/null 2>&1

# virus scan

CLAMSCANTMP=`mktemp`

clamscan --recursive --remove / > $CLAMSCANTMP 2>&1

[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \

# when detect virus, send mail

grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root

rm -f $CLAMSCANTMP



んでもってこれをviに貼り付けるわけなのですが、viはなれないと操作が面倒です。

まず、terateam上のviをクリックしてカーソルを持ってきます。

次にキーボードでiを押します。これで挿入モードになります。

そしたら右クリックすると、コピー内容が全部ペーストされます。

全部ペーストされていることを確認したらEscキーで挿入モードを抜けて:wqと入力します。

w=保存
q=終了

です。そのままviが終了すればちゃんと上書きができています。

終了しなければrootでログインしてないとかの理由で書き込み禁止になっているか

コマンドが上手く打ててないか、あるいは全角になっている可能性とか考えられます。

どうしてもでられなくなったら:q!で強制終了しましょう。

詳しくviのコマンドについてはこちらのサイトに書かれています。


と、正しく保存ができたら最後にこのシェルに実行権限を与えて自動起動させます。


# chmod +x virusscan

# mv virusscan /etc/cron.daily/


これでアンチウィルスソフトに関する設定は完了です。


さて、記事が長くなってきたので一旦ここで切ります。


次はファイヤーウォールの設定を行いたいと思います。

最近忙しいのにちゃんと記事更新してる!偉い!


(^・ω・)ノ RadiumProduction at curonet
七回目です。8月の終わりから初めてもうかれこれ半年以上やってる気がしますが、

一向にサーバーが出来る気配がありませんね。
いや、ホントは8月中に稼働させてるんだよ?

今日はポートについてのお話。なんでこの話をすることにしたのかはよく覚えてないですが、

何故か前回の記事でやるって書いちゃってるんでやります。


まず、現在のネットワークって色々な通信がありますよね。

インターネットで例を上げても、WEBページを見たり、メールをしたり、

webサイトやってる人とかだとFTP使ってることもあるでしょう。


ポート番号とは、簡単にいえば、そのそれぞれの通信に対して割り当てられている番号のことです。

さっきの例で言えば

Webページを見る(HTTP)は80番だったり、

メール(SMTP)は25番だったり、

FTPであれば21番だったり・・・。

前回の記事で紹介したSSHは22番でしたね。


こんな感じで通信ごとに番号が割り当てられているんです。


基本的にネットワークにつなげる端末・・・パソコンとか、携帯とかスマホとか、

まぁ色々ありますけどそれらには全てIPアドレスという番号が振ってあって、

そのIPアドレスによってネットワークは端末の個体識別をしています。


WEBページを見る場合ですと。WEBページはサーバー上にあるものですから、

WEBページを見る際にはそのWEBページが有るサーバーのIPアドレスを指定することによって

パソコン側は見たいWEBペーシのあるサーバーを特定して接続してくれるようになってます。



だけど、IPアドレスだけでは、サーバー側は接続した時に接続元、

つまりこちらのパソコンが何をしたくて接続しにきたのかがわかりません。

そこで先ほどのポート番号によってどういう作業をサーバーに求めているかを判別している訳です。


因みにIPアドレスの指定なんて普段やってないように思うかもしれませんが、

実はURLがその代わりになっています。

これについてはどっかのタイミングでDNSの話が出てくるのでその時にでも・・・。



というのが今日のお話。ポートだか、IPアドレスだかよくわからない話になってしまいましたが

なんかそんな感じです。

因みにポート番号についてはさっきの数字はあくまでデフォルトの値で、

サーバーの設定で制限はありますが、ある程度好きに変えることができます。


という訳でサーバー構築日誌、次の記事はセキュリティについてです。

といっても最低限のレベルでご紹介する程度になるかと思います。


(^・ω・)ノ RadiumProduction at curonet
カレンダー
06 2020/07 08
S M T W T F S
1 3 4
5 6 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新CM
[06/08 ONE RoboCuper]
[01/24 sk]
[09/25 ONE RoboCuper]
[11/19 big]
[11/11 お馬さん]
かうんた
らじぷろ目次
らじぷろ検索機
プロフィール
HN:
Luz
年齢:
26
性別:
男性
誕生日:
1994/02/15
職業:
大学生
趣味:
ラボ畜
自己紹介:
初めまして。Luzと申します。
某大学の情報学科に入りました。のんびりと生活を送るのが今年の夢です。
めーる
radiumproduction☆yahoo.co.jp
※☆を@に変更して下さい。
バーコード

PR

忍者ブログ 2007-2018,Powered by Radium-Luz-Lα+-Rescatar in RadiumProduction [PR]


Related Posts Plugin for WordPress, Blogger...