質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

2回答

4650閲覧

TeamSpeak3サーバー設置時のiptables設定(さくらVPS)

Mukudori6

総合スコア7

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

2グッド

0クリップ

投稿2016/01/16 15:09

編集2016/01/17 15:00

###【解決したい問題】
TeamSpeak3をさくらVPSのUbuntuサーバーに導入したいのですが、
参考サイト等を基にiptablesを設定しても上手く通信を確立できません。
適切なiptablesの設定を教えてください。よろしくお願いします。

※iptables抜きでのTeamSpeak3導入と動作確認までは全て完了しています。

###【質問までの流れ】

  1. さくらVPS、Ubuntu server、TeamSpeak3サーバーは、いずれも初利用
  2. Ubuntuサーバーの初期設定(iptables除く)とTeamSpeak3の導入は成功
  3. iptablesを設定した段階で、TeamSpeak3サーバーへの接続がクライアントからできなくなる
  4. 各サイト(文末に記載)を参考にあれこれ試し、ごちゃごちゃになって原因が特定できずOSごと再インストールを何度か繰り返す
  5. OSインストールと初期設定、TeamSpeak3導入完了の状態で一度質問してみよう(今ここ)

###【iptablesの設定】
※#は、質問文記載の為に全角に置き換えたもの

/etc/profile.d/iptables_set.sh

#flush
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X

#Teamspeak
iptables -A INPUT -p udp --dport 9987 -j ACCEPT
iptables -A INPUT -p udp --sport 9987 -j ACCEPT

iptables -A INPUT -p tcp --dport 30033 -j ACCEPT
iptables -A INPUT -p tcp --sport 30033 -j ACCEPT

iptables -A INPUT -p tcp --dport 10011 -j ACCEPT
iptables -A INPUT -p tcp --sport 10011 -j ACCEPT

#HTTP(s)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --sport 80 -j ACCEPT

iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --sport 443 -j ACCEPT

#SSH
iptables -A INPUT -p tcp --dport 10022 -j ACCEPT
iptables -A INPUT -p tcp --sport 10022 -j ACCEPT

#DNS
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -j ACCEPT

#SECURE
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

service iptables save
service iptables restart

###【構成】
<ユーザー>
root : iptablesの設定ファイルを/etc/profile.d/iptables_set.shで保持
管理用ユーザー : ログインと各種操作用
TeamSpeakユーザー : homeディレクトリにTeamSpeak3のパッケージを保持、sudo権限なし

<インストール済みパッケージ>
「vim」「sysv-rc-conf」「iptables」(rootで導入)
日本語化は未導入

<停止させたデーモン>
「dns-clean」「grub-common」「ondemand」「pppd-dns」「rsync」

<停止させたコンソール>
/etc/init/tty2.conf ~ tty6.conf まで停止中

<SSHの設定>
/etc/ssh/sshd_config
#ポート番号を 22 (デフォルト)から10022へ変更する
Port 10022
#SSHのプロトコルをSSH2のみ対応とする
Protocol 2
#rootでのログインを不可とする
PermitRootLogin no
#パスワードでのログインを許可する
PasswordAuthentication yes
#パスワードなしでのログインを不可とする
PermitEmptyPasswords no
#管理用ユーザだけログインを許可する
AllowUsers 管理用ユーザー名

###【環境】
サーバーOS:Ubuntu server 14.04 - 64bit (新規インストール)
https://help.sakura.ad.jp/app/answers/detail/a_id/2403/~/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0os%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89---ubuntu-12.04%2F14.04

サーバー:さくらVPS 石狩リージョン
http://vps.sakura.ad.jp/

今回動作させたいソフトウェア:TeamSpeak3 (ボイスチャットのサーバー)
http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.11.4/teamspeak3-server_linux-amd64-3.0.11.4.tar.gz
※実際にwgetしたTeamSpeak3サーバー用ファイル(Linux 64bit用)

###【参考にしたサイト】
【iptables】TeamSpeak3向けのiptables設定 VPS版(英語フォーラム)
http://forum.teamspeak.com/threads/108259-iptables-rules

【基本設定】評判のさくらのVPSを使うときに最初にやっておきたいこと(Ubuntu編)
http://server-setting.info/ubuntu/first-setting-ubuntu-server.html

【TeamSpeak3の導入】TS3 wiki サーバ/Linux
http://hovel.arcenserv.info/ts3/?%E3%82%B5%E3%83%BC%E3%83%90%2FLinux

【さくらVPS公式】iptablesの設定
https://help.sakura.ad.jp/app/answers/detail/a_id/2423/~/iptables%E3%81%AE%E8%A8%AD%E5%AE%9A%E6%96%B9%E6%B3%95

【TS3 iptables設定例】備忘録: [CentOS] TeamSpeak 3 サーバー構築
http://tsubasa3611.blog130.fc2.com/blog-entry-169.html

izkn, ikuwow👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/01/17 00:59

質問の「TeamSpeak3サーバーへの接続がクライアントからできなくなる 」の部分ですが、具体的にご呈示ください。 iptableでは、SSHとかDNSとか、機能ごとに分類されていますね?
退会済みユーザー

退会済みユーザー

2016/01/17 05:40

「rc.local」を停止されたのは、なぜでしょうか?下手すると、何もサービスやデバイスがUPしない事も。。。。
Mukudori6

2016/01/17 14:53

「rc.local」の停止については誤記でしたので修正しました。
Mukudori6

2016/01/17 14:57

iptables設定前の段階では、TeamSpeak3クライアントからの接続、第三者との通話テストに成功していますが、iptables導入後にクライアントから接続を行ったところ「Failed to connect to server」が表示され、接続できません。当初は「【基本設定】評判のさくらのVPSを使うときに最初にやっておきたいこと(Ubuntu編)」のみを参考に設定していたのですが、上記の症状が発生するので「iptables TeamSpeak3」や「さくらVPS iptables」等で調べて対応して現在の状態になりました。
guest

回答2

0

ベストアンサー

ubuntu なら iptables 直接ではなく、ufw を使った方がいいと思いますが、せっかくなので iptables で進めます。

###設定スクリプトについて
/etc/profile.d/iptables_set.sh に設定すると、すべてのユーザーのシェル(Bourne Shell系)が起動したとき(実際には iptables の実行に root 権限が必要なので、root でシェルが起動したとき)に実行されます。
つまり、root のシェルが起動するたびに、iptables のルールがリセットされ、再設定されることになり、よくないです。

参考URL「【基本設定】評判のさくらのVPSを使うときに最初にやっておきたいこと(Ubuntu編)」の「6. ファイアウォール(iptables)の設定を行う。」に記載のとおり、ルールを設定した状態で iptables-save コマンドで保存しておき、OS 起動時に iptables-restore で読み込むようにするといいと思います。

###iptables のルールについて
まず、ルールを flush した直後に以下のルールを設定しておいた方がいいでしょう。

  • 全ルールを削除 (nat, mangle テーブルだけでなく、filter も)
iptables -F iptables -t nat -F iptables -t mangle -F
  • lo はすべて許可
iptables -A INPUT -i lo -j ACCEPT
  • 戻りパケットはすべて許可
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

つぎに、各サービスへの接続を許可します。
"--dport" だけでよく、"--sport" は必要ないのではないかと思います。

iptables -A INPUT -p udp --dport 9987 -j ACCEPT iptables -A INPUT -p tcp --dport 30033 -j ACCEPT iptables -A INPUT -p tcp --dport 10011 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport 10022 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT

デフォルトポリシーはそのまま。

iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT

投稿2016/01/17 07:07

編集2016/01/17 07:17
TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mukudori6

2016/01/17 15:15

【現在、回答を元に初期設定からやり直し中です。】 以下、何故このようになったのか記載します。 回答ありがとうございます。「/etc/profile.d/」を使ったのは、シェルの自動実行方法を調べた際に、「[ubuntu]ログイン時にシェルスクリプトを自動実行する」http://d.hatena.ne.jp/elsal/20090106/1231241592 を発見したので、これを参考に導入していました。 「さくらVPS」で「TeamSpeak3サーバー」を「Ubuntu」で運用した解説が見つからなかったので継ぎ接ぎの知識で運用しようとした結果です。 「セキュリティを適切に設定しないと踏み台などに悪用され第三者に迷惑をかける」程度の認識はありましたので、「評判のさくらのVPSを使うときに最初にやっておきたいこと」で紹介されたiptablesの導入に成功するまで非作業時はサーバー電源を落としてトライ&エラーを繰り返し、teratailにたどりつきました。ufwにもいずれ挑戦してみたいと考えています。
Mukudori6

2016/01/17 16:50

【報告】解決しました。 細かい解説を加えていただいた事で色々と調べる事ができ、iptablesについて理解が深まりました。回答ありがとうございます。 後進の為に、今回行った全ての作業内容を下記の別コメントで記述しておきます。
Mukudori6

2016/01/18 06:29 編集

1.Ubuntu14.04をさくらVPSサーバーにインストール(この時に管理用ユーザーも作成) 【参考】カスタムOSインストールガイド - Ubuntu 12.04/14.04 https://help.sakura.ad.jp/app/answers/detail/a_id/2403/~/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0os%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89---ubuntu-12.04%2F14.04 2.rootのパスワードを設定 sudo passwd root 【参考】ubuntuのrootパスワード設定、変更(CLI) http://qiita.com/tamamius/items/cf84dc40f65a1af30923 <<<ここから以下、下記参考>>> 【参考】評判のさくらのVPSを使うときに最初にやっておきたいこと(Ubuntu編) http://server-setting.info/ubuntu/first-setting-ubuntu-server.html 3.Ubuntu Serverを最新にアップデート sudo apt-get update sudo apt-get upgrade ※updateでアップデートリスト取得、upgradeでアップデート実施 4.「iptables」「vim」「sysv-rc-conf」のインストール sudo apt-get -y install iptables sudo apt-get -y install vim sudo apt-get -y install sysv-rc-conf ※-yで自動的にy/n?にyで返答、installでインストール実施 5.vimを標準エディタに設定 vim ~管理用ユーザー名/.bash_profile ----------------------------------------------------- # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs PATH=$PATH:$HOME/bin:/sbin:/usr/sbin # alias alias vi='vim' export PATH ----------------------------------------------------- ※ログイン状態なのでsource ~管理用ユーザー名/.bash_profileを実行 6.SSHのポートを変更 sudo vi /etc/ssh/sshd_config ----------------------------------------------------- # ポート番号を 22 (デフォルト)から10022へ変更する #Port 22 Port 10022 # SSHのプロトコルをSSH2のみ対応とする Protocol 2 # rootでのログインを不可とする PermitRootLogin no # パスワードでのログインを許可する PasswordAuthentication yes # パスワードなしでのログインを不可とする PermitEmptyPasswords no # 管理者用ユーザーだけログインを許可する AllowUsers 管理者用ユーザー名 ----------------------------------------------------- SSH設定を読み込み sudo reload ssh
Mukudori6

2016/01/18 06:24

7.管理用ユーザーでログアウトと再ログインを実施 logout 8.iptablesの設定 【参考】 TeamSpeak3サーバー設置時のiptables設定(さくらVPS)の回答 https://teratail.com/questions/24838 sudo mkdir /etc/network/iptables/ sudo vi /etc/network/iptables/set_iptables ------------------------------------------- #!/bin/sh iptables --flush #reset rule iptables -F iptables -t nat -F iptables -t mangle -F #lo accept iptables -A INPUT -i lo -j ACCEPT #return packet accept iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #service accept iptables -A INPUT -p udp --dport 9987 -j ACCEPT iptables -A INPUT -p tcp --dport 30033 -j ACCEPT iptables -A INPUT -p tcp --dport 10011 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p tcp --dport 10022 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT #default policy iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT /sbin/iptables-save > /etc/network/iptables/iptables.db ------------------------------------------- 実行権限を付与 sudo chmod +x /etc/network/iptables/set_iptables sudo /etc/network/iptables/set_iptables ディレクトリ内部を確認 ls /etc/network/iptables/ iptables.db set_iptables 9.ネットワーク起動時にiptables設定を行うスクリプトを作成 sudo vi /etc/network/if-pre-up.d/load_iptables ------------------------------------------- #!/bin/sh /sbin/iptables-restore < /etc/network/iptables/iptables.db ------------------------------------------- 実行権限を付与 sudo chmod +x /etc/network/if-pre-up.d/load_iptables 10.不要なデーモンの自動停止 【参考】自動起動、rc.local、init.d。 http://walkwithubuntu.blog.fc2.com/blog-entry-239.html 【参考】[linux] update-rc.dでマシン起動と終了時にiptablesルールスクリプトを走らせる。 http://za.toypark.in/html/2009/10-16.html sudo vi /etc/init.d/stop_daemon ------------------------------------------- #!/bin/bash sysv-rc-conf dns-clean off sysv-rc-conf grub-common off sysv-rc-conf ondemand off sysv-rc-conf pppd-dns off sysv-rc-conf rsync off ------------------------------------------- sudo chmod +x /etc/init.d/stop_daemon sudo update-rc.d stop_daemon defaults 11.不要なコンソールの無効化 sudo vi /etc/init/tty2.conf sudo vi /etc/init/tty3.conf sudo vi /etc/init/tty4.conf sudo vi /etc/init/tty5.conf sudo vi /etc/init/tty6.conf で start on runlevel [23]を#コメントアウト 12.システム再起動 sudo reboot
Mukudori6

2016/01/18 06:24

<<<ここから以下、下記参考>>> 【参考】Team Speak wiki サーバ/Linux http://hovel.arcenserv.info/ts3/?%E3%82%B5%E3%83%BC%E3%83%90%2FLinux 13.TeamSpeak3管理ユーザーの作成 sudo adduser TeamSpeak3管理ユーザー名 ユーザー切り替え su - TeamSpeak3管理ユーザー名 14.TeamSpeak3ソフトウェアのダウンロード 【参考】使ってるUbuntuが64bitなのか32bitなのか確認する http://qiita.com/ottyajp/items/5fb5ce6cd452073bd822 uname -a 【参考(英語)】How-To install TeamSpeak 3.0.0 Server | CentOS (TeamSpeak3をwgetでダウンロード) http://forum.teamspeak.com/threads/67834-How-To-install-TeamSpeak-3-0-0-Server-CentOS wget http://teamspeak.gameserver.gamed.de/ts3/releases/3.0.11.4/teamspeak3-server_linux-amd64-3.0.11.4.tar.gz 15.TeamSpeak3のインストール tar zxf ダウンロードしたTeamSpeak3のファイル名.tar.gz 16.TeamSpeak3の起動 ./TeamSpeak3用のディレクトリ名/ts3server_startscript.sh start 表示されたToken(管理者認証用パスワード)をメモ TeamSpeak3クライアントを起動し、さくらVPSから割り当てられた自サーバーのIPアドレスに接続 最初のログインで「Privilege tokenもしくはkey」を要求されるので先ほどのメモ内容を入力 TeamSpeak3サーバーを停止させたい場合 ./TeamSpeak3用のディレクトリ名/ts3server_startscript.sh stop
guest

0

とりあえず・・・・・

<SSHの設定> /etc/ssh/sshd_config #ポート番号を 22 (デフォルト)から10022へ変更する Port 10022
#SSH iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --sport 22 -j ACCEPT

投稿2016/01/17 01:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mukudori6

2016/01/17 15:00

申し訳ありません。こちらもソースコード転載時の修正漏れでしたので修正しました。 実際には #SSH iptables -A INPUT -p tcp --dport 10022 -j ACCEPT iptables -A INPUT -p tcp --sport 10022 -j ACCEPT になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問