zoukankan      html  css  js  c++  java
  • 网路防火墙iptables

    linux操作系统自身可以充当交换机,还可以当路由器,也就是说linux多网卡之间拥有互相转发数据包的能力,这种能力的实现主要依靠的是防火墙的功能进行数据包的转发和入站。
    路由选择点,就是在一个点分辨出事转发还是入站,在路由选择点之前的路叫路由选着前,出站之后的路叫路由选择后
    存储链的表示filter 和nat
    filter里村的是入站出站,和转发
    nat存的是路由前,路由后和出站。

    入站叫INPUT

    出站叫OUTPUT

    转发叫FORWARD

    入站前叫PREROUTING

    出站叫之后叫POSTROUTING

    保存防火墙规则的配置文件/etc/sysconfig/iptables

    导出备份的命令

    iptables-save > 文件路径

    导入还原命令

    iptables-restore < 文件路径

    iptables的命令用法和参数

    iptables -t 【表名】 选项 【链名】 【条件】 【-j控制类型】

    注意事项:

    不指定表名时:默认的是filter表

    不指定链名时:默认是表内所有的链

    除非设置链的默认匹配,否则必须知道匹配条件

    选项、链名、控制类型使用大写字母、其余的均为小写

    控制类型常用的参数

    ACCEPT:允许通过

    DROP:直接丢包,不给出任何的回应

    REJECT:拒绝通过 ,必要时会给出提示

    LOG:记录日志信息,然后传给下一条规则继续匹配

    选项类的参数

    -A:在链的末尾追加一条规则,

    -I:在链的开头(或指定序号)插入一条规则

    查看表规则参数。

    -L:列出所有的规则条目

    -n:以数字形式显示地址,端口等信息

    -v:以更详细的方式显示规则信息

    --line-numbers:查看规则时,显示规则的序号。--line与之同效

    删除清空规则的参数

    -D:删除链内指定序号(或内容)的一条规则

    -F:清空所有的规则

    iptables -D INPUT 3
    删除input链上的序号是3的规则

    修改、替换规则

    -R:修改替换规则

    修改链规则

    -P:修改链的规则

    iptables -P FORWARD -j DROP
    所有的转发链都丢包

    通用匹配参数

    -p:协议匹配,指定协议

    -s:来源地址匹配,指定来源

    -d:目标地址匹配,指定目标

    -i:指定入站的网卡匹配

    -o:指定出站的网卡匹配

    隐含的匹配

    隐含的匹配需要在有通用的匹配后才能使用,--开头

    --sport:来源端口,需要指定协议后才能匹配

    --dport:目标端口,需要指定协议后才能匹配

    iptables -A INPUT -s 192.168.200.0/24 -p tcp --sport 22:21 -dport 53 -j ACCEPT
    例句的意思是在input链上追加一条,来源ip为200网段的tcp协议,来源端口是22~21,目标端口是53的都同一通过

    --tcp-flags:检查范围被设置的标记

    iptables -I INPUT -i eth1 -p tcp --tcp-flags SYN,RST,ADK,SYN -j DROP
    例句的意思是在input链上插入一条从eth1网卡进来的tcp协议,被标记的syn等包都丢掉

    icmp协议的隐含匹配

    --icmp-type 类型

    8 Echo request 请求包

    0 Echo reply 应答包

    3 错误回显

    iptables -A INPUT -p icmp --icmp-type 8 -j DROP
    例句的意思是最近一条规则在input链,所有的icmp协议的请求包都丢掉

    状态匹配 -m state --state 连接状态

    常见的连接状态

    NEW:新连接

    ESTABLISHED:响应请求,或已经建立连接的

    RELATED:与已连接有相关性的,如ftp数据连接

    iptables -A INPUT -p tcp --dport 80 -m state --state ESTABLISHED,RELATED,NEW -j DROP
    命令的意思是在input链上追加一条tcp规则已经连接和有关联的连接新的连接都拒绝

     SNAT将来源的ip转换成自己设定的ip

    iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -o eth1 -j SNAT --to-source 192.168.100.100
    例句的意思是指定nat表最近一条针对出站后的链来源ip是200网段的从eth1出的,统统把来源ip换成192.169.100.100

    DNAT将目标ip转换成自己设定的ip

    iptables -t nat -A PREROUTING -i eth0 -d 192.168.100.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.200.88:8080
    例句的意思是将nat表 入站前 从eth网卡来的目标ip是192.168.100.100 端口是80来的tcp协议都改成目标ip为192.168.200.88端口是8080
  • 相关阅读:
    朱晔和你聊Spring系列S1E10:强大且复杂的Spring Security(含OAuth2三角色+三模式完整例子)
    朱晔和你聊Spring系列S1E9:聊聊Spring的那些注解
    朱晔和你聊Spring系列S1E8:凑活着用的Spring Cloud(含一个实际业务贯穿所有组件的完整例子)
    朱晔和你聊Spring系列S1E7:简单好用的Spring Boot Actuator
    朱晔和你聊Spring系列S1E6:容易犯错的Spring AOP
    朱晔和你聊Spring系列S1E5:Spring WebFlux小探
    朱晔和你聊Spring系列S1E4:灵活但不算好用的Spring MVC
    朱晔和你聊Spring系列S1E3:Spring咖啡罐里的豆子
    朱晔和你聊Spring系列S1E2:SpringBoot并不神秘
    朱晔的互联网架构实践心得S1E10:数据的权衡和折腾【系列完】
  • 原文地址:https://www.cnblogs.com/cash-su/p/10002469.html
Copyright © 2011-2022 走看看