包过滤防火墙iptables(网络层)

安装: yum -y install iptables-services

启动:systemctl start iptables.service

四表五链

过滤:filter

  - input  forward  output

地址转换:nat

  - prerouting(路由前)  postrouting(路由后)  output 

包标记:mangle

  -prerouting  -postrouting  input  output  forward

状态跟踪:raw

  - prerouting  output

规则链匹配顺序

  顺序对比,匹配即停止(log除外)              # log表示只记录

  未匹配则按链的默认策略处理

查看配置文件: rpm -qc iptables

保存设置: iptables-save > /etc/sysconfig/iptables-config

基本用法

  指令组成     iptables [-t 表名] options [链名] [conditions] [-j 目标操作]

选项(options)

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

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

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

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

  --line-numbers        # 查看规则是,显示规则的序号

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

  -F        # 清空所有规则

  -P        # 为指定的链设置默认规则

    

条件(conditions)

通用匹配    协议匹配      -p  协议名

        地址匹配           -s  源地址           -d 目标地址

        接口匹配      -i  收数据的网卡    -o 发数据的网卡

隐含匹配    端口匹配      -sport 源端口        --dport 目标端口

        ICMP类型匹配  --icmp-type  ICMP类型

需要取反使用!

基本目标操作

ACCEPT:允许通过/放行    

DROP:直接丢弃,不给出任何回应
REJECT:拒绝通过,必钥时给出提示
LOG:记录日志,然后传给下一条规则

主机型防火墙(自己保护自己)---filter表(INPUT OUTPUT FORWARD ) 

# eg:
[root@50 ~]# iptables -t filter -A INPUT -p tcp -s 192.168.4.0/24 --dport 22 -j ACCEPT
[root@50 ~]# iptables -t filter -P INPUT DROP  # 默认进入的数据包都丢弃
[root@50 ~]# iptables -t filter -nL INPUT
Chain INPUT (policy DROP)
target prot opt source destination 
ACCEPT tcp -- 192.168.4.0/24 0.0.0.0/0 tcp dpt:22

配置SNAT实现共享上网

开启路由转发    echo 1 > /proc/sys/net/ipv4_forward 或者   echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf

设置防火墙规则

   

iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx/24 -p tcp --dport 80 -j SNAT --to-source xxx.xxx.xxx.xxx

地址伪装

iptables -t nat -A POSTROUTING -s xxx.xxx.xxx.xxx/24 -p tcp --dport 80 -j MASQUEREAD
原文地址:https://www.cnblogs.com/ray-mmss/p/10339229.html