約2週間前、私はTCPでのみ実行されるTorリレーの実行を始めました。
したがって、不要なすべてのUDPパケットを破棄したいと思います。
しかし、実際に必要なものが何であるかはわかりません。
私のファイアウォールは通常の動作から約1日後に次のように見えます。私のTCP保護規則に代わってコメントや返信をしないように注意してください。、先ほど個人的な調査をしてみました。
iptables -L -v --line-numbers
Chain INPUT (policy DROP 17862 packets, 1945K bytes)
num pkts bytes target prot opt in out source destination
1 0 0 DROP icmp -- any any anywhere anywhere u32 ! "0x4&0x3fff=0x0" /* ICMP fragmented packets */
2 0 0 DROP icmp -- any any anywhere anywhere length 1492:65535 /* ICMP oversized unfragmented packets */
3 1 1500 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/NONE /* NULL scan */
4 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,PSH,ACK,URG /* Xmas scan */
5 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,PSH,URG /* stealth scan */
6 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,RST,ACK,URG /* pscan 1 */
7 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN/FIN,SYN /* pscan 2 */
8 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,RST/FIN,RST /* pscan 3 */
9 2 104 DROP tcp -- any any anywhere anywhere tcp flags:SYN,RST/SYN,RST /* SYN-RST scan */
10 0 0 DROP tcp -- any any anywhere anywhere tcp flags:ACK,URG/URG /* URG scan */
11 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN /* SYN-FIN scan */
12 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,PSH,URG /* nmap Xmas scan */
13 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN /* FIN scan */
14 0 0 DROP tcp -- any any anywhere anywhere tcp flags:FIN,SYN,RST,PSH,ACK,URG/FIN,SYN,PSH,URG /* nmap-id scan */
15 0 0 DROP all -f any any anywhere anywhere /* fragmented packets */
16 5049 1668K DROP all -- any any anywhere anywhere ctstate INVALID /* invalid packets */
17 1358 795K REJECT tcp -- any any anywhere anywhere ctstate NEW tcp flags:!FIN,SYN,RST,ACK/SYN /* new non-syn packets */ reject-with tcp-reset
18 52 2600 ACCEPT all -- lo any anywhere anywhere /* loopback: compulsory */
19 2588 303K ACCEPT icmp -- any any anywhere anywhere icmp echo-request limit: avg 2/sec burst 5 /* ICMP: ping only */
20 15482 932K ACCEPT tcp -- any any anywhere anywhere ctstate NEW,ESTABLISHED tcp dpt:57329 /* SSH: global obfuscated */
21 97M 54G ACCEPT tcp -- any any anywhere anywhere tcp dpt:9001 /* Tor: OR */
22 54303 4010K ACCEPT tcp -- any any anywhere anywhere tcp dpt:9030 /* Tor: Dir */
23 95M 93G ACCEPT all -- any any anywhere anywhere ctstate RELATED,ESTABLISHED /* Tor: traffic */
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 182M packets, 160G bytes)
num pkts bytes target prot opt in out source destination
私にはおそらくDHCPパケットが浮かんでいますが、私はそれについて知っていることがあまりありません...
私は個人的にネットワーキング作業をしていないので、もし助けていただける方がいらっしゃるなら感謝します。ありがとうございます。
編集する:
#1: 私のサーバーはDHCPクライアント。
#2: ICMP ポリシーを REJECT(reject-with) に変更しました。ICMP管理禁止)、および(再起動後)静的リースを受けるサーバーには影響しません。
ベストアンサー1
すべてのDHCPクライアントは、DHCPサーバーから実際のIPアドレスを取得するまで、ソースアドレス(通常は許可されていません)に0.0.0.0を含むパケットを送信する必要があるため、LinuxではRAWソケットを使用する必要があります。
副作用としてiptablesフィルタを完全にバイパスします。もしフィルタリングを実行しているシステムでDHCPクライアントを実行します。システムが他のホストのブリッジまたはルーターとして機能しない場合は、DHCPのUDP要件を無視できます。
ただし、注意事項または他のファイアウォールソリューションを使用している場合:DHCPクライアントの場合は、ポート68から着信UDPパケットを受け入れる必要があります。理論的には、これらのパケットの送信元ポート番号は67でなければなりません。 DHCP サーバーは IP アドレスを ping しようとすることもあります。
DHCPを使用する際の注意点は、有効なIPアドレスがなくても、ローカルネットワークのブロードキャストアドレスまたは255.255.255.255を宛先アドレスとして使用してパケットが到着できることです。初期DHCPリースを取得した後、更新は通常のユニキャストで行うことができます。
DHCPサーバーの場合は、着信UDPパケットにポート67を許可する必要があります。
UDPのもう一つの可能なユーザーはDNSです。速度を向上させるためにUDPを使用してDNSクエリを送信できますが、応答が大きすぎて単一のUDPパケットに収まらない場合、DNSサーバーは属性が追加されたUDPパケットに収まるほど多くの応答を送信します。完全な回答が必要な場合は、TCP経由でクエリを再送信してください。」
NTP(Network Time Protocol)もUDP(ポート番号123)を使用します。メッセージの内容が本質的に「このパケットが送信されたときの時間はxx:xx:xx.xxxxxx ...でした。私が知っているのと同じくらい正確です」意味がありません。送信中に時間信号が失われた場合は、古い信号の再送信を要求せずに、代わりに新しい信号を要求(または待機)します。