• CentOS初步学习记录(七)iptables


    一、前言

    iptables 中文名:IP信息包过滤系统,它是一个配置 Linux 内核防火墙的命令行工具,是 netfilter 项目的一部分。术语 iptables 也经常代指该内核级防火墙。iptables 可以直接配置,也可以通过许多前端和图形界面配置。iptables 用于 ipv4,ip6tables 用于 ipv6。

    iptables 是 Linux 核心网络安全的重要工具,使用前需要先启动服务。

    (nftables 已经包含在 Linux kernel 3.13 中,以后会取代 iptables 成为主要的 Linux 防火墙工具。)

    二、 iptables 命令

    2.1 语法

    iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 
    -j 动作

    2.2 说明

    1)表名

    • filter:包过滤,用于存放所有与防火墙相关操作的默认表。
    • raw:数据跟踪处理,用于配置数据包,raw 中的数据包不会被系统跟踪。
    • nat:用于网络地址转换(例如:端口转发)
    • mangle:用于对特定数据包的修改
    • security:用于强制访问控制网络规则

    2)规则

    • -A:追加,在当前链的最后新增一个规则
    • -I num:插入,把当前规则插入为第几条
    • -R num:替换/修改第几条规则(格式:iptables -R INPUT 3 ……)
    • -D num:删除,明确指定删除第几条规则

    3)规则链名

    • INPUT链:处理输入数据包
    • OUTPUT链:处理输出数据包
    • PORWARD链:处理转发数据包
    • PREROUTING链:用于目标地址转换(DNAT)
    • POSTOUTING链:用于源地址转换(SNAT)

    4)协议名

    • TCP
    • UDP
    • ICMP

    5)动作

    • ACCEPT:接收数据包
    • DROP:丢弃数据包
    • REDIRECT:重定向、映射、透明代理
    • SNAT:源地址转换
    • DNAT:目标地址转换
    • MASQUERADE:IP伪装(NAT),用于ADSL
    • LOG:日志记录

    2.3 选项

    • -t<表>:指定要操纵的表
    • -A:向规则链中添加条目
    • -D:从规则链中删除条目
    • -i:向规则链中插入条目
    • -R:替换规则链中的条目
    • -L:显示规则链中已有的条目
    • -F:清楚规则链中已有的条目
    • -Z:清空规则链中的数据包计算器和字节计数器
    • -N:创建新的用户自定义规则链
    • -P:定义规则链中的默认目标
    • -h:显示帮助信息
    • -p:指定要匹配的数据包协议类型
    • -s:指定要匹配的数据包源ip地址
    • -j<目标>:指定要跳转的目标
    • -i<网络接口>:指定数据包进入本机的网络接口
    • -o<网络接口>:指定数据包要离开本机所使用的网络接口

    2.4 实例

    禁止服务器 INPUT 链的 80 端口:

    iptables -t filter -A INPUT -p tcp --dport 80 -j DROP

    三、将 iptables 配置保存

    3.1 方法一

    使用 iptables save 选项

    service iptables save

    2.2 方法二

    使用 iptables-save 命令,需要指定保存的配置文件路径

    iptables-save /etc/sysconfig/iptables

    3.3 实例

    开启服务器 INPUT 链的 80 端口,并保存配置:

    iptables -t filter -R INPUT 1 -p tcp --dport 80 -j ACCEPT
    service iptables save

    四、netstat 命令

    netstat 是一款命令行工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

    netstat 可用于列出系统上所有的网络套接字连接情况,包括 tcp, udp 以及 unix 套接字,另外它还能列出处于监听状态(即等待接入请求)的套接字。

    4.1 基本语法

    netstat [选项]

    4.2 选项

    • -a 或 --all:显示所有连线中的 Socket
    • -A <网络类型> 或 --<网络类型>:列出该网络类型连线中的相关地址
    • -c 或 --continuous:持续列出网络状态
    • -C 或 --cache:显示路由器配置的快取信息
    • -e 或 --extend:显示网络其他相关信息
    • -F 或 --fib:显示 FIB;
    • -g 或 --groups:显示多重广播功能群组组员名单
    • -h 或 --help:在线帮助
    • -i 或 --interfaces:显示网络界面信息表单
    • -l 或 --listening:显示监控中的服务器的 Socket
    • -M 或 --masquerade:显示伪装的网络连线
    • -n 或 --numeric:直接使用 ip 地址,而不通过域名服务器
    • -N 或 --netlink 或 --symbolic:显示网络硬件外围设备的符号连接名称
    • -o 或 --timers:显示计时器
    • -p 或 --programs:显示正在使用 Socket 的程序识别码和程序名称
    • -r 或 --route:显示 Routing Table
    • -s 或 --statistice:显示网络工作信息统计表
    • -t 或 --tcp:显示 TCP 传输协议的连线状况
    • -u 或 --udp:显示 UDP 传输协议的连线状况
    • -v 或 --verbose:显示指令执行过程
    • -V 或 --version:显示版本信息
    • -w 或 --raw:显示RAW传输协议的连线状况
    • -x 或 --unix:此参数的效果和指定 -A unix 参数相同
    • --ip 或 --inet:此参数的效果和指定 -A inet 参数相同

    4.3 实例

    显示 tcp 模式运行状况:

    netstat -ant

    tcp 状态(state):

    • LISTENING :服务启动后首先处于侦听状态
    • ESTABLISHED :建立连接,表示两台机器正在通信
    • CLOSE_WAIT:对方主动关闭连接或者网络异常导致连接中断
    • TIME_WAIT :我方主动调用 close() 断开连接,收到对方确认后状态变为 TIME_WAIT

    4.4 参考

    《Linux技术——netstat命令详解》:https://blog.csdn.net/linux_ever/article/details/50775292

  • 相关阅读:
    数据库+mysql
    网络并发项目
    网络编程 IO模型
    并发编程之死锁、进程池、协程
    类的使用
    面向对象—多态,反射
    面向对象-三大特性
    继承与派生
    面向对象
    模块进阶(二)
  • 原文地址:https://www.cnblogs.com/tangxuliang/p/9144442.html
Copyright © 2020-2023  润新知