CentOS7のネットワーク周り初期設定

■環境

CentOS 7.3


bonding設定

参考URL:https://bacchi.me/linux/bonding/

現状確認しておきます。

nmcli c
ip a

bonding用インターフェースを追加します。

nmcli connection add type bond autoconnect no con-name bond0 ifname bond0 mode active-backup

物理インターフェースをbondに紐付けます

nmcli connection add type bond-slave autoconnect no ifname eno1 master bond0
nmcli connection add type bond-slave autoconnect no ifname eno2 master bond0

bondにIPを設定します。

nmcli c mod bond0 ipv4.method manual ipv4.address "192.168.999.999/32" ipv4.gateway "192.168.999.254" ipv6.method ignore
nmcli c mod bond0 ipv4.dns 192.168.999.254

物理インターフェースを無効にし、bondインターフェースを有効にします。

nmcli c m eno1 connection.autoconnect no
nmcli c m eno2 connection.autoconnect no

nmcli c m bond-slave-eno1 connection.autoconnect yes
nmcli c m bond-slave-eno2 connection.autoconnect yes
nmcli c m bond0 connection.autoconnect yes

nmcli c up bond-slave-eno1
nmcli c up bond-slave-eno2
nmcli c up bond0

ホスト名変更

hostnamectl set-hostname sample.com

SELinux無効化

SELinuxが不要な場合は無効化します。

vim /etc/sysconfig/selinux
SELINUX=enforcing
SELINUX=disabled

firewalld停止

別のファイアーウォール内のサーバである場合、
不要なのでfirewalldは停止しておきます。

systemctl stop firewalld
systemctl disable firewalld
Share

Composerのインストール方法

■環境

macOS Sierra 10.12.4
CentOS 6.8


作業用MacとCentOSサーバにComposerをインストールしたので、その際のメモです。

【Macの場合】

brewでインストールできます。

brew install homebrew/php/composer

【CentOSの場合】

CURLでインストーラを取得し、生成された実行ファイルをPATHが通っているディレクトリに移動します。

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/bin/composer

以上

Share

CentOS7にfishを入れる

最近人気らしいfishを試しに入れてみました。

■環境

CentOS 7.3
fish 2.3.1

epelリポジトリが入っていない人はインストールします。

yum -y install epel-release

fishをyumでインストールします。

yum -y install fish

今だけfishを使う場合は、コマンドでそのままfishと打ちます。

fish

恒久的にfishを使いたい場合はchshしておきます。

chsh -s /usr/bin/fish {ユーザ名}

 

これでfishが使えるようになりました。


〜参考〜

CentOS6.X系の場合は以下でfishのインストールできるようです。

wget -P /etc/yum.repos.d/ http://download.opensuse.org/repositories/shells:fish:release:2/CentOS_6/shells:fish:release:2.repo
yum -y install fish

【oh-my-fishインストール】

ついでにoh-my-fishもインストールします。
CentOS7でyumインストールできるgitのバージョンは1.8系(2017年4月現在)なのですが、
oh-my-fishのインストールにはgit 1.9.5以上が必要なので
ソースからコンパイルします。

ソースからコンパイルする際に必要なものをインストールします。
私の環境では以下でしたが、ここは各環境に合わせてインストールしてください。
ソースからコンパイルする方法を調べれば出てくると思います。

yum install curl-devel expat-devel gettext-devel  openssl-devel zlib-devel perl-ExtUtils-MakeMaker autoconf gettext gcc

ソースコードをダウンロードしてきます

cd /tmp/
wget https://www.kernel.org/pub/software/scm/git/git-2.9.3.tar.gz
tar xzf git-2.9.3.tar.gz

※最新のソースは以下で確認
https://www.kernel.org/pub/software/scm/git/

gitをインストールします。
configureのオプション「–with-curl」を付けないと、oh-my-fishインストール時にコケます。

cd git-2.9.3
make configure
./configure --with-curl
make
make install

『/usr/local/bin』配下にgit系コマンドが配置されるので、
もしPATHを通していない場合は追加する。

set -U fish_user_paths $fish_user_paths /usr/local/bin
git --version
git version 2.9.3

最後にoh-my-fishをインストールして完了です。

curl -L https://get.oh-my.fish | fish

oh-my-fishのインストール詳細についてはこちらを参照してください。
https://github.com/oh-my-fish/oh-my-fish

【pecoインストール】

ついでにpecoもインストールしておきます。

peco本体はgithubからダウンロードし、利用可能な状態にしておきます。

cd /tmp/
wget https://github.com/peco/peco/releases/download/v0.5.1/peco_linux_amd64.tar.gz
tar xzf peco_linux_amd64.tar.gz
mv peco_linux_amd64/peco /usr/local/bin/.

oh-my-fishでpecoをfishに取り込みます。

omf install peco

最後にfishのコンフィグファイルを修正します。

vim ~/.config/fish/config.fish
# 記載する内容
function fish_user_key_bindings
    bind \cr peco_select_history
end

以上で設定は完了です。

Share

CentOS 7.3にzabbix 3.2をインストール

■環境

CentOS 7.3
zabbix 3.2
PHP 7.1
MySQL 14.14
Apache 2.4


①zabbixをyumでインストールするためのリポジトリをインストール

# yum install http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

②zabbixの本体をインストール

# yum install \
zabbix-server-mysql \
zabbix-web-mysql \
zabbix-web \
zabbix-agent \
zabbix-get \
zabbix-sender \
zabbix-web-japanese

※MySQLではなくPostgreSQLを使う場合は、上記の『mysql』を『pgsql』にするだけです。

③MySQLの設定

# mysql
mysql> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbixpassword';
mysql> CREATE DATABASE zabbix CHARACTER SET utf8;
mysql> GRANT ALL ON zabbix.* to 'zabbix'@'localhost';
mysql> quit
# zcat /usr/share/doc/zabbix-server-mysql-3.2.1/create.sql.gz | mysql -uroot zabbix

パスワードは任意のものを入れてください。
DB名とユーザ名も変えたければ変えても構いません。

④Zabbixの設定

# vim /etc/zabbix/zabbix_server.conf
以下項目を設定
LogFileSize=10
DBPassword=zabbixpassword

もし手順③にてDB名とユーザ名も変更していた場合は、ここで該当箇所も修正してください。

⑤起動

# systemctl start zabbix-server
# systemctl start zabbix-agent
# systemctl restart httpd

これでインストールは完了です。
https://ホスト名/zabbixにアクセスするとzabbixが開き、初期設定が始まります。
初期ログインのID/PASSは『Admin/zabbix』です。

ログイン後、右上の人形アイコンで言語やパスワードを変更できます。

私が実施した時はダッシュボードにて以下のPHPの警告が表示されました。
『A non well formed numeric value encountered』
解決策はコチラに記載しています。


その他

MacサーバへのZabbixエージェントインストールが難しかったので、別途記事にしました。
MacにZabbixエージェントを入れる

Share

【CentOS + Apache】Let’s Encryptで無料SSL証明書の取得&自動更新をする

Let’s Encryptで無料SSL証明書を取得し、自動更新する設定をします。

########## 2017/04/05追記 ##########
Certbotというツールが公開されており、
本手順を実施するよりも、そちらを利用した方が簡単です。
https://certbot.eff.org
################################

■環境
CentOS 7.3
Apache 2.4.6

■前提
対象サーバがインターネット網に公開しているサーバであること。
→証明書発行時に認証のためLet’s Encrypt側からアクセスがあるようです。
 そのため、ファイアーウォールなどで外部からのアクセスを遮断している環境では証明書発行ができません。
 2017/1/19現在、アクセス時のIPアドレスも公開しておりません。
 https://letsencrypt.jp/faq/#IP

※以下手順はroot権限で実施しています。

まず、サーバー上の任意のディレクトリにLet’s Encryptから証明書を取得するツールをダウンロードします。
サーバにgitが入っていない場合は、ローカルでダウンロードしたものをFTPなどでアップしても良いと思います。

# git clone https://github.com/letsencrypt/letsencrypt

ダウンロードしたら、ツールの初期構築をします。
以下コマンドにて必要なソフトウェアのインストールなどが走り、完了したらletsencrypt-autoのヘルプが表示されます。

# cd letsencrypt
# ./letsencrypt-auto --help --debug

次にツールを実行し、実際に証明書を取得します。
その際、443ポートを利用しているプロセスがあるとエラーとなるので、この瞬間はApacheを止める必要がありました。

# systemctl stop httpd
# ./letsencrypt-auto certonly --standalone -d your-domain.com
# systemctl start httpd

※上記の「your-domain.com」には証明書を生成するドメインを入力してください。

これで証明書が生成できました。
以下のディレクトリ配下に証明書や秘密鍵(のシンボリックリンク)が生成されているので、
Apacheの設定ファイルへ記載します。
■生成されるディレクトリ

/etc/letsencrypt/live/your-domain.com/

■生成されるファイル

cert.pem : SSL証明書本体
chain.pem : チェイン証明書
fullchain.pem : SSL証明書本体とチェイン証明書を結合したもの
privkey.pem : 秘密鍵

これらをApacheの設定ファイル(一般的に/etc/httpd/conf.d/ssl.conf)に設定する。
・設定パターン1

SSLCertificateFile /etc/letsencrypt/live/your-domain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/your-domain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/your-domain.com/chain.pem

・設定パターン2

SSLCertificateFile /etc/letsencrypt/live/logical-dice.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/logical-dice.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/logical-dice.com/chain.pem

※Apacheのバージョンが2.4.8以上の場合は「SSLCertificateChainFile」の設定はできないので、
 「SSLCertificateKeyFile」にfullchain.pemを設定すること。

ここで生成した証明書は3ヶ月間しか有効期限がないので、定期的に更新が必要です。
証明書を更新するコマンドは以下です。

./letsencrypt-auto renew

ただし、更新は有効期限が残り30日を切らないと実行されないらしく、
上記コマンドを実行しても何も更新せずに終わります。

「Apache停止→証明書更新→Apache起動」を実施するシェルを作ります。
70日以内に生成した証明書が存在する場合は何もしません。

#!/bin/bash
serchResult=`find /etc/letsencrypt/archive/your-domain.com/ -mtime -70 -regex ".*cert[0-9]?\.pem"`
if [ -n "$serchResult" ]; then
    echo "certs are not due for renewal yet"
else
    systemctl stop httpd && /opt/git/letsencrypt/letsencrypt-auto renew && systemctl start httpd
    if [ $? != 0 ]; then
        # just to be sure
        systemctl restart httpd
    fi
fi

※上記はツールをopt配下に配置した場合です。

このシェルをcronで毎日深夜に実行するよう設定します。

# SSL update
5 0 * * * sh /etc/letsencrypt/renew.sh

※上記はシェルを/etc/letsencrypt/renew.shに作った場合の例です。

これで設定完了です。

Share