ServersMan@VPS&Ubuntuの初期セットアップ - 動かざることバグの如し
ServersMan@VPS&Ubuntuの初期セットアップ 改 - 動かざることバグの如し
- 初期ユーザー名:root
- パスワード:メール等に記載
- ポート:3843
ユーザー設定
rootのパスワード変更
passwd
新しいユーザー[thr3a]を作成
adduser thr3a adduser thr3a sudo adduser thr3a adm
apt-get update
とapt-get upgrade
したうえで以下作成したユーザー上で実行
SSHの設定
公開鍵認証方式に設定する
鍵を生成
ssh-keygen -t rsa cat .ssh/id_rsa.pub >> .ssh/authorized_keys chmod 600 .ssh/authorized_keys chmod 700 .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
して反映されてたら成功
オレオレ証明書の生成
openssl genrsa 2048 > server.key openssl req -new -key server.key > server.csr openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt cp server.key server.crt /etc/nginx/conf.d/
NginxとPHPのインストール
まずはApacheを殺す
service apache2 stop update-rc.d -f apache2 remove
レポジトリを追加
sudo apt-get install python-software-properties sudo apt-add-repository ppa:nginx/development sudo add-apt-repository ppa:ondrej/php5
インストール
sudo apt-get update sudo apt-get install nginx php5 php5-fpm php5-curl php5-gd
/etc/nginx/sites-available/defaultを以下に変更
server { listen 80 default_server; server_name nyaaz.info; root /usr/share/nginx/html/www; location / { #root /usr/share/nginx/html/www; index index.html index.htm index.php; } location ~ \.(php|html|htm)$ { #root /usr/share/nginx/html/www; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
/etc/php5/fpm/php.iniを以下変更
Nginxの設定
- cgi.fix_pathinfo=0 に変更
日本語に関する設定
- ;mbstring.language = Japanese
- mbstring.internal_encoding = UTF-8
- default_charset = "UTF-8"
- date.timezone = Asia/Tokyo
セキュリティに関する設定
- expose_php = Off
処理に関する設定
- upload_max_filesize
- post_max_size
- memory_limit これら各種100M程度に
- max_execution_time = 180
セッションデータ保存パス(session_save_path)で使われるディレクトリのパーミッション変更
sudo chown -R www-data:www-data /var/lib/php5
/etc/php5/fpm/pool.d/www.confを以下変更
(127.0.0.1:9000から変更) listen = /var/run/php5-fpm.sock (コメントアウト) listen.owner = www-data listen.group = www-data listen.mode = 0660 (拡張子がphp以外でも実行されるように) security.limit_extensions = .php .html .htm
再起動
sudo service nginx restart sudo service php5-fpm restart
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で使えない
- http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exeをダウンロード
- 「Conversions」→「Import Key」でSSHの鍵を選択
- 「Save Private Key」でppkを保存
unable to resolve host対策
sudoする度にunable to resolve host *
が出てきてウザい
<<root上で>> echo 127.0.1.1 dti-vps-srv737 >> /etc/hosts
Owncloudのインストール
wget http://download.owncloud.org/community/owncloud-latest.zip unzip owncloud-latest.zip sudo chown -R www-data:www-data owncloud
/etc/nginx/sites-available/owncloudを新規作成 参考:Owncloudの公式サイト
server { listen 443 ssl; server_name cloud.nyaaz.info; root /usr/share/nginx/html/owncloud; index index.php; ssl_certificate /etc/nginx/conf.d/server.crt; ssl_certificate_key /etc/nginx/conf.d/server.key; client_max_body_size 10G; # set max upload size fastcgi_buffers 64 4K; rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect; rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect; rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect; error_page 403 /core/templates/403.php; error_page 404 /core/templates/404.php; location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ ^/(?:\.htaccess|data|config|db_structure\.xml|README) { deny all; } location / { # The following 2 rules are only needed with webfinger rewrite ^/.well-known/host-meta /public.php?service=host-meta last; rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last; rewrite ^/.well-known/carddav /remote.php/carddav/ redirect; rewrite ^/.well-known/caldav /remote.php/caldav/ redirect; rewrite ^(/core/doc/[^\/]+/)$ $1/index.html; try_files $uri $uri/ index.php; } location ~ \.php(?:$|/) { fastcgi_split_path_info ^(.+\.php)(/.+)$; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param HTTPS on; fastcgi_pass unix:/var/run/php5-fpm.sock; } # Optional: set long EXPIRES header on static assets location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ { expires 30d; # Optional: Don't log access to assets access_log off; } }
シンボリックリンクを貼る
sudo ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/