以下を使用して、いくつかの例外を除いてすべてのトラフィックをブロックしてみましたiptables
。
- ドメイン名システム
- マイサーバー(ポート80のみを使用)
- チームビューア(ポート5938)
- adb接続を許可するポート5555
現在、次のコード行がありますが、必要な方法で動作しません。
// Allow my own server - this seems to work
iptables -A INPUT -s 1.1.1.1 -j ACCEPT
iptables -A OUTPUT -d 1.1.1.1 -j ACCEPT
// Allow DNS requests - dont know if it´s correct
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
// Allow Teamviewer - same as above - dont know if it´s correct
iptables -A INPUT -p tcp --dport 5938 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5938 -j ACCEPT
iptables -A OUTPUT -p udp --dport 5938 -j ACCEPT
iptables -A INPUT -p udp --dport 5938 -j ACCEPT
// Allow ADB - same as above - dont know if it´s correct
iptables -A INPUT -p tcp --dport 5555 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 5555 -j ACCEPT
iptables -A OUTPUT -p udp --dport 5555 -j ACCEPT
iptables -A INPUT -p udp --dport 5555 -j ACCEPT
// Block all other requests
iptables -P INPUT DROP
iptables -P OUTPUT DROP
Teamviewerが接続されず、名前解決が機能せず、adbは接続されません。何か問題があるようですが、それが何であるかよくわかりません。そのドメインをハードコーディングするときに機能する唯一の方法は、私のサーバーに接続することだけです/etc/hosts
。
ここの専門家の一人がiptables
私を助けることができますか?
ベストアンサー1
何が動作しませんか?実際に私の言葉が正しい場合、最初のiptableエントリはすべてのトラフィックtcp / udpを受け入れます。したがって、他のACEも攻撃しません。 HTTPトラフィックのみが必要な場合は、TCPポート80のみを許可する必要があります。
IPtablesは上から下に動作します。サーバーはIPアドレス1.1.1.1を持ち、すべてのパケットの送信元は1.1.1.1です。それ以外の場合、すべての着信トラフィックは送信元xxxxと宛先1.1.1.1を持つため、最初の2つのエントリはすべてのトラフィックと一致します。必要に応じて、最初の2つのルールなしで構成する必要があります。 DNSトラフィックは許可されています:
iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 -j ACCEPT
HTTP / HTTPSトラフィック用のサーバーを設定する必要があります。
iptables -A OUTPUT -p tcp --sport 1024:65535 -m multiport --dports 80,443 -j ACCEPT
Teamviewerは優先的に5938を介してTCP接続を取得するため、次のようにする必要があります。
iptables -A OUTPUT -o eth0 -p tcp --dport 5938 -m state --state NEW -j ACCEPT
私はADBに公開されていないので、ADBについてはよくわかりません。ただし、TCPストリームの場合は、次のようにする必要があります。
iptables -A OUTPUT -p tcp --dport 5555 -j ACCEPT