インフラ LAMP環境構築
今回はLAMP環境構築を行っていきます
Apache
下記コマンドでApacheのインストールを実行します。
$ sudo yum install -y httpd
インストールが完了するまで待ちましょう。
下記コマンドで起動確認をします
$ sudo /etc/init.d/httpd start
下記コマンドでインストールできたかとバージョンを確認できます
$ httpd -v
MySQL
下記コマンドでMySQLのインストールを実行します。
yum install mysql mysql-devel mysql-server mysql-utilities
インストールが完了するまで待ちましょう。 下記コマンドでインストールできたかとバージョンを確認できます
mysql --version
PHP
まずは下記コマンドでインストール可能か確認します。
yum info --enablerepo=remi,remi-php56 php
下記表示されますと インストール可能になります
Repo : remi-php56
下記コマンドでPHPのインストールを実行します
yum install -y --enablerepo=remi,remi-php56 php
下記コマンドでインストールできたかとバージョンを確認できます
php -v
下記サイトを参考にいたしました。
インフラ IPアドレス制限
今回はサーバーのIPアドレスを制限する方法について記載致します。
まずは下記ファイルの編集をしていきます。
#vim /etc/hosts.deny
ここに下記を追記いたします。
ALL: ALL
これで不要なアクセスを禁止いたします。
続いて下記ファイルを編集していきます。
#vim /etc/hosts.allow
下記のようにIPを設定しますと全てのポートでの接続を許可します。
ALL: 192.168.xxx.xxx
これで特定のIPのみログイン可能になります。
ちなみに設定していないIPアドレスでログインしようとすると下記のようになりログイン不可となっています。
下記サイトを参考にいたしました
インフラ 鍵認証2
前回の続きを設定していきます。
公開鍵をサーバーへ転送を行ったので転送した公開鍵をサーバーへ登録します。
公開鍵をサーバーへ登録
PuTTYでサーバーに一般ユーザーでログインして下記を実行します
$ pwd /home/username $ ls id_rsa.pub
$ mkdir .ssh
権限を変更します。
$ chmod 700 .ssh
作成した公開鍵の形式を変換します。
$ ssh-keygen -i -f id_rsa.pub >> .ssh/authorized_keys
これで登録完了です。
公開鍵によるSSH接続
PuTTYを起動します。
ホストネームとポートを設定して左のサイドバーの「SSH」をクリックします。
続いて「SSH」→「Auth」をクリックします。 次に「Browse」をクリックして、ローカルに保存した秘密鍵を選択します。 「Open」をクリックしてログインします。
ユーザー名とパスワードを入力するとログインできます。 以上で完了になります。
下記サイトを参考にさせて頂きました。
インフラ 鍵認証
今回は鍵認証について記載していきます。
PuTTYgenで鍵作成
まずは鍵作成を行います。 「PuTTYgen」と検索してアプリケーションを起動します。
「Generate」を押してマウスをグルグル動かしていくと鍵の生成ができます。
鍵作成後は「Key comment」に任意のコメントを記入します これは鍵を区別するために使われます。デフォルトは「rsa-key-yyyymmdd」等になっています。
「Key passphrase」にパスフレーズを記入します。 パスフレーズは鍵を使用する際に入力が求められます。 「Confirm passphrase」に同じものを入力します。
「save private key」で秘密鍵を作成保存します。「○○.ppk」となります。 「save public key」で公開鍵ファイルを保存します。
CentOSの設定
鍵の準備は完了したのでCentOSの方を設定します。 rootユーザーになっておきます。
ssh-keygen -t rsa Enter file in which to save the key (/home/cent/.ssh/id_rsa): 変更の必要がなければそのままEnter Enter passphrase (empty for no passphrase): パスフレーズ記入 Enter same passphrase again: もう一度パスフレーズ記入
鍵が作成されたことを確認します。
cd ~/.ssh ll xxxxx id_rsa xxxxx id_rsa.pub
鍵が作成されたことを確認したら権限の変更をします
chmod 600 id_rsa.pub ll -rw------- 1 root root xxx xxx xx xx:xx id_rsa.pub
となります。
一般ユーザーへのroot権限付与
一般ユーザーにroot権限を与えます。 rootで下記コマンドを実行していきます。
# usermod -G wheel username
一般ユーザーにroot権限を与えるため、 /etc/sudoersを編集します。
# visudo
vimが起動したら下記を編集していきます。
## Allows people in group wheel to run all commands # %wheel ALL=(ALL) ALL
↓
## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL
編集が終わったら一般ユーザーに切り替えて、sudo コマンドを使えるか確認する
$ sudo pwd [sudo] password for username: usernameのパスワードを入力 カレントディレクトリが表示されれば成功
公開鍵をサーバーへ転送
公開鍵をサーバーへ転送するにはまずコマンドプロンプトを立ち上げ、PuTTYgenで作った鍵を保存したディレクトリに移動します。
移動したら下記を実行します
pscp id_rsa.pub username@サーバーのIPアドレス:id_rsa.pub
usernameのパスワード入力を求められるので記入します。 以下のようなメッセージが表示されればOKです。
id_rsa.pub | 0 kB | 0.5 kB/s | ETA: 00:00:00 | 100%
今回はここまでになります。
下記サイトを参考にさせて頂きました。
インフラ一般ユーザー作成
今回は一般ユーザーの作成を行っていきます。 root権限のみではなくユーザーの追加を行います。
ユーザーの追加は下記コマンドになります
useradd username
特に文字が表示されることはありませんがユーザーが作成されています。 下記で作成したユーザーに切り替えます
su username
一般ユーザーに切り替えるにもパスワードをつける場合は下記になります。
passwd username New password: パスワードを入力 Retype new password: パスワードを入力
パスワードを入力しないと切り替えられないようになりました。
su username Password: パスワードを入力
一般ユーザーを作成したので起動時に作成したユーザーでログインすることができます。
続いてrootアカウントでは直接ログインできないようにします。 「/etc/ssh/sshd_config」に設定を記載致します。
まずはsshd_configをコピーしておきます。
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_temp
続いて設定していきます
vi /etc/ssh/sshd_config
「#PermitRootLogin yes」となっているところを「PermitRootLogin no」に変更します。 変更が終わったらsshdを再起動することで設定を反映させます。
/etc/init.d/sshd restart
ログアウトしてrootでは入れないことを確認します。 もちろん一般ユーザーではログインできます。
下記サイトを参考にさせて頂きました。
インフラ構築 ポートの変更2
前回設定しきれなかったので 今回はコマンドでポート設定の方法を調べます。
まずは
vi etc/ssh/sshd_config
でポート設定を記載します。
Port 22 #もともとのポート番号 Port 10022 #追加したポート番号
設定を有効にするために下記を実行します
service sshd restart /etc/rc.d/init.d/sshd reload
ポート設定に関してコマンドを実行しす。
iptables -A INPUT -p tcp --dport 10022 -j ACCEPT
実行後に
nmap -p 1-10022 hostname
で設定確認しますと
Starting Nmap 5.51 ( http://nmap.org ) at 2018-07-17 23:53 JST Nmap scan report for 133.242.232.36 Host is up (0.0000040s latency). Not shown: 10021 closed ports PORT STATE SERVICE 22/tcp open ssh 10022/tcp open unknown
ポート設定に追加されていました。
閉じてから10022で入るとログインできました!
下記サイトを参考にさせて頂きました。
インフラ構築 ポートの変更
今回からインフラ構築の記事を書いていきます。 まずはいじくれるサーバーを用意します
最初にポートの変更を行っていきます。
現在22番でログインしているのですがどうやらSSHサービスを22番ポートで公開しているとかなり攻撃されてしまうようです。。 特にパスワード認証の場合は不正ログインされてしまう可能性もあるとのことです。
ポート番号を22から10022に変更します。
まずは変更前に10022でログインできるように設定します。 これを忘れると設定後にログイン出来なくなるので注意です。
chkconfig iptables --list
下記のように表示されます。
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3:onになっていることを確認します。
もし、3:off になっていた場合は、以下のコマンドを実行して 3:on にします。
chkconfig iptables on
つづいて 「/etc/sysconfig/iptables」を記載していきます。
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT COMMIT
上記を設定するとサーバー側でSSHポートを10022に設定されます。
続いて下記で設定変更を行います。
vi etc/ssh/sshd_config
ポートの設定があるので下記のように設定します。
Port 22 #もともとのポート番号 Port 10022 #追加したポート番号
設定を有効にするために下記を実行します
service iptables restart service sshd restart
ポートの設定を確認するためにNmapを使って確認します。
nmap -p 1-10022 hostname
下記のように表示されるはずです。
PORT STATE SERVICE 22/tcp closed ssh 10022/tcp open unknown
Nmapなんてしらないよーと言われたら下記コマンドでインストールしてください。
yum -y install nmap
10022 のポート設定を確認しましたら22の設定を削除します。
vi etc/sysconfig/iptables
設定から22番を取り除きます
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT COMMIT
続いて下記も設定変更を行います。
vi etc/ssh/sshd_config
ポートの設定から22を削除します。
Port 10022 #追加したポート番号
編集後は忘れずに下記を実行します。
service iptables restart service sshd restart
最後にnmapを実行してポートを確認します。
nmap -p 1-10022 hostname
先程は22もあったのですが10022だけになっていることを確認します。
PORT STATE SERVICE 10022/tcp open unknown
以上が済みましたら実際に22では入れないことも確認します。 ですが10022でもうまく入れないのでまだ引き続きになります。
下記サイトを参考にいたしました。