複数のサーバを運用している場合、それぞれのサーバにどこからでも接続できる状態だと、セキュリティやスタッフ管理の面でよろしくないので、プロキシサーバを使用してセキュリティを高める。
1.プロキシ用サーバ作成
まずプロキシ用のバーチャルサーバを立ち上げ、NICや必要なIP(最低限グローバルとローカル1つずつ)を割り当てる。
やり方については各ベンダーでマニュアルなど用意していると思うので割愛する。
なおスペックについては、SSHトンネルするだけなので、最低限のリソースでOKかと思う。
今回はCentOS7.2 Xen 64bitを使用した。
2.ユーザ作成
弊社の場合は某社のクラウドなので最初はVPN接続してログインユーザ作成
1 2 3 4 |
# useradd suzuki # passwd suzuki # exit; |
ちなみにAWSであればec2-userなどで最初からログインできるので上記は不要
3.rootログイン禁止
使いやすいPuttyやPoderosaなどのSSHクライアントで接続
・sshのrootログイン禁止
1 2 3 4 5 |
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.origin # vi /etc/ssh/sshd_config ---- + PermitRootLogin no ---- |
4. ファイアウォールの設定
今回はポート10022(ssh用)だけを許可する。
やり方はこちらを参照。
5. sshのポート番号変更
攻撃回避のためssh用のポートを22から10022に変更する。
やり方はこちらを参照。
6. 不要サービスの停止
・必要最低限のサービスだけで動かしたいので不要なものは停止する。
1 2 3 4 5 6 |
# systemctl disable crond.service # systemctl disable atd.service # systemctl disable auditd.service # systemctl disable postfix.service # systemctl disable rngd.service # systemctl disable wpa_supplicant.service |
判断はこちらとほぼ同じ
違いはcron停止、firewalld残し。
・SELinuxも無効に
1 2 3 4 |
# vi /etc/sysconfig/selinux ---- + SELINUX=disabled ---- |
7. スタティックルーティングの設定
弊社の場合ローカルネットワークのセグメントがもう1つあり、そちらのセグメント(172.18.0.0/16)にも接続できるようにするためスタティックルーティングの設定を行う。
・ローカルネットワークのデフォルトルーティング設定ファイルを無効化(デバイス名をeth1とした場合)
1 2 |
# mv /etc/sysconfig/network-scripts/route-eth1 /etc/sysconfig/network-scripts/route-eth1.origin # mv /etc/sysconfig/network-scripts/rule-eth1 /etc/sysconfig/network-scripts/rule-eth1.origin |
⇒ No such file or directoryとなっても、もともと無いのでそのままでOK
・別セグメント(172.18.0.0/16)へのルート設定追加
1 |
# echo "172.18.0.0/16 via 172.16.255.254 dev eth1" >> /etc/sysconfig/network-scripts/route-eth1 |
・ネットワーク再起動
1 |
# systemctl restart network.service |
(service network restartでも一応いける)
ちなみにCentOS7から採用されたnmcliで行うときは、
1 2 |
# nmcli connection modify eth1(またはeno1) +ipv4.routes "172.18.0.0/16 172.16.255.254" # nmcli connection reload |
のようなコマンドを打つが、ベンダーの仕様の関係なのか、eth1もeno1もnmcliでは認識されていなかった。
ただNetworkManagerは動いてるのでipコマンドは通る。昔の名前(eth**)でデバイス名が認識されていた。
やり方あるのかもしれんがネットワークは疎通してるのでまあいいか。
nmtuiで行う方法もあるらしいが、TUI画面は起動したがなぜかうまく動かなかった、、、。
・ルート確認
1 2 3 4 5 |
ip route : 172.16.0.0/16 dev eth1 proto kernel scope link src 172.16.2.33 172.18.0.0/16 via 172.16.255.254 dev eth1 : |
ちなみにベンダー側のコンソールでネットワークの再構築を行うとどうなるか。
→案の定スタティックルーティングの設定が初期化された
→ネットワーク再構築をしたら、再度スタティックルートの設定を行う必要あり。
・疎通確認
1 2 3 4 |
$ ssh user@172.18.***.*** The authenticity of host '172.18.***.*** (172.18.***.***)' can't be established. RSA key fingerprint is 57:fe:50:d9:58:0d:cb:a0:c2:75:09:dc:22:07:32:45. Are you sure you want to continue connecting (yes/no)? |
OK。
以上で基本的なプロキシ構成は完了。
プロキシを使用するスタッフ数分、useraddしてユーザを作成し、それぞれ接続して使用する。
あとは必要に応じて鍵認証にしたり、IP制限したり、トンネルするときのやり方を社内で決めてあげればOK。
スタッフが辞めた場合は、userdelしてそのスタッフ用のユーザを削除してやればOK。
参考URL)