参考: d.hatena.ne.jp
AWS EC2のサーバ基本設定をする。
- タイムゾーンをUTCからJSTに変更する。
$ sudo cp -i /usr/share/zoneinfo/Japan /etc/localtime 2016年 1月 24日 日曜日 23:06:23 JST
- 日本語設定に変更する。
$ sudo vi /etc/sysconfig/i18n LANG=ja_JP.UTF-8
- Amazon Linuxのデフォルトのセキュリティ設定を確認する。 Amazon Linuxでは、ファイアーウォールなどセキュリティ設定は、 基本にSecurityGroups側で行うもののため、SELinux、iptableはデフォルトで無効化されている。
- すべてのソフトウェアパッケージを最新の状態にする。
$ sudo yum update -y
踏み台(bastion)サーバのsshポートを隠す。
セキュリティ対策としてのポートスキャン対策。踏み台サーバのsshポートを変更し外部からのポートスキャン時に見つからないような設定をしてみる。
- ポートスキャン対策として、ssh用ポート番号を変更する。
$ sudo vi /etc/ssh/sshd_config #Port 22 Port 9100
- 設定ファイルの構文をチェック。エラーが表示されなければOK。
$ sudo sshd -t
- sshの設定を反映する。
$ sudo service ssh restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
- セキュリティグループから22(ssh)用を除いて、tcpの9100を加える。
ここまでの状態で、nmapでスキャンすると以下のような感じに。
22でOpenしてるように見えるがセキュリティグループで除かれているので接続できない。
$sudo nmap -n -P0 -sS -p 22-23 xxx.xxx.xxx.xxx Starting Nmap 7.11 ( https://nmap.org ) at 2016-05-01 22:29 JST Nmap scan report for xxx.xxx.xxx.xxx Host is up (0.012s latency). PORT STATE SERVICE 22/tcp open ssh 23/tcp filtered telnet
9100も元々プリンタポート用のため、nmapでスキャンされた時にsshとして見えないので、攻撃側を惑わせる可能性がある。$ sudo nmap -n -P0 -sS -p 9099-9100 xxx.xxx.xxx.xxx Starting Nmap 7.11 ( https://nmap.org ) at 2016-05-01 23:49 JST Nmap scan report for xxx.xxx.xxx.xxx Host is up (0.0089s latency). PORT STATE SERVICE 9099/tcp filtered unknown 9100/tcp open jetdirect
でも以下オプションだと見えちゃうよ$ sudo nmap -n -P0 -sV -p 9099-9100 --allports xxx.xxx.xxx.xxx Starting Nmap 7.11 ( https://nmap.org ) at 2016-05-01 23:54 JST Nmap scan report for xxx.xxx.xxx.xxx Host is up (0.010s latency). PORT STATE SERVICE VERSION 9099/tcp filtered unknown 9100/tcp open ssh OpenSSH 6.6.1 (protocol 2.0)
AWS上でペネトレーションテストをする場合は、事前申請が必要なので注意すること! aws.amazon.com - 多段sshの設定を変更する。
$ vi .ssh/config ServerAliveInterval 60 Host wp1bastion HostName xxx.xxx.xxx.xxx User ec2-user Port 9100 IdentityFile /Users/xxx/wp1-key.pem
- 接続確認する。以下でつなげられればOK
$ ssh wp1bastion $ ssh wp1weba
ここまで