CentOS7.1の初期設定手順(プロキシ環境有)

# やりたいこと

* CentOS7.1 の各種初期設定

試したいソフトウェアをインストール／セットアップする前に必ず設定しています。
社内の環境でしか使用しないので、セキュリティなどは度外視です。

## 前提環境

* プロキシ環境有
* OS: CentOS7.1

## 設定するファイル

* /etc/profile
* /etc/yum.conf
* ~/.wgetrc
* ~/.curlrc
* ~/.subversion/server
* ~/.gemrc
* /etc/sysconfig/network-scripts/ifcfg-ens32
* /etc/sysconfig/network
* /etc/NetworkManager/NetworkManager.conf
* /etc/resolv.conf
* /etc/sysctl.d/disableipv6.conf

## 手順

### SELinux 無効化

```bash
getenforce # <= 実行するコマンド

# ▼結果
Enforcing

vi /etc/sysconfig/selinux # <= 実行するコマンド

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled # <============================ Enforcing から disabled へ変更
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

reboot # <= 実行するコマンド 再起動

getenforce # <= 実行するコマンド

# ▼結果
Disabled
```

### kdump 無効化

```bash
systemctl disable kdump # <= 実行するコマンド

# ▼結果
rm '/etc/systemd/system/multi-user.target.wants/kdump.service'

systemctl list-unit-files -t service | grep kdump # <= 実行するコマンド

# ▼結果
kdump.service                               disabled  # <= disabled になっていることを確認
```

### ファイアーウォール 無効化

```bash
systemctl stop firewalld # <= 実行するコマンド サービス停止
systemctl disable firewalld # <= 実行するコマンド 自動起動停止

# ▼結果
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
rm '/etc/systemd/system/basic.target.wants/firewalld.service'

systemctl list-unit-files -t service | grep firewalld # <= 実行するコマンド

# ▼結果
firewalld.service                           disabled   # <= disabled になっていればOK
```

### 恒久的に IPv6 を無効化

```bash
vi /etc/sysctl.d/disableipv6.conf # <= 実行するコマンド

# ▼追記
net.ipv6.conf.all.disable_ipv6 = 1
```

### プロキシ

#### システム全体

* `$proxyserver`: プロキシサーバ
* `$port`: ポート

```bash
vi /etc/profile # <= 実行するコマンド

# ▼追記
PROXY='$proxyserver:$port'
export http_proxy=$PROXY
export HTTP_PROXY=$PROXY
export https_proxy=$PROXY
export HTTPS_PROXY=$PROXY
export no_proxy='localhost,127.0.0.1'
```

※ `no_proxy` はプロキシ適用外の環境をカンマ区切りで設定

#### yum

* `$proxyserver`: プロキシサーバ
* `$port`: ポート

```bash
vi /etc/yum.conf # <= 実行するコマンド

# ▼追記
proxy=http://$proxyserver:$port
```

#### wget

* `$proxyserver`: プロキシサーバ
* `$port`: ポート

```bash
vi ~/.wgetrc # <= 実行するコマンド

# ▼追記
http_proxy=http://$proxyserver:$port
https_proxy=http://$proxyserver:$port
```

#### curl

* `$proxyserver`: プロキシサーバ
* `$port`: ポート

```bash
vi ~/.curlrc # <= 実行するコマンド

# ▼追記
proxy="http://$proxyserver:$port"
```

#### svn

* `$proxyserver`: プロキシサーバ
* `$port`: ポート

```bash
mkdir ~/.subversion # <= 実行するコマンド
cd ~/.subversion # <= 実行するコマンド
vi servers # <= 実行するコマンド

# ▼追記
[global]
http-proxy-exception = localhost, 127.0.0.1/8, ::1
http-proxy-host = $proxyserver
http-proxy-port = $port
```

※ `http-proxy-exception` はプロキシ適用外の環境をカンマ区切りで設定

#### gem

* `$proxyserver`: プロキシサーバ
* `$port`: ポート

```bash
vi ~/.gemrc

# ▼追記
http_proxy: http://$proxyserver:$port
```

#### rpm

* `$proxyserver`: プロキシサーバ
* `$port`: ポート

```bash
rpm --httpproxy $proxyserver --httpport $port
```

### 固定IPの指定

#### 接続ID (ifcfg-*)

```bash
vi /etc/sysconfig/network-scripts/ifcfg-ens32 # <= 実行するコマンド

# ▼追記
BOOTPROTO="none" # <= デフォルトは "dhcp"
IPADDR="xxx.xxx.xxx.xxx" # <= 固定IP
NETMASK="xxx.xxx.xxx.xxx" # <= サブネットマスク
GATEWAY="xxx.xxx.xxx.xxx" # <= デフォルトゲートウェイ
DNS1="xxx.xxx.xxx.xxx" # <= DNSサーバ
DNS2="xxx.xxx.xxx.xxx" # <= DNSサーバ
```

#### HOST

```bash
vi /etc/sysconfig/network # <= 実行するコマンド

# ▼設定
NETWORKING=yes
HOSTNAME=homepc1 # <= マシン名
GATEWAY=xxx.xxx.xxx.xxx # <= デフォルトゲートウェイ
```

#### NetworkManager

これを設定しないと NetworkManager の再起動で resolver(/etc/resolv.conf) が更新されてしまい、DNSの設定が localdomain に戻ってしまうため、DNSサーバを用いた名前解決ができなくなります。

```bash
vi /etc/NetworkManager/NetworkManager.conf # <= 実行するコマンド

# ▼追記
dns=none
```

#### resolver 

* `$domain`: ドメイン

```bash
vi /etc/resolv.conf # <= 実行するコマンド

# ▼追記
search $domain
```

#### ネットワークを再起動

```bash
systemctl restart NetworkManager # <= 実行するコマンド
systemctl restart network # <= 実行するコマンド
```

#### 固定IPになったか確認

```bash
nmcli device show ens32 # <= 実行するコマンド

# ▼結果
GENERAL.デバイス： ens32
IP4.アドレス[1]：  xxx.xxx.xxx.xxx/25　# <= ここが指定したIPになっていればOK
IP4.ゲートウェイ： xxx.xxx.xxx.xxx
IP4.DNS[1]：      xxx.xxx.xxx.xxx
IP4.DNS[2]：      xxx.xxx.xxx.xxx
```

### 完了

## 参考文献

* [プロキシの指定方法](http://qiita.com/tunepolo/items/296c2639e0b750de41c6)