我在我的新ubuntu服务器上的rc.local中有这个:
iptables -F iptables -A INPUT -i eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT 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 iptables -A OUTPUT -o eth0 -p tcp --dport 9418 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 9418 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 5000 -m state --state NEW,ESTABLISHED -j ACCEPT # Heroku iptables -A INPUT -i eth0 -p tcp --sport 5000 -m state --state ESTABLISHED -j ACCEPT # Heroku iptables -A INPUT -p udp -s 74.207.242.5/32 --source-port 53 -d 0/0 --destination-port 1024:65535 -j ACCEPT iptables -A INPUT -p udp -s 74.207.241.5/32 --source-port 53 -d 0/0 --destination-port 1024:65535 -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT iptables -P INPUT DROP iptables -P FORWARD DROP
9418是Git的港口. 5000是用于管理Heroku应用程序的端口. 74.207.242.5和74.207.241.5是我们的DNS服务器.
你认为这是安全的吗?你能在这看到任何漏洞吗?
更新:为什么阻止OUTPUT很重要?这台机器只能由我使用.
我能看到的唯一主要漏洞是IPv6.你需要ip6tables.如果您的任何服务侦听IPv6(其中许多服务,包括ssh,默认侦听IPv6),则攻击者可以使用它来完全绕过您上面的所有规则.当网络可用时,网络将优先使用IPv6.
原文链接:https://www.f2er.com/ubuntu/348594.html假设您的OUTPUT策略是DROP,那么您已经很好地限制了IPv4.
跳过RELATED选项可能意味着当服务停止并停止监听时,您会获得超时而不是即时拒绝,因为据我所知,TCP RST数据包在此上下文中既不是NEW也不是ESTABLISHED.
要回答您的问题的更新:当它不仅被您使用时.
无论我们多么小心,我们总是遗漏一些东西,或者我们暂时不小心,我们允许其他人对我们的盒子进行某种程度的控制.攻击者一旦拥有一个脚趾就会做的第一件事就是下载一个权限提升工具包,一个rootkit,他们的命令和控制系统以及他们实际想要在盒子上运行的任何东西.限制出站连接意味着他们无法下载该权限提升工具包,这意味着他们无法像Apache用户或Git用户或他们设法攻击的任何人那样运行.没有root权限,他们无法隐藏,也无法修改防火墙.这不会永远阻止攻击者,但它可能会让他停留足够长的时间让你注意到他在那里或者让他感到沮丧,以至于他放弃并且更容易到达某个地方.
上述规则意味着远程文件包含攻击仅在远程文件托管在SSL上时才有效.如果您将代理服务器放在此框和Internet之间并且只允许某些URL模式,则可以在其轨道中停止RFI,同时仍允许正常操作.这是深度防御.