思科ACI思科DevNet思科DNA

iptables-介绍、安装、添加删除规则

2019-08-20  本文已影响0人  驮着集装箱的鲸鱼

1. 防火墙种类及使用说明

(1)硬件
三层路由:华为、H3C(华三)
深信服
(2)软件
iptables(默认规则为拒绝)
firewalld(默认规则为拒绝)
(3)云防火墙
阿里云:安全组(默认的是白名单、防火墙默认规则是拒绝)

2. 必须熟悉的名词

容器: 瓶子 罐子 存放东西
表(table): 存放链的容器
链(chain): 存放规则的容器
规则(policy): 准许或拒绝规则 ACCPT DROP
Netfilter(iptalbes) 表(tables) 链(chains) 规则(Policy)
一栋楼 楼里的房子 房子里的柜子 柜子里衣服,摆放规则

3. iptables 执行过程(重点)

(1) 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
(2) 如果匹配上规则,即明确表示是阻止还是通过,数据包就不再向下匹配新的规则 。
(3) 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,继续向下进行匹配,直到匹配默认规则得到明
确的阻止还是通过,在工作中,默认规则一般为拒绝。
(4) 防火墙的默认规则是所有规则执行完才执行的。
image.png

4. 表与链

防火墙的4表伍链
表:
filter表(默认,实现防火墙功能是准许或是拒绝)
nat表,如下:

mangle表
raw表

4.1 filter表

image.png

4.2 nat表

image.png

4.3 表五链流程

image.png

5. iptabes环境准备

(1)安装iptables-services
[root@m01 ~]# yum -y install iptables-services

(2)相关文件介绍
[root@m01 ~]# rpm -ql iptables
/usr/sbin/iptables #iptables管理命令,添加规则,删除规则等。
[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #防火墙的配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service #防火墙服务配置文件(命令)

(3)防火墙相关模块 加载到内核中
加载防火墙的内核模块
临时生效:
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state

永久生效:
[root@m01 ~]# vim /etc/rc.local 
……省略部分内容
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state

检查配置情况:
[root@m01 ~]# lsmod |egrep 'filter|nat|ipt'
nf_nat_ftp 12770 0
nf_conntrack_ftp 18638 1 nf_nat_ftp
iptable_nat 12875 0
nf_nat_ipv4 14115 1 iptable_nat
nf_nat 26787 2 nf_nat_ftp,nf_nat_ipv4
nf_conntrack 133053 6
nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4
iptable_filter 12810 0
ip_tables 27126 2 iptable_filter,iptable_nat
libcrc32c 12644 3 xfs,nf_nat,nf_conntrack

(4)关闭原来的firewalld
[root@m01 ~]# systemctl stop firewalld
[root@m01 ~]# systemctl disable firewalld
[root@m01 ~]# systemctl is-enabled firewalld.service
disabled
[root@m01 ~]# systemctl is-active firewalld.service
unknown

(5)启动iptables
[root@m01 ~]# systemctl start iptables
[root@m01 ~]# systemctl enable iptables

6. iptables命令使用

[root@m01 ~]# iptables -nL 参数顺序不能反,只能是nL
-n:以ip形式显示默认的域名
-L:列表
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

7. iptables命令参数

image.png
image.png
image.png

8. 配置filter表规则

[root@m01 ~]# iptables -F
[root@m01 ~]# iptables -X
[root@m01 ~]# iptables -Z
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

9. 案例练习

添加规则,禁止访问22端口

[root@m01 ~]# iptables -A INPUT -p tcp --dport 22 -j DROP
image.png
恢复22端口访问,删除规则
image.png
上一篇 下一篇

猜你喜欢

热点阅读