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

迫于第一次接触 防火墙

  •  
  •   frylkrttj · 255 天前 · 7398 次点击
    这是一个创建于 255 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
        1
    nameme   255 天前
    iptables -L 有规则则启用
        2
    Kinnice   255 天前 via Android
    发行版是哪个?版本是哪个?
        3
    tadtung   255 天前 via Android
    还是楼上说的用的 centos 哪个版本?
    6 和 7 不同的
        4
    frylkrttj   255 天前
    @nameme 意思是它就是一直开启的吗?是靠有没有给定规则来判断是否开启? 感觉不对吧。

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

    我看过一些教程的理解是 iptables 默认因该是没开启的吧。
        5
    frylkrttj   255 天前
    @Kinnice @tadtung

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

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

    我的电脑谁我爸给我弄好的,现在我想自己弄弄
        12
    chinvo   255 天前   ♥ 1
    @frylkrttj #11

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

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

    你看看有没有 man 手册页,直接 man iptables 看手册就行了
        18
    Tounea   255 天前
    service iptables status 这是 centos 查看 iptables 服务状态,不是查看 iptables 防火墙状态,想看 iptables 防火墙状态直接 iptables -L 就可以看到
        19
    Tink   255 天前
    iptables -L
        20
    frylkrttj   255 天前
    @Tounea @Tink 我说的状态是指 iptables 是否开启状态。我想大家都明白吧。
        21
    Tounea   255 天前
    @frylkrttj 我说的 iptables 服务状态就是你指的 iptables 是否开启状态
        22
    hyshuang2006   255 天前   ♥ 2
    官方文档时最好的参考 https://wiki.centos.org/HowTos/Network/IPTables

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

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

    (我就惯着它,让它长成个废人)
        31
    blless   255 天前 via Android
    没记错现在系统应该带的是 firewall 吧,自己装 iptables 会跟系统的冲突,要不就卸载 firewall 换 iptables。百度的很多文章基本都过时了,最好直接翻官方配置文档
        32
    blless   255 天前 via Android
    services 命令也过时好久了,除非你以后进一些公司都是用 centos6 和以下系统。现在用 docker 的基本都是 ubuntu 和 centos7 了,现在都是统一的 systemctl
        33
    frylkrttj   255 天前
    @binux #30 这个命令用过了,就是不知道输出是什么意思
        34
    ismedone   255 天前
    @frylkrttj 你可以贴出来,让人继续嚼烂
        35
    2exploring   255 天前
    iptables 算不上是真正的服务,因为根本就没有驻守进程,服务启用 /关闭只是加载 /清空规则而已。iptables 默认应该是在开启状态的,只是大多数发行版默认规则列表都是空的,要关闭 iptables 你大概需要禁用内核模块这种操作。
        36
    frylkrttj   255 天前
    @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)
    ```
        37
    frylkrttj   255 天前
    @2exploring 最不科学的就是它居然是不开启的,开始我也以为是默认开启的。所以上面那提示,我无法联想到它是说未开启。它要输出一个“ Stop ”我还看的懂。
        38
    frylkrttj   255 天前
    @2exploring 更不科学的是我用 gufw 开启了,它还是输出上面那些信息。
        39
    2exploring   255 天前   ♥ 1
    disable、inactive 那么大的字,谁来救救楼主吧。。
        40
    pickcat   255 天前
    套用一句名言:一切不说系统版本却来问啥啥啥不行的,都是耍流氓(例:windows1.0 和 windows10 之间虽然只差一个英文句号,但差距有多大体会一下~)
        41
    40huo   255 天前 via Android
    @frylkrttj active 那一行不就是么。。。
        42
    2exploring   255 天前
    RE #38
    我在 35 楼说的 iptables 有两层意思:( 1 )一个命令行配置防火墙的工具,( 2 ) 1 中的那个工具所配置的内核防火墙模块。
    所以我就说 iptables ( 1 )不是一个真正的服务,它的功能就是修改( 2 )的规则,不管你看到 iptables.service 的状态是什么样,iptables ( 2 )都是开启的(除非你在内核层面禁掉相关功能)。
        43
    Kinnice   255 天前 via Android
    @40huo 楼主可能不懂 active 的意思,又不屑于去翻译。
        44
    frylkrttj   255 天前
    @2exploring
    @pickcat
    @40huo
    @Kinnice

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

    问题来了 gufw 开启的是什么。
        45
    snw   255 天前 via Android
    初学 Linux 建议找个大发行版,然后搜教程时一定要带发行版名称和版本。

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

    ip6tables-save
        53
    billwsy   255 天前
    #13 gufw 是 ufw 的前端,ufw 是 iptables (指内核里面那个 netfilter )的前端,iptables 命令也是 iptables (指内核里面那个 netfilter )的前端

    https://help.ubuntu.com/community/UFW
        54
    yuikns   255 天前   ♥ 1
    动不动就滑坡的,你咋不用 xv6 做桌面机用纸袋机当键盘呢
        55
    kersbal   255 天前   ♥ 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

    等等
        56
    lulinux   255 天前 via Android
    不标注发行版及其版本号的 Linux 教程都是耍流氓
        57
    pimin   255 天前 via Android   ♥ 1
    您好,我们这里建议您百度一下呢
        58
    Deteriorator   255 天前
    新版本一般使用的是 firewalld
        59
    frylkrttj   255 天前
    @billwsy 是真懂,现在我知道是怎么回事了了。

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

    2、各种教程都说 nftables 早已进入内核,可为什么还要安装呢?
        60
    Showfom   255 天前 via iPhone   ♥ 1
    Debian 10 已经用光 nft 了
        61
    mytry   255 天前
    @frylkrttj 内核那个是字节码解释器,nft 只是用户态的编译器,把规则翻译成字节码丢给内核执行,这个命令默认是没安装的。
        62
    LGA1150   254 天前 via Android
    @frylkrttj #59
    首先,发行版的内核模块是可以独立安装的文件
    其次,你总得有个用户态的控制程序吧
        63
    masker   254 天前
    是培训班出来的没错了。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2137 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 04:51 · PVG 12:51 · LAX 21:51 · JFK 00:51
    ♥ Do have faith in what you're doing.