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

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

ただいまの
回答率

90.13%

Virtual IPのファイアウォール設定について

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,889

soich

score 153

困っていること

あるサーバにVirtual IP(VIP)を割り当てているのですが、
ポートを22番以外で接続しようとしても接続できません

環境

CentOS6.8 RedHat64bit
server1のIPアドレス:192.168.56.001 
server1に振っているVIPアドレス:192.168.56.100

試したこと

ssh接続すると接続することができます。

○sshで接続した場合

# 直接サーバのIPを指定して接続した場合
$ ssh root@192.168.56.001
Last login: Thu Jan 12 21:56:30 2017 from 192.168.56.111
[root@server1 ~]# 

# VIPを指定して接続した場合
$ ssh root@192.168.56.100
Last login: Thu Jan 12 21:56:30 2017 from 192.168.56.111
[root@server1 ~]# 

アプリを使用してVIPに接続したいので、ssh以外でも通るようにしたいのですが、その方法がわかりません。
ファイアウォールの設定かなと思っているのですが、そもそもVIPのファイアウォールってどうやって設定するんだってなっています。

telnetでVIP接続を確認した場合以下のようになりました。
接続したいポートは6379です(サーバIP(192.168.56.001)の場合はどちらのポートも問題なく接続できました)

○telnetで接続した場合

$ telnet 192.168.56.100 22
Trying 192.168.56.100...
Connected to 192.168.56.100.
Escape character is '^]'.

$ telnet 192.168.56.100 6379
Trying 192.168.56.100...
telnet: connect to address 192.168.56.100: Connection refused

どうかおたすけください…
ご回答よろしくお願い致しますmm

追記事項

VIPの設定した際のコマンドです(ifconfig一部伏せてます)

$ sudo ip addr add 192.168.56.100/24 broadcast 192.168.56.255 dev eth0 label eth0:0

$ ifconfig
eth0:0    Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.56.100  Bcast:192.168.56.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

○iptablesの設定(すみませんいろいろ設定してます)

$ vim /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Wed Nov 16 14:24:13 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [31:3364]
-A INPUT -p tcp -m tcp --dport 6379 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -p tcp -m tcp --dport 16379 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -p tcp -m tcp --dport 26379 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -p tcp -m tcp --dport 26380 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -p tcp -m tcp --dport 26381 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Wed Nov 16 14:24:13 2016
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • ynakano

    2017/01/13 12:20

    バーチャルIPをどのように付与したのかその設定についてと、iptablesの設定を追記していただけますか。

    キャンセル

  • soich

    2017/01/13 12:33

    依頼ありがとうございます!iptablesの設定とバーチャルIPの付与したコマンド追加いたしました!

    キャンセル

回答 2

checkベストアンサー

0

お示しのiptablesの設定で192.168.56.1に6379/tcpの疎通が取れるのか何とも言えませんが、6379/tcpで新規TCPセッションを張りたいのであれば、SSH同様に

-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

としたらよいかと思います。

また、iptablesは記述の順番に沿って評価され、ACCEPTやDROPはルールにマッチしたら以降のルールは評価されなくなります。
そこも意識しておいた方が良いです。

もう1点言うと、"netstat -an | grep 6379"で6379/tcpがどのIPアドレスでLISTENしているかも確認する必要があります。
この点も原因になり得ます。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/13 19:11

    すみませんRedis側の設定だったようです…お気づきになってくださりありがとうございます。
    0.0.0.0にしたら内部&外部から接続することができました!
    ありがとうございます。

    Redis側で質問外になってしまうのですが…
    bind 0.0.0.0だとうまくいくのですが、できれば使用するIPのみ指定したいと思っています。
    redis.conf側で
    bind 192.168.56.001 127.0.0.1
    と設定していたのを
    bind 192.168.56.001 127.0.0.1 192.168.56.100
    にしようと思っていて、VIPは複数サーバにbindの「192.168.56.100」を追記して振り分けて使おうと考えています。
    しかしVIPが設定されていないサーバを起動した際に以下のエラーが出てしまい、うまく起動できません。

    Creating Server TCP listening socket 192.168.56.100:6379: bind: Cannot assign requested address

    もしご存知でしたら対応方法をご教授いただければと思いまして…
    よろしくお願い致します。

    キャンセル

  • 2017/01/13 20:57

    複数のサーバに(VIPとは言え)同一のIP(192.168.56.100)を付与する、という意図でしょうか。
    であればそれは不可能です。
    192.168.56.100でredisへのリクエストを待ち受け、それを複数のサーバに分散(ロードバランス)
    したいと言うことであれば、192.168.56.100のアドレスを持つロードバランサを構築する以外にないです。

    なお、お示しのエラーは「サーバに付与されていないIPアドレスでredisの待ち受けを試みようとした」という内容です。

    キャンセル

  • 2017/01/14 14:10

    不可能なんですか…いくらやってもできないわけですね;
    親身に回答していただきありがとうございました!
    ベストアンサーとさせていただきます。

    キャンセル

0

以下で対応出来ると思います。

1.以下の通り編集

#コメントアウト
#-A INPUT -p tcp -m tcp --dport 6379 --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT

#以下を追加(--dport 22の下に)
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT

2.iptablesのルールー再読込

$ sudo service iptables reload

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/01/14 14:12

    今回別の部分で原因があったようでした;
    ご回答いただきありがとうございましたmm

    キャンセル

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

  • ただいまの回答率 90.13%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる