約2年ぶりくらいに、前に勤めていた会社の先輩と会いました。


全然変わってなかったですね。でもワタクシは太った太ったと相当言われてしまった。


だらだらと飲みながら4時間くらい話してました。


というか、ほとんど話を聞いていたという感じだったです。


話のネタがないとだめですねぇ~。


それでも久しぶりに会えて気持ちがリフレッシュしました。




1.マシンのデフォルト状態の確認


 1.1 OSの確認

  cat /etc/redhat-release   #CentOsの場合


 1.2 CPUの確認

  cat /etc/proc/cpuinfo


 1.3 CPUの種類の確認

  uname -m #x86_64など


 1.4 ハード容量の確認

  df -h



2..ユーザー作成


 2.1 作業用ユーザーの作成

  useradd ユーザー名

  passwd ユーザー名 パスワード


 2.2 パスの追加

  rootと作成ユーザーそれぞれで

  vi ~/.bash_profile

  ==viモード===

  $PATH=****:/sbin:/usr/sbin   #PATHに/sbinと/usr/sbinを追加

  ==viモード終了===


 2.3 作成ユーザーにsudoコマンド権限を付与

  rootで

  visudo

  文末に以下の一文を追加

  ユーザー名 ALL = NOPASSWD: ALL



3.ネットワーク設定の確認


  sudo system-config-network   #IPアドレス等を確認



4.パケットフィルタリング設定


  sudo lokkit   #SecurityLevelをEnabledに、Allow incomingをSSH、HTTP、HTTPSのみに



5.時刻確認


  date



6.SSH設定


  sudo service sshd stop #sshサービスをストップ

  vi /etc/ssh/sshd_config

  ==viモード===

  Port ポート番号   #ポート番号を22から変更

  PermitRootLogin no   #rootユーザーでのログイン禁止

  AllowUsers ユーザー名1 ユーザー名2 #ログインが許可されるユーザーのリスト

  ==viモード終了===

  sudo service sshd start

  sudo lokkit   #SSHのチェックを外し新しくSSHのポート番号として設定したポートのtcp接続を許可する



7.不要サービスの停止


 7.1 nmapのインストール

  sudo yum install -y nmap


 7.2 Listenポートの確認

  sudo nmap localhost   #場合によってはsudo nmap -sT localhost


 7.3 tcp接続を許可しているポートのプロセス/サービス名の確認

  sudo lsof -i:ポート名


 7.4 不要サービスの停止

  sudo service サービス名 stop



8.自動起動設定


 不要サービスが再起動時に立ち上がらないように自動起動をoffにする

 sudo ntsysv --level 35   #不要サービスのチェックを外す



9.必要サービスの立ち上げまたはインストール


 9.1 mysqlの起動


  9.1.1 サービス開始

   sudo service mysqld start

   sudo ntsysv --level 35  #mysqldにチェックを入れる


  9.1.2 tcpポートを閉じる

   sudo vi /etc/my.cnf

   ==viモード===

   [mysqld]      #[mysqld]のセクションに

   skip-networking #skip-networkingを記述

   ==viモード終了===


  9.1.3 サービス再起動

   sudo service mysqld restart


  9.1.4 一般ユーザーの作成

   shell>mysql --user=root mysql

   msyql>create user 'ユーザー名'@'localhost' identified by 'パスワード' with grant option


  9.1.5 データベースの作成

   shell>mysql -u ユーザー名 -p

   shell>passwd パスワード   #パスワードの入力を求められるので入力

   mysql>create database データベース名


  9.1.6 phpMyAdminのインストール

   ・ダウンロードしてきたphpMyAdminをドキュメントルートにアップロード   #php5.2未満はver2.11を利用

   ・config.inc.phpの設定

    $cfg['blowfish_secret'] = 'パスフレーズを設定' #変更

    $cfg['DefaultLang'] = 'utf-8'; #追加

    $cfg['DefaultCharset'] = 'utf-8'; #追加

    $cfg['Lang'] = 'ja-utf-8'; #追加

   ・mcryptのインストール

    sudo yum install -y mcrypt


 9.2 postfixのインストール


  9.2.1 postfixインストール

   sudo yum install -y postfix


  9.2.2 使用するメールサーバーを既存のもの(sendmail)からpostfixに変更

   sudo yum install -y system-switch-mail   #メールサーバー変更ツールをインストール

   sudo system-switch-mail   #sendmailからpostfixに変更


  9.2.3 SMTPポートを閉じる

   sudo vi /etc/postfix/master.cf

   ==viモード===

   smtp inet n - n - - smtpd    #この行をコメントアウトする

   ==viモード終了===

   sudo service postfix restart


  9.2.4 自動起動設定

   sudo ntsysv --level 35   #postfixにチェックを入れる


 9.3 apacheの設定


  9.3.1 Basic認証設定

   sudo vi /etc/httpd/conf/httpd.conf

   ==viモード===

   <Directory "/home/ユーザー名/public_html">

    AuthType Basic

    AuthName "Input your ID and Password."

    AuthUserFile /home/ユーザー名/.htpasswd

    Require valid-user

   </Directory>

    ==viモード終了===

   sudo service httpd restart

   .htpasswdを作成して/home/ユーザー名にアップロード


  9.3.2 htaccessの有効化

   sudo vi /etc/httpd/conf/httpd.conf

   ==viモード===

   <Directory "/home/ユーザー名/public_html">

    AuthType Basic

    AuthName "Input your ID and Password."

    AuthUserFile /home/ユーザー名/.htpasswd

    Require valid-user
    Options All    #追加
    AllowOverride All    
#追加
   </Directory>

   

  

  

サービス(httpdやmysqld、postgresql、sshdなど)のしくみと自動起動設定、起動・停止・起動方法について



1.各サーバーのサービス名

  主なサーバーのサービス名は暗記しておく。

  apache・・・httpd

  mysql・・・・msyqld

  postgres・・postgresql

  ssh・・・・・・sshd


  そのマシンに登録されているサービスを一覧表示するには

  chkconfig --list


  特定のサービスを見るには

  chkconfig --list httpd



2.サービスの起動スクリプト

  サービスの起動スクリプトは/etc/init.dに格納されている。

  例えば

  /etc/init.d mysqld restart

  でmysqlが再起動できるが、これは

  service mysqld restart

  と同じである。つまりserviceは/etc/init.dと同じ役割を果たす



3.現在のランレベルの確認・変更

  現在のランレベルは

  runlevel

で確認できる。N 5の場合ランレベル5、N 3の場合ランレベル3である

  起動時のランレベルを変更するには

  vi /etc/inittab

  ==viモード===

  id:?:initdefault:   #?の部分を起動時のランレベル(例えば3)に変更する。

  ============

  ちなみにランレベル5からランレベル3に変更しただけで

  仕様メモリが500Mから300Mへおおよそ3割減

  


4.サービスの自動起動設定

  ntsysv --level ?    #?のランレベルで自動起動設定されているものが表示される

    ランレベル3・・・通常の起動

    ランレベル5・・・Xウィンドウでの起動

    あとのランレベルはあまり意識しなくて良い。通常ランレベル3と5でサービスが自動起動されればよいので、

  ntsysv --level 35

    で自動起動を設定する



5.ランレベルごとのサービス起動

  ランレベルごとのサービス起動状態をみるには

  chkconfig --list サービス名

  が一番よいが、そのほかには

  ls /etc/rc?.d

  でも確認できる。先頭がKのファイルは実行されない、先頭がSのファイルはスタート時に実行されるサービスである。

  /etc/rc?.dは/etc/rc.d/rc?.dへのシンボリックリンクとなっている



参考サイト:http://safe-linux.homeip.net/web/PostgreSQL/03-phpPgAdmin.html



1.yumでpostgreをインストールした場合の状態


  postgresスーパーユーザー(linxu上のユーザー):postgres

  デフォルトデータベース:template0

  データベース格納先:/var/lib/pgsql/data


2.postgresユーザーの存在を確める

  id postgres   #postgresユーザーの存在確認 uid gid 所属グループがわかる

  finger postgres   #postgresのユーザー情報確認 ログイン名、ホームディレクトリ、ログインシェルなど


3.phpPgAdminの動作に必要なソフトの確認

  3.1 postgresのインストール確認

    rpm -qa | grep postgres

    psql --version


  3.2 pgsql-phpのインストール確認

    rpm -qa | grep php-pgsql

    (インストールされていない場合は yum install php-pgsqlでインストール)


4.PostgreSQL内で管理されているスーパーユーザーpostgres(2のものとは別)に

  パスワードを設定する


5.Postgresへのローカルホストからの接続をすべて許可する

   vi /var/lib/pgsql/data/pg_hba.conf   #postgresの設定ファイルを開く

   ==vi モード====

  :$ #ページの最終行へ

  #host all all 127.0.0.1/32 ident sameuser #ipV4用の設定をコメントアウト

  host all all 127.0.0.1 255.255.255.255 trust #ローカルホストからの接続を許可する設定を追記。phpPgAdminからの接続は、同じサーバーのphpからのアクセスとなるので内部アクセスとなる。よってpostgresのポートを外部に公開する必要も無い。

  ==viモード終了===

  /etc/init.d/postgresql -restart    #postgresの再起動


6.postgreSQL内で管理されるpostgres以外のスーパーユーザーを作成する

  su postgres   #LinuxのpostgreSQL操作ユーザーpostgresに切り替える

  createuser -P #パスワード尽きでユーザー作成

  Enter name of role to add:   #ユーザーを入力

  Enter password for new role: #パスワードを入力

  Enter it again: #パスワードを再入力

  Shall the new role be a superuser? (y/n) y #作成するユーザーにスーパーユーザーの権限を与えるの”y”を入力


7.phpPgAdminをインストール

  http://phppgadmin.sourceforge.net/?page=download

からダウンロードしてきたフォルダ名をphpPgAdminに変更してドキュメントルートに設置


8.phpPgAdminの設定

  /confの”config.inc.php”を編集

  8.1 接続ホストの設定

    $conf['servers'][0]['host'] = '';

          ↓

    $conf['servers'][0]['host'] = 'localhost'   #localhostからの接続を許可する


  8.2 rootやpostgresユーザーからの接続拒否設定を確認する

    $conf['extra_login_security'] = true;


  8.3 所有者以外のデータベースを拒否する

    $conf['owned_only'] = false;

          ↓

    $conf['owned_only'] = true;

9.インターネット経由でのphpPgAdminへのアクセスをhtaccessで制限する

 9.1 IPアドレスの制限

 9.2 Basic認証の制限



/var/lib/pgsql/data/pg_hba.conf

1.設定ファイル編集

vi /etc/ssh/sshd_config

===viモード====

Port 10022 #SSHサーバがクライアントからの接続を待ち受けるポートの番号(22以外で)

PermitRootLogin no #rootユーザーのログインを禁止する

PasswordAuthentication no #パスワードを禁止する(公開鍵認証を行なう場合)

AllowUsers sam tak #ログインが許可されるユーザーリスト(SSH利用ユーザーを追加しない場合)



2.SSHサーバへのアクセス制限

自分の固定IPアドレスが変わるとSSH操作ができなくなることをあらかじめ了承いただく


vi /etc/hosts.allow

===viモード===

sshd : 127.0.0.1 www.example.com .example.com 192.168.0. : allow

sshd : ALL : deny



3.公開鍵認証の設定

 3.1 サーバーに公開鍵設置用のディレクトリを作成する

 mkdir ~/.ssh #ホームディレクトリに隠しディレクトリを作成する


 3.2 公開鍵と秘密鍵の作成

      ≪teratermでの設定≫

      [設定]-[SSHキー生成] をクリック
      日々の雑感



      TTSSHキー生成ダイアログボックスで

      ①生成ボタンをクリック

      ②パスフレーズを入力

      ③確認用パスフレーズを入力(②と同じもの)

      ④公開鍵の保存ボタンをクリック

      ⑤秘密鍵の保存ボタンをクリック
      日々の雑感
     
      ④のタイミングでidentity.pubというファイル名の公開鍵が

      ⑤のタイミングでid_rsaという秘密鍵が生成される。


 3.3 公開鍵のサーバーアップ

  3.2で作成した公開鍵identity.pubのファイル名をauthorized_keysというファイル名に変更して3.1で作成したフォルダにアップロードする


  3.4 公開認証を利用したログイン

   teratermにてログイン操作を行なう
      ①3.1でディレクトリを作成したユーザ名を入力

      ②3.2の②で入力したパスフレーズを入力

      ③RSA/DSA鍵を使うを詮索する

      ④3.2の⑤で生成した秘密鍵を参照する

      ⑤OKボタンをクリックする

      目的のサーバーにログインされる
      日々の雑感


  3.5 公開鍵を追記する

   1つのユーザーに対して公開鍵を追加することができる

   3.2の手順に従って公開鍵と秘密鍵を作成する

   公開鍵(identity.pub)をテキストで開いてssh-rsaを含め全ての文字をコピーする

   サーバーの~/.ssh/authorized_keysに1行改行してコピーした文章を貼り付ける

  3.6 公開鍵を有効にする

   sudo /etc/init.d/sshd stop #ssh設定を変更する前にsshサーバを停止

   vi /etc/ssh/sshd_config

   ===viモード===

   RSAAuthentication yes #SSH1における公開鍵認証を有効にする

=============

sudo /etc/init.d/sshd start #sshサーバーを起動