• RisingWorldサーバー構築(VPS編)自分用メモ、修正版

    2019-06-25 22:11
    検索で自分以外の人も見ちゃうかも知れないのに気が付きました(-_-;)
    RW_backupngWorldサーバー構築(VPS編)の文を、読み易いように無駄な部分を削り、
    ました。

    それでもまだ長いし読み難いですね。
    あくまで自分用のメモなんですよ・・・・(言い訳)

    一応、実際に630円のプランでコマンド打ちながら修正したので、Linuxの初心者でも再現出来るかも?(だって私も初心者レベルだし)

    サーバーリストにもっと、日本のサーバーが増えれば日本語ローカライズも夢じゃないと信じて加筆しました(*‘ω‘ *)

    修正前

    https://ch.nicovideo.jp/seven-rising/blomaga/ar1752433

    【事前準備】
    Googleの共有ドライブと、gmailと連動させるので事前にアカウントを作っておく。
    一人で2アカ作って良いのかは、私も理解してないですが。(セキュリティを考えると、専用に使える2アカウント目が好ましい)

    【VPS選定】
    ConohaVPSと契約する。(他社でもCent7.xxならOK?)
    https://www.conoha.jp/?btn_id=guide-vpsstartup-commonHeader_top&_ga=2.220647515.215200719.1556779168-734954735.1555038871


    プランは取りえず1GBを選んでおくと良いです。
    後でボタン一つで2Gとかに増やせます。(630円のは増設不可)



    【初期設定】
    ご利用ガイド VPSスタートアップガイドを読んでください
    https://support.conoha.jp/vps/guide/vpsstartup/?btn_id=vps_guide-vpsstartup
    ※公開鍵認証を設定する(root)の項目は、最後で良いかもです。
     SSHのルートログインは最終的に禁止にするだろうし。
     ※VPS追加時にコントロールパネルにて公開鍵認証の設定を行っている場合はパスワード認
     証でのログインが禁止されるので解除が面倒だったので、やらない方が良さそう。

    ConoHaさんや、お使いのVPSの初期設定を実施してから先に進みましょう。


    【ポート解放】
    RWで使うポートを開ける
    ※rootかsuで実行
    [ipテーブル]
    iptables -I INPUT 5 -p tcp -m tcp --dport 4254 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4255 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4256 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4257 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4258 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4259 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4254 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4255 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4256 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4257 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4258 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4259 -j ACCEPT
    service iptables save
    cat /etc/sysconfig/iptables
    iptables -L
    [ファイアーウォール]
    ※rootかsuで実行
    firewall-cmd --zone=public --add-port=4254/tcp --permanent
    firewall-cmd --zone=public --add-port=4255/tcp --permanent
    firewall-cmd --zone=public --add-port=4256/tcp --permanent
    firewall-cmd --zone=public --add-port=4257/tcp --permanent
    firewall-cmd --zone=public --add-port=4258/tcp --permanent
    firewall-cmd --zone=public --add-port=4259/tcp --permanent
    firewall-cmd --zone=public --add-port=4254/udp --permanent
    firewall-cmd --zone=public --add-port=4255/udp --permanent
    firewall-cmd --zone=public --add-port=4256/udp --permanent
    firewall-cmd --zone=public --add-port=4257/udp --permanent
    firewall-cmd --zone=public --add-port=4258/udp --permanent
    firewall-cmd --zone=public --add-port=4259/udp --permanent
    firewall-cmd --reload
    firewall-cmd --list-all


    steamCMDを入れる】
    インストール場所作成
    ※rootかsuで実行
    mkdir -p ~/Steamcmd ~/steam-server/match

    yumを最新にする。
    ※rootかsuで実行
    yum -y update

    64bitOSで32bitのCMDを使用するために必要?(centOS6だと失敗する)
    ※rootかsuで実行
    yum -y install curl wget bzip2 gzip unzip python screen gcc glibc.i686 libstdc++.i686 ld-linux.so.2 zlib.i686 libstdc++.so.6


    パスワード設定が終わってない場合に必要(ConoHaの初期設定終わってれば不要)
    ※これ以下 一般ユーザー userでログインして作業してる想定
    useradd user
    passwd user
    usermod -G wheel user
    パスワードも設定

    CMD用のディレクトリ作成
    ※rootかsuで実行
    mkdir -p ~/Steamcmd ~/steam-server/match

    CMDディレクトリに移動
    cd ~/Steamcmd

    CMDのインストールコマンド
    ※rootかsuで実行
    curl -sqL "http://media.steampowered.com/installer/steamcmd_linux.tar.gz" | tar zxvf -

    「steamCMD」を起動して
    ※rootかsuで実行
    ./steamcmd.sh

    アンノンでログイン
    login anonymous

    インストールディレクトリを指定する。
    force_install_dir /home/user/csgo-server/match

    ライジングワールド 339010をインストールする
    app_update 339010 validate
    exit

    JAVA8をインストールする
    ※rootかsuで実行
    yum install java-1.8.0-openjdk

    ライジングワールドのディレクトリに移動
    cd /home/user/csgo-server/match/

    ライジングワールドサーバの設定ファイルを開く
    設定については下記の備忘録を参照する。
    https://ch.nicovideo.jp/seven-rising

    (設定ファイルゲーム本体)
    vim server.example.properties

    (設定ファイル ゲームでのユーザー権限など)

    ディレクトリ移動
    cd permissions.example

    ユーザ権限ファイルを開く
    vim default.permissions

    ※vim(vi)コマンドの操作方法は詳しくは書きません(自分で調べて!)
    キーボードのIキーでINSERTモード(入力モード)
    Escキーを押すとINSERTを抜ける
    テキストの編集を終えたい時は、キーボードの:キーを押すと下の方に「:」が表示され、下記を入力してエンターを押すと閉じます。

    wq  ←保存して閉じる
    q! ←保存しないで閉じる


    ワールドデータを定期バックアップする】
    参考文献
    https://qiita.com/aviscaerulea/items/53123ce5b79c80e31a71

    ・コピーコマンド(サーバー内で1日分上書きバックアップする)
    ※手動で1日分をバックアップするコマンド
    \cp -r /home/user/csgo-server/match/Worlds /home/user/Worlds_buckup

    グーグルドライブ(保存先)の設定 ※すでに共有設定になってること!
    CUI で Google ドライブにアクセスできる gdrive というツールを使う。
    公式サイトを参考にコマンドを導入して Google の OAth2 認証をするだけ。
    今回は Linux x64 だが、Windows, Mac 向けのバイナリも提供されている。

    $ wget -O drive https://drive.google.com/uc?id=0B3X9GlR6Embnb095MGxEYmJhY2c
    $ mv drive /usr/sbin/drive
    $ chmod 755 /usr/sbin/drive

    drive コマンド初回実行時に認証用の URL が出力され、認証キーの入力が求められる。
    別途ブラウザから出力された URL にアクセスして認証コード取得してコピペしてあげればいい。
    ※下記の認証用 URL はダミー
    $ drive
    Go to the following link in your browser:
    https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=state
    Enter verification code: (認証コード入力)

    ※赤字の部分をコピーして、PCのブラウザのURL欄に張り付けてエンター、共有ドライブとして使うGoogleアカウントを選択して、許可を選択すると認証コードが表示されるので、コピーして、driveコマンドで表示された末尾「Enter verification code:」の処に、張り付けてエンター

    認証成功するとドバーッと gdrive の help が出力される。
    細かいオプション付けずにファイル単体をアップロードしてみる。

    ※共有ドライブとして使うGoogleアカウントとは、下記の写真のアプリのことです。






    ※下記ハッシュ等の一意的な情報はダミー
    $ echo hello > test.txt
    $ drive upload --file test.txt
    Id: vjBwDRvBT4MzCAD97cPhMJZg8Gpk
    Title: test.txt
    Size: 6.0 B
    Created: 2016-01-28 10:54:29
    Modified: 2016-01-28 10:54:29
    Owner: hoge
    Md5sum: 1zbEOm0DC864l6Eu7BSuYPOo4SesXuFN  
    Shared: False
    Parents: oqD9gj6ERKhII58ysa8
    MIME Type: text/plain; charset=utf-8
    Uploaded 'test.txt' at 3.0 B/s, total 6.0 B

    ディレクトリもアップロードしてみたが、これも元の階層のまま期待通り行われた。
    mkdir -p a/b/c
    echo hello > a/test_a.txt
    echo hello > a/b/test_b.txt
    echo hello > a/b/c/test_c.txt
    drive upload --file a
    ...
    ファイル毎にアップロード結果が出力される
    ...
    Google ドライブ上も階層通り。

    ・Googleドライブの宛先(ID)を調べる
    参考文献
    https://www.nextdoorwith.info/wp/se/linux-gdrive/
    結論から言うと、目的のフォルダを(Googleドライブ)PCで開いてURLの最後に記載されている値で確認可
    (例)https://drive.google.com/drive/folders/xxxxxxxxxxxxxxxxxxxxxxxxxx
    ※xxxxxxxxxxxxxxxxxxxxxxxの部分はダミーです




    定期バックアップ用のなんちゃってスクリプトを作る場所はユーザーディレクトリ直下
    再起動の方法を色々と試したけど、無理だったからKillコマンドで無理やりプロセスを止めてます。

    cd /home/user/
    vi RW_backup.sh
    キーボードのIキーを押してーーINSERT--モードにする。

    以下内容(viで開いた白紙のテキストファイルに、#!/usr/bin/bash以下を張り付ける)
    -----------------------------------------------------
    #!/usr/bin/bash
    sudo pgrep -f java | xargs kill -9
    sleep 3
    cd /home/user/
    sleep 3
    \rm -r /home/user/Worlds_buckup/
    sleep 3
    \cp -r /home/user/csgo-server/match/Worlds /home/user/Worlds_buckup
    sleep 3
    drive upload --parent 15dBsBPoyXXPnDEqO7FOuBslv2caKoxxx --file Worlds_buckup
    sleep 360
    cd /home/user/csgo-server/match
    sleep 3
    sudo ./linux_startscript.sh
    ------------------------------------------------------
    IDは(例)
    Escキーを押して、次に:キーを押す。
    wqを入力してエンターで上書きして閉じる。

    バックアップコマンドをテストする。
    drive upload --parent 15dBsBPoyXXPnDEqO7FOuBslv2caKoxxx --file Worlds_buckup


    ・RW_backup.shのパーミッションを変更
    sudo chmod 755 RW_backup.sh

    centOS7のcronを消して、centOS6以前のcronを使う
    $ sudo yum -y install cronie-noanacron
    $ sudo yum -y remove cronie-anacron

    設定はvim /etc/crontab

    設定の確認。
    cat /etc/crontab

    設定の編集
    コマンドで設定を開き末尾を追記する。
    sudo vim /etc/crontab
    ------------------------------------------
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root
    # For details see man 4 crontabs
    # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # | | | | |
    # * * * * * user-name command to be executed
    0 4 * * * root . /home/user/RW_backup.sh←朝4時に毎日バックアップ追記
    -------------------------------------------

    #crondの再起動
    sudo systemctl restart crond

    #RW鯖起動
    (Conohaのコンソールで、su若しくはrootで実行しないとRW_backup.shが上手く動作しないと思います)
    su
    cd /home/user/csgo-server/match
    ./linux_startscript.sh

    コピーコマンド例
    \cp -r /home/user/csgo-server/match/Worlds /home/user/Worlds_buckup




    【セキュリティ対策】
    SSHでログインがあった時に、警告メールをスマートフォンに送る。

    ・下記は参考文献
    https://qiita.com/taro0219/items/d9087b8a646905342270

    ・ssmtpをインストールする
    sudo yum install ssmtp

    su
    vi /etc/ssmtp/ssmtp.conf
    と入力して、設定ファイを編集する。

    #/etc/ssmtp.conf -- a config file for sSMTP sendmail.
    #See the ssmtp.conf(5) man page for a more verbose explanation of the
    #available options.
    #The person who gets all mail for userids < 1000
    #Make this empty to disable rewriting.
    #root=postmaster  ← コメントアウト
    root=rw.xxxxxxx@gmail.com ←アドレス記入
    #The place where the mail goes. The actual machine name is required
    #no MX records are consulted. Commonly mailhosts are named mail.domain.com
    #The example will fit if you are in domain.com and your mailhub is so named.
    #mailhub=mail ←コメントアウト
    #Example for SMTP port number 2525
    #mailhub=mail.your.domain:2525
    #Example for SMTP port number 25 (Standard/RFC)
    #mailhub=mail.your.domain
    #Example for SSL encrypted connection
    #mailhub=mail.your.domain:465
    mailhub=smtp.gmail.com:587 ←smtpサーバ追記
    #Where will the mail seem to come from?
    #RewriteDomain=
    #The full hostname
    #Hostname=
    AuthUser=rw.xxxxxxxxx7@gmail.com ←ログインID(自分のGoogleメール)
    AuthPass=rw2 ←パスワード(自分のパスワード)
    # Set this to never rewrite the "From:" line (unless not given) and to
    # use that address in the "from line" of the envelope.
    FromLineOverride=YES ←コメントアウト外す
    # Use SSL/TLS to send secure messages to server.
    #UseTLS=YES
    #IMPORTANT: The following line is mandatory for TLS authentication
    TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt ←#ついてたらコメントアウト外す
    # Use SSL/TLS certificate to authenticate against smtp host.
    #UseTLSCert=YES
    # Use this RSA certificate.
    #TLSCert=/etc/pki/tls/private/ssmtp.pem
    # Get enhanced (really enhanced) debugging information in the logs
    # If you want to have debugging of the config file parsing, move this option
    # to the top of the config file and uncomment
    #Debug=YES
    UseSTARTTLS=YES ←追記

    ・メールテストをしてみる
    echo -ne "To: a6hara@gmail.com\nSubject: TestSend1\n\n送信テスト1" | ssmtp a6hara@gmail.com
    a6hara@gmail.comの部分は受け手側のメールアドレス(任意変更)

    mailコマンドを使えるようにするには
    下記は参考文献
    https://qiita.com/zaburo/items/a6244d32ce5f5fe2c3d1

    mailxをインストールする。
    sudo yum install mailx
    ※環境によってはすでに入ってるかも?

    送信テスト
    とりあえず、送信してみます。
    echo "test mail" | mail -s "test" xxxxx@gmail.com
    xxxxx@gmail.comは任意の受取先
    残念ながらとどきません。postfixのログを見てみます。
    cat /var/log/maillog
    .
    Apr 5 17:39:19 localhost postfix/smtp[26381]: connect to gmail-smtp-in.l.google.com[64.233.189.27]:25: Connection refused
    .
    どうやらgmailのsmtpに到達できていないようです。
    Gmailの設定
    数年前にGmailのセキュリティーが強化され、普通のメアド(ID)+パスワードではgmailクライアント以外からはメールの送信ができなくなっています。gmailクライアント以外から送信する場合は専用のパスワードを取得する必要があるので取得します。
    アプリパスワードの設定
    [アカウント] -> [ログインとセキュリティ ] -> [アプリパスワード]にて、パスワードを発行します。

    ※2段階認証をONにしているので上記の手順なのかもしれません。2段階認証を設定してない場合は別の設定かもしれません。

    Postfixの設定
    アプリパスワードが取得できたので、Postfixの設定を行います。
    必要コンポーネントのインストール
    まずSASL認証をするために必要なコンポーネントをインストールします。
    sudo yum install cyrus-sasl-plain

    main.cfの編集
    mail.cfを編集し必要な記述を行います。gmailのアカウントは外部ファイルで設定します。

    vim /etc/postfix/main.cf
    で開いて最後に追記する。

    ## add for gmail
    relayhost = [smtp.gmail.com]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    smtp_sasl_tls_security_options = noanonymous
    smtp_sasl_mechanism_filter = plain
    smtp_use_tls = yes

    パスワードファイルの準備
    gmailのアカウントを下記のフォーマットで記述し、ハッシュ化します。
    vim /etc/postfix/sasl_passwd
    [smtp.gmail.com]:587 xxxxx@gmail.com:PASSWORD
    を記入して閉じる

    xxxxx@gmail.comおよびPASSWORDは各自の環境で。

    ハッシュ化します。
    sudo postmap /etc/postfix/sasl_passwd
    sudo chmod 600 /etc/postfix/sasl_passwd
    実際利用されるのはsasl_passwd.dbファイルのようなのでsasl_passwdファイルは削除してもいいようです。
    postfix再起動
    設定を反映させるためにpostfixを再起動します。

    yum install postfix
    systemctl enable postfix
    systemctl start postfix
    そもそも入ってないよ言われた場合は上記で入れる。

    systemctl reload postfix.service
    再起動コマンド


    ログインしたらメールを出すスクリプトを作る
    vim /etc/ssh/sshrc
    (例)
    #!/bin/sh
    MAIL_TO=通知先メールアドレス
    TIME=`/bin/date "+%Y/%m/%d/ %H:%M:%S"`
    FROM_ADDR=`echo $SSH_CONNECTION | cut -d' ' -f1`
    FROM_PORT=`echo $SSH_CONNECTION | cut -d' ' -f2`
    FROM_ADDR_PORT=${FROM_ADDR}:${FROM_PORT}
    TO_ADDR=`echo $SSH_CONNECTION | cut -d' ' -f3`
    TO_PORT=`echo $SSH_CONNECTION | cut -d' ' -f4`
    TO_ADDR_PORT=${TO_ADDR}:${TO_PORT}
    echo -e "Time\t${TIME}\nHost\t${HOSTNAME}\nUser\t${USER}\nFrom\t${FROM_ADDR_PORT}\nTo\t${TO_ADDR_PORT}" | /bin/mail -s "[SSH]${HOSTNAME}/${USER} (${TIME})" ${MAIL_TO}

    ※上記で、SSHでログインがあった場合は、任意のメールアドレスにメールで警告がでる。
    自分がログインしてないのに、メールが来たら・・・・・(゚д゚)!

    【セキュリティの強化を】
    起動後も各自でセキュリティーは強化しましょう。





  • 広告
  • RisingWorldサーバー構築(VPS編)

    2019-05-03 01:33

    別の場所に少しだけ読み易く書き直しました。
    ↓↓↓
    https://ch.nicovideo.jp/seven-rising/blomaga/ar1779309


    自分以外が読むことを、あまり想定してないメモ書き、、、、
    VPSを借りて、RisingWorldのサーバー構築を多分再現できる・・・筈の備忘録
    色々なサイトからコピペしまくりです。
    画像などの解説はなくて、テキストだけです。


    ★前提条件
    (これを見て構築する人は居ないと思うけど・・・)

    ・Steamでライジングワールドを遊んでいる。

    ・ConohaVPSを使用

    ・OSはcent7.6を使用
    https://www.conoha.jp/?btn_id=guide-vpsstartup-commonHeader_top&_ga=2.220647515.215200719.1556779168-734954735.1555038871

    ・外部バックアップ先に、共有設定のグーグルドライブを使用

    ・パスワードとかは、日常使うパスワードは避ける(攻撃で盗まれても困らないように)

    ・セキュリティ、監視などの手順は此処には書かない(各自でする)※初期設定だけ書く

    ・個人情報や盗まれて困る情報は置かない!

    ★サーバー初期設定

    サクラVPSさんの初期設定(Cent6での設定だから一部噛み合わないかも)

    https://help.sakura.ad.jp/hc/ja/articles/206208181--%E3%81%95%E3%81%8F%E3%82%89%E3%81%AEVPS-%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%E3%82%AC%E3%82%A4%E3%83%89

    ConoHaの初期設定ページ
    https://support.conoha.jp/vps/guide/vpsstartup/?btn_id=vps_guide-vpsstartup
    を見て設定する。


    ◎rootパスワードの変更

    STEP1パスワードを変更

    1パスワードを変更します。

    # passwd

    2「New password:」と表示後、希望のパスワードを入力します。
    ※入力するパスワードは、表示されません。

    3「Retype new password:」と表示後、再度、希望のパスワードを入力します。
    ※入力するパスワードは、表示されません。

    4「all authentication tokens updated successfully.」と表示されればパスワードの変更は完了です。


    ◎一般ユーザの追加

    STEP1サーバにログイン

    1リモートコンソールやターミナルソフトなどを利用してroot権限を持ったユーザでサーバにログインします。
    ※ここでは、rootでログインした場合で説明します。
    ※さくらのVPS ベアメタルプランの場合、1行目は「SAKURA Internet [BareMetal Server SERIVCE]」と表示されます。

    STEP2一般ユーザの追加とパスワードの設定

    1一般ユーザを追加します。

    # useradd ***

    ※「***」は、お客様が追加するユーザ名のため任意の文字列です。

    2追加した一般ユーザにパスワードを設定します。

    # passwd ***

    ※「***」は、お客様が追加するユーザ名のため任意の文字列です。

    3「New password:」と表示後、希望のパスワードを入力します。
    ※入力するパスワードは、表示されません。

    4「Retype new password:」と表示後、再度、希望のパスワードを入力します。
    ※入力するパスワードは、表示されません。

    5「all authentication tokens updated successfully.」と表示されればパスワードの変更は完了です。

    ◎sudoの設定 

    STEP1サーバにログイン

    1リモートコンソールやターミナルソフトを利用してroot権限を持ったユーザでサーバにログインします。
    ※ここでは、rootでログインした場合で説明します。
    ※さくらのVPS ベアメタルプランの場合、1行目は「SAKURA Internet [BareMetal Server SERIVCE]」と表示されます。

    STEP2sudoの設定

    1「sudo」を利用したい一般ユーザを「wheel」グループに所属させます。

    # usermod -G wheel ***

    ※***は、「sudo」を設定したいユーザ名です。

    2「wheel」グループに所属するユーザが「sudo」を利用できるように設定を変更します。

    # visudo

    [編集内容]

    ## Allows people in group wheel to run all commands
    # %wheel ALL=(ALL) ALL
    →## Allows people in group wheel to run all commands
    %wheel ALL=(ALL) ALL コメントアウト「#」を削除します
    wheelグループに所属するユーザは、すべてのコマンドを実行できる

    3保存が完了すれば、「sudoの設定」は完了です。


    ◎鍵認証の設定

    1事前に操作している端末に「公開鍵」「秘密鍵」を格納するフォルダを作成します。

    2TeraTermを起動後、キャンセルボタンをクリックします

    3「設定」をクリック後、「SSH鍵生成」を選択します。

    4「鍵の種類」選択後、「生成」をクリックします。
    ※ここでは、「RSA」を選択します。

    5「鍵を生成しました。」と表示後、「鍵のパスフレーズ」「パスフレーズの確認」を入力します。
    ※このパスフレーズは、ログイン時に利用します。

    6「公開鍵の保存」「秘密鍵の保存」をそれぞれクリック後、事前に作成した鍵を格納するフォルダに保存します。
    ※以下の名前で保存されます


    公開鍵
    id_rsa.pub

    秘密鍵
    id_rsa

    7保存が完了後、TeraTermの画面は一度閉じます。


    STEP2公開鍵認証の設定

    1公開鍵認証を設定したい一般ユーザで、TeraTermを利用してサーバにログインします
    ※さくらのVPS ベアメタルプランの場合、1行目は「SAKURA Internet [BareMetal Server SERIVCE]」と表示されます。

    2サーバにログイン完了後、事前に作成した「公開鍵」のファイルをドラック&ドロップします

    3「ファイル転送を行いますか?」と表示後、「SCP」をクリックします。
    ※「SCP」クリックすると、ユーザのホームディレクトリに転送されます。

    4ユーザのホームディレクトりに移動後、公開鍵認証の設定を行います。

    $ mkdir .ssh
    $ chmod 700 .ssh
    $ cat id_rsa.pub > .ssh/authorized_keys
    $ chmod 600 .ssh/authorized_keys
    $ rm -f id_rsa.pub

    STEP3SSH接続の設定変更
    1ログインしている一般ユーザを一時的に「root」に変更します。

    $ su -

    2「Password:」と表示後、「root」のパスワードを入力します。

    3「@」より前が「root」に切り替われば、「root」に変更されています。

    4SSH接続の設定を変更します。
    # vi /etc/ssh/sshd_config

    [編集内容]

    #Port 22
    →Port xxxx

    #PermitRootLogin yes
    →PermitRootLogin no

    PasswordAuthentication yes
    →PasswordAuthentication no >コメントアウト「#」を削除します
    >SSH接続のportを****を利用する

    >コメントアウト「#」を削除後、"yes"を"no"に変更する
    >rootユーザでのログインを無効にする

    >"yes"を"no"に変更する
    >パスワード認証を無効にする

    ※「****」は、お客様が任意に決める番号です

    5SSH接続の変更内容を読込みます。

    # /etc/rc.d/init.d/sshd reload × 
    #systemctl reload sshd.service 〇

    6読込みが完了すれば、「SSH接続の設定変更」は完了です。


    ◎公開鍵認証でのログイン方法

    STEP1ポート番号の指定

    1TeraTermを起動後、メールに記載されたIPアドレスを「TCP/IP」に入力します。

    2「TCPポート」にSSH接続用に指定したポート番号を入力後、「OK」をクリックします。

    STEP2公開鍵認証でログイン

    1ユーザ名/パスフレーズを入力後、「RSD/DSA鍵を使う」をクリックし、予め保存しておいた「秘密鍵」を選択します。

    ユーザ名
    鍵認証を設定したユーザ名

    パスフレーズ
    公開/秘密鍵を作成した際に設定したパスフレーズ

    秘密鍵
    事前に作成した秘密鍵

    2「OK」をクリック後、ログインできれば「公開鍵認証でログイン」は完了です。

    ◎システムを最新にする。

    # yum update
    2途中で[y/n]が表示された場合は、「y」を選択します。
    3「Complete!」と表示されれば、「システムのアップデート」は完了です。

    ◎SSHログインのログを残す(メール出すことも可能)


    vim /etc/ssh/sshrc
    を開いて下記を記入して保存
    echo "[`date '+%Y/%m/%d %H:%M:%S'`] $USER $SSH_CLIENT" >> /home/steam/ssh_login_log


    ◎SSHでログインがあった時にメールを出す。
    メールの設定方法下記参照
    https://qiita.com/taro0219/items/d9087b8a646905342270

    ・ssmtpを入れて設定
    sudo yum install ssmtp

    vi /etc/ssmtp/ssmtp.conf

    #/etc/ssmtp.conf -- a config file for sSMTP sendmail.

    #See the ssmtp.conf(5) man page for a more verbose explanation of the
    #available options.

    #The person who gets all mail for userids < 1000
    #Make this empty to disable rewriting.
    #root=postmaster  ← コメントアウト
    root=rw.server7@gmail.com ←アドレス記入

    #The place where the mail goes. The actual machine name is required
    #no MX records are consulted. Commonly mailhosts are named mail.domain.com
    #The example will fit if you are in domain.com and your mailhub is so named.
    #mailhub=mail ←コメントアウト

    #Example for SMTP port number 2525
    #mailhub=mail.your.domain:2525
    #Example for SMTP port number 25 (Standard/RFC)
    #mailhub=mail.your.domain
    #Example for SSL encrypted connection
    #mailhub=mail.your.domain:465

    mailhub=smtp.gmail.com:587 ←smtpサーバ追記

    #Where will the mail seem to come from?
    #RewriteDomain=

    #The full hostname
    #Hostname=

    AuthUser=rx.xxxxxxxxx7@gmail.com ←ログインID
    AuthPass=rw2 ←パスワード

    # Set this to never rewrite the "From:" line (unless not given) and to
    # use that address in the "from line" of the envelope.
    FromLineOverride=YES ←コメントアウト外す

    # Use SSL/TLS to send secure messages to server.
    #UseTLS=YES
    #IMPORTANT: The following line is mandatory for TLS authentication
    TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt ←コメントアウト外す

    # Use SSL/TLS certificate to authenticate against smtp host.
    #UseTLSCert=YES

    # Use this RSA certificate.
    #TLSCert=/etc/pki/tls/private/ssmtp.pem

    # Get enhanced (really enhanced) debugging information in the logs
    # If you want to have debugging of the config file parsing, move this option
    # to the top of the config file and uncomment
    #Debug=YES

    UseSTARTTLS=YES ←追記
    TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt ←追記

    ・メールテスト
    echo -ne "To: a6hara@gmail.com\nSubject: TestSend1\n\n送信テスト1" | ssmtp a6hara@gmail.com



    ◎mailコマンドを使えるようにするには

    https://qiita.com/zaburo/items/a6244d32ce5f5fe2c3d1

    • Linux(CentOS)のmailコマンドでgmailにメールを送りたい。

    環境

    • CentOS7.3(postfix稼働済)

    mailコマンドのインストールと送信テスト

    インストール

    まず、CentOS7.3には標準でmailコマンドが入っていないので入れます。実際はmailx。postfixは稼働しているようです。

    sudo yum install mailx
    

    送信テスト

    とりあえず、送信してみます。

    echo "test mail!" | mail -s "test" xxxxx@gmail.com
    

    残念ながらとどきません。postfixのログを見てみます。

    /var/log/maillog
    .
    Apr  5 17:39:19 localhost postfix/smtp[26381]: connect to gmail-smtp-in.l.google.com[64.233.189.27]:25: Connection refused
    .
    

    どうやらgmailのsmtpに到達できていないようです。

    Gmailの設定

    数年前にGmailのセキュリティーが強化され、普通のメアド(ID)+パスワードではgmailクライアント以外からはメールの送信ができなくなっています。gmailクライアント以外から送信する場合は専用のパスワードを取得する必要があるので取得します。

    アプリパスワードの設定

    [アカウント] -> [ログインとセキュリティ ] -> [アプリパスワード]にて、パスワードを発行します。

    私は2段階認証をONにしているので上記の手順なのかもしれません。2段階認証を設定してない場合は別の設定かもしれません。

    Postfixの設定

    アプリパスワードが取得できたので、Postfixの設定を行います。

    必要コンポーネントのインストール

    まずSASL認証をするために必要なコンポーネントをインストールします。

    sudo yum install cyrus-sasl-plain
    

    main.cfの編集

    mail.cfを編集し必要な記述を行います。gmailのアカウントは外部ファイルで設定します。

    /etc/postfix/main.cf
    ## add for gmail
    relayhost = [smtp.gmail.com]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_sasl_security_options = noanonymous
    smtp_sasl_tls_security_options = noanonymous
    smtp_sasl_mechanism_filter = plain
    smtp_use_tls = yes
    

    パスワードファイルの準備

    gmailのアカウントを下記のフォーマットで記述し、ハッシュ化します。

    /etc/postfix/sasl_passwd
    [smtp.gmail.com]:587 xxxxx@gmail.com:PASSWORD
    

    xxxxx@gmail.comおよびPASSWORDは各自の環境で。

    ハッシュ化します。

    sudo postmap /etc/postfix/sasl_passwd
    sudo chmod 600 /etc/postfix/sasl_passwd
    

    実際利用されるのはsasl_passwd.dbファイルのようなのでsasl_passwdファイルは削除してもいいようです。

    postfix再起動

    設定を反映させるためにpostfixを再起動しま
    ystemctl reload postfix.service


    ◎ログインしたらメールを出すスクリプト
    vim /etc/ssh/sshrc
    (例)
    #!/bin/sh

    MAIL_TO=[通知先メールアドレス]

    TIME=`/bin/date "+%Y/%m/%d/ %H:%M:%S"`

    FROM_ADDR=`echo $SSH_CONNECTION | cut -d' ' -f1`
    FROM_PORT=`echo $SSH_CONNECTION | cut -d' ' -f2`
    FROM_ADDR_PORT=${FROM_ADDR}:${FROM_PORT}

    TO_ADDR=`echo $SSH_CONNECTION | cut -d' ' -f3`
    TO_PORT=`echo $SSH_CONNECTION | cut -d' ' -f4`
    TO_ADDR_PORT=${TO_ADDR}:${TO_PORT}

    echo -e "Time\t${TIME}\nHost\t${HOSTNAME}\nUser\t${USER}\nFrom\t${FROM_ADDR_PORT}\nTo\t${TO_ADDR_PORT}" | /bin/mail -s "[SSH]${HOSTNAME}/${USER} (${TIME})" ${MAIL_TO}



    ◎iptablesの設定方法

    STEP1サーバにログイン

    1リモートコンソールやターミナルソフトなどを利用してroot権限を持ったユーザでサーバにログインします。
    ※ここでは、rootでログインした場合で説明します。
    ※さくらのVPS ベアメタルプランの場合、1行目は「SAKURA Internet [BareMetal Server SERIVCE]」と表示されます。

    STEP2設定の確認

    1iptablesの設定を確認します。

    # iptables -L

    2デフォルトでは以下のルールが存在します。



    3設定ファイルを確認します

    # cat /etc/sysconfig/iptables

    systemctl status firewalld
    起動
    $ systemctl start firewalld
    停止
    $ systemctl stop firewalld


    確認
    firewall-cmd --list-all-zones


    それぞれのゾーンによって情報が表示されているのがわかるかと思います。
    さて、それぞれのゾーンに設定されているサービスを確認するコマンドは以下になります。

    $ firewall-cmd --zone=public --list-services --permanent


    step2-002.png

    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT --- ①
    -A INPUT -p icmp -j ACCEPT --- ②
    -A INPUT -i lo -j ACCEPT --- ③
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT --- ④
    -A INPUT -j REJECT --reject-with icmp-host-prohibited --- ⑤
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited --- ⑥

    ① INPUTについて、すでに確立した通信(established)および関連したパケット(related)を許可する
    ② INPUTについて、ICMPプロトコルの通信を許可する
    ③ INPUTについて、loopback(127.0.0.1) の通信を全て許可する
    ④ INPUTについて、SSHプロトコルで利用する 22番ポートの通信を許可する
    ⑤ INPUTについて、上記のルールに無い通信は接続拒否(REJECT)する。その際、接続元にicmp-host-prohibitedを返す
    ⑥ FORWARDする通信に関して全て接続拒否(REJECT)する。その際、接続元にicmp-host-prohibitedを返す

    STEP3ルールの設定


    ルールの設定について

    外部からの不正アクセスに対してサーバを保護するため、最も一般的な攻撃を遮断するようにファイアウォールルールを
    追加することが出来ます。
    本格的なDDoS攻撃等に対してiptablesのみによる防衛では不十分ですが、ネットワークをスキャンしてセキュリティホールを
    突くボットの被害にあうことを先送りにすることができます。

    1サーバへの攻撃対策のルールを設定します。

    # iptables -I INPUT 2 -p tcp --tcp-flags ALL NONE -j DROP ------①
    # iptables -I INPUT 2 -p tcp ! --syn -m state --state NEW -j DROP ------②
    # iptables -I INPUT 2 -p tcp --tcp-flags ALL ALL -j DROP ------③

    ※上記はあくまで参考の設定例です。設定例として記載したルールは以下の内容です。
    ※ INPUT Chainの2行目にルールを追加します。
    ①データを持たないパケットの接続を破棄する
    ②SYNflood攻撃と思われる接続を破棄する
    ③ステルススキャンと思われる接続を破棄する

    STEP4許可する通信の設定

    1サーバの利用用途に合わせて許可するポート番号を設定します。

    # iptables -I INPUT 5 -p tcp -m tcp --dport ** -j ACCEPT

    iptables -I INPUT 5 -p tcp -m tcp --dport 80 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 443 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 22 -j ACCEPT

    ※「**」は、許可するポート番号です。
    INPUT Chainの 5行目に挿入しています。

    [参考]

    主なポート番号は以下の通りです。


    プロトコル

    ポート番号

    HTTP 80
    HTTP(SSL) 443
    SMTP 25
    SMTP(SSL) 465
    POP3 110
    POP3(SSL) 995
    IMAP 143
    IMAP(SSL) 993
    SSH 22

    ※ポート番号を変更している場合は、この限りではありません。

    2iptablesの設定を設定ファイルに保存します。

    # service iptables save

    STEP5設定の確認

    1iptablesの設定ファイルに設定が記載されているか確認します。

    #iptables-save

    2iptablesの設定を確認します。

    # iptables -L

    3ルールが設定されていれば、「iptablesの設定」は完了です。


    ★conohaVPS初期設定ページ
    https://support.conoha.jp/vps/guide/vpsstartup/?btn_id=vps_guide-vpsstartup

    rootログインを禁止する

    rootアカウントはすべての権限を持つため通常の作業には向いていないので基本的には一般ユーザーで作業を行うことが推奨されます。

    ここではCentOS7でのrootアカウントのSSHログインを禁止にする設定、あわせてパスワード認証を禁止にする設定方法の一例を紹介します。

    [1] コンソールか、ターミナルソフトを利用しVPSへroot権限のあるユーザーでログインします。

    [2] SSH接続の設定ファイルを下記のように変更します。

    # vi /etc/ssh/sshd_config

    #rootログインを禁止にする
    PermitRootLogin yes

    PermitRootLogin no #[yes]を[no]に変えます

    #パスワードログインを禁止にする
    PasswordAuthentication yes

    PasswordAuthentication no #[yes]を[no]に変えます


    [3] SSH接続の設定の変更を反映させます。

    # systemctl reload sshd


    ★以下初期設定後の手順
    ◎ポート開放

    [ipテーブル]
    iptables -I INPUT 5 -p tcp -m tcp --dport 4254 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4255 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4256 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4257 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4258 -j ACCEPT
    iptables -I INPUT 5 -p tcp -m tcp --dport 4259 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4254 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4255 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4256 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4257 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4258 -j ACCEPT
    iptables -I INPUT 5 -p udp -m udp --dport 4259 -j ACCEPT

    service iptables save

    cat /etc/sysconfig/iptables
    iptables -L

    [ファイアーウォール]

    firewall-cmd --zone=public --add-port=4254/tcp --permanent
    firewall-cmd --zone=public --add-port=4255/tcp --permanent
    firewall-cmd --zone=public --add-port=4256/tcp --permanent
    firewall-cmd --zone=public --add-port=4257/tcp --permanent
    firewall-cmd --zone=public --add-port=4258/tcp --permanent
    firewall-cmd --zone=public --add-port=4259/tcp --permanent

    firewall-cmd --zone=public --add-port=4254/udp --permanent
    firewall-cmd --zone=public --add-port=4255/udp --permanent
    firewall-cmd --zone=public --add-port=4256/udp --permanent
    firewall-cmd --zone=public --add-port=4257/udp --permanent
    firewall-cmd --zone=public --add-port=4258/udp --permanent
    firewall-cmd --zone=public --add-port=4259/udp --permanent

    firewall-cmd --reload

    firewall-cmd --list-all

    ◎steamCMDを入れる

    インストール場所作成
    mkdir -p ~/Steamcmd ~/steam-server/match

    yumを最新にする。
    yum -y update

    64bitOSで32bitのCMDを使用するために必要?(centOS6だと失敗する)
    yum -y install curl wget bzip2 gzip unzip python screen gcc glibc.i686 libstdc++.i686 ld-linux.so.2 zlib.i686 libstdc++.so.6

    パスワード設定が終わってない場合に必要
    passwd user

    CMD用のディレクトリ作成
    mkdir -p ~/Steamcmd ~/steam-server/match

    CMDディレクトリに移動
    cd ~/Steamcmd


    CMDのインストールコマンド
    curl -sqL "http://media.steampowered.com/installer/steamcmd_linux.tar.gz" | tar zxvf -


    「steamCMD」
    起動して
    ./steamcmd.sh

    アンノンでログイン
    login anonymous

    インストールディレクトリを指定する。
    force_install_dir /home/user/csgo-server/match

    ライジングワールド 339010をインストールする
    app_update 339010 validate


    JAVA8をインストールする
    yum install java-1.8.0-openjdk
    exit


    ライジングワールドのディレクトリに移動
    cd /home/user/csgo-server/match/


    ライジングワールドサーバの設定ファイルを開く
    設定については下記の備忘録を参照する。
    https://ch.nicovideo.jp/seven-rising

    (設定ファイルゲーム本体)
    vim server.example.properties

    (設定ファイル ゲームでのユーザー権限など)
    移動
    ディレクトリ移動
    cd permissions.example
    ユーザ権限ファイルを開く
    vim default.permissions


    ★ワールドデータを定期バックアップする。


    https://qiita.com/aviscaerulea/items/53123ce5b79c80e31a71


    ◎コピーコマンド(サーバー内で1日ぶn上書きバックアップする)
    \cp -r /home/user/csgo-server/match/Worlds /home/user/Worlds_buckup


    ◎グーグルドライブ(保存先)の設定 ※すでに共有設定になってること!

    CUI で Google ドライブにアクセスできる gdrive というツールを使う。
    公式サイトを参考にコマンドを導入して Google の OAth2 認証をするだけ。
    今回は Linux x64 だが、Windows, Mac 向けのバイナリも提供されている。

    $ wget -O drive https://drive.google.com/uc?id=0B3X9GlR6Embnb095MGxEYmJhY2c
    $ mv drive /usr/sbin/drive
    $ chmod 755 /usr/sbin/drive

    drive コマンド初回実行時に認証用の URL が出力され、認証キーの入力が求められる。
    別途ブラウザから出力された URL にアクセスして認証コード取得してコピペしてあげればいい。
    ※下記の認証用 URL はダミー

    $ drive
    Go to the following link in your browser:
    https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&state=state

    Enter verification code: (認証コード入力)

    認証成功するとドバーッと gdrive の help が出力される。


    細かいオプション付けずにファイル単体をアップロードしてみる。
    ※下記ハッシュ等の一意的な情報はダミー


    $ echo hello > test.txt
    $ drive upload --file test.txt

    Id: vjBwDRvBT4MzCAD97cPhMJZg8Gpk
    Title: test.txt
    Size: 6.0 B
    Created: 2016-01-28 10:54:29
    Modified: 2016-01-28 10:54:29
    Owner: hoge
    Md5sum: 1zbEOm0DC864l6Eu7BSuYPOo4SesXuFN  
    Shared: False
    Parents: oqD9gj6ERKhII58ysa8
    MIME Type: text/plain; charset=utf-8
    Uploaded 'test.txt' at 3.0 B/s, total 6.0 B


    ディレクトリもアップロードしてみたが、これも元の階層のまま期待通り行われた。

    $ mkdir -p a/b/c
    $ echo hello > a/test_a.txt
    $ echo hello > a/b/test_b.txt
    $ echo hello > a/b/c/test_c.txt

    $ drive upload --file a
    ...
    ファイル毎にアップロード結果が出力される
    ...
    Google ドライブ上も階層通り。


    ◎Googleドライブの宛先(ID)を調べる
    https://www.nextdoorwith.info/wp/se/linux-gdrive/
    結論から言うと、目的のフォルダ(Googleドライブ)PCで開いてURLの最後に記載されている値で確認可


    ◎定期バックアップ用のなんちゃんてスクリプトを作る場所はユーザー直下
    再起動の方法を色々と試したけど、無理だったからKillコマンドで無理やりプロセスを止めましたw

    vi RW_backup.sh 
    -----------------------------------------------------

    #!/usr/bin/bash

    pgrep -f java | xargs kill -9
    sleep 3
    cd /home/user/
    sleep 3
    \rm -r /home/user/Worlds_buckup/
    sleep 3
    \cp -r /home/user/csgo-server/match/Worlds /home/user/Worlds_buckup
    sleep 3
    ./drive upload --parent **長い(←ID) --file Worlds_buckup ←./driveの./は不要?
    sleep 70
    cd /home/user/csgo-server/match
    sleep 3
    ./linux_startscript.sh

    ------------------------------------------------------

    ◎RW_backup.shのパーミッションを変更
    chmod 755 RW_server_backup.sh


    ◎centOSのcronを消して、centOS6以前のcronを使う
    $ sudo yum -y install cronie-noanacron
    $ sudo yum -y remove cronie-anacron

    設定はvim /etc/crontab

    設定の確認。
    cat /etc/crontab
    ------------------------------------------

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin
    MAILTO=root

    # For details see man 4 crontabs

    # Example of job definition:
    # .---------------- minute (0 - 59)
    # | .------------- hour (0 - 23)
    # | | .---------- day of month (1 - 31)
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # | | | | |
    # * * * * * user-name command to be executed
    0 4 * * * root . /home/user/RW_server_backup.sh ←4時に毎日バックアップ
    -------------------------------------------

    #crondの再起動
    sudo systemctl restart crond
    #RW鯖起動(suで)
    cd /home/user/csgo-server/match
    ./linux_startscript.sh

    コピーコマンド例
    \cp -r /home/user/csgo-server/match/Worlds /home/user/Worlds_buckup









  • Rising World マルチサーバー 備忘録

    2019-04-16 00:291
    「Rising World」マルチサーバー登録手順の備忘録です。

    ①JAVAのバージョン8を入れる。(8以外未サポート)

    https://www.java.com/ja/download/

    ②サーバークライアントをダウンロードする。
    steamを開いて「ライブラリ → ツール → rising World Dedicated Server」の順番に開いてサーバークライアントをダウンロードする。




    ③ダウンロードされたサーバーフォルダを開く
    C:\Program Files (x86)\Steam\steamapps\common\RisingWorldDedicatedServer


    ④server.example.propertiesを開く(白紙のメモ帳などを開いてドラッグ)
    開くと沢山文字列が表示される・・・
    ようはサーバーの設定ファイルですが、必要な箇所だけ設定する。



    ・以下設定が必要か、設定推奨な箇所です(編集して上書き保存)

    (変更前※デフォルト)→(変更後)
    server_list_visible=true → server_list_visible=true(変更の必要なし)
    ※変更の必要ないが、steamのサーバーリストに載せたくない場合はfalseにする。

    server_memory=2048 → server_memory=4096(任意)
    ※サーバーが使えるメモリ・・・お使いのPC(サーバー)と相談して増やして下さい。

    server_name=Default Rising World Server → server_name=任意の名前
    ※steamのサーバーリストなどに表示される。サーバーの名前です。アルファベット

    server_password= →  server_password=任意のパスワード
    ※サーバーにユーザーが接続するときのパスワードをかける(なしだと認証なし)

    server_port=4255 → server_port=任意の数字(通常は4255でOK)
    ※何らかの理由で4254〜4258のポートが使用できない(プロバイダがIPV6+とか)場合は設定を変える必要あり。

    server_world_name=New World → server_world_name=任意の名前
    ※サーバーリストにも表示されるし、world(セーブデータ)のフォルダ名にもなる。

    server_world_seed= → server_world_seed=使用したいseed値があれば入力
    ※分からなければ設定の必要なし、引越しの場合も必要なし

    settings_default_gamemode=survival → 変更不要
    ※settings_default_gamemode=creativeでクリエイティブモードになる

    settings_max_players=64 → settings_max_players=12
    ※接続可能プレーヤー数、PCと相談

    settings_pvp_enabled=true → settings_pvp_enabled=false
    ※プレイヤーVSプレイヤーを許可するか、攻撃できなくする。

    settings_time_speed=1.75 →
    ※変更の必要はないが、60とかにすると1時間=60分でリアルと同じ時間経過になる。

    ⑤permissions.exampleフォルダを開いて、default.permissionsを開く(メモ帳などで)

    ※C:\Program Files (x86)\Steam\steamapps\common\RisingWorldDedicatedServer\permissions.example¥default.permissions

    ・ようは接続して来たプレーヤーさんの権限の範囲です。
    flyとblueprintsをtrueに変更して、使えるようにしましょう。
    pvpに関する設定がココにもありますね・・・・念のためfalseにしましょう。

    《上書き前》
    chatcolor: 0xFFFFFF
    chatnamecolor: 0xFFFFFF

    commands:
    deny:
    - *
    general:
    fly: false
    pvp: true
    pve: true
    keepinventory: false
    customimages:
    enabled: true
    maxupload: 10
    dimension: 512
    blueprints:
    use: false
    create: false
    creative:
    deny:
    - *


    《上書き後》
    chatcolor: 0xFFFFFF
    chatnamecolor: 0xFFFFFF

    commands:
    deny:
    - *
    general:
    fly: true
    pvp: false
    pve: true
    keepinventory: false
    customimages:
    enabled: true
    maxupload: 10
    dimension: 512
    blueprints:
    use: true
    create: true
    creative:
    deny:
    - *


    ⑥ルーターに接続して、4254〜4258のポートをTCPとUDP共にに解放する。
    ※server_port=4255の部分を変更した場合は、変更した番号の-1〜+3つまり、
    TCPの4254、4255、4256、4257、4258
    UDPの4254、4255、4256、4257、4258
    2種類の5ポート、合計10個の解放が必要です。

    ・ルーター設定は各自のお家ルーターによって、違うのでプロバイダーに聞くか、ルーターの型番(プロバイダ名)+ポート解放でGoogle先生で検索すると大体解決する。

    デフォルトの設定だと下記のように、ブラウザーに192.168.0.1や192.168.1.1などを入力してエンターを押すと、ルータの認証画面に飛べることが多い気がする。

    IDにuserやadomin
    パスワードに0000やpasswordやadomin
    などのチョロい初期設定がしてある可能性が高いです、
    あとで変更すると吉です。








    ・下記は一例
    プロトコル両方(UDP/TCP) LAN側(パソコンのローカルIP) WAN側(0.0.0.0で何でもって意味)
    4254〜4264など範囲指定できる場合もあれば、TCPとUDP全部バラバラに10回記述しないといけない機種もある。

    ※LAN側(パソコンのローカルIP)は下記の方法で調べます。

    コマンドプロンプト起動
    起動方法が分からない人は下記(Google先生以下略)
    https://pc-karuma.net/windows10-open-command-prompt-window/

    コマンドプロンプトで下記のコマンドを入力してエンター
    ipconfig





    ⑦ポート解放が済んだらサーバーを起動する。
    下記にダウンロードされたであろうサーバーのフォルダを開く
    ※C:\Program Files (x86)\Steam\steamapps\common\RisingWorldDedicatedServer



    Win_startscriptをダブルクリックするとサーバが起動します。
    ※rw_serverという名の、exeファイルもあるけどそっちは何故か失敗する?

    コマンドプロンプトが起動して、起動ログ流れるので、
    RISING WORLD SERVER STARTEDと出てたらたぶん起動成功してます。

    最後に表示される下記の部分がサーバのIPアドレスです。
    Steam Servers Connected (247542052 -> 14.193.10.xx) ←例

    サーバーを停止したい場合は、コマンドプロンプトにquitを入力してエンター




    ⑧ゲームを起動して繋いでみる。
    接続テストをしてみる。

    マルチで入ってもらう友人にはゲームクライアントから、
    (例1)14.193.10.33:4255(4255の場合だけ4255は省略可能)
    (例2)14.193.10.33:12999(解放したポートが12999の場合)
    などを入力して貰って、直接IPconnectするか、steamのサーバリストから接続して貰う。







    ⑨steamのサーバーリストに乗るか確認する。
    表示 → サーバー → フィルタの変更 → risingworldを選択







    サーバーリストから接続してみる。
    「server_name=」で設定した名前→ ゲームに参加 → パスワード入力して接続
    →ゲーム起動後に再度パスワード入力








    ⑩ゲームクライアントのリストには何故か乗らない・・・(もう諦めた)

    ⑪ワールドの引越し(セーブデータをサーバーに移動)
    ※実行する前にUSBなどに、バックアップを取りましょう!!!(重要)

    ≪シングルでのセーブデータ≫
    C:\Program Files (x86)\Steam\steamapps\common\RisingWorld\Worlds\New World

    ≪サーバー側の保存先≫
    C:\Program Files (x86)\Steam\steamapps\common\RisingWorldDedicatedServer\Worlds\New World

    New Worldなどのフォルダーごと上書きすればOKの筈です。
    注意点は、④server.example.propertiesで、server_world_name=New Worldを server_world_name=Seven_World(例)に変更した場合は、サーバー側のフォルダ名はSeven_Worldに変更する必要があります。そのフォルダにシングル側のNew Worldの中身(worldParts、New World)を放り込むだけ動くはずです。ただしNew WorldはSeven_Worldにリネームしましょう。

    <番外>
    SteamCMDを使って、app_update 339010でインストールや更新する。
    SteamCMDを使ってインストールする方法もあるが、サーバをインストールするフォルダのパスが違ってくるの注意する・・・・

    Download SteamCMD for Windows: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip

    解凍したsteamcmdフォルダは、Cドライブ直下に置くこと!
    steamcmdをダブルクリックすと、窓が開いてダウンロードが始まる。


    force_install_dir ./Steam/steamapps/common/risingworldserver/
    と入力してインストールするフォルダを指定する。
    C:\steamcmd\steamcmd\risingworldserverにインストール

    login anonymous
    と入力してゲスト?としてログインする

    app_update 339010
    rising worldのID339010でアップデート(インストール)を実行する