当前位置: 首页 > news >正文

day2-Iptables笔记

1.   iptables防火墙简介

Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入、流出、流经服务器的数据包进行精细的控制。iptables是Linux2.4及2.6内核中集成的模块。

2.   Iptables服务相关命令

1.查看iptables状态

service iptables status

2.开启/关闭iptables

service iptables start

service iptables stop

3.查看iptables是否开机启动

chkconfig iptables --list

4.设置iptables开机启动/不启动

chkconfig iptables on

chkconfig iptables off

3.   iptables原理简介

3.1.  iptables的结构

在iptables中有四张表,分别是filter、nat、mangle和raw每一个表中都包含了各自不同的链,最常用的是filter表。

 

 

 

filter表:

filter是iptables默认使用的表,负责对流入、流出本机的数据包进行过滤,该表中定义了3个链:

         INPOUT 负责过滤所有目标地址是本机地址的数据包,就是过滤进入主机的数据包。

         FORWARD       负责转发流经本机但不进入本机的数据包,起到转发的作用。

         OUTPUT  负责处理所有源地址是本机地址的数据包,就是处理从主机发出去的数据包。

 

--------------------------------常用命令-------------------------------------------

#查看帮助
iptables -h
man iptables

列出iptables规则
iptables -L -n
列出iptables规则并显示规则编号
iptables -L -n --line-numbers

列出iptables nat表规则(默认是filter表)
iptables -L -n -t nat

清除默认规则(注意默认是filter表,如果对nat表操作要加-t nat)
#清楚所有规则
iptables -F

#重启iptables发现规则依然存在,因为没有保存
service iptables restart

#保存配置
service iptables save

#禁止ssh登陆(若果服务器在机房,一定要小心)
iptables -A INPUT -p tcp --dport 22 -j DROP
#删除规则
iptables -D INPUT -p tcp --dport 22 -j DROP

-A, --append chain 追加到规则的最后一条
-D, --delete chain [rulenum] Delete rule rulenum (1 = first) from chain
-I, --insert chain [rulenum] Insert in chain as rulenum (default 1=first) 添加到规则的第一条
-p, --proto proto protocol: by number or name, eg. 'tcp',常用协议有tcp、udp、icmp、all
-j, --jump target 常见的行为有ACCEPT、DROP和REJECT三种,但一般不用REJECT,会带来安全隐患

注意:INPUT和DROP这样的关键字需要大写

#禁止192.168.33.0网段从eth0网卡接入
iptables -A INPUT -p tcp -i eth0 -s 192.168.33.0 -j DROP
iptables -A INPUT -p tcp --dport 22 -i eth0 -s 192.168.33.61 -j ACCEPT

#禁止ip地址非192.168.10.10的所有类型数据接入
iptables -A INPUT ! -s 192.168.10.10 -j DROP

#禁止ip地址非192.168.10.10的ping请求
iptables -I INPUT -p icmp --icmp-type 8 -s 192.168.50.100 -j DROP

#扩展匹配:1.隐式扩展 2.显示扩展
#隐式扩展
-p tcp
--sport PORT 源端口
--dport PORT 目标端口

#显示扩展:使用额外的匹配规则
-m EXTENSTION --SUB-OPT
-p tcp --dport 22 与 -p tcp -m tcp --dport 22功能相同

state:状态扩展,接口ip_contrack追踪会话状态
NEW:新的连接请求
ESTABLISHED:已建立的连接请求
INVALID:非法连接
RELATED:相关联的连接

#匹配端口范围
iptables -I INPUT -p tcp --dport 22:80 -j DROP

#匹配多个端口
iptables -I INPUT -p tcp -m multiport --dport 22,80,3306 -j ACCEPT

#不允许源端口为80的数据流出
iptables -I OUTPUT -p tcp --sport 80 -j DROP


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 

转载于:https://www.cnblogs.com/bee-home/p/7832691.html

相关文章:

  • JAVA飞机移动斜着走_如何实现图标线性回归斜着移动到指定的位置
  • linux如何修改 mount 文件夹的权限
  • python中线性回归求解方法_线性回归之梯度下降法求解实践学习笔记(Python)
  • java 基础功能
  • java生产环境增量部署_老旧Java Web应用实现增量自动化部署的一个方案
  • java中list去除成员_Java中List集合去除重复数据的六种方法
  • form-data php,php HTTP请求类(支持GET,POST,Multipart/form-data)
  • php页眉,如何在php中创建Word文档页眉/页脚
  • 程序员角度的锁--乐观锁、悲观锁
  • msf生成php,MSF-Shellcode生成和使用
  • 如何在首次启动 Linux 虚拟机时对其进行自定义
  • php 比nodejs 容易学,粗大事了:花两天时间学习了 Go 语言,发现比 Node.js 高不知多少去了...
  • php获取cname解析结果,如何检测来自CNAME子域的传入请求(使用PHP脚本)?
  • Ubuntu16.04系统中Nmon的安装
  • CentOS 7 网络磁盘挂载到本地 并测试传输速度
  • 【Leetcode】104. 二叉树的最大深度
  • Android Volley源码解析
  • go语言学习初探(一)
  • Java多线程(4):使用线程池执行定时任务
  • LeetCode29.两数相除 JavaScript
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • nfs客户端进程变D,延伸linux的lock
  • Promise面试题2实现异步串行执行
  • Rancher-k8s加速安装文档
  • SAP云平台里Global Account和Sub Account的关系
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SSH 免密登录
  • windows下如何用phpstorm同步测试服务器
  • 高程读书笔记 第六章 面向对象程序设计
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端
  • 前端面试总结(at, md)
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 回归生活:清理微信公众号
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​TypeScript都不会用,也敢说会前端?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (04)odoo视图操作
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (8)STL算法之替换
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C语言)二分查找 超详细
  • (转)Linux下编译安装log4cxx
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET成年了,然后呢?
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • /etc/fstab和/etc/mtab的区别
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • []C/C++读取串口接收到的数据程序
  • []sim300 GPRS数据收发程序
  • []新浪博客如何插入代码(其他博客应该也可以)