タグ付けされた質問 「iptables」

iptablesを使用すると、パケットフィルタリング動作を定義するルールを作成できます。

2
iptables --set-mark-異なるインターフェースを介して異なるポートをルーティングする
短編、 3つのインターフェイス、eth0(LAN)、eth1(ADSL)、eth2(4G)。 eth0-> eth1:動作 (ポート80、443、4070)eth0-> eth2:発生しません これは、アイデアのグラフィカルな表現です。 eth2経由のポート80および443、および eth1経由の残りのポート Netscheme: eth0: -ip 10.0.0.1 -net 10.0.0.0/8 -gw 10.0.0.1 (the servers own intf) eth1: -ip 192.168.1.74 -net 192.168.1.0/24 -gw 192.168.1.254 eth2: -ip 192.168.1.91 -net 192.168.0.0/24 -gw 192.168.0.1 この新しいスクリプトは、22と4070を適切なテーブルに転送します。 ただし、そのテーブルに到達した後、eth2に再ルーティングされません。 このスクリプトは、22と4070を除いて機能します! (ポート80はコメント化されておらず動作しますが、間違っているeth1を介して動作します。) modprobe iptable_nat modprobe ip_conntrack echo "1" > /proc/sys/net/ipv4/ip_forward iptables -P INPUT …

4
vpnを使用したネットワーク名前空間のアプリケーションへのポート転送
ネットワーク名前空間を設定し、openvpnでトンネルを確立し、名前空間内でこのトンネルを使用するアプリケーションを起動することができました。これまでのところは良いですが、このアプリケーションはWebインターフェースを介してアクセスでき、LAN内のWebインターフェースにリクエストをルーティングする方法がわかりません。 @schnoukiのガイドに従って、ネットワーク名前空間を設定し、その中でOpenVPNを実行する方法を説明しました ip netns add myvpn ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo ip netns exec myvpn ip link set lo up ip link add vpn0 type veth peer name vpn1 ip link set vpn0 up ip link set vpn1 netns myvpn up ip addr add 10.200.200.1/24 …

2
Linux iptables sshポート転送(martian拒否)
ホームネットワークにNATを実行するLinuxゲートウェイがあります。パケットを透過的に転送したいが、特定のIP /ポート(つまり、VPN以外)にのみ転送したい別のネットワークがあります。使用するIPとポートの例を次に示します。 Source Router Remote Gateway Remote Target 192.168.1.10 -> 192.168.1.1 -> 1.2.3.4 -> 192.168.50.50:5000 ソースマシンが、ルーターから直接ルーティングできるかのように、リモートターゲット上の特定のポートと通信できるようにしたいと思います。ルーターでは、eth0はプライベートネットワークで、eth1はインターネットに直接接続されています。リモートゲートウェイは、sshで接続できる別のLinuxマシンであり、リモートターゲットに直接ルーティングできます。 単純なソリューションでの私の試みは、次のようなルーターでsshポート転送をセットアップすることです。 ssh -L 5000:192.168.50.50:5000 1.2.3.4 これはルーターで正常に機能します。ルーターは現在、ポート5000にローカルに接続できます。したがって、「telnet localhost 5000」は、期待どおりに192.168.50.50:5000に接続されます。 次に、現在確立されているsshトンネルを介して、ソースとファネルからのトラフィックをリダイレクトします。私はこれのためにNATルールを試みました: iptables -t nat -D PREROUTING -i eth0 -p tcp -s 192.168.1.10 --dport 5000 -d 1.2.3.4 -j DNAT --to-destination 127.0.0.1:5000 また、ルーターは既にNATゲートウェイであるため、必要なポストルーティングルールが既にあります。 -A POSTROUTING -s 192.168.1.0/24 -o …

1
Linuxですべてのトラフィックが1つのインターフェイスを通過するようにする方法
受け取ったものを出力する自己記述のインターフェースtun0(TUN / TAPベース)を持っています。 システムのすべてのトラフィックがこのインターフェイスを流れる必要があります。 インターフェイスの役割は次のとおりです。 検閲される可能性のあるパケットを把握し、それらをトンネルします。 他のすべてのトラフィックをそのまま通過させます。 ご想像のとおり、私は反検閲ツールを構築しようとしています。 信頼できるDNSを使用できるのはそこだけなので 、トンネリングに関する決定はtun0プロセス内で行う必要があります。 すべてのトラフィックが自己記述型インターフェースtun0を通過するようにする方法を教えてください。tun0に変更が必要な場合は、そのような変更を提供してください。 以下は、すべてのトラフィックがtun0を通過して失敗するように試行した方法です(pingが失敗します)。 コンパイル gcc tun0.c sudo ./a.out 構成 sudo ip addr add 10.0.0.1/24 dev tun0 テーブルJohnを作成する $ cat /etc/iproute2/rt_tables # # reserved values # 255 local 254 main 253 default 0 unspec # # local # #1 inr.ruhep 200 John …
11 linux  iptables  ip  route 

1
ファイアウォール(iptables)がブリッジ(brctl)に干渉するのはなぜですか?
br02つのインターフェースに「接続」されたブリッジをセットアップしました。 eth0、実際のLANに接続されている物理インターフェース、 vnet0、KVM仮想インターフェース(Windows VMに接続)。 そして、私はフォワードチェーンにこの単一のファイアウォールルールを持っています: iptables -A FORWARD -j REJECT これで、機能している唯一のpingは、VMからホストへのものです。 br0インターフェイスは、私のホストマシンのIPアドレスを所有しています。eth0そして、vnet0ビューのホストの観点から、任意のIPを「所有」しません。Windows VMには静的IP構成があります。 私のiptablesルールをに変更した場合ACCEPT(またはさらに制限の厳しいものを使用した場合iptables -A FORWARD -o br0 -j ACCEPT)、すべてが正常に機能します!(つまり、VMから任意のLANマシンにpingを実行でき、その逆も可能です)。 すべてのIP転送カーネルオプションが無効になります(などnet.ipv4.ip_forward = 0)。 では、netfilterファイアウォールは、有効にさえされていないものをどのようにブロックできるのでしょうか。 さらに、VM-LANトラフィックはeth0、およびのみを意味しvnet0ます。それでも、-o br0「作品」を使用してFORWARDトラフィックを許可するように見えます(ただし、私は慎重にチェックしませんでした)。

1
iptablesのaddrtypeの定義は何ですか?
私はいくつかのbogon ipsを削除するために、フィルターチェーンの1つで原則addrtypeとし-srcてと組み合わせて使用することに熱心です。 -A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB マニュアルページには次のように書かれています addrtype このモジュールは、アドレスタイプに基づいてパケットを照合します。アドレスタイプはカーネルネットワーキングスタック内で使用され、アドレスをさまざまなグループに分類します。そのグループの正確な定義は、特定のレイヤー3プロトコルによって異なります。 次のアドレスタイプが可能です。 未指定のアドレス(つまり0.0.0.0)をUNSPEC ユニキャストアドレスのユニキャスト LOCALローカルアドレス ブロードキャストアドレスをブロードキャストする エニーキャストパケットのANYCAST マルチキャストアドレスのマルチキャスト ブラックホールブラックホールアドレス 到達不能なアドレスに到達できません 禁止されている住所を禁止する スローフィックス NAT FIXME XRESOLVE 正確な定義は明確ではなく、特定のレイヤー3プロトコルに依存すると述べています。これは私が思うことです: ユニキャスト(!BROADCAST、!MULTICAST、!ANYCAST) ローカル(127.0.0.0/8) 放送(*.*.*.255) エニーキャスト(*.*.*.*) マルチキャスト(224.0.0.0/4) 誰もがそれが何を意味するのか、それがiptablesによってどのように実装されているのか(たとえば、地獄がBLACKHOLEであるかをどのようにして知るのか)を明確に知っていますか?
11 iptables 

3
ip6tablesでルールを設定するか、ipv6を無効にする方が良いですか?
次のネットワーク構成があります。 # ifconfig -a eth0 Link encap:Ethernet HWaddr 00:e0:1c:73:02:09 inet addr:10.1.4.41 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::2e0:4cff:fe75:309/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:858600 errors:0 dropped:0 overruns:0 frame:0 TX packets:1069549 errors:0 dropped:0 overruns:5 carrier:0 collisions:0 txqueuelen:1000 RX bytes:142871181 (136.2 MiB) TX bytes:717982640 (684.7 MiB) lo Link encap:Local Loopback inet …
11 iptables  ipv6 

1
パケットが「iptables」によって無効と見なされた理由を理解するにはどうすればよいですか?
iptables無効なパケットをログに記録してドロップするようにいくつかのルールを設定しました(--state INVALID)。ログを読んで、パケットが無効と見なされた理由を理解するにはどうすればよいですか?たとえば、次のとおりです。 Nov 29 22:59:13 htpc-router kernel: [6550193.790402] ::IPT::DROP:: IN=ppp0 OUT= MAC= SRC=31.13.72.7 DST=136.169.151.82 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=5104 DF PROTO=TCP SPT=80 DPT=61597 WINDOW=0 RES=0x00 ACK RST URGP=0

2
Linuxでiptablesを使用してLAN上の特定のユーザーのインターネットアクセスを制限する方法
LANにAとBの2人のユーザーがいるとします。iptablesルールを使用してユーザーAのインターネットアクセスを制限し、ルールを保存して、再起動後もユーザーが引き続き有効になるようにするにはどうすればよいですか。また、ある時点でそのユーザーにアクセスを許可したいとします。再度有効にするにはどうすればよいですか?Ubuntu Linux 10.04を使用しています。私はローカルのsshログインを使用してマシンにログインすることが多いので、コマンドラインからそれを行う方法を誰かが教えてくれるといいですね。

4
IPtablesでのFail2banブロックは、Debian Lennyでは機能しません。[移動されたsshポート]
私は最近、いくつかのセキュリティ保守を行うことにしました。ログを確認したところ、SSHサーバーに対していくつかの試みがありました。それは、私が何かについて読んだら最初は、私はデフォルトの22からSSHポートを遠ざけfail2banの、BlockHostsとDenyHostsを。 私は最初を見てみました。設定は簡単で、すべてが理解可能です。しかし、「保護を調査」しようとすると、テストは失敗します。すべて問題ないようですが、サーバーには引き続きアクセスできます。 私はIPtablesもテストしました:# iptables -I INPUT -j DROP-その後、SSH接続が失われました(つまり、私が望んでいたものです)。その後# iptables -I INPUT -s 84.x.y.z -j DROP、それも働いた。 しかし、Fail2banはどのようなルールを実行しましたか、それは機能しません:($ sudo iptables -L) Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-apache tcp -- anywhere anywhere multiport dports www,https fail2ban-ssh tcp -- anywhere anywhere multiport dports ssh fail2ban-ssh-ddos tcp -- anywhere anywhere multiport …

2
着信SSH接続を許可するIPTablesルール
このスクリプトの目的は、localhost <-> localhostおよび着信SSHトラフィックを除いて、VPN経由のトラフィックのみを許可することです。しかし、SSH経由でスクリプトを実行すると、接続が切断され、vmを再起動する必要があります。スクリプトの何が問題になっていますか? #!/bin/bash iptables -F #Allow over VPN iptables -A INPUT -i tun+ -j ACCEPT iptables -A OUTPUT -o tun+ -j ACCEPT #Localhost iptables -A INPUT -s 127.0.0.1/8 -j ACCEPT iptables -A OUTPUT -d 127.0.0.1/8 -j ACCEPT #VPN iptables -A INPUT -s 123.123.123.123 -j ACCEPT iptables -A OUTPUT -d …
11 iptables 

2
iptables:発信トラフィックをconntrackおよび所有者と照合します。奇妙な滴で動作します
私のiptablesスクリプトでは、できる限り細かいルールを書く実験を行っています。一部のユーザーはセキュリティを確保し、一部は学習課題として、どのユーザーがどのサービスを使用できるかを制限します。 3.6.2カーネルを実行しているDebian 6.0.6でiptables v1.4.16.2を使用します。 しかし、まだよくわからない問題が発生しました。 すべてのユーザーの送信ポート これは完璧に機能します。一般的な状態追跡ルールはありません。 ##発信ポート81 $ IPTABLES -A OUTPUT -p tcp --dport 81 -m conntrack --ctstate NEW、ESTABLISHED -j ACCEPT $ IPTABLES -A INPUT -p tcp --sport 81 -s $ MYIP -m conntrack --ctstate ESTABLISHED -j ACCEPT ユーザーが一致する送信ポート ##ユーザーアカウントの送信ポート80 $ IPTABLES -A OUTPUT --match owner --uid-owner useraccount -p …

3
iptables OUTPUTチェーンでREJECTポリシーを使用できないのはなぜですか?
現在、OUTPUTチェーンをDROPに設定しています。これをREJECTに変更したいのですが、アクセスしようとしているサービスの問題ではなく、ファイアウォールがどこかへのアクセスを妨げているという手がかりがありました(タイムアウトではなく即時拒否)。しかし、iptablesはこれを気にかけていないようです。保存したルールファイルを手動で編集して復元しようとすると、iptables-restore v1.4.15: Can't set policy 'REJECT' on 'OUTPUT' line 22: Bad policy nameルールのロードが拒否されます。これを手動で設定しようとすると(iptables -P OUTPUT REJECT)、取得できますiptables: Bad policy name. Run 'dmesg' for more information.が、dmesgに出力がありません。 適切なルールがカーネルにコンパイルされていることを確認し、それが確実に読み込まれるように再起動しました。 # CONFIG_IP_NF_MATCH_TTL is not set CONFIG_IP_NF_FILTER=y *** CONFIG_IP_NF_TARGET_REJECT=y *** CONFIG_IP_NF_TARGET_LOG=y CONFIG_IP_NF_TARGET_ULOG=y (適用可能なルールを強調するためにアスタリスクを追加) REJECTは有効なポリシー/ターゲット(一般的に)であると私が見つけることができるものはすべて示されていますが、INPUT、FORWARD、またはOUTPUTチェーンに対しては無効であることを示すものは何も見つかりません。私のGoogle-fuは役に立ちません。私はGentooを利用しています。ここに誰か洞察力がありますか?


2
sshを介して別のサーバーを介してyumトラフィックをトンネルする
yumトラフィックをブロックしている企業プロキシの背後でFedoraデスクトップを実行しています(具体的には*.gzおよび*.bz2)。好きなものを何でもダウンロードできるssh経由で別のRedHatマシンにアクセスできます。 実行時yum updateおよびその他のyumコマンド:そのトラフィックをRedHatマシンにルーティングして、ダウンロードを実行することは可能ですか?RedHatマシンにはrootアクセス権がありませんが、ログインしてwgetを使用してファイルをダウンロードできます。もしそうなら、どうですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.