TcpWrapperによるSSHのIP制限

・環境はCentOS5.5および7.2

1.設定ファイルバックアップ

2.許可する接続元を指定

“hosts.allow”に許可する接続元を指定。”hosts.deny”で全接続を拒否。

3.許可されていない接続元から接続できないことを確認

OK.

 

参考URL)

SSHのIPアクセス制限 まとめ

 

社内用プロキシサーバの作成

複数のサーバを運用している場合、それぞれのサーバにどこからでも接続できる状態だと、セキュリティやスタッフ管理の面でよろしくないので、プロキシサーバを使用してセキュリティを高める。

 

1.プロキシ用サーバ作成

まずプロキシ用のバーチャルサーバを立ち上げ、NICや必要なIP(最低限グローバルとローカル1つずつ)を割り当てる。
やり方については各ベンダーでマニュアルなど用意していると思うので割愛する。

なおスペックについては、SSHトンネルするだけなので、最低限のリソースでOKかと思う。
今回はCentOS7.2 Xen 64bitを使用した。

 

2.ユーザ作成

弊社の場合は某社のクラウドなので最初はVPN接続してログインユーザ作成

ちなみにAWSであればec2-userなどで最初からログインできるので上記は不要

 

3.rootログイン禁止

使いやすいPuttyやPoderosaなどのSSHクライアントで接続

・sshのrootログイン禁止

 

4. ファイアウォールの設定

今回はポート10022(ssh用)だけを許可する。

やり方はこちらを参照。

 

5. sshのポート番号変更

攻撃回避のためssh用のポートを22から10022に変更する。

やり方はこちらを参照。

 

6. 不要サービスの停止

・必要最低限のサービスだけで動かしたいので不要なものは停止する。

判断はこちらとほぼ同じ
違いはcron停止、firewalld残し。

・SELinuxも無効に

 

7. スタティックルーティングの設定

弊社の場合ローカルネットワークのセグメントがもう1つあり、そちらのセグメント(172.18.0.0/16)にも接続できるようにするためスタティックルーティングの設定を行う。

・ローカルネットワークのデフォルトルーティング設定ファイルを無効化(デバイス名をeth1とした場合)

⇒ No such file or directoryとなっても、もともと無いのでそのままでOK

・別セグメント(172.18.0.0/16)へのルート設定追加

・ネットワーク再起動

(service network restartでも一応いける)

ちなみにCentOS7から採用されたnmcliで行うときは、

のようなコマンドを打つが、ベンダーの仕様の関係なのか、eth1もeno1もnmcliでは認識されていなかった。
ただNetworkManagerは動いてるのでipコマンドは通る。昔の名前(eth**)でデバイス名が認識されていた。
やり方あるのかもしれんがネットワークは疎通してるのでまあいいか。

nmtuiで行う方法もあるらしいが、TUI画面は起動したがなぜかうまく動かなかった、、、。

・ルート確認

ちなみにベンダー側のコンソールでネットワークの再構築を行うとどうなるか。
→案の定スタティックルーティングの設定が初期化された
→ネットワーク再構築をしたら、再度スタティックルートの設定を行う必要あり。

・疎通確認

OK。

 

以上で基本的なプロキシ構成は完了。

プロキシを使用するスタッフ数分、useraddしてユーザを作成し、それぞれ接続して使用する。
あとは必要に応じて鍵認証にしたり、IP制限したり、トンネルするときのやり方を社内で決めてあげればOK。

スタッフが辞めた場合は、userdelしてそのスタッフ用のユーザを削除してやればOK。

 

参考URL)

 

CentOS7にmysqlインストール

1.mariaDBの削除

CentOS7にはデフォルトで競合するmariaDBが入っているので削除する

・mariaDBのインストール確認

・mariaDBとデータ削除

 

2.MySQL5.7のインストール

・公式リポジトリ追加

本記事執筆時では、mysql57-community-release-el7-11.noarch.rpmが最新 のよう。

・インストール

・確認する

・自動起動設定

・起動する

 

3.mysqlに入る

・初期パスワード確認

・******の部分がパスワード。このパスワードを使って入る。

・SQL発行の前に、新しいパスワードを設定する必要があるので設定する。

・ちなみにパスワードの強度が低いと怒られて変更できない。

・SQL発行テスト

これでOK。

 

参考URL)

 

MySQLで最後にINSERTしたAutoIncrementのidを取得する

生のSQLで取得する場合は、

で取得できます。

DBIを使用している場合は、以下のようにステートメントハンドルから取得できます。

 

参考URL)

 

CentOS7でSSHのポート変更

  • 現在の状態を確認

  • sshd_configの修正

  • sshd再起動

  • firewalldの設定からSSHを削除

  • firewalldの設定にssh-10022を追加

既存のssh.xmlをコピーしてssh-10022.xmlを作成する

ssh-10022.xmlファイル内のポート番号を22から10022に変更する

ファイアウォール設定に追加

 

  • firewalldをリロード

  • 変更後の状態を確認

 

参考URL)

CentOS7でファイアウォールの設定

  • サービス状態確認

※”…/firewalld.service; disabled;”になっているので自動起動無効

  • 自動起動するように設定

  • サービス起動

  • 現在の有効な設定を確認

  • sshの設定を追加(22番ポートを許可)

  • mysqlの設定を追加(3306番ポートを許可)

  • 削除する場合

  • 設定一覧を表示(必要に応じて)

  • 再度設定を確認

※mysqlとsshが追加された

 

  • ちなみにiptables使う場合

インストール方法は割愛
※firewalldと併用でないのでiptablesを使う場合はfirewalldは停止する

 

参考URL)

CentOS7でのサービス起動・停止・自動起動設定など

  • サービス一覧と自動起動設定の確認

CentOS6まで

CentOS7から

enabled →自動起動有効
disabled →自動起動無効
static →単体で自動起動設定ができないサービス

 

  • 個別に確認したい場合

CentOS6まで

CentOS7から

例:sshdの状態確認

“…/”Unit名”; eabled;” →自動起動有効
“…/”Unit名”; disabled;” →自動起動無効

Active: active (running) →サービス起動中
Active: inactive (dead) →サービス停止中

 

  • 自動起動の設定

CentOS6まで

CentOS7から

例:sshdの自動起動設定

 

  • 起動・停止・リスタート・リロード

CentOS6まで

CentOS7から

例:sshdを起動するとき

 

参考URL)
http://qiita.com/haisaihiroki/items/c38cb3c0a331db9b6f69

apacheのバーチャルホスト設定

すでにバーチャルホスト無しで動いている環境で、バーチャルホストを追加する場合の設定。すぐ忘れるのでメモ。

以下条件。極力オリジナルのhttpd.confは触らない方針で。

  • OS:CentOS 5.5
  • WEBサーバ:Apache 2.2.3
  • apache設定ファイルを置くディレクトリ:/etc/httpd/conf.d

最初にまず、デフォルトのServerNameを無効化。

バーチャルホスト用の設定ファイルを作る。

 

以下のように記述。
ポイントは、デフォルトのドメインでアクセスしたときの設定も<VirtualHost>ディレクティブで改めてしなければならないということ。
つまりバーチャルで追加したいFQDNのバーチャルホスト設定をしただけではダメ。

 

参考URL)