動かざることバグの如し

近づきたいよ 君の理想に

ServersMan@VPS&Ubuntuの初期セットアップ ver4

実に四回目のVPSリセット 今回はUbuntu 14.04

ServersMan@VPS&Ubuntuの初期セットアップ - 動かざることバグの如し

ServersMan@VPS&Ubuntuの初期セットアップ 改 - 動かざることバグの如し

ServersMan@VPS&Ubuntuの初期セットアップ 改 NginxVer - 動かざることバグの如し

  • 初期ユーザー名:root
  • パスワード:メール等に記載
  • ポート:3843

ユーザー設定

rootのパスワード変更

passwd

ユーザー「thr3a」を作成

adduser thr3a
adduser thr3a sudo
adduser thr3a adm

/etc/apt/sources.listを以下に書き換え

deb http://ubuntutym.u-toyama.ac.jp/ubuntu trusty main restricted universe
deb http://ubuntutym.u-toyama.ac.jp/ubuntu trusty-updates main restricted universe
deb http://ubuntutym.u-toyama.ac.jp/ubuntu trusty-security main restricted universe multiverse

apt-get updateapt-get upgradeしたうえで以下作成したユーザー上で実行

SSHの設定

公開鍵認証方式に設定する

鍵を生成

ssh-keygen -t rsa
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
chmod 700 .ssh/

/etc/ssh/sshd_configにてSSH各種設定

  • Port 3843→xxxx
  • PasswordAuthentication yes→no
  • PermitRootLogin yes→no

再起動

sudo service ssh restart

iptablesの設定

適当に実行ファイルを作成

sudo vi /tmp/ip

iptablesで適応させたいルールを記述

#!/bin/sh
#現在のルールを全削除
iptables -F
iptables -X
#FORWARDは不許可
iptables -P FORWARD DROP
#とりあえず全許可
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
#ローカルホストからは許可
iptables -A INPUT -i lo -j ACCEPT
#確立済みの通信は許可
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#http許可
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#SSH許可
iptables -A INPUT -p tcp --dport 2407 -j ACCEPT
#https許可
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#Node.js
iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
#sinatra
iptables -A INPUT -p tcp --dport 4567 -j ACCEPT
iptables -A INPUT -p tcp --dport 1129 -j ACCEPT
#ping許可
iptables -A INPUT -p icmp -j ACCEPT
#その他全不許可
iptables -P INPUT DROP

権限付加

sudo chmod +x /tmp/ip

実行 これでiptablesの設定が適応される

sudo /tmp/ip

確認

sudo iptables -L

が、再起動すると設定は吹っ飛んでしまうので起動時毎回適応されるようにする。

現在の設定をバックアップ

<<rootで>>
iptables-save > /etc/iptables.rules

以下のファイルを編集(新規作成)

sudo vi /etc/network/if-pre-up.d/iptables_start

以下を記述

#!/bin/sh
/sbin/iptables-restore < /etc/iptables.rules
exit 0
sudo chmod 755 /etc/network/if-pre-up.d/iptables_start

これで再起動してiptables -Lして反映されてたら成功

Nginxのインストール

まずはApacheを殺す

service apache2 stop
update-rc.d -f apache2 remove

レポジトリを追加してインストール

sudo apt-get install software-properties-common
sudo apt-add-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx

Rubyのインストール

curl -sSL https://get.rvm.io | bash -s stable --ruby

インストール後、誘導の通り以下のコマンドを実行

source /home/thr3a/.rvm/scripts/rvm

Railsのインストール

gem install rails  --no-ri --no-rdoc

Node.jsのインストール

sudo add-apt-repository ppa:chris-lea/node.js 
sudo apt-get update
sudo apt-get install nodejs

正常にインストールされているか確かめるには適当にhoge.jsでも作って

var http = require('http');

var server = http.createServer(function(req, res) {
  res.end("Hello World");
});

server.listen(3000);

node hoge.js実行してhttp://nyaaz.info:3000を開くとHelloWorldが迎えてくれるはず

どうせだしnpm install pm2 -gしておくと吉

MySQLのインストール

sudo apt-get install mysql-server php5-mysql

インストールの途中でrootに対するパスワード設定を求められるので入れておく

/etc/mysql/my.cnfを修正して文字コードを全てUTF-8に変更

[client]
(追記)
default-character-set=utf8

[mysqld]
(追記)
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

設定反映

service mysql restart

ログインして確認

mysql -u root -p

ちゃんとエンコード設定できているか確認

show variables like 'character_set%';

以下他にやったことたち

各種インストール

sudo apt-get install build-essential libc6-dev g++ patch bash-completion git 

ServersMan@VPSのおせっかいサービスを抹消

sudo apt-get purge ajaxterm

WinSCPで使えるように

さっき生成したOpenSSH形式の鍵だとWinSCPで使えない