■サブネットマスク
サブネットマスク IPアドレス数 「192.168.1.1」の場合の例 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /8 255.0.0.0 16777216 192.0.0.0 〜 192.255.255.255 /16 255.255.0.0 65536 192.168.0.0 〜 192.168.255.255 /24 255.255.255.0 256 192.168.1.0 〜 192.168.1.255 /28 255.255.255.240 16 192.168.1.0 〜 192.168.1.15 /32 255.255.255.255 1 ネットワークにならない
■ドメインの情報
$ dig refirio.net any … 特定ドメインの情報を取得 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.2 <<>> refirio.net any ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63302 ;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;refirio.net IN ANY ;; ANSWER SECTION: refirio.net. 3600 IN NS ns1.dns.ne.jp. refirio.net. 3600 IN NS ns2.dns.ne.jp. refirio.net. 3600 IN MX 10 mail1.refirio.net. refirio.net. 3600 IN MX 20 mail2.refirio.net. refirio.net. 3600 IN A 153.121.33.84 refirio.net. 3600 IN TXT "v=spf1 +ip4:153.121.33.84 -all" refirio.net. 3600 IN SOA master.dns.ne.jp. tech.sakura.ad.jp. 2017032202 3600 900 3600000 3600 ;; Query time: 3 msec ;; SERVER: 210.188.224.10#53(210.188.224.10) ;; WHEN: Sun Jun 11 23:48:17 2017 ;; MSG SIZE rcvd: 206 レコードの意味は以下の通り FQDNは「Fully Qualified Domain Name」の略で何も省略しない完全修飾ドメイン名 TTLは「Time To Live」の略で生存期間 FQDN TTL INternet Address IPアドレス refirio.net. 3600 IN A 153.121.33.84 各レコードの意味は以下の通り ・NS(Name Server) ... ドメインの権限を持つDNSサーバ。可用性向上のため、通常複数台用意されている ・MX(Mail eXchanger) ... メールの送受信で使うドメイン。「10」「20」は、数字が小さいものが優先的に参照される ・A(Address) ... ドメインからIPアドレスを調べる際に参照される。正引きする際に必須 ・TXT(TeXT) ... 改ざんが容易に出来てしまうメールの仕組み上、本当にそのドメインから送られてきてるよ、という証明 ・SOA(Start Of Authority) ... どのDNSサーバがどのドメインを管理しているのかを宣言する SOAレコードの後ろの数字の意味は以下の通り ・serial ... シリアル番号。ゾーンファイルを新しく更新しても、このシリアル番号が低いものは更新されない 番号であれば何でも良いが、「年月日」+「連番」を記述するのが定石となってる ・reflesh ... 更新時間。スレーブの更新タイミングの目安となる秒数 ・retry ... 再試行時間。再実行する際にウェイトする秒数 ・expiry ... 有効期限。マスターがダウンしてる際の生存期間 ・minimum ... ネガティブキャッシュの生存期間。デフォルトのTTL 他に以下のようなレコードもある ・PTR(PoinTeR) ... 逆引き用のレコード。Aレコードの逆 ・CNAME(Canonical Name) ... ドメインに別名を付ける場合に指定する。元になるドメインはAレコードで指定されたものを使う ・SPF(Sender Policy Framework) ... TXTレコードの一種。電子メールの送信元ドメインが詐称されていないかを検査するための仕組み TXTレコードと同一の内容を設定しておく 参考:俺のDNS - 脱・初心者のためのメモ https://qiita.com/Ogaaaan/items/b3ceb8827e98ce40f5f2
■telnetでアクセスする
参考:WindowsのTelnetクライアントの使い方 http://www.atmarkit.co.jp/ait/articles/0207/06/news002.html Unixの場合ははじめからインストール済みになっているかもしれないが、 使えない場合は以下でインストールする # yum -y install telnet 以下はアクセス例 (Windowsの場合、接続した後は入力内容が画面に表示されない?) $ telnet refirio.net 80 Trying 153.121.33.84... Connected to 153.121.33.84. Escape character is '^]'. GET / HTTP/1.0 … 入力して改行2回 HTTP/1.1 200 OK Date: Sat, 21 Oct 2017 07:44:19 GMT Server: Apache X-Powered-By: PHP/5.3.3 Set-Cookie: PHPSESSID=1g9vhqhjrg75q40ti2an6ceci4; path=/ Content-Length: 413 Connection: close Content-Type: text/html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>refirio.net</title> <link rel="stylesheet" href="/css/common.css" /> <link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon" /> <script type="text/javascript" src="/js/analytics.js"></script> </head> <body> <h1>refirio.net</h1> <p>テストページ。</p> <address>Created by refirio.</address> </body> </html> Connection closed by foreign host.
■サーバ同士でSSH接続
■通常の接続 「203.0.113.1」サーバに、「ec2-user」ユーザで、「10022」番ポートに接続 # ping 203.0.113.1 … 疎通確認 # ssh -p 10022 ec2-user@203.0.113.1 … 接続 ■鍵で接続 パブリックIPを持たないEC2インスタンへアクセスする場合など 「-i」に続けて秘密鍵を指定できる 秘密鍵を指定してアクセスする手順 秘密鍵はあらかじめ入手済みとする # sudo vi /home/ec2-user/.ssh/id_rsa … アクセス元のサーバで、秘密鍵をid_rsaに作成
-----BEGIN RSA PRIVATE KEY----- … 秘密鍵(xxx.pem)の内容を全てコピーして貼り付ける MIIEowIBAAKCAQEAryCYY8j+j5lQqBKJgdA3SLZWC7UJ9NeFkmypG4JJQwt3Gr9jG+rJY8vKUdx/ 〜略〜 yT0043TsaaS2Tx7KxqdFksrRW3IH0AKqXFKVcvdhuNbjVK5ps806PEaW/AZj5oIOfpto -----END RSA PRIVATE KEY-----
# sudo chmod 600 /home/ec2-user/.ssh/id_rsa … id_rsaのパーミッションを変更 # sudo chown ec2-user:ec2-user /home/ec2-user/.ssh/id_rsa … id_rsaの所有者を変更 # ssh -p 10022 -i /home/ec2-user/.ssh/id_rsa ec2-user@10.0.1.103 … SSH接続(対象のIPが「10.0.1.103」とする) もしくは、以下のように指定しても接続できる(要検証) # eval `ssh-agent` # ssh-add /home/ec2-user/.ssh/id_rsa # ssh -p 10022 ec2-user@10.0.1.103 参考:ssh-agentの使い方 - Qiita http://qiita.com/isaoshimizu/items/84ac5a0b1d42b9d355cf ■設定ファイルを利用して接続 設定ファイルに接続方法を書いておくことにより、簡単に接続できる 例えば踏み台サーバに以下の設定を記載しておくと、 「ssh web1」とすることでweb1サーバに、「ssh web2」とすることでweb02サーバに繋ぐことができる $ vi ~/.ssh/config
Host web1 Hostname 10.0.1.11 User ec2-user Port 10022 IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes Host web2 Hostname 10.0.1.12 User ec2-user Port 10022 IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes
参考:~/.ssh/configについて - Qiita https://qiita.com/passol78/items/2ad123e39efeb1a5286b ■デバッグ オプション v を付けると、接続時のデバッグ情報が表示される # ssh -v -p 10022 ec2-user@203.0.113.1
■SSHの操作ログを記録
※未検証 ※SSH接続を開放する場合に有効そうだが、root権限も渡す場合は無力 参考:scriptとpsacctでオペレーションログを記録する http://dev.classmethod.jp/operation/logging_operation_using_script_and_psacct/ 参考:まずはここから!Linuxサーバでカジュアルに作業ログを取得する方法 http://qiita.com/keigodasu/items/3eebbc079274ad8dd2c2 参考:リモートログインしたユーザの操作ログ(script)を取得する http://qiita.com/hmukai/items/80bde86c5a9e4b3f8b97
■パケットキャプチャを行う
# tcpdump -nli eth0 port 80 … 80番ポートへの通信を監視 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes … いったんこの状態で監視中になる 19:51:41.603374 IP 202.229.34.200.61910 > 153.121.33.84.http: Flags [S], seq 994394370, win 8192, options [mss 1414,nop,wscale 8,nop,nop,sackOK], length 0 19:51:41.603475 IP 153.121.33.84.http > 202.229.34.200.61910: Flags [S.], seq 3988310290, ack 994394371, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0 19:51:41 に 202.229.34.200 から 153.121.33.84 に対してhttpリクエストがあったことが判る # tcpdump -X -i eth0 -n port 80 … 80番ポートへの通信内容を監視(16進数とASCII文字で表示) tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes … いったんこの状態で監視中になる 19:57:03.458221 IP 202.229.34.200.62029 > 153.121.33.84.http: Flags [S], seq 1535838550, win 8192, options [mss 1414,nop,wscale 8,nop,nop,sackOK], length 0 0x0000: 4500 0034 7893 4000 7506 e4b5 cae5 22c8 E..4x.@.u.....". 0x0010: 9979 2154 f24d 0050 5b8b 0956 0000 0000 .y!T.M.P[..V.... 0x0020: 8002 2000 4f44 0000 0204 0586 0103 0308 ....OD.......... 0x0030: 0101 0402 .... 19:57:03.458313 IP 153.121.33.84.http > 202.229.34.200.62029: Flags [S.], seq 4017208096, ack 1535838551, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0 0x0000: 4500 0034 0000 4000 4006 9249 9979 2154 E..4..@.@..I.y!T 0x0010: cae5 22c8 0050 f24d ef71 bb20 5b8b 0957 .."..P.M.q..[..W 0x0020: 8012 3908 8b6c 0000 0204 05b4 0101 0402 ..9..l.......... 0x0030: 0103 0306 .... 19:57:03.458763 IP 202.229.34.200.62031 > 153.121.33.84.http: Flags [S], seq 928033904, win 8192, options [mss 1414,nop,wscale 8,nop,nop,sackOK], length 0 0x0000: 4500 0034 7895 4000 7506 e4b3 cae5 22c8 E..4x.@.u.....". 0x0010: 9979 2154 f24f 0050 3750 ac70 0000 0000 .y!T.O.P7P.p.... 0x0020: 8002 2000 d062 0000 0204 0586 0103 0308 .....b.......... 0x0030: 0101 0402 .... 19:57:03.458788 IP 153.121.33.84.http > 202.229.34.200.62031: Flags [S.], seq 3101697651, ack 928033905, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0 0x0000: 4500 0034 0000 4000 4006 9249 9979 2154 E..4..@.@..I.y!T 0x0010: cae5 22c8 0050 f24f b8e0 2673 3750 ac71 .."..P.O..&s7P.q 0x0020: 8012 3908 d7c9 0000 0204 05b4 0101 0402 ..9............. 0x0030: 0103 0306 .... 19:57:03.458916 IP 202.229.34.200.62032 > 153.121.33.84.http: Flags [S], seq 4220921428, win 8192, options [mss 1414,nop,wscale 8,nop,nop,sackOK], length 0 0x0000: 4500 0034 7896 4000 7506 e4b2 cae5 22c8 E..4x.@.u.....". 0x0010: 9979 2154 f250 0050 fb96 2654 0000 0000 .y!T.P.P..&T.... 0x0020: 8002 2000 9237 0000 0204 0586 0103 0308 .....7.......... 0x0030: 0101 0402 .... 19:57:03.458927 IP 153.121.33.84.http > 202.229.34.200.62032: Flags [S.], seq 1978207803, ack 4220921429, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0 0x0000: 4500 0034 0000 4000 4006 9249 9979 2154 E..4..@.@..I.y!T 0x0010: cae5 22c8 0050 f250 75e9 0e3b fb96 2655 .."..P.Pu..;..&U 0x0020: 8012 3908 f4cd 0000 0204 05b4 0101 0402 ..9............. 0x0030: 0103 0306 .... 19:57:03.470209 IP 202.229.34.200.62030 > 153.121.33.84.http: Flags [S], seq 4289352827, win 8192, options [mss 1414,nop,wscale 8,nop,nop,sackOK], length 0 0x0000: 4500 0034 7894 4000 7506 e4b4 cae5 22c8 E..4x.@.u.....". 0x0010: 9979 2154 f24e 0050 ffaa 547b 0000 0000 .y!T.N.P..T{.... 0x0020: 8002 2000 5ffe 0000 0204 0586 0103 0308 ...._........... 0x0030: 0101 0402 .... 19:57:03.470244 IP 153.121.33.84.http > 202.229.34.200.62030: Flags [S.], seq 3159110353, ack 4289352828, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0 0x0000: 4500 0034 0000 4000 4006 9249 9979 2154 E..4..@.@..I.y!T 0x0010: cae5 22c8 0050 f24e bc4c 32d1 ffaa 547c .."..P.N.L2...T| 0x0020: 8012 3908 579b 0000 0204 05b4 0101 0402 ..9.W........... 0x0030: 0103 0306 .... 19:57:03.497385 IP 202.229.34.200.62029 > 153.121.33.84.http: Flags [.], ack 1, win 64, length 0 0x0000: 4500 0028 7897 4000 7506 e4bd cae5 22c8 E..(x.@.u.....". 0x0010: 9979 2154 f24d 0050 5b8b 0957 ef71 bb21 .y!T.M.P[..W.q.! 0x0020: 5010 0040 0506 0000 P..@.... 19:57:03.497746 IP 202.229.34.200.62029 > 153.121.33.84.http: Flags [P.], seq 1:623, ack 1, win 64, length 622 0x0000: 4500 0296 7898 4000 7506 e24e cae5 22c8 E...x.@.u..N..". 0x0010: 9979 2154 f24d 0050 5b8b 0957 ef71 bb21 .y!T.M.P[..W.q.! 0x0020: 5018 0040 e614 0000 4745 5420 2f20 4854 P..@....GET./.HT 0x0030: 5450 2f31 2e31 0d0a 486f 7374 3a20 7265 TP/1.1..Host:.re 0x0040: 6669 7269 6f2e 6e65 740d 0a43 6f6e 6e65 firio.net..Conne 0x0050: 6374 696f 6e3a 206b 6565 702d 616c 6976 ction:.keep-aliv 0x0060: 650d 0a43 6163 6865 2d43 6f6e 7472 6f6c e..Cache-Control 0x0070: 3a20 6d61 782d 6167 653d 300d 0a41 6363 :.max-age=0..Acc 0x0080: 6570 743a 2074 6578 742f 6874 6d6c 2c61 ept:.text/html,a 0x0090: 7070 6c69 6361 7469 6f6e 2f78 6874 6d6c pplication/xhtml 0x00a0: 2b78 6d6c 2c61 7070 6c69 6361 7469 6f6e +xml,application 0x00b0: 2f78 6d6c 3b71 3d30 2e39 2c69 6d61 6765 /xml;q=0.9,image 0x00c0: 2f77 6562 702c 2a2f 2a3b 713d 302e 380d /webp,*/*;q=0.8. 0x00d0: 0a55 7067 7261 6465 2d49 6e73 6563 7572 .Upgrade-Insecur 0x00e0: 652d 5265 7175 6573 7473 3a20 310d 0a55 e-Requests:.1..U 0x00f0: 7365 722d 4167 656e 743a 204d 6f7a 696c ser-Agent:.Mozil 0x0100: 6c61 2f35 2e30 2028 5769 6e64 6f77 7320 la/5.0.(Windows. 0x0110: 4e54 2031 302e 303b 2057 4f57 3634 2920 NT.10.0;.WOW64). 0x0120: 4170 706c 6557 6562 4b69 742f 3533 372e AppleWebKit/537. 0x0130: 3336 2028 4b48 544d 4c2c 206c 696b 6520 36.(KHTML,.like. 0x0140: 4765 636b 6f29 2043 6872 6f6d 652f 3530 Gecko).Chrome/50
■ネットワークを確認
$ ping -c 5 192.168.0.1 … ネットワークの疎通を5回確認 $ traceroute 192.168.0.1 … 通信の経路を確認 $ curl 192.168.0.1 … HTTPリクエストで確認 $ host 153.121.33.84 … ホスト名を問い合わせ $ host refirio.net … IPアドレスを問い合わせ $ ifconfig … ネットワークの設定を確認 $ netstat … 現在確立されている接続の一覧を表示 $ netstat -a … すべての情報を表示(不要なサービスが動いていないか確認) $ netstat -an … 出力をIPアドレスなど数値のみに抑制する $ netstat -an | grep 80 … 80番ポートへの接続を表示 $ netstat -s … プロトコル別に統計情報を表示 $ nslookup … DNSサーバへ問い合わせ $ nslookup 192.168.0.1 … 192.168.0.1 の情報を表示 $ nslookup example.com … example.com の情報を表示 $ nslookup -q=A example.com … ホスト名をアドレスに変換する $ nslookup -q=PTR 192.168.0.1 … アドレスをホスト名に変換する $ nslookup -q=SOA example.com … ゾーンに関する様々な情報を表示 $ service network restart … ネットワークサービスの再起動 ※ifconfigやnetstatなどは今は非推奨になっている 参考:非推奨になったLinuxネットワークコマンドの代替コマンド http://understeer.hatenablog.com/entry/2012/03/24/184346 参考:自分のIPアドレスを知る方法 http://qiita.com/sharow/items/66d89136180884a2f7b7 参考:グローバルIPをcurlで確認 http://qiita.com/kanpou_/items/734b947f5a95109e7bb9 $ whois refirio.jp … ドメインのwhois情報を確認 whoisコマンドが見つからない(CentOSなど)場合、以下のようにすればインストールできる # yum install jwhois
■ネットワークの設定を確認
# cat /etc/sysconfig/network … ネットワーク設定ファイルを確認 NETWORKING=yes #HOSTNAME=localhost.localdomain HOSTNAME=refirio.net NETWORKING_IPV6="yes" IPV6_DEFAULTDEV="eth0" IPV6_DEFAULTGW="fe80::1" # cat /etc/sysconfig/network-scripts/ifcfg-eth0 … ネットワークインターフェース(eth0)の設定ファイルを確認 DEVICE="eth0" IPADDR="153.121.33.84" NETMASK="255.255.254.0" GATEWAY="153.121.32.1" ONBOOT="yes" TYPE="Ethernet" IPV6INIT="yes" IPV6_ROUTER="no" IPV6ADDR="2001:e42:102:1102:153:121:33:84/64" # cat /etc/resolv.conf … 名前解決をする際に利用するDNSサーバの設定を確認 options single-request-reopen nameserver 210.188.224.10 nameserver 210.188.224.11 nameserver 2001:e42::1 nameserver 2001:e42::2 search sakura.ne.jp # cat /etc/hosts … DNSサーバを利用しない、ローカルでの名前解決を行う際の設定を確認 #127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 localhost refirio.net localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
■メールを送信する際、バウンスメールの受け取りアドレスを設定する
PHPの場合、mb_send_mail() の第5引数で指定できる
<?php mb_language('Japanese'); mb_internal_encoding('UTF-8'); // メールを送信 if (mb_send_mail( 'example@example.com', 'テストメール', 'バウンスメールのテスト。' . "\n" . 'これはテストです。', 'From: auto@refirio.net', '-f auto@refirio.net' // バウンスメールの受け取りアドレス(Return-Path) )) { echo 'OK'; } else { echo 'NG'; }
■メールを送信する際、迷惑メール扱いされないための設定
Aレコード、SPFレコード、TXTレコードの設定などを行う aws.txt の同名の項目を参照
■メールを送信する際、ハードバウンスが発生しないようにする
参考:メールアドレスをリアルタイムに検証してハードバウンスをなくす方法 https://sendgrid.kke.co.jp/blog/?p=7837 参考:バウンス理由の一覧 http://libsisimai.org/ja/reason/