iptables防火墙设置-基础

早就听闻iptables很难了,也一直没有学.但是呢,这么基础和重要的东西不掌握点总觉得缺点什么.是的,关闭端口/拒绝访问都不会,要我何用?


  • archlinux安装系统的时候默认就已经安装好了iptables,只是没有开启而已,不信我们看一下就知道了

  • arch wiki上说开启这个服务首先需要有 /etc/iptables/iptables.rules这个文件,默认是没有的(但是我的系统上有是什么鬼?),没有就自己新建一个

    sudo touch /etc/iptables/iptables.rules

    或者复制一个

    sudo cp /etc/iptables/empty.rules /etc/iptables/iptables.rules
  • 然后就可以启动了

    sudo systemctl start iptables

    如果想要开机自动启动的话,就这样设置

    sudo systemctl enable iptables
  • 如果是使用的ipv6那么就这样设置(多个6而已)

    sudo systemctl start ip6tables
    sudo systemctl enable ip6tables

    等等,我启动时竟然出错了?
    但是我启动服务时出错了我
    终于找到原因了,那个iptables.rules文件中说了要清空内容,但是默认是没有清空的,删掉之后再启动就OK了(所以创建这个文件时还是用touch吧,不要copy的好)

  • 可能现在写规则还是会出现一些错误提示,重启一下就ok

  • 现在来写第一条规则,了解一下怎么保存规则的
    我想阻止别人ping 我的ip地址

    iptables -A INPUT -p icmp -j DROP

    查看写的这条规则:

    sudo iptables -nvL

    现在写的这个可以临时生效,只要重启后就失效了,所以要保存这条规则,需将规则保存在/etc/iptables/iptables-rules
    这条命令需要root权限,但是sudo来执行的话,好像有点问题.所以切换root用户操作

    su
    iptables-save > /etc/iptables/iptables-rules

    搞定
    至此 ,在别的电脑上ping我的ip就ping不通了


开心