Answers:
sudo ufw默认拒绝
sudo ufw允许http
须藤ufw允许https
须藤UFW允许SSH
sudo ufw启用
使用此脚本。
只需确定是否要允许传入的ICMP(ping)即可。
# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
# As the default policies, drop all incoming traffic but allow all
# outgoing traffic. This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT
# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT
# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT
# Reject all other incoming packets
iptables -A INPUT -j REJECT
如对另一个答案的注释中所述,在允许ssh端口之前,您不想丢失连接。从手册页:
“远程管理
当运行ufw enable或通过其initscript启动ufw时,ufw将刷新其链。这是必需的,以便ufw可以保持一致的状态,但是它可能会删除现有的连接(例如ssh)。ufw支持在启用防火墙之前添加规则,因此管理员可以执行以下操作:
ufw allow proto tcp from any to any port 22
在运行“ ufw enable”之前。规则仍将被清除,但是启用防火墙后ssh端口将打开。请注意,一旦ufw被启用,在添加或删除规则时ufw将不会刷新链(但是在修改规则或更改默认策略时会)。
因此,这里是一种使用脚本进行设置的方法。运行此脚本时,您将注销,但运行该脚本后,可以再次通过ssh登录。
将以下内容放入脚本中,并将其命名为start-firewall.sh
#!/bin/sh
ufw allow ssh
ufw enable
ufw default deny
ufw allow http
ufw allow https
然后使其可执行并通过运行
$ chmod + x start-firewall.sh
$ sudo ./start-firewall.sh
要了解更多信息,请阅读手册页。
Quicktables帮助我学习了iptables规则。只需运行该脚本,它将为您生成一个iptables脚本...然后您可以打开它并查看由它询问您的问题所生成的关联命令。这是一个很好的学习资源。
不幸的是,它不再被维护。
要创建设置规则,您需要编辑文件/ etc / default / firehol并更改START_FIREHOL = YES
您可能希望使/etc/firehol/firehol.conf看起来像这样。
version 5
interface any IfAll
client any AnyClient accept
server "ssh http https" accept
# Accept everything from trusted networks
server anystateless AllInside accept src "10.3.27.0/24"
firehol的一大优点是“ try”命令。您可以调整配置文件并进行“ firehol尝试”,如果您通过ssh连接,并且您所做的更改使网络访问中断,那么firehol将还原更改。要使更改真正生效,您必须说提交。
我更喜欢Shorewall。它易于设置,但同时又很灵活。
也许您应该看看http://iptables-tutorial.frozentux.net/iptables-tutorial.html。您也可以在lartc.org上找到更多信息。