VPS服务器安全教程 – 一个简单的防火墙

防火墙是保护VPS服务器的流行方式。它用于控制哪些网络流量传递到服务器和从服务器传出。通常,到服务器的所有传入端口都被阻止,除了少数服务器的公共端口。如果我们的服务器是一个Web服务器,比如80端口就是开放的。

准备规则

我们将使用iptables来管理我们的防火墙规则。从手册页:iptables - IPv4数据包过滤和NAT的管理工具。

第一步是准备一个包含规则的文本文件:

  1. $ nano /etc/iptables.up.rules

并使用以下内容:

  1. *filter
  2. #  允许所有环回(lo0)流量,并将所有流量下降到不使用lo0的127/8
  3. -A INPUT -i lo -j ACCEPT
  4. -A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
  5. #  接受所有已建立的入站连接
  6. -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  7. #  允许所有出站流量
  8. -A OUTPUT -j ACCEPT
  9. #  允许SSH连接到我们的ssh端口
  10. -A INPUT -p tcp --dport 22 -j ACCEPT
  11. # 打开其他TCP端口(如果你要安装一个web服务器,80)。如果你喜欢,添加更多行这样的内容
  12. -A INPUT -p tcp --dport 80 -j ACCEPT
  13. # 允许 ping
  14. -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
  15. # log iptables被拒绝来电
  16. -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
  17. # 拒绝所有其他的入站 - 默认拒绝,除非有明确允许的策略
  18. -A INPUT -j REJECT
  19. -A FORWARD -j REJECT
  20. COMMIT

上述规则所说的是除端口22(对于ssh和scp)和端口80(Web服务器)外,所有端口都被阻塞。如果要打开更多端口,只需在端口80打开的行下方添加一行。例如,如果要打开端口21(ftp)和端口25(smtp为邮件服务器),增加下面的配置:

  1. ...
  2. -A INPUT -p tcp --dport 80 -j ACCEPT
  3. -A INPUT -p tcp --dport 21 -j ACCEPT
  4. -A INPUT -p tcp --dport 25 -j ACCEPT
  5. ...

如何应用规则:

  1. iptables -F
  1. /sbin/iptables-restore < /etc/iptables.up.rules

规则固化

如果要在重新启动后自动应用防火墙规则,请创建一个脚本:

  1. $ nano /etc/network/if-pre-up.d/iptables

并放这些内容:

  1. #!/bin/sh
  2. /sbin/iptables-restore < /etc/iptables.up.rules

执行:

  1. chmod +x /etc/network/if-pre-up.d/iptables
vultr推广

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: