手把手带你配个防火墙规则,告别裸奔!


嘿,朋友!你是不是刚拿到一台云服务器,看着空空如也的安全设置,心里有点发虚,感觉服务器就像在互联网上“裸奔”?别担心,今天咱就一起动手,给服务器穿上一件合身的“防护衣”——配置防火墙规则。咱们就以最常见的 iptables(或者它的现代版本 nftables)为例,来点实实在在的操作。

先唠两句为啥要配这个: 防火墙就是你服务器的门卫,它严格按照你定的规则(Rule)来决定:谁可以进(允许访问),谁不能进(拒绝访问),哪个门(端口)可以走。不设规则,就等于告诉全世界“我家大门常打开”,那可不安全。

来,上干货——基础配置四板斧:

  1. 定个基调:默认全部拒绝 这是安全的第一原则。先关上所有门,再根据需要慢慢开。

    # 设置默认策略:INPUT(进来的流量)默认拒绝,FORWARD(转发的)拒绝,OUTPUT(出去的)允许
    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT

    敲完这个,你现在可能连不上服务器了!别慌,我们马上开必要的“门”。

  2. 给自己留后门:允许SSH连接 管理服务器主要靠SSH(通常是22端口),必须放开,但最好限制只允许你自己的IP,这样最安全。

    # 允许来自特定IP(比如你的办公IP 123.123.123.123)的SSH连接
    sudo iptables -A INPUT -p tcp --dport 22 -s 123.123.123.123 -j ACCEPT
    # 如果你的IP会变,至少先开放给所有IP(配置完记得改!)
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  3. 开Web服务的大门 如果你的服务器是网站,需要开放80(HTTP)和443(HTTPS)端口。

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  4. 别忘了“本地回环” 服务器自己访问自己的服务(比如Web程序连接数据库)需要通过回环接口,这个必须允许。

    sudo iptables -A INPUT -i lo -j ACCEPT

几个很实用的小技巧:

  • 保持已建立的连接: 这条规则很重要,允许你已经建立的网络连接(比如正在进行的SSH会话)正常通信。
    sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 定期保存规则:iptables配置的规则重启后会丢失!记得用iptables-save命令保存到文件,并设置开机自动加载。
  • 现代替代品: 现在很多新系统用firewalld(Red Hat系)或ufw(Ubuntu系),它们更友好。比如在Ubuntu上,sudo ufw allow 22/tcp 一句就能开SSH端口,底层它帮你管好了iptables

最后敲下黑板: 配完规则,务必先测试再保存!特别是远程操作时,确保SSH规则正确,别把自己锁外面。规则顺序也很关键,匹配即停止,所以要把允许的精细规则放在前面,拒绝的宽泛规则放在后面。

防火墙配置不是一劳永逸,根据你跑的服务(比如MySQL、Redis端口)随时调整。慢慢来,从这几条开始,你的服务器就已经比大多数“裸奔”的机器安全多啦!动手试试吧,有不懂的随时来问。


Linux云服务器安全防火墙配置

阅读量:3