Linux 防火墙:Netfilter iptables
一、Netfilter 简介
(1) Netfilter 是 Linux 内置的一种防火墙机制,我们一般也称之为数据包过滤机制,而 iptables 只是操作 netfilter 的一个命令行工具
(2) Netfilter 是 Linux CentOS 6 内置的防火墙机制,Firewall 是 Linux CentOS 7 内置的防火墙机制,如果想在 CentOS 7 中使用 netfilter 而不是 firewall,操作如下
[root@MongoDB ~]# systemctl stop firewalld.service // 停止firewalld
[root@MongoDB ~]# systemctl disable firewalld.service // 禁止firewall开机启动
[root@MongoDB ~]# yum install iptables-services -y
[root@MongoDB ~]# systemctl start iptables.service //启动防火墙
[root@MongoDB ~]# systemctl enable iptables.service // 设置防火墙开机启动
centos7 iptables服务
1.查看iptables服务状态
[root@MongoDB ~]#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服务状态
/etc/init.d/iptables stop // 关闭iptables服务
/etc/init.d/iptables status // 查看iptables状态
2.查看规则,默认查看filter表的规则
iptables -nvL
针对INPUT链 默认规则ACCEPT通过
iptables -nvL
Chain INPUT (policy ACCEPT packets, bytes) // 针对INPUT链 默认规则
// INPUT链 规则
pkts bytes target prot opt in out source destination
858K ACCEPT all -- * * 0.0.0.0/ 0.0.0.0/ state RELATED,ESTABLISHED
ACCEPT icmp -- * * 0.0.0.0/ 0.0.0.0/
ACCEPT all -- lo * 0.0.0.0/ 0.0.0.0/
ACCEPT tcp -- * * 0.0.0.0/ 0.0.0.0/ state NEW tcp dpt:
ACCEPT tcp -- * * 0.0.0.0/ 0.0.0.0/ state NEW tcp dpt:
3205K REJECT all -- * * 0.0.0.0/ 0.0.0.0/ reject-with icmp-host-prohibited // FORWARD链 默认规则
Chain FORWARD (policy ACCEPT packets, bytes)
pkts bytes target prot opt in out source destination
REJECT all -- * * 0.0.0.0/ 0.0.0.0/ reject-with icmp-host-prohibited // OUTPUT链 默认规则
Chain OUTPUT (policy ACCEPT 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动作
[root@MongoDB ~]# iptables -F
[root@MongoDB ~]# iptables -nvL
Chain INPUT (policy ACCEPT packets, bytes)
pkts bytes target prot opt in out source destination Chain FORWARD (policy ACCEPT packets, bytes)
pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT packets, 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 --dport 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 --dport 3873,4507,3306 -j ACCEPT # 允许某个IP访问多个端口
添加一条规则 到filter表 允许8080端口
[root@MongoDB ~]# iptables -t filter -A INPUT -p tcp --dport 8080 -j ACCEPT
删除一条规则
先执行 iptables -nvL --line-numbers 查看规则的序列号
[root@MongoDB ~]# 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> 删除规则
[root@MongoDB ~]# iptables -D INPUT 1
[root@MongoDB ~]#
[root@MongoDB ~]# 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
/etc/init.d/iptables restart 和 /etc/init.d/iptable reload 区别
相同点:二者都是使配置文件重新生效
不同点:
reload (重新加载),reload会重新加载配置文件,服务不会中断。而且reload时会测试conf语法等,如果出错会rollback用上一次正确配置文件保持正常运行。也叫平滑重启,不会对已经连接的服务造成影响。
restart (重启)(先stop后start),会重启服务。这个重启会造成服务一瞬间的中断,如果配置文件出错会导致服务启动失败,那就是更长时间的服务中断了。
注意:修改配置文件前一定要先备份!为了保证线上服务高可用,推荐使用reload
-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
! # 取反
Linux 防火墙:Netfilter iptables的更多相关文章
- Linux防火墙简介 – iptables配置策略
Linux防火墙简介 – iptables配置策略 Netfilter/iptables简介 要想真正掌握Linux防火墙体系,首先要搞清楚Netfilter和iptables的关系,Netfilte ...
- Linux防火墙(iptables/firewalld)
Linux防火墙(iptables/firewalld) 目录 Linux防火墙(iptables/firewalld) 一.iptables 1. iptables概述 2. netfilter和i ...
- linux防火墙之iptables
linux防火墙之iptables 1.1.1 关于iptables简介 IPTABLES 是与最新的 3.5 版本 Linux 内核集成的 IP 信息包过滤系统.如果 Linux 系统连接到因特网或 ...
- linux中的防火墙netfilter iptables
目录 一.Linux防火墙基础 1.1 ptables的表.链结构 1.2 数据包控制的匹配流程 二.编写防火墙规则 1.iptables的安装 2.1 基本语法.控制类型 一般在生产环境中设置网络型 ...
- Linux防火墙配置(iptables, firewalld)
netfilter和底层实现 iptables firealld Linux中的防火墙 RHEL中有几种防火墙共存: iptables firewalld ip6tables ebtables 这些软 ...
- Linux防火墙:iptables禁IP与解封IP常用命令
在Linux服务器被攻击的时候,有的时候会有几个主力IP.如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了. 在Linux下封停IP,有封杀网段和封杀单个IP两种形 ...
- linux防火墙相关 iptables
1. root用户查看防火墙状态(非root用户无权限查看) 查看防火墙状态: service iptables status 2.开启和关闭防火墙 //开启防火墙: service iptables ...
- Linux防火墙之iptables入门
一.防火墙的概念 什么是防火墙?防火墙是一台或一组设备,用以在网络间实施访问控制策略:事实上一个防火墙能够包含OSI模型中的很多层,并且可能会涉及进行数据包过滤的设备,它可以实施数据包检查和过滤,在更 ...
- Linux防火墙之iptables常用扩展匹配条件(二)
上一篇博文我们讲到了iptables的一些常用的扩展匹配模块以及扩展模块的一些选项的说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12273755.htm ...
- Linux防火墙设置——iptables
防火墙用于监控往来流量,并根据用户定义的规则来过滤数据包以保证安全.iptables是Linux下设置防火墙规则的常用工具,它可以让你设置.维护以及查看防火墙的规则表.你可以定义多个表,每个表可以包含 ...
随机推荐
- 如何免费的将本地Web服务映射到外网
链接地址:https://hongmaju.github.io/2018/05/13/ngrok%E5%B0%86%E6%9C%AC%E5%9C%B0Web%E6%9C%8D%E5%8A%A1%E6% ...
- vue2.0 技巧汇总
/** * Created by */ export default { trim: (str) => { //删除左右两端的空格 return str.replace(/(^\s*)|(\s* ...
- 【iCore1S 双核心板_FPGA】例程十七:基于双口RAM的ARM+FPGA数据存取实验
实验现象: 核心代码: module DUAL_PORT_RAM( input CLK_12M, inout WR, input RD, input CS0, :]A, :]DB, output FP ...
- ios vue2.0使用html5中的audio标签不能播放音乐
我写了一个M端播放音乐的组件,使用html5的audio标签 然后我使用watch监测currentSong 在浏览器中看到audio渲染的如下: 单独访问渲染出来的audio中url可以播放音乐,为 ...
- Hive学习笔记——安装和内部表CRUD
1.首先需要安装Hadoop和Hive 安装的时候参考 http://blog.csdn.net/jdplus/article/details/46493553 安装的版本是apache-hive-2 ...
- 并发编程基础之volatile关键字的用法
一:概念 volatile关键字是一个轻量级的线程同步,它可以保证线程之间对于共享变量的同步,假设有两个线程a和b, 它们都可以访问一个成员变量,当a修改成员变量的值的时候,要保证b也能够取得成员变量 ...
- TTL是什么意思?
TTL是一个ip协议的值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃.有很多原因使包在一定时间内不能被传递到目的地. TTL 的初值通常是系统缺省值,是包头中的8位的域.TTL的最初设想是确定 ...
- pyqt4手动编写资源文件
资源文件resource.qrc为XML格式,格式较简单,可以手动编辑: <!DOCTYPE RCC><RCC version="1.0"> <qre ...
- mock---前端搭建模拟服务
在做前端开发接口的时候,往往接口都是从后端来的,这让前端很苦恼,但是有了 MockServer ,前端也可以搭建API服务了. server-mock是什么? 是一款nodejs的应用,用于搭建web ...
- mac重启,开启apache时报错~~~镜像没有找到
mac重启apache时,报类似下面的错 dyld: Library not loaded: /usr/local/lib/libjpeg8.dylib Referenced from: /usr/l ...