1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

出来るだけコピペでCentOS7minimalの環境を作りたい

Last updated at Posted at 2018-03-03

随分前に書いておいてお蔵入りになってたんですが、少し書き直して上げました。

  • Linux CentOS7のminimal(最小構成)をイントラネット内に設置する。
  • SSH接続して出来るだけコピペで楽して設定したい。
  • せっかくなので何か設置したい。そうだ。Crowiを設置しよう
  • あとPostgresも設置しよう

予定は未定

今回は基本的な設定のみ。

出来るだけコピペシリーズで他に書いた記事

出来るだけコピペでウィルスチェックしたい
https://qiita.com/mm_sys/items/8cbe7019183c26fcd228

出来るだけコピペでCrowi環境を作りたい
https://qiita.com/mm_sys/items/4e94050fe85a3c6b54f0

まだ未記載

  • Crowiのバックアップと復元
  • Postgresの設置。 世の中にはたくさん記事があったので書かないことにしました。

今回の前提

用意しておくもの

  • PC端末
  • インターネットに接続出来る環境
  • CentOS7minimalのisoイメージ

Download CentOS

0.qcpb9fyn6i8.jpg

Serverの基本設定

有名なこちらを参考にしています。内容が豊富かつ的確。
https://www.server-world.info

インストールの設定等

仮想OSを使う場合

VMWare Fusionでの設定

カスタム仮想マシンを作成->Linux->CentOS(64ビット)
仮想ディスクオプションを選択:新しいディスクを作成

r33k7p22hdo8yqfr.png

設定->CD/DVD(IDE)
で、ディスクイメージを選択して起動

q3ruuwmyvhgs0pb9.png

CentOS7をインストール

言語は日本語の設定、「インストール先」をクリックして、そのまま完了をクリック。
「ネットワークとホスト名」をクリックして、イーサネットをONにして完了してインストール開始。
ネットワークはVMWareの設定で適宜変更。今回は直接接続。

pgk31gam52l3ow29.png

ルートパスワードとユーザを設定しておく。(今回はuserというユーザを作成)
あとはインストール完了するまで一休み。

vkk5wcvfmm4sfw29.png

あとでユーザーを追加する場合

CentOS 7 : 初期設定 : ユーザー追加 : Server World

とりあえずSSH

まずはSSHが使えるようになるまで我慢して、ひたすら手打ちで作業。
以下はルート権限で作業。

command
localhost login: root

SSHのセキュリティ設定が終わるまで出来ればネットワークに繋がない状態で作業。

要変更場所
記載内容 変更例 補足
9 AllowUsers user AllowUsers admin 作ったユーザ名に変更
# viでsshd_configを設定
vi /etc/ssh/sshd_config
# :set numberを入力して行数表示可能
# 38行目(環境によっては49行目):コメント解除し変更 ( rootログイン禁止 )
PermitRootLogin no
# 64行目(78行目):コメント解除(空パスワード禁止)
PermitEmptyPasswords no
# 末尾に追記。「user」以外ではsshを使えないようにする。
AllowUsers user
# 保存してvi終了
:wq
# ファイアウォールの設定
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload
# SSH再起動
systemctl restart sshd

現在のIPを確認。

ip aコマンドを実行して現在のIPを確認。(昔ながらのifconfigの方が良いという人はyum install net-toolsをインストールすると幸せになれます。)

SUDO

「user」ユーザのコマンドにルート権限を与える。

https://www.server-world.info/query?os=CentOS_7&p=initial_conf&f=8

visudo
# 最終行に追記。
user ALL=(ALL) ALL
# 30分の間再度パスワードを入れなくて良い(一部を除く)
Defaults timestamp_timeout = 30

SSHで接続して作業

お疲れ様でした。ここからはWindowsならTera TermやMacならTerminalを使っての作業になり、コピーペーストが使えるのでだいぶ楽になります。
例えばMacのターミナルなら例えばssh user@XXX.XXX.XXX.XXXで接続
https://ttssh2.osdn.jp
SSHに関しての詳しい説明は省略。

SELinuxをPermissiveの状態(ログだけとっておく状態)にして一旦再起動

SSH接続して下記コマンドを入力して/etc/selinux/configファイルの
SELINUX=enforcingをSELINUX=permissiveに変えてSELinuxの設定を変えてみる。

# 念のため古いファイルは残す(古いファイルは日付付きにする)
sudo cp /etc/selinux/config /etc/selinux/config_`date "+%Y%m%d_%H%M%S"`
# /etc/selinux/configの内容を書き換え
sudo sed -ri 's/^SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
## 設定変更のため一旦再起動
sudo reboot

再起動したら、再度同じようにSSH接続をしてgetenforceで状態確認してみて、PermissiveになってたらOK

他の設定

しておいたほうが良い設定

https://www.websec-room.com/2014/02/09/1822

SSHのアクセス制限

この設定をすると、外部からのアクセスが制限されて、接続出来ない状態が発生します。
実際に行う場合は本当に必要かどうかを検討して実行すること。

http://qiita.com/wwwaltz/items/db774fda77cb2d6c6922
http://qiita.com/mokemokechicken/items/d9b35c29d6ed4d60b63c
http://te2u.hatenablog.jp/entry/2015/07/01/224505
https://www.ipa.go.jp/security/fy14/contents/soho/html/chap3/freebsd/remote.html

# 元の設定ファイルを残しておいて/etc/hosts.denyと/etc/hosts.allowファイルに追記する。このときSSHで入れなくならないように注意。セキュリティが気になるなら公開鍵使ったりホスト、ゲストを固定IPにして、つながるようにしたりしましょう。

sudo cp /etc/hosts.deny /etc/hosts.deny_`date "+%Y%m%d_%H%M%S"`
sudo cat << '_EOT_' | sudo tee -a /etc/hosts.deny
sshd : all
_EOT_

# 古い設定をコピーして残す
sudo cp /etc/hosts.allow /etc/hosts.allow_`date "+%Y%m%d_%H%M%S"`

# 接続側の制限を追記。_EOT_まで一気にコピペ
sudo cat << '_EOT_' | sudo tee -a /etc/hosts.allow
# 192.168.XX.XXのIPは許可する
sshd : 192.168.
# 172.16-31.XX.XXのIPは許可する
sshd : 172.16.0.0/12
# 10.XX.XX.XXのIPは許可する
sshd : 10.
_EOT_

# SSH再起動
sudo systemctl restart sshd
ポート番号を変更する場合のみ

SSHのポートを22以外にする場合。

記載内容 変更例 補足
1 #Port 22 Port 10022 変更例では22ポートにしているが、22ポートは攻撃対象になりやすいので、
それ以外のポート番号にして防衛する。
空きのポートを探して設定しよう。
sudo sed -ri 's/^#Port 22/Port 10022/' /etc/ssh/sshd_config
sudo firewall-cmd --zone=public --add-port=10022/tcp --permanent
sudo firewall-cmd --reload
# SSH再起動
sudo systemctl restart sshd

これ以降はSSH接続するときはssh user@192.168.XX.XX -p 10022のようにポート番号を指定しないとssh接続出来ないので要注意。

ウィルス対策

長いので別途記事を掲載予定。

してもしなくても良い設定

VMWareを使ってる場合、open-vm-toolsを入れておく。

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2074713

# open-vm-tools
sudo yum install open-vm-tools -y
sudo systemctl enable vmtoolsd.service
sudo systemctl start vmtoolsd.service
# バージョンと動作の確認
ps -ef | grep vmtools
systemctl status vmtoolsd.service
SSL

ドメイン名を持っている人はサーバ証明書を発行して設定しておくべきでしょう。

https://letsencrypt.jp/
https://www.websec-room.com/2016/10/01/2698

「必要に応じて」リポジトリ追加

特に必要がなければ入れなくても良いと思います。

https://www.server-world.info/query?os=CentOS_7&p=initial_conf&f=6

yum -y install yum-plugin-priorities
sed -i -e "s/\]$/\]\npriority=1/g" /etc/yum.repos.d/CentOS-Base.repo
yum -y install epel-release
sed -i -e "s/\]$/\]\npriority=5/g" /etc/yum.repos.d/epel.repo
yum -y install centos-release-scl-rh centos-release-scl
sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl.repo
sed -i -e "s/\]$/\]\npriority=10/g" /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sed -i -e "s/\]$/\]\npriority=11/g" /etc/yum.repos.d/remi-safe.repo

固定IPによるネットワーク設定

CentOS7ではコマンド上でnmtuiと入力すると、GUIのようなものでネットワークの設定変更が出来ます。

0.w0wkk4hodw.png

でも以前の通りファイルに書き込んでネットワーク設定します。

要変更箇所
記載内容 変更例 補足
5 ...ifcfg-ensXX ...ifcfg-ens33 環境に合わせたネットワーク名に変更
12
13
14
15
IPADDR="192.168.XX.XX"
NETMASK="255.255.255.0"
DNS1="192.168.X.XX"
GATEWAY="192.168.X.XX"
IPADDR="192.168.0.1"
NETMASK="255.255.255.0"
DNS1="192.168.1.1"
GATEWAY="192.168.1.2"
環境に合わせて変更
# ネットワークを設定しているファイルを検索
ls /etc/sysconfig/network-scripts/ifcfg-*
# ネットワークインターフェースの一覧(さっきのファイル一覧から照らし合わせて現在使っているファイルを推測)
nmcli device

# 固定IPの設定を使う場合の書き換え。
# ifcfg-ensXXの部分は先程検索したファイル名に書き換え
sudo sed -i -e "s/^BOOTPROTO=\"dhcp\"/BOOTPROTO=\"none\"/" /etc/sysconfig/network-scripts/ifcfg-ensXX

# 環境毎に変更すること。
sudo cat << '_EOT_' | sudo tee -a /etc/sysconfig/network-scripts/ifcfg-ensXX
IPADDR="192.168.XX.XX"
NETMASK="255.255.255.0"
DNS1="192.168.X.XX"
GATEWAY="192.168.X.XX"
_EOT_

# ネットワーク再起動
sudo systemctl restart network

# GUIっぽく変更する場合はこちらを実行
# nmtui

状態を確認(ensXXの部分は適宜変更)

nmcli device show ensXX

ネットワークの状態監視

種類が多いのでお好みで。
Linuxでネットワークの監視を行えるモニタリングコマンド20選 | 俺的備忘録 〜なんかいろいろ〜

最後にシステム最適化

sudo yum clean all && sudo yum -y update

とりあえず今回はここまで

1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?