Linux 防火墙:Netfilter iptables

一、Netfilter 简介

(1) Netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制,而 iptables 只是操作 netfilter 的一个命令行工具
(2) Netfilter 是 Linux CentOS 6 内置的防火墙机制,Firewall 是 Linux CentOS 7 内置的防火墙机制,如果想在 CentOS 7 中使用 netfilter 而不是 firewall,操作如下

[[email protected] ~]# systemctl stop firewalld.service  // 停止firewalld
[[email protected] ~]# systemctl disable firewalld.service  // 禁止firewall开机启动
[[email protected] ~]# yum install iptables-services -y
[[email protected] ~]# systemctl start iptables.service  //启动防火墙
[[email protected] ~]# systemctl enable iptables.service  // 设置防火墙开机启动

centos7 iptables服务

1.查看iptables服务状态

[[email protected] ~]#systemctl status iptables
systemctl start iptables  // 启动iptables服务
systemctl restart iptables  // 重启iptables服务
systemctl stop iptables    // 关闭iptables服务

centos6 iptables 服务

service iptables start  // 启动 iptables服务
service iptables restart  // 重启iptables服务
service iptables stop    // 关闭iptables服务
service iptables status  // 查看iptables服务状态
2.查看规则,默认查看filter表的规则
iptables -nvL              针对INPUT链 默认规则ACCEPT通过
iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)  // 针对INPUT链 默认规则
// INPUT链 规则
 pkts bytes target     prot opt in     out     source               destination
 7589  858K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
   42  2520 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    2   104 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:27017
30806 3205K REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

// FORWARD链 默认规则
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

// OUTPUT链 默认规则
Chain OUTPUT (policy ACCEPT 6732 packets, 950K bytes)
 pkts bytes target     prot opt in     out     source               destination 


二、iptables 常见用法:

iptables -F                # 清空规则,默认清空filter表的规则
iptables -X                # 删除用户自定义规则
iptables -Z                # 清空链的计数器
service iptables save      # 保存规则,会把当前规则保存到/etc/sysconfig/iptables
iptables-save > my.ipt     # 备份规则,这里指定备份到my.ipt文件
iptables-restore < my.ipt  # 恢复规则,这里指定使用my.ipt文件进行恢复  

清空所有的规则,只留下默认规则

iptables -F  清空规则,默认清空filter表的规则

只留下默认规则 默认规则都是ACCEPT动作

[[email protected] ~]# iptables -F
[[email protected] ~]# iptables -nvL
Chain INPUT (policy ACCEPT 6 packets, 480 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 6 packets, 528 bytes)
 pkts bytes target     prot opt in     out     source               destination 

iptables -X  删除用户定义规则

iptables -Z 清空链的计数器

iptables -A INPUT -p tcp --dport 80 -j ACCEPT                                                # 放通80端口
iptables -A INPUT -p tcp --dport 22 -j DROP                                                  # 禁用22端口
iptables -A INPUT -p tcp -m multiport --dports 80,843,443 -j ACCEPT                          # 放通多个端口
iptables -A INPUT -s 192.168.1.1/32 -p tcp --dport 22 -j ACCEPT                              # 只允许某个IP访问22端口
iptables -A INPUT -s 192.168.1.1/32 -p tcp -m multiport --dports 3873,4507,3306 -j ACCEPT    # 允许某个IP访问多个端口

添加一条规则 到filter表 允许8080端口

[[email protected] ~]# iptables -t filter -A INPUT -p tcp --dport 8080 -j ACCEPT

删除一条规则

先执行 iptables -nvL --line-numbers 查看规则的序列号
[[email protected] ~]# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 93 packets, 7775 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 59 packets, 6900 bytes)
num   pkts bytes target     prot opt in     out     source               destination 

-D 删除规则

然后执行 iptables -D INPUT <number> 删除规则
[[email protected] ~]# iptables -D INPUT 1
[[email protected] ~]#
[[email protected] ~]# iptables -nvL --line-numbers
Chain INPUT (policy ACCEPT 14 packets, 1020 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 6 packets, 728 bytes)
num   pkts bytes target     prot opt in     out     source               destination
 
-A       # 添加规则,默认添加到最后一条规则
-I       # 插入规则,默认插入到第一条规则
-D       # 删除规则,先执行 iptables -nvL --line-numbers 查看规则的序列号,然后执行 iptables -D INPUT <number> 删除规则
-n       # 数字
-s       # 用于指定源IP地址,用法如:iptables -A INPUT -s 192.168.1.1/32 -p tcp --dport 22 -j ACCEPT
-d       # 用于指定目标IP地址,用法如:iptables -A INPUT -d 192.168.1.1/32 -p tcp --dport 22 -j ACCEPT
-p       # 用于指定检查哪个协议,用法如:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-i       # 用于指定入口网卡,用法如:iptables -A INPUT -i eth0 -j ACCEPT
-o       # 用于指定出口网卡,用法如:iptables -A FORWARD -o eth0 -j ACCEPT
-j       # 用于指定要进行的处理动作,ACCEPT表示接受数据包进来 DROP直接丢弃数据包 用法如:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-P       # 用于设置默认规则,用法如:iptables -P INPUT DROP
-t       # 用于指定操作哪张表,用法如:iptables -t nat -nvL , iptables -t filter ,如果没有指定默认是filter表
-Z       # 用于清空计数器,用法如:iptables -Z
-L       # 用于列出规则链中的所有规则
--sport  # 用于指定源端口,用法如:iptables -A INPUT -p tcp --sport 1234 -j ACCEPT
--dport  # 用于指定目标端口,用法如:iptables -A INPUT -s 192.168.1.1/32 -p tcp --dport 22 -j ACCEPT
!        # 取反 

 




原文地址:https://www.cnblogs.com/mingerlcm/p/10685450.html

时间: 2024-10-24 04:51:29

Linux 防火墙:Netfilter iptables的相关文章

Linux防火墙简介 – iptables配置策略

Netfilter/iptables简介 ????要想真正掌握Linux防火墙体系,首先要搞清楚Netfilter和iptables的关系,Netfilter和iptables包含在Linux2.4以后的内核中,可实现防火墙.NAT和数据包分割的功能.Netfilter采用模块化设计,具有良好的可扩展性.Netfilter是一个框架,iptables则是我们用户层的工具,通过iptables我们可以配置很多规则,这些规则加载到Netfilter框架中生效. ????Netfilter可以和协议栈

Linux防火墙:iptables禁IP与解封IP常用命令

在Linux下,使用ipteables来维护IP规则表.要封停或者是解封IP,其实就是在IP规则表中对入站部分的规则进行添加操作. 要封停一个IP,使用下面这条命令: iptables -I INPUT -s ***.***.***.*** -j DROP 要解封一个IP,使用下面这条命令: iptables -D INPUT -s ***.***.***.*** -j DROP 参数-I是表示Insert(添加),-D表示Delete(删除).后面跟的是规则,INPUT表示入站,***.***

Linux防火墙工具iptables基础介绍

iptables基础知识说明: 一.规则链:规则链是防火墙规则/策略的集合 INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 POSTROUTING链:在进行路由选择后处理数据包 PREROUTING链:在进行路由选择前处理数据包 二.规则表:规则表是规则链的集合(优先顺序:raw.mangle.nat.filter) raw表:确定是否对该数据包进行状态跟踪(OUTPUT.PREROUTING) mangle表:为数据包设置标记(PREROUNTING.

linux防火墙之iptables

linux有两个防火墙机制,一个是selinux,一个是netfilter. selinux这种机制的限制太多,配置也特别繁琐,所以很少有人去应用它,我们一般都要把selinux关闭,以免引起不必要的麻烦.selinux可以用命令:setenforce 0临时关闭或者修改配置文件vim /etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled永久关闭. 下面主要讲netfilter防火墙:大家习惯叫它iptables,iptables是lin

Linux防火墙之iptables入门

一.防火墙的概念 什么是防火墙?防火墙是一台或一组设备,用以在网络间实施访问控制策略:事实上一个防火墙能够包含OSI模型中的很多层,并且可能会涉及进行数据包过滤的设备,它可以实施数据包检查和过滤,在更高的层次中对某应用程序实现某一策略,或做更多类似的事情.防火墙的功能主要是隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则定义的行为进行处理的一组功能组件,基本上的实现都是默认情况下关闭所有的访问,只开放允许访问的策略:防火墙分主机防火墙.网络防火墙.硬件防

Linux防火墙(iptables )的功能详解二

iptables/netfilter的网络防火墙 接上文继续讲解网络防火墙和nat功能的基础功能: 网络防火墙的功能简单讲就是,所有经由本机的一个接口进来的报文在本地路由决策后路由的目标地址不是本机,需要帮忙转发到其它网络当中或来源网络中去的这种请求时的场景,我们就称为转发功能: 那么转发的报文必须是经由forward链(含三个链,prerouting,forward,postrouting),不过过滤只能在forward实现: 请注意:定义在forward链上的策略只对那些经由本机转发的报文才

Linux防火墙之iptables建立规则和链

在RHEL 7.0中安装启动iptables: yum install iptables-services                    #安装iptables systemctl mask firewalld.service              #屏蔽firewalld服务 systemctl enable iptables.service            #设置开机启动 systemctl enable ip6tables.service          #设置开机启动

Linux 防火墙工具--iptables

iptables介绍 iptables是基于内核的防火墙,功能非常强大,iptables内置了"三表五链" 三张表 1.filter     定义允许或者不允许的 2.nat       定义地址转换的 3.mangle     修改报文原数据 五个规则链 1.PREROUTING (路由前) 2.INPUT (数据包流入口) 3.FORWARD (转发管卡) 4.OUTPUT(数据包出口) 5.POSTROUTING(路由后) 对于filter来讲只能做在3个链上:INPUT ,FO

Linux 防火墙和 iptables

一.简介 http://liaoph.com/iptables/   二.操作 1)iptables 添删改查 http://blog.51yip.com/linux/1404.html   三.应用 1.NAT地址转换--实现外网转发内网 1)开启Linux网卡的转发功能 # vim /etc/sysctl.conf net.ipv4.ip_forward = 1 # sysctl -p 2)Net配置 模板 iptables -t nat -I PREROUTING -d 公网IP -p t

Linux 防火墙之iptables

大纲 一.什么是iptables/netfilter 二.iptables的四"表"五"链" 三.iptables实例