我试图通过设置一些 iptables 防火墙规则来提高我的服务器安全性。结果是使用 Omniauth 的 Facebook 登录停止工作。在我的日志中,我看到 Facebook 至少将一些包发送到我的服务器端口 37035 和 41198。为什么?这些端口中没有任何运行。
有人可以说我应该打开哪些端口,以便使用 Omniauth 登录的 Facebook 可以在我的网站上重新开始工作。
我应用的规则是:
# 删除所有现有规则 iptables -X # 设置默认规则 iptables -P 输入删除 iptables -P 转发接受 iptables -P 输出接受 # 允许 ssh 进入 iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT # 允许传入的 HTTP iptables -A INPUT -i eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT # 允许传出 SSH iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT # 允许从外部ping iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT # 允许ping其他服务器 iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT # 允许环回访问 iptables -A 输入 -i lo -j 接受 iptables -A 输出 -o lo -j 接受 # 允许发送邮件和后缀 iptables -A INPUT -i eth0 -p tcp --dport 25 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT # 允许 dns 查询 iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT # 防止 dos 攻击 - 如果需要,升级到 hashlimit iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT # 记录丢弃的包 iptables -N 日志记录 iptables -A 输入 -j 记录 iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped:" --log-level 7 iptables -A 日志记录 -j DROP
这是来自我的系统日志的示例日志条目(我的 IP 已过滤)
IPTables Packet Dropped: IN=eth0 OUT= MAC=40:40:ea:31:ac:8d:64:00:f1:cd:1f:7f:08:00 SRC=69.171.224.54 DST=my_ip LEN=56 TOS=0x00 PREC=0x00 TTL=86 ID=0 DF PROTO=TCP SPT=443 DPT=44605 WINDOW=14480 RES=0x00 ACK SYN URGP=0