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

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

新規登録して質問してみよう
ただいま回答率
85.48%
iptables

iptablesは、一般的なLinuxに備わっているパケットフィルタリング型のファイアウォール機能。パケットフィルタリングルールおよびネットワークアドレス変換ルールを適用することが可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

3757閲覧

iptablesを下記のように設定するとSSHの接続が異常に遅くなる

teityura

総合スコア84

iptables

iptablesは、一般的なLinuxに備わっているパケットフィルタリング型のファイアウォール機能。パケットフィルタリングルールおよびネットワークアドレス変換ルールを適用することが可能です。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

2クリップ

投稿2019/06/22 06:28

前提・実現したいこと

踏み台として利用するサーバーを
安全に利用するために最低限のiptablesを設定したい。

  • ssh(50222)開いており、
  • http(80)が開いており、
  • https(50443)が開いており、

SSHポートフォワードでsshクライアントに50443を使わせたい。

  • 踏み台はyum update等したい(80?)
  • nmap <対象サーバのIP>

されても、使用しているポートがばれないようにしたい

上記を満たすようなiptablesを参考サイトを見ながら、
/etc/sysconfig/iptables を書いてみました。

発生している問題・エラーメッセージ

  • SSHの接続が異常なほどに遅くなる(名前解決に時間がかかるから?)
  • 名前解決ができなくなってる?
  • 現状、対象サーバーにnmapすると、

80番を使っていることがバレてしまう

  • SSHした別サーバーから踏み台サーバの20443番を利用できない
[user@proxy .ssh]# ping 8.8.8.8 -c3 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=51 time=1.56 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=51 time=1.69 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=51 time=1.71 ms --- 8.8.8.8 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2005ms rtt min/avg/max/mdev = 1.561/1.655/1.714/0.067 ms [user@proxy .ssh]# curl -Ivs ifconfig.io * getaddrinfo(3) failed for ifconfig.io:80 * Couldn't resolve host 'ifconfig.io' * Closing connection #0 [user@proxy .ssh]# yum install -y update Loaded plugins: fastestmirror Setting up Install Process Loading mirror speeds from cached hostfile Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=extras&infra=stock error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" [user@other_server]# nmap <対象サーバのIP> Starting Nmap 5.51 ( http://nmap.org ) at 2019-06-22 15:07 JST Nmap scan report for dv.ptr139.ptrcloud.net (対象サーバのIP) Host is up (0.00078s latency). Not shown: 999 filtered ports PORT STATE SERVICE 80/tcp open http

該当のソースコード

vim /etc/sysconfig/iptables

# Reference url # https://knowledge.sakura.ad.jp/4048/ # filter table *filter # Set the policy (-P, --policy chain target) :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] # Accept loopback -A INPUT -i lo -j ACCEPT # Accept established connection -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT # Drop connections for packets that do not have data -A INPUT -p tcp --tcp-flags ALL NONE -j DROP # Drop connections that appear to be SYNflood attacks -A INPUT -p tcp ! --syn -m state --state NEW -j DROP # Drop connections that appear to be stealth scans -A INPUT -p tcp --tcp-flags ALL ALL -j DROP # Accept icmp -A INPUT -p icmp -j ACCEPT # Accept ssh -A INPUT -p tcp -m state --syn --state NEW --dport 50222 -m hashlimit --hashlimit-name t_sshd --hashlimit 1/m --hashlimit-burst 10 --hashlimit-mode srcip --hashlimit-htable-expire 120000 -j ACCEPT # Accept other -A INPUT -m multiport -p tcp --dports 80,20443 -j ACCEPT COMMIT

試したこと

接続が遅い問題に関しては、
ここが起因しているように思えた。
:INPUT DROP [0:0]
:FORWARD DROP [0:0]

全部開けたら、時間がかかることはなくなった。
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]

iptablesの設定方法を調べると、
INPUT, FORWARD チェインを全てDROPにする
ホワイトリスト形式ばかりでてくるのですが、
私と同じ問題が発生していないのか疑問に思っています。

補足情報(FW/ツールのバージョンなど)

SSHポートフォワードでsshクライアントに50443を使わせたい。

:FORWARD DROP [0:0]
とすると、使わせられないと思うのですが、
SSHリモートフォワードさせたクライアントのみに許可する
という書き方はできますか。

iptablesはv1.4.7 でした。
踏み台サーバーはクラウドサービスで動いているVMで、
外部にでるときに、SNATしている。

[user@proxy .ssh]# iptables -v iptables v1.4.7: no command specified

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

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

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

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

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

guest

回答2

0

sshd_config で UseDNS no すると、しあわせになれるかもしれません

投稿2019/06/24 04:20

yukky1201

総合スコア2751

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

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

0

ベストアンサー

名前解決ができなくなってる?

UDP の戻りパケットの許可がないため、DNS の問い合わせ(53/udp)の応答を受け取れません。
-p tcp で TCP に限定する必要はないのでは?

-A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT ↓ -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

現状、対象サーバーにnmapすると、80番を使っていることがバレてしまう。

「Accept other」箇所で許可しているからだと思います。
SSHポートフォワードで 127.0.0.1:80 を使うのであれば、「Accept other」箇所の許可がなくても、lo インターフェースの許可ルールで満たすと思います。

SSHした別サーバーから踏み台サーバの20443番を利用できない。

20443 番がそもそも Listen していないのでは? (50443 番ポートでは?)

投稿2019/06/22 09:14

TaichiYanagiya

総合スコア12146

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問