ubuntu好きがさくらVPSにCentOS7を入れてみた話
どうもマツケンです。
今回は不慣れながらさくらVPSにCentOS7を入れた際のメモをそのまま記事としてあげます
VPS構成
- 1GBメモリ 30GB
CentOS7 インストール
- sakuraVPSコントロールパネルから選ぶ
- minimal install
- partitionを決める
rootパス設定/ユーザー作成
上記 参考サイト様
shell内での作業順
CentOS7をインストールするにあたって行った手順を下記にて記す
- rootではないユーザ作成
usermod -G wheel ユーザ名
- SELinuxを一時的に無効
setenforce 0
getenforce
vi /etc/sysconfig/selinux
- ssh port設定
vi /etc/ssh/sshd_config
ユーザ設定vi /etc/sudoers
USERNAME ALL=(ALL) ALL
- 公開鍵設定
/.ssh/config
- SELinuxによるポート変更時の設定 参考サイト
- SELinux が有効な場合にポート設定がややこしい。
semanage
コマンドが使用できない場合に下記のパッケージを入れるsudo yum install policycoreutils-python
sudo semanage port -l | grep sshd
semanageとは?
$ sudo semanage port -a -t ssh_port_t -p tcp <任意のポート番号> $ sudo systemctl restart sshd $ sudo semanage port -l | grepp <ポート番号> ssh_port_t tcp <ポート番号>,22
semanageオプション解説
コマンド | オプション | 意味 |
---|---|---|
semanage port | -a | (--add)○○のタイプを持つオブジェクトをレコードに追加する |
上記と同じ | -t TYPE | (--type)オブジェクトの型?を定義する |
またもや同様 | -p プロトコル | 特定のポートのプロトコル(tcp/udp/ipv4/ipv6) |
- ssh用ポートを変更後接続できるか確認する
- 出来ない場合firewall設定確認する
ss -t -l -n
でソケット状況が確認できる
ssオプション解説
コマンド | オプション | 意味 |
---|---|---|
ss | -t | TCPソケットのみを表示 |
上記と同じ | -l | LISTENしているソケットを表示 |
またもや同様 | -n | service名で書かれているものをNUMERるIC(数字)で表す |
systemctl | grep firewalld
でfirewall状況を確認
firewalld.service loaded active running firewalld - dynamic firewall daemon
で起動していることを確認- 次にfirewalldの設定ファイルを配置/変更する
$ sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services $ sudo vi /etc/firewalld/services/ssh.xml $ sudo firewall-cmd --reload $ sudo firewall-cmd --list-all $ sudo systemctl restart sshd.service
ここまで実行すれば変更したポート番号でssh接続が可能なはず
自分の場合ここでエラーが発生した。ECDSA host key~ うんたらってやつ。
ssh-keygen -R <IP番号>
でローカルのknown_hostに登録されているレコードを削除し、接続しなおすことで治った。
firewall設定
#サービス(ポート)を確認 $ firewall-cmd --list-services #webサーバーのポートを開く $ firewall-cmd --add-service=http success #再起動後も開くように $ firewall-cmd --permanent --add-service=http #現在利用可能なサービスを確認 $ firewall-cmd --list-services #現在利用可能なポートの確認 $ firewall-cmd --list-ports
- pop3やmailなどの必要なポートは
--add-service
で追加する必要がある firewall-cmd --get-services
で指定できるサービスを確認できる
TODO:いまいちSELinuxとfirewalldの関係性を理解していないため、メモル。(´◉◞౪◟◉)
不要サービス(デーモン)を停止する
今回インストールしたCentOS7はminimal構成もあり、サービスは最小限に抑えられてるはず。はず。
んで、サービス(デーモン)はsystemctl
を使用して確認する
#サービスの状態を確認する $ systemctl stauts <サービス名>.service $ systemctl stop <サービス名>.service #再起動後も起動しないように設定 $ systemctl disable <サービス名>.service #たぶんサービス一覧表示 $ ls /etc/systemd/system/multi-user.target.wants|grep \.service #たぶんサービス一覧(disableも含) $ ls /usr/lib/systemd/system|grep \.service
日本語に対応させる
#localectl コマンドを使用する $ localectl #設定可能な言語を表示 $ localectl list-locales | grep ja #設定する $ localectl set-locale LANG=ja_JP.utf8
皆大好きvimを入れる
yum -y install vim
bash_profileを編集する
$ vim ~ユーザー名/.bash_profileを編集する #13行目あたりに PATH=$PATH:$HOME/bin:/sbin:/usr/sbin alias vi='vim' export PATH
- 多少の中身の違いはありかと思いますが、PATHはコロン(:)で区切られています
- alias についてはここに直接書かず、シェル上に書いても認識されたはず。確認方法は
alias
参考サイト、ブログ
情報発信はやっぱり偉大。感謝感謝。
今日はここまでで、次回はdocker辺りの導入でも書いていきます。