Linux
簡單防火牆 (UFW) 和 UPNP
是否可以將 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 上工作,並且雙向開放,這是您的主要埠。但您也可以看到,特定服務還需要許多其他埠。