Linux

簡單防火牆 (UFW) 和 UPNP

  • June 14, 2012

是否可以將 UFW 配置為允許家庭網路中的電腦之間進行 UPNP?

如果我關閉防火牆,一切正常。我可以在系統日誌中看到防火牆阻止了我。我已經嘗試過各種技巧,​​例如 open 1900、1901、5353,這些似乎都是隨機嘗試。我知道問題是 UPNP 請求一個隨機埠,而 UFW 只是阻止它。

你似乎接近答案了。最簡單的方法是暫時關閉防火牆,讓您的媒體框執行幾分鐘,然後檢查 lsof 的輸出

lsof -i :1025-9999 +c 15

-i 列出與開放埠相對應的“文件”,使用 -i4 限制僅 IPv4。號碼列表將其限制為埠號列表 - 如果您想要所有內容,請忽略它。+c 位只是為您提供與埠關聯的更有意義的命令名稱

netstat -lptu --numeric-ports

這列出了所有活動埠及其協議和源/目標地址。

有了這些資訊,您可以建構一個腳本來正確設置 ufw。這是我的腳本範例:

#!/bin/sh

# Set up local firewall using ufw (default install on Ubuntu)
# @see /etc/services for port names


# obtain server's IP address
SERVERIP=192.168.1.181

# Local Network
LAN="192.168.0.0/255.255.0.0"

# disable firewall
ufw disable

# reset all firewall rules
ufw reset

# set default rules: deny all incoming traffic, allow all outgoing traffic
#ufw default allow incoming
ufw default deny incoming
ufw default allow outgoing

# open port for SSH
ufw allow OpenSSH

# open port for Webmin
ufw allow webmin

# open ports for Samba file sharing
ufw allow from $LAN to   $SERVERIP app Samba
ufw allow to   $LAN from $SERVERIP app Samba

#ufw allow from $LAN to $SERVERIP 137/udp # NetBIOS Name Service
#ufw allow from $LAN to $SERVERIP 138/udp # NetBIOS Datagram Service
#ufw allow from $LAN to $SERVERIP 139/tcp # NetBIOS Session Service
#ufw allow from $LAN to $SERVERIP 445/tcp # Microsoft Directory Service

# open ports for Transmission-Daemon
ufw allow 9091
ufw allow 20500:20599/tcp
ufw allow 20500:20599/udp

# Mediatomb
## upnp service discovery
ufw allow 1900/udp
## Mediatomb management web i/f
ufw allow 49152

# Plex Media Server
## Manage
ufw allow 32400

# open port for MySQL
ufw allow proto tcp from $LAN to any port 3306

# open ports for web services
ufw allow 80
ufw allow 443
ufw allow 8000:9999/tcp
ufw allow 8000:9999/udp

# Deny FTP
ufw deny 21/tcp

# Webmin/usermin allow
ufw allow webmin
ufw allow 20000

# open port for network time protocol (ntpd)
ufw allow ntp

# Allow Firefly (DAAP)
ufw allow 3689

# enable firewall
ufw enable

# list all firewall rules
ufw status verbose

您應該能夠從 Mediatomb 部分看到 uPNP 正在通過 UDP(不是 TCP)在標準埠 1900 上工作,並且雙向開放,這是您的主要埠。但您也可以看到,特定服務還需要許多其他埠。

引用自:https://unix.stackexchange.com/questions/40619