ホーム » 「POP」タグがついた投稿
タグアーカイブ: POP
ポート番号とファイアウォールとメール
ポート番号とソケット
サーバとなるコンピュータでは、1台のコンピュータで様々なサービスを提供することから、サービスを区別する必要がある。このためにポート番号が使われる。1台毎のコンピュータに割り当てられたIPアドレスを電話番号に例えるなら、ポート番号は内線電話番号に例えることができる。
サーバと通信する場合、サービスを提供するプログラムに応じて標準的なポート番号が決められている。サーバに届いたパケットは、ポート番号に応じてサービスプログラムを起動する。以下の表によく使われるポート番号の一例をあげる。
ポート番号 | プロトコル | 概要 |
20 | ftp | ファイル転送(データ) |
21 | ftp | ファイル転送(命令) |
22 | ssh | リモート接続(暗号対策あり) |
23 | telnet | リモート接続(暗号化なし) |
25 | smtp | 電子メール送信 |
465 | smtps | 電子メール送信(暗号化) |
53 | DNS | ドメインネームサービス |
80 | http | Web |
443 | https | Web(暗号化) |
110 | pop3 | メールダウンロード |
995 | pop3s | メールダウンロード(暗号化) |
143 | imap | メール閲覧 |
993 | imaps | メール閲覧(暗号化) |
137,138,139 | netbios | Windows のファイル共有 |
通信パケットには、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号の情報がある。
パソコンがサーバと通信する場合は、(1)自分のIPアドレスを送信元IPアドレス、(2)その時に使われていないポート番号をランダムに選び、送信元ポート番号とする。(3)通信相手のIPアドレスと、(4)通信先のサービスのポート番号をセットして、パケットを送付する。サーバは、サービスを要求してきたクライアントの送信先ポート番号をみて、対応するサーバのプログラムが動作する。プログラムの結果を送り返す時は、送信元と送信先のIPアドレス、ポート番号を入替えてパケットを送信する。
このような、IPアドレスとポート番号でお互いにデータを送りあうデータ通信の末端という意味でソケットと呼ぶ。サーバ側は、誰からでもデータを受け入れるということでソケットを開いて待機している。クライアントは開かれたソケットに接続して情報をやり取りする。
1024未満のポート番号(ウェルノウンポート番号)は、サービスを受けとるために用途が決められているので、通常の通信プログラムでは使われない。これ以外のポート番号は、通信の送信元のポート番号として使われ、エフェメラルポート番号と呼ばれる。
ファイアウォール
ネットワークのサービスの中には、組織外に見せたくないものも多い。また、インターネットでは、悪意のあるプログラマが通信して攻撃を加えてくるかもしれない。基本的には個々のサーバのプログラムで、送信元のプログラムのIPアドレスを見て接続を拒否することもできるが、末端のサーバで設定がいい加減だと攻撃をうけてしまうかもしれない。そこで、組織全体でネットワークを守る必要がでてくる。そこでルータなどの機能で、パケットの送信相手のポート番号や、送信元のIPアドレスをみて、パケットを廃棄する場合がある。こういう、ネットワークからの攻撃を防ぐ装置は、ファイアウォール(防火壁)と呼ばれる。
データベースサーバの保護するためにファイアウォールを設置する例を示す。Webサービスを提供するためのデータベースだけど、インターネットから接続されると情報漏洩が発生するかもしれない。そこでデータベースサーバ(mysql)に接続するための3306ポートは、ファイアウォール(ルータ)で組織外からは接続させない。
Webサーバにリモート接続(ssh/22)されるのも危険なことから、この例ではルータで http(80),https(443)以外のパケットは通さないといった許可リスト方式で設定するのが一般的。
許可リスト方式と拒否リスト方式
ファイアウォールの設定では、信頼できる人だけを接続させる許可リスト方式と、怪しい人を除外する拒否リスト方式がある。
許可リスト方式は、接続していい相手のIPアドレスや、ポート番号だけをFireWallを通過させる方式。(以前はホワイトリスト方式と呼ぶことが多かった。) これとは逆に、攻撃をしてきそうな怪しいIPアドレスや、怪しいポート番号のパケットを捨てて接続させない方式は拒否リスト方式とよぶ。(以前はブラックリスト方式と呼ぶことが多かった。) 学校のサーバは、学内への攻撃を防ぐため、ポート番号については http, https など以外の受信は許可リスト方式となっている。
メールが届くまで
電子メールは、非常に迅速にメッセージを相手に届けることができ、そのメッセージを蓄積・加工・編集・転送できる。また、音声や画像といった情報も、複雑な文字情報に置き換えることで、転送できるようになっている。
メールは、利用者のコンピュータに直接届けられるわけではなく、多くの場合はメールを蓄積するメールサーバに送られる。利用者がメールを読む場合、メールサーバから自分の端末に蓄積されたメッセージを読み込み、メッセージを確認する。このメールのやり取りにおいて、メールを送る時、あるいはメールサーバ間でメールを中継するときには、SMTP(Simple Mail Transfer Protocol) が用いられる。一方、メールサーバからメールを読み出すときには、POP(Post Office Protocol) やIMAP(Internet Message Access Protocol) と呼ばれるプロトコルが用いられる。最近では、IMAPを使ったメールの読み書きをブラウザの中で実行できる WebMail が使われることが増えている。
メールが届くまでの流れは、aさんが”foo@bar.jp“に送る場合、
- aさんは、自分が加入しているメールサーバに、SMTPでメールを送る。
- メールサーバは、メールアドレスのコンピュータ名部分”bar.jp“をDNSに問合せ、そのIPアドレスを調べ、そのコンピュータにSMTPでメールを送る。※
- “bar.jp“のメールサーバは、メールアドレスのユーザ名”foo“を取り出し、各ユーザ毎にメールを保存する。
- “foo”さんは、自分宛のメールを確認するために、POPまたはIMAPで自分のメールサーバ”bar.jp”に接続し、ユーザ名,パスワードで認証して自分宛のメールを受け取る。
※上記の手順2で、相手のメールサーバに直接送れない場合は、コンピュータ名のMXレコードをDNSに問合せを行い、そこで得られたメールサーバに中継を依頼する。
$ nslookup -query=MX fukui-nct.ac.jp. Non-authoritative answer: fukui-nct.ac.jp mail exchanger = 10 fukuinct-ac-jp01c.mail.protection.outlook.com.jp
上記手順4で自分のメールを読みだす際のプロトコルで、POPは一般的に、メールサーバから自分のメール閲覧ソフトに自分宛のメールをダウンロードして削除する。このため、様々なコンピュータでメールを読む人には不便となってきた。IMAPでは、メールを読んでも、既読の目印をつけサーバに残しておく方式であり、別のコンピュータでメールを閲覧したい時にもサーバ上のメールを読むことができる。メールをフォルダに分類して保存することもできる。最近利用される Webメール では、自分が利用しているメールサーバまでは Web の機能で接続し、Webサーバとメールサーバにて IMAP を使う。
POP, IMAP, SMTPでは、暗号化されない平文が使われることから、通信内容を暗号化して通信する POPS, IMAPS, SMTPS といったプロトコルも使用される。
メールヘッダ
メールを出すときには、宛先やタイトルや本文などの情報がついている。
From: foo@bar.jp 送信元のメールアドレス To: hoge@piyo.jp 送り先のメールアドレス Cc: hogehoge@bar.jp 送信内容を確認してもらうためのコピーの送り先 Bcc: hogefuga@bar.jp 送信相手にコピーしたことが見えないように送る時 Subject: 会議の議事録 メールのタイトル Date: 2019年 1月 9日 12:34:56 メールを送った時間 本文 -- 署名
送信相手に届くメールでは、上記以外にも様々な情報がつけられる。これらの情報を見ると、迷惑メールか確認することもある程度可能となる。
Received: from 送信元 by 受信サーバ Reply-To: 返信する際の送り先 Return-Path: 送信に失敗した時に送り返す先 DKIM-Signature: メールサーバの公開鍵署名 Received-SPF: 送信元のDNS情報など
spamとの闘い
spamとは、勝手に送られてくる迷惑メールであり、昔であれば特定の商品などの宣伝メールが送られてきた。最近では、元々、SMTPでメールを送る際には、ユーザ認証が行われていなかったことから、ウィルス(マルウェア)を拡散させるために、マルウェアをダウンロードさせるWebサイトに誘導したり、メールの添付ファイルに悪意のプログラムを混入させて送り付けてくる。 spam拡散を目的としたウィルスに感染すると、そのパソコンの利用者のメール情報を盗んだり、spam拡散の送信者(spammer)からの指令によって、spamを送信する踏み台(ボットネット/spammerに操られるパソコンのネットワーク)となってしまう。
迷惑メールのspamだが、大文字のSPAMと記載するとランチョンミートの意味となる。
spamが迷惑行為を指すようになったのは、モンティパイソンのSPAMのギャグが由来。
そこで spam 対策として、利用者が身近なメールサーバにメールの配送を依頼する際(前に掲載した図の(1)の通信)には、 SMTP送信の前にPOP/IMAP接続しユーザ認証を行った時だけメールを送ることができるPOP before SMTP(or IMAP before SMTP)や、SMTP-AUTHといった方式でユーザ認証を行うようになってきた。
一方、メールサーバからメールサーバにメールを送る際(前に掲載した図の(2)の通信)では、接続してきたメールサーバが正当なメールサーバなのかを確認する送信ドメイン認証ために、SPF, DKIM,DMARC などの機能が用いられる。SPF(Sender Policy Framework)では、DNSに登録されている正当なメールサーバの情報との比較が行われる。DKIM(DomainKeys Identified Mail)では、送信側のメールサーバが公開鍵暗号(後の講義で説明)をつかったDKIM署名をメールに付け、受信側でDKIM署名を公開鍵を使って検証を行うことで、正答なメールかを判断する。DMARCは、SPFやDKIMで検証した結果、怪しいと判断されたメールの取扱いをどうすべきかを指定できる。
(最近の google mail は、SPF,DKIM,DMARCが設定されていないとメールを受け取らない。これらの対策以前は80%がspamという時代もあったが、近年は全メールのうち50%ほどがspamらしい。)
((( SPF,DKIM,DMARCに関するDNSの設定例 ))) $ nslookup -query=TXT tsaitoh.net tsaitoh.net text = "v=spf1 +ip4:64.33.3.150 a mx -all" ### +ip4: は、このIPアドレスはメールサーバとして「正当」だよ...の意味 $ nslookup -query=TXT postfix._domainkey.tsaitoh.net postfix._domainkey.tsaitoh.net text = "v=DKIM1; h=sha256; k=rsa; p=...公開鍵..." ### p=公開鍵 は、この公開鍵で メールについているDKIM署名が確認できたら「正当」だよ...の意味 $ nslookup -query=TXT _dmarc.tsaitoh.net _dmarc.tsaitoh.net text = "v=DMARC1; p=quarantine; rua=mailto:report-a@tsaitoh.net; ruf=mailto:report-f@tsaitoh.net" ### p=quarantine は「SPF,DKIMの認証に失敗したら迷惑フォルダに分類していいよ」の意味
理解度確認
- メールの送信から受信までの処理を、それに使われるプロトコルを交えて説明せよ。
- Forms による理解度確認
ポート番号とファイアウォールとメール
ポート番号
サーバとなるコンピュータでは、1台のコンピュータで様々なサービスを提供することから、サービスを区別する必要がある。このためにポート番号が使われる。1台毎のコンピュータに割り当てられたIPアドレスを電話番号に例えるなら、ポート番号は内線電話番号に例えることができる。
サーバと通信する場合、サービスを提供するプログラムに応じて標準的なポート番号が決められている。サーバに届いたパケットは、ポート番号に応じてサービスプログラムを起動する。以下の表によく使われるポート番号の一例をあげる。
ポート番号 | プロトコル | 概要 |
20 | ftp | ファイル転送(データ) |
21 | ftp | ファイル転送(命令) |
22 | ssh | リモート接続(暗号対策あり) |
23 | telnet | リモート接続(暗号化なし) |
25 | smtp | 電子メール送信 |
465 | smtps | 電子メール送信(暗号化) |
53 | DNS | ドメインネームサービス |
80 | http | Web |
443 | https | Web(暗号化) |
110 | pop3 | メールダウンロード |
995 | pop3s | メールダウンロード(暗号化) |
143 | imap | メール閲覧 |
993 | imaps | メール閲覧(暗号化) |
137,138,139 | netbios | Windows のファイル共有 |
通信パケットには、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号の情報がある。
パソコンがサーバと通信する場合は、(1)自分のIPアドレスを送信元IPアドレス、(2)その時に使われていないポート番号をランダムに選び、送信元ポート番号とする。(3)通信相手のIPアドレスと、(4)通信先のサービスのポート番号をセットして、パケットを送付する。サーバは、サービスを要求してきたクライアントの送信先ポート番号をみて、対応するサーバのプログラムが動作する。プログラムの結果を送り返す時は、送信元と送信先のIPアドレス、ポート番号を入替えてパケットを送信する。
1024未満のポート番号(ウェルノウンポート番号)は、サービスを受けとるために用途が決められているので、通常の通信プログラムでは使われない。これ以外のポート番号は、通信の送信元のポート番号として使われ、エフェメラルポート番号と呼ばれる。
ファイアウォール
ネットワークのサービスの中には、組織外に見せたくないものも多い。また、インターネットでは、悪意のあるプログラマが通信して攻撃を加えてくるかもしれない。基本的には個々のサーバのプログラムで、送信元のプログラムのIPアドレスを見て接続を拒否することもできるが、末端のサーバで設定がいい加減だと攻撃をうけてしまうかもしれない。そこで、組織全体でネットワークを守る必要がでてくる。そこでルータなどの機能で、パケットの送信相手のポート番号や、送信元のIPアドレスをみて、パケットを廃棄する場合がある。こういう、ネットワークからの攻撃を防ぐ装置は、ファイアウォール(防火壁)と呼ばれる。
データベースサーバの保護するためにファイアウォールを設置する例を示す。Webサービスを提供するためのデータベースだけど、インターネットから接続されると情報漏洩が発生するかもしれない。そこでデータベースサーバ(mysql)に接続するための3306ポートは、ファイアウォール(ルータ)で組織外からは接続させない。
許可リスト方式と拒否リスト方式
ファイアウォールの設定では、信頼できる人だけを接続させる許可リスト方式と、怪しい人を除外する拒否リスト方式がある。
許可リスト方式は、接続していい相手のIPアドレスや、ポート番号だけをFireWallを通過させる方式。以前はホワイトリスト方式と呼ぶことが多かった。これとは逆に、攻撃をしてきそうな怪しいIPアドレスや、怪しいポート番号のパケットを捨てて接続させない方式は拒否リスト方式とよぶ。以前はブラックリスト方式と呼ぶことが多かった。学校のサーバは、学内への攻撃を防ぐため、ポート番号については http, https など以外の受信は許可リスト方式となっている。
メールが届くまで
電子メールは、非常に迅速にメッセージを相手に届けることができ、そのメッセージを蓄積・加工・編集・転送できる。また、音声や画像といった情報も、複雑な文字情報に置き換えることで、転送できるようになっている。
メールは、利用者のコンピュータに直接届けられるわけではなく、多くの場合はメールを蓄積するメールサーバに送られる。利用者がメールを読む場合、メールサーバから自分の端末に蓄積されたメッセージを読み込み、メッセージを確認する。このメールのやり取りにおいて、メールを送る時、あるいはメールサーバ間でメールを中継するときには、SMTP(Simple Mail Transfer Protocol) が用いられる。一方、メールサーバからメール
を読み出すときには、POP(Post Office Protocol) やIMAP(Internet Message Access Protocol) と呼ばれるプロトコルが用いられる。最近では、IMAPを使ったメールの読み書きをブラウザの中で実行できる WebMail が使われることが増えている。
メールが届くまでの流れは、aさんが”foo@bar.jp“に送る場合、
- aさんは、自分の組織のメールサーバに、SMTPでメールを送る。
- メールサーバは、メールアドレスのコンピュータ名部分”bar.jp“をDNSに問合せ、そのIPアドレスを調べ、そのコンピュータにSMTPでメールを送る。※
- “bar.jp“のメールサーバは、メールアドレスのユーザ名”foo“を取り出し、各ユーザ毎にメールを保存する。
- “foo”さんは、自分宛のメールを確認するために、POPまたはIMAPで自分のメールサーバ”bar.jp”に接続し、ユーザ名,パスワードで認証して自分宛のメールを受け取る。
※上記の手順2で、相手のメールサーバに直接送れない場合は、コンピュータ名のMXレコードをDNSに問合せを行い、そこで得られたメールサーバに中継を依頼する。
$ nslookup -query=MX fukui-nct.ac.jp. Non-authoritative answer: fukui-nct.ac.jp mail exchanger = 10 fukuinct-ac-jp01c.mail.protection.outlook.com.jp
上記手順4で自分のメールを読みだす際のプロトコルで、POPは一般的に、メールサーバから自分のメール閲覧ソフトに自分宛のメールをダウンロードして削除する。このため、様々なコンピュータでメールを読む人には不便となってきた。IMAPでは、メールを読んでも、既読の目印をつけサーバに残しておく方式であり、別のコンピュータでメールを閲覧したい時にもサーバ上のメールを読むことができる。メールをフォルダに分類して保存することもできる。最近利用される Webメール では、自分が利用しているメールサーバまでは Web の機能で接続し、Webサーバとメールサーバにて IMAP を使う。
通常、SMTPでメールを送る際には、ユーザ認証が行われない。このため、ウィルスに感染したプログラムから迷惑メール(spam)を出すことに利用されることが多い。そこで、SMTP送信の前にPOP/IMAP接続しユーザ認証を行った時だけメールを送ることができる、POP before SMTP(or IMAP before SMTP)といった方式をとる場合も多い。
POP, IMAP, SMTPでは、暗号化されない平文が使われることから、通信内容を暗号化して通信する POPS, IMAPS, SMTPS といったプロトコルも使用される。
理解度確認
- メールの送信から受信までの処理を、それに使われるプロトコルを交えて説明せよ。
- Forms による理解度確認
ポート番号とメールが届くまで
ポート番号
サーバとなるコンピュータでは、1台のコンピュータで様々なサービスを提供することから、サービスを区別する必要がある。このためにポート番号が使われる。1台毎のコンピュータに割り当てられたIPアドレスを電話番号に例えるなら、ポート番号は内線電話番号に例えることができる。
サーバと通信する場合、サービスを提供するプログラムに応じて標準的なポート番号が決められている。サーバに届いたパケットは、ポート番号に応じてサービスプログラムを起動する。以下の表によく使われるポート番号の一例をあげる。
ポート番号 | プロトコル | 概要 |
20 | ftp | ファイル転送(データ) |
21 | ftp | ファイル転送(命令) |
22 | ssh | リモート接続(暗号対策あり) |
23 | telnet | リモート接続(暗号化なし) |
25 | smtp | 電子メール送信 |
465 | smtps | 電子メール送信(暗号化) |
53 | DNS | ドメインネームサービス |
80 | http | Web |
443 | https | Web(暗号化) |
110 | pop3 | メールダウンロード |
995 | pop3s | メールダウンロード(暗号化) |
143 | imap | メール閲覧 |
993 | imaps | メール閲覧(暗号化) |
137,138,139 | netbios | Windows のファイル共有 |
通信パケットには、送信元IPアドレス、送信元ポート番号、送信先IPアドレス、送信先ポート番号の情報がある。
パソコンがサーバと通信する場合は、(1)自分のIPアドレスを送信元IPアドレス、(2)その時に使われていないポート番号をランダムに選び、送信元ポート番号とする。(3)通信相手のIPアドレスと、(4)通信先のサービスのポート番号をセットして、パケットを送付する。サーバは、サービスを要求してきたクライアントの送信先ポート番号をみて、対応するサーバのプログラムを起動する。プログラムの結果を送り返す時は、送信元と送信先のIPアドレス、ポート番号を入替えてパケットを送信する。
1024未満のポート番号(ウェルノウンポート番号)は、サービスを受けとるために用途が決められているので、通常の通信プログラムでは使われない。これ以外のポート番号は、通信の送信元のポート番号として使われ、エフェメラルポート番号と呼ばれる。
ファイアウォール
ネットワークのサービスの中には、組織外に見せたくないものも多い。また、インターネットでは、悪意のあるプログラマが通信して攻撃を加えてくるかもしれない。こういった場合には、ルータなどで、パケットの送信相手のポート番号や、送信元のIPアドレスをみて、パケットを廃棄する場合がある。こういう、ネットワークからの攻撃を防ぐ装置は、ファイアウォール(防火壁)と呼ばれる。
メールが届くまで
電子メールは、非常に迅速にメッセージを相手に届けることができ、そのメッセージを蓄積・加工・編集・転送できる。また、音声や画像といった情報も、複雑な文字情報に置き換えることで、転送できるようになっている。
メールは、利用者のコンピュータに直接届けられるわけではなく、多くの場合はメールを蓄積するメールサーバに送られる。利用者がメールを読む場合、メールサーバから自分の端末に蓄積されたメッセージを読み込み、メッセージを確認する。このメールのやり取りにおいて、メールを送る時、あるいはメールサーバ間でメールを中継するときには、SMTP(Simple Mail Transfer Protocol) が用いられる。一方、メールサーバからメール
を読み出すときには、POP(Post Office Protocol) やIMAP(Internet Message Access Protocol) と呼ばれるプロトコルが用いられる。最近では、IMAPを使ったメールの読み書きをブラウザの中で実行できる WebMail が使われることが増えている。
メールが届くまでの流れは、aさんが”foo@bar.jp”に送る場合、
- aさんは、自分の組織のメールサーバに、SMTPでメールを送る。
- メールサーバは、メールアドレスのコンピュータ名部分”bar.jp”をDNSに問合せ、そのIPアドレスを調べ、そのコンピュータにSMTPでメールを送る。
- “bar.jp”のメールサーバは、メールアドレスのユーザ名部分を取り出し、各ユーザ毎にメールを保存する。
- “foo”さんは、自分宛のメールを確認するために、POPまたはIMAPで自分のメールサーバ”bar.jp”に接続し、ユーザ名,パスワードで認証して自分宛のメールを受け取る。
上記の手順2で、相手のメールサーバに直接送れない場合は、コンピュータ名のMXレコードをDNSに問合せを行い、そこで得られたメールサーバに中継を依頼する。
$ nslookup -query=MX fukui-nct.ac.jp. Non-authoritative answer: fukui-nct.ac.jp mail exchanger = 10 fukuinct-ac-jp01c.mail.protection.outlook.com.
POPは、一般的に、メールサーバから自分のメールをダウンロードして削除してしまうため、メールはダウンロードしたコンピュータにしか残らない。このため、様々なコンピュータでメールを読む人には不便となってきた。IMAPでは、メールを読んでも、サーバに残しておく方式であり、別のコンピュータを使う時にもサーバに残っているメールを読むことができる。
通常、SMTPでメールを送る際には、ユーザ認証が行われない。このため、ウィルスに感染したプログラムから迷惑メールを出すことに利用されることが多い。そこで、SMTP送信の前にPOP/IMAP接続しユーザ認証を行った時だけメールを送れる、POP before SMTP(or IMAP before SMTP)といった方式をとる場合もある。
理解度確認
- メールの送信から受信までの処理を、それに使われるプロトコルを交えて説明せよ。