V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
frylkrttj
V2EX  ›  程序员

迫于第一次接触 防火墙

  •  
  •   frylkrttj ·
    linlinggit · 2019-02-05 13:04:07 +08:00 · 9661 次点击
    这是一个创建于 2120 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1、怎么查看 iptables 防火墙状态。

    现在 baidu 出来的很多文章教程都是垃圾,找的很多教程都说是这个命令“ service iptables status ”结果不行。

    希望有懂的出来,说说用什么命令查看 iptables 状态。

    这是我找的其中一个教程,其他基本都是一样。https://blog.csdn.net/bbwangj/article/details/74502967

    2、各种教程都说 nftables 早已进入内核,可为什么还要安装呢?

    3、有没有萌新能看得懂的

    63 条回复    2019-02-07 11:28:19 +08:00
    nameme
        1
    nameme  
       2019-02-05 13:15:49 +08:00
    iptables -L 有规则则启用
    Kinnice
        2
    Kinnice  
       2019-02-05 13:24:12 +08:00 via Android
    发行版是哪个?版本是哪个?
    tadtung
        3
    tadtung  
       2019-02-05 13:26:06 +08:00 via Android
    还是楼上说的用的 centos 哪个版本?
    6 和 7 不同的
    frylkrttj
        4
    frylkrttj  
    OP
       2019-02-05 13:27:30 +08:00
    @nameme 意思是它就是一直开启的吗?是靠有没有给定规则来判断是否开启? 感觉不对吧。

    那为什么有些教程说 如果要开启就 “ systemctl start iptables ”?

    我看过一些教程的理解是 iptables 默认因该是没开启的吧。
    frylkrttj
        5
    frylkrttj  
    OP
       2019-02-05 13:30:05 +08:00
    @Kinnice @tadtung

    是 archlinux 这还分哪个版本吗?
    alvin666
        6
    alvin666  
       2019-02-05 13:31:22 +08:00 via Android
    初次接触建议用 ufw,iptables 就是瑞士军刀,复杂,功能多
    LGA1150
        7
    LGA1150  
       2019-02-05 13:32:38 +08:00 via Android
    iptables 是用户态的设置程序,而不是服务 / 守护进程,规则会写到内核 netfilter 里
    导出全部规则,用 iptables-save
    tadtung
        8
    tadtung  
       2019-02-05 13:36:51 +08:00 via Android
    @frylkrttj archlinux 我自己没用过,我自己服务器一直用 centos 和 debian。
    archlinux 你应该是最小化安装,所以很可能没有 nftables。
    网上多看看 archlinux 相关教程吧。你百度大多搜到的是 centos 这些相关的
    chinvo
        9
    chinvo  
       2019-02-05 13:38:55 +08:00
    1、能不能搜一下
    2、能不能别看 CSDN,全是过期的转载
    3、有,能不能搜一下
    frylkrttj
        11
    frylkrttj  
    OP
       2019-02-05 13:43:58 +08:00
    @chinvo 找来找去就那几个教程,真的找不到才发帖的啦。、

    到 9 楼了也没人说这到底怎么确认 iptables 是否已经开启。

    我的电脑谁我爸给我弄好的,现在我想自己弄弄
    chinvo
        12
    chinvo  
       2019-02-05 13:45:47 +08:00   ❤️ 1
    @frylkrttj #11

    看发行版 wiki
    看鸟哥的书 /博客
    看 man

    这么多途径能了解这些浅薄的知识,你非要选个最麻烦而且你还不那么擅长的——到论坛提问
    frylkrttj
        13
    frylkrttj  
    OP
       2019-02-05 13:46:06 +08:00
    @all 我安装了 gufw 玩了下,但每次用 gufw 配置了开启后,重新启动后开启按钮又变成没开启了。
    hellowes
        14
    hellowes  
       2019-02-05 13:46:09 +08:00
    就算给你 google,你也照样找不到,不要把锅甩给 baidu 和博主,我自己用 baidu 和 CSDN 就能找到
    hellowes
        15
    hellowes  
       2019-02-05 13:47:48 +08:00
    service iptables status 在某些发行版是可用的,你自己不检查一下版本和 Linux 发行版本就喷别人垃圾,建议还是不要碰 linux 了
    frylkrttj
        16
    frylkrttj  
    OP
       2019-02-05 13:48:25 +08:00   ❤️ 1
    @hellowes 那到底怎么确认状态。一楼说的好象是确认规则的,不是确认开启状态的
    hellowes
        17
    hellowes  
       2019-02-05 13:50:42 +08:00
    @frylkrttj Ubuntu 16.04/15.04/14.04? Centos 6/7? Arch? Fedora? 这些信息大家都不知道,没有办法帮助你。

    你看看有没有 man 手册页,直接 man iptables 看手册就行了
    Tounea
        18
    Tounea  
       2019-02-05 13:51:09 +08:00
    service iptables status 这是 centos 查看 iptables 服务状态,不是查看 iptables 防火墙状态,想看 iptables 防火墙状态直接 iptables -L 就可以看到
    Tink
        19
    Tink  
       2019-02-05 14:14:27 +08:00
    iptables -L
    frylkrttj
        20
    frylkrttj  
    OP
       2019-02-05 14:39:15 +08:00
    @Tounea @Tink 我说的状态是指 iptables 是否开启状态。我想大家都明白吧。
    Tounea
        21
    Tounea  
       2019-02-05 14:44:34 +08:00
    @frylkrttj 我说的 iptables 服务状态就是你指的 iptables 是否开启状态
    hyshuang2006
        22
    hyshuang2006  
       2019-02-05 14:58:59 +08:00   ❤️ 2
    官方文档时最好的参考 https://wiki.centos.org/HowTos/Network/IPTables

    另外,刚安装完的 centos 7,默认下 iptables 是没起到作用的,卸载再重装一次 iptables 就看到效果了.

    iptables 的内容需要时间去消化,多、杂,最好是系统地去阅读官方文档。
    jason52
        23
    jason52  
       2019-02-05 15:06:22 +08:00
    w2er
        24
    w2er  
       2019-02-05 15:09:04 +08:00 via iPhone
    默认 iptables 服务都不开吧。如果自己可以选择系统,建议从 ubuntu 玩起,或者 centos,也别装太新的,然后百度搜索比如 Ubuntu+16+iptables
    lrvy
        25
    lrvy  
       2019-02-05 15:10:42 +08:00   ❤️ 1
    Arch 的话建议看官方的 ArchWiki, 写的很全很好
    580a388da131
        26
    580a388da131  
       2019-02-05 15:20:18 +08:00 via iPhone
    archlinux 默认没开防火墙
    recall704
        27
    recall704  
       2019-02-05 15:22:17 +08:00
    frylkrttj
        28
    frylkrttj  
    OP
       2019-02-05 16:27:58 +08:00
    @lrvy archwiki 上就是没说怎么确认是否已经开启
    oovveeaarr
        29
    oovveeaarr  
       2019-02-05 16:38:51 +08:00
    iptalbes 本质上不存在开启不开启的状态,centos 上的 iptables 关闭只是清空规则而已,iptables-save 看规则就行了
    binux
        30
    binux  
       2019-02-05 16:58:56 +08:00 via Android   ❤️ 3
    systemctl status iptables
    LZ 还小,你们要把知识嚼过,喂它嘴里才行

    (我就惯着它,让它长成个废人)
    blless
        31
    blless  
       2019-02-05 16:59:03 +08:00 via Android
    没记错现在系统应该带的是 firewall 吧,自己装 iptables 会跟系统的冲突,要不就卸载 firewall 换 iptables。百度的很多文章基本都过时了,最好直接翻官方配置文档
    blless
        32
    blless  
       2019-02-05 17:00:44 +08:00 via Android
    services 命令也过时好久了,除非你以后进一些公司都是用 centos6 和以下系统。现在用 docker 的基本都是 ubuntu 和 centos7 了,现在都是统一的 systemctl
    frylkrttj
        33
    frylkrttj  
    OP
       2019-02-05 17:14:01 +08:00
    @binux #30 这个命令用过了,就是不知道输出是什么意思
    ismedone
        34
    ismedone  
       2019-02-05 17:17:00 +08:00
    @frylkrttj 你可以贴出来,让人继续嚼烂
    2exploring
        35
    2exploring  
       2019-02-05 17:18:19 +08:00
    iptables 算不上是真正的服务,因为根本就没有驻守进程,服务启用 /关闭只是加载 /清空规则而已。iptables 默认应该是在开启状态的,只是大多数发行版默认规则列表都是空的,要关闭 iptables 你大概需要禁用内核模块这种操作。
    frylkrttj
        36
    frylkrttj  
    OP
       2019-02-05 17:28:22 +08:00
    @ismedone 我懂了,我懂了。

    “ systemctl status iptables ”在#30 楼给我之前我就是试过了,只因为不知道输出是什么意思。

    现在我懂开启或关闭状态是什么提示了,特别鸣谢 @binux

    这是未开启的输出,谁解释下为什么不是直接提示一个未开启标志,看的我一脸懵逼。
    ```
    ● iptables.service - IPv4 Packet Filtering Framework
    Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled; vendor prese>
    Active: inactive (dead)
    ```
    frylkrttj
        37
    frylkrttj  
    OP
       2019-02-05 17:33:57 +08:00
    @2exploring 最不科学的就是它居然是不开启的,开始我也以为是默认开启的。所以上面那提示,我无法联想到它是说未开启。它要输出一个“ Stop ”我还看的懂。
    frylkrttj
        38
    frylkrttj  
    OP
       2019-02-05 17:36:25 +08:00
    @2exploring 更不科学的是我用 gufw 开启了,它还是输出上面那些信息。
    2exploring
        39
    2exploring  
       2019-02-05 17:56:17 +08:00   ❤️ 1
    disable、inactive 那么大的字,谁来救救楼主吧。。
    pickcat
        40
    pickcat  
       2019-02-05 17:57:25 +08:00
    套用一句名言:一切不说系统版本却来问啥啥啥不行的,都是耍流氓(例:windows1.0 和 windows10 之间虽然只差一个英文句号,但差距有多大体会一下~)
    40huo
        41
    40huo  
       2019-02-05 18:09:01 +08:00 via Android
    @frylkrttj active 那一行不就是么。。。
    2exploring
        42
    2exploring  
       2019-02-05 18:17:56 +08:00
    RE #38
    我在 35 楼说的 iptables 有两层意思:( 1 )一个命令行配置防火墙的工具,( 2 ) 1 中的那个工具所配置的内核防火墙模块。
    所以我就说 iptables ( 1 )不是一个真正的服务,它的功能就是修改( 2 )的规则,不管你看到 iptables.service 的状态是什么样,iptables ( 2 )都是开启的(除非你在内核层面禁掉相关功能)。
    Kinnice
        43
    Kinnice  
       2019-02-05 18:23:31 +08:00 via Android
    @40huo 楼主可能不懂 active 的意思,又不屑于去翻译。
    frylkrttj
        44
    frylkrttj  
    OP
       2019-02-05 19:27:34 +08:00
    @2exploring
    @pickcat
    @40huo
    @Kinnice

    我是被 gufw 的开启功能误导了啊,谁知道它开启的竟然不是“ iptables.service ”,导致我认为 gufw 开启后“ systemctl status iptables ”前后输出没有变化,说明这个命令不能查看 iptables 开启状态。

    问题来了 gufw 开启的是什么。
    snw
        45
    snw  
       2019-02-05 19:35:37 +08:00 via Android
    初学 Linux 建议找个大发行版,然后搜教程时一定要带发行版名称和版本。

    Linux 对初学者就是这么不友好,说句不好听的就是“爱用用,不用滚”。
    frylkrttj
        46
    frylkrttj  
    OP
       2019-02-05 19:41:13 +08:00
    @snw 是我爸用过的电脑开始装的就是 archlinux,都用了好久了。
    tz1006
        47
    tz1006  
       2019-02-05 19:48:28 +08:00
    如果不想深入请用 ufw
    Kinnice
        48
    Kinnice  
       2019-02-05 19:53:37 +08:00 via Android
    @frylkrttj gufw 开启的就是 gufw ???你还在怀疑什么???
    Kinnice
        49
    Kinnice  
       2019-02-05 19:56:44 +08:00 via Android
    @frylkrttj 用了好久了???你这个感觉可不像是用了好久啊,gufw 开启的是 gufw,你在 Windows 10 打开 XX 杀毒,难道你打开的是 windows defender ?
    frylkrttj
        50
    frylkrttj  
    OP
       2019-02-05 20:15:24 +08:00
    @Kinnice gufw 是 iptables 前端,操作的当然是后端了。这是基本的逻辑吧。
    luozic
        51
    luozic  
       2019-02-05 21:42:51 +08:00 via iPhone
    真要研究这东西,推荐搞个虚拟机装个 freebsd 研究,linux 的网络层基本照抄的 bsd 系统的
    MasterMonkey
        52
    MasterMonkey  
       2019-02-05 21:56:44 +08:00 via iPhone
    iptables-save

    ip6tables-save
    billwsy
        53
    billwsy  
       2019-02-06 01:02:13 +08:00
    #13 gufw 是 ufw 的前端,ufw 是 iptables (指内核里面那个 netfilter )的前端,iptables 命令也是 iptables (指内核里面那个 netfilter )的前端

    https://help.ubuntu.com/community/UFW
    yuikns
        54
    yuikns  
       2019-02-06 01:49:26 +08:00   ❤️ 1
    动不动就滑坡的,你咋不用 xv6 做桌面机用纸袋机当键盘呢
    kersbal
        55
    kersbal  
       2019-02-06 05:50:54 +08:00   ❤️ 1
    推荐 digitalocean 的文档,这种文档很多都是有悬赏奖励的,所以质量很不错。一篇 ubuntu 的:
    https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-using-iptables-on-ubuntu-14-04

    一篇讲原理的:
    https://www.digitalocean.com/community/tutorials/a-deep-dive-into-iptables-and-netfilter-architecture

    等等
    lulinux
        56
    lulinux  
       2019-02-06 06:39:53 +08:00 via Android
    不标注发行版及其版本号的 Linux 教程都是耍流氓
    pimin
        57
    pimin  
       2019-02-06 08:29:50 +08:00 via Android   ❤️ 1
    您好,我们这里建议您百度一下呢
    Deteriorator
        58
    Deteriorator  
       2019-02-06 09:34:59 +08:00
    新版本一般使用的是 firewalld
    frylkrttj
        59
    frylkrttj  
    OP
       2019-02-06 09:44:12 +08:00
    @billwsy 是真懂,现在我知道是怎么回事了了。

    大家似乎忽略了我的第二条问题。

    2、各种教程都说 nftables 早已进入内核,可为什么还要安装呢?
    Showfom
        60
    Showfom  
       2019-02-06 09:46:42 +08:00 via iPhone   ❤️ 1
    Debian 10 已经用光 nft 了
    mytry
        61
    mytry  
       2019-02-06 10:21:08 +08:00
    @frylkrttj 内核那个是字节码解释器,nft 只是用户态的编译器,把规则翻译成字节码丢给内核执行,这个命令默认是没安装的。
    LGA1150
        62
    LGA1150  
       2019-02-06 14:39:07 +08:00 via Android
    @frylkrttj #59
    首先,发行版的内核模块是可以独立安装的文件
    其次,你总得有个用户态的控制程序吧
    masker
        63
    masker  
       2019-02-07 11:28:19 +08:00
    是培训班出来的没错了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:07 · PVG 05:07 · LAX 13:07 · JFK 16:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.