SECURITY iptables防火墙 filter表控制 扩展匹配 nat表典型应用

=
一.Iptables防火墙

  • 1.1防火墙概述**
    ** 什么是防火墙?**
    SECURITY iptables防火墙 filter表控制 扩展匹配 nat表典型应用_第1张图片
    ** 一道保护性的安全屏障;
    保护、隔离;**

Linux包过滤防火墙

RHEL7默认使用firewalld作为防火墙,但firewalld底层还是调用包过滤防火墙iptables

]# systemctl stop firewalld.service
]# which   iptables
]# systemctl disable  firewalld.service
]# yum -y  install  iptables-services.x86_64 
]# systemctl start  iptables.service

SECURITY iptables防火墙 filter表控制 扩展匹配 nat表典型应用_第2张图片
包过滤匹配流程
----规则链内的匹配顺序,匹配即停止(LOG除外)
----若无任何匹配,则按该链的默认策略处理

1.2 iptables 用法解析
Iptables基本用法
管理程序位置:/sbin/iptables
指令组成: iptables 【-t 表名】 选项 【链名】【条件】【-j 目标操作】

列: 主机 192.168.4.51

]# iptables -t filter -I INPUT -p icmp -j REJECT           //主机修改规则拒绝其他人访问
]# ping 192.168.4.51                                      //客户端尝试ping51失败

注意事项/整体规律
—可以不指定表,默认为filter表
—可以不指定链,默认为对应表的所有链
—如果没有匹配的规则,则使用防火墙默认规则
–选项/链名/目标操作作用大写字母,其余都小写

################################################

基本的目标操作
ACCEPT 允许通过/放行
DROP 直接丢弃,必要时会给出提示
REJECT 拒绝通过,必要时会给出提示
LOG 记录日志,然后传给下一条规则 (匹配即停止,log列外)

]# iptables -L
]# iptables -t filter -L                          //查看filter表规则
]# iptables -t filter -nL
]# iptables -t filter -nL --line-number        
]# iptables -t mangle -nL --line-number


]# iptables -t nat -nL --line-number
]# iptables -t raw -nL --line-number
]# iptables -t raw -nL OUTPUT --line-number
]# iptables -t filter -nL OUTPUT --line-number
]# iptables -t  nat -nL OUTPUT --line-number
]# iptables -t filter -nL  INPUT --line-numbers



]# iptables -t filter -nL  INPUT --line-numbers
]# iptables -t filter -F 
]# iptables -t filter -L
]# iptables -t nat -L
]# iptables -t nat -F
]# iptables -t mangle -F
]# iptables -t mangle -L

常用的管理选项:*
添加规则 -A 在链的末尾追加一条规则
-I 在链的开头(或指定序号)插入一条规则
-L 列出所有的规则条目
查看规则 -n 以数字形式显示地址,端口等信息
–line-numbers 查看规则时,显示规则的序号
删除规则 -D 删除链内指定序号(或内容)的一条记录
-F 清空所有的规则
默认策略 -P 为指定的链设置默认规则

管理基本規則示列 :
添加新的規則 -A 追加 -I 插入

添加新的規則 -A 追加 -I 插入 -p 协议名或协议号

]# iptables -t filter  -A   INPUT -p tcp -j ACCEPT
]# iptables -I INPUT  -p  udp  -j  ACCEPT
]# iptables -I INPUT 2  -p icmp  -j  ACCEPT

查看规则列表 -L查看

]# iptables  -nL                                      //显示所有规则
]# iptables -nL INPUT
]# iptables -nL INPUT --line-numbers

删除,清空规则 -D删除, -F清空

]# iptables -D  INPUT 3
]# iptables -nL  INPUT 

二 Filter表控制 主机防火墙(使用防火墙服务保护本机)

三.匹配条件*
3.1基本的匹配条件
-p --drop --sport -i -o -s -d

3.2扩展匹配

四.Nat表典型应用

在主机51A上操作
]# iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
]# iptables -t filter -P INPUT DROP
]# iptables -t filter -I INPUT -s 192.168.4.50 -p tcp --dport 22 -j DROP
]# iptables -t filter -nL                                             //查看設置好的所有規則
]# iptables-save  > /etc/sysconfig/iptables           //永久保存防火墙规则

安装提供网站服务的httpd

]# systemctl  stop  iptables
]# rpm -q  httpd
]#yum -y  install   httpd
]# echo "web51" > /var/www/html/test.html
]#systemctl   restart  httpd
]#systemctl   start   httpd
]# netstat   -nutlp  |   grep  httpd
]# systemctl  start  iptables


]# iptables -t filter  -A  INPUT -p tcp --dport 80 -j  ACCEPT
]# curl http://192.168.4.57/test.html
web51

允许51本机ping其他主机,禁止其他主机ping本机

]# iptables -t filter -A INPUT -p imp --icmp-type echo-reply -j ACCEPT 
]# iptables-save > /etc/sysconfig/iptables

扩展匹配条件

]# iptables -t filter -A INPUT -p tcp -m multiport --dports 22,80 -j ACCEPT
]# iptables -t filter -nL INPUT --line-numbers
]# iptables -t filter -D INPUT 3
]# iptables -t filter -D INPUT 2
]# iptables -t filter -nL INPUT --line-numbers
]# iptables -t filter -A INPUT -m iprange --src-range 192.168.4.250-192.168.4.254 -p icmp --icmp-type echo-request -j ACCEPT

]# iptables -t filter -nL --line-numbers
]# iptables -t filter -I INPUT 4 -p icmp --icmp-type echo-request -m mac --mac-source  \
52:54:00:37:78:11 -j DROP

]# iptables -t filter -nL --line-numbers

C主机 模拟私有网络的pc
Eth1 192.168.2.54

c ~]# systemctl stop NetworkManager
c ~]# route add default gw 192.168.2.58  //添加命令
c ~]# route del default gw 192.168.2.52  //删除命令
c ~]# route -n  查看命令

b主机 防火墙服务器
Eth0 192.168.4.52 模拟公网地址
Eth1 192.168.2.52 模拟私网地址
运行

开启内核的路由转发功能 :

]# echo  1 > /proc/sys/net/ipv4/ip_forward
]# vim /etc/rc.local
 echo  1 > /proc/sys/net/ipv4/ip_forward
  :wq
 ]# chmod  +x /etc/rc.local

 ]# vim /etc/sysctl.conf 
	net.ipv4.ip_forward = 1
  :wq

 ]# sysctl -p

A 模拟公网的网站服务器
eth0 192.168.4.51

]# systemctl  stop  iptables

]# echo  abc  > /var/www/html/test2.html

B 在防火墙服务器上写规则 ,具体如下

]# iptables -t nat -A POSTROUTING \
 -s  192.168.2.0/24  -p tcp --dport 80 -j SNAT  --to-source  192.168.4.52 

]#iptables -t nat -A POSTROUTING -s  192.168.2.0/24  -o eth0  -j  MASQUERADE
]# iptables-save > /etc/sysconfig/iptables
]# iptables  -t  nat -nL POSTROUTING

C 在内网机器访问 A 主机的网站服务

 ]# curl http://192.168.4.51/test.html

A 主机查看日志

 ]# tail -f /etc/httpd/logs/access_log
  192.168.4.52 - - [31/May/2019:10:03:56 +0800] "GET /test2.html HTTP/1.1" 200 4 "-" "curl/7.29.0"

运行防火墙服务

  ]#systemctl  stop firewalld
  ]#systemctl  disable firewalld
  ]#yum  -y   install iptables-services
  ]#systemctl  status iptables
  ]#systemctl  start iptables

你可能感兴趣的:(linux,运维)