Linux学习笔记 --iptables防火墙配置
iptables防火墙配置
一、防火墙简介
1、功能:
1)通过源端口,源IP地址,源MAC地址,包中特定标记和目标端口,IP,MAC来确定数据包是否可以通过防火墙
2)分割内网和外网【附带的路由器的功能】
3)划分要被保护的服务器
如果Linux服务器启用了防火墙,SELinux等的防护措施,那么,他的安全级别可以达到B2[原来是C2]
2、防火墙分类
1)数据包过滤【绝大多数的防火墙】
分析IP地址,端口和MAC是否符合规则,如果符合,接受
2)代理服务器
3、防火墙的限制
1)防火墙不能有效防止病毒,所以防火墙对病毒攻击基本无效,但是对木马还是有一定的限制作用的。
2)防火墙一般不设定对内部[服务器本机]访问规则,所以对内部攻击无效
【附】现当今的杀毒软件对病毒的识别率大约在30%左右。也就是说,大部分的病毒是杀毒软件并不认识的!
4、防火墙配置原则【交叉使用】
拒绝所有,逐个允许
允许所有,逐个拒绝
【附:】防火墙规则:谁先配置,谁先申请!
5、Linux常见防火墙
2.4/2.6内核
iptables #现在常用的
2.2内核
ipchains
二 、iptables防火墙
1、结构:表-------链--------规则
2、表:在iptables中默认有以下三个表
filter表 数据过滤表
#filter过滤,渗透
NAT表 内网与外网地址转换
Mangle 特殊数据包标记
3、链
filter表中: INPUT
OUTPUT FORWARD
三、iptables基础语法
1、规则的查看和清楚
iptables [-t表名]
[选项]
选项:
-L 查看
-F 清除所有规则
-X 清除自定义链
-Z 清除所有链统计
-n 以端口和ip显示
示例:
iptables -t nat -L #查看nat表中规则
iptables -L #查看filter表中规则,不写表名默认查看的是filter表!
2、定义默认策略
iptables -t 表名 -P 链名 ACCEPT|DROP
#-P(大) 定义默认策略
实例:
iptables -t filter -P INPUT DROP
注意:不要把自己踢出服务器,所以这条规则应该最后设定。
3、限定IP和网卡接口设置
iptables [-AI 链]
[-io 网卡接口] [-p 协议]
[-s 源IP] [-d 目标ip]
-j 动作
说明:
-A 追加链规则
#在链规则最后加入此规则
-I INPUT 2 #把此规则插入到INPUT链,变成第二条规则
-D 链 条数
#删除指定链的指定条数防火墙
示例:
iptables -D INPUT 2 #删除input链上的第二条规则
-i eth0 #指定进入接口,要在INPUT链上定义
-o eth0 #指定传出接口,要在OUTPUT链上定义
-p 协议
#[tcp/udp/icmp/all]
-j 动作
#[ACCEPT|DROP]
实例:
iptables -A INPUT -i lo -j ACCEPT
允许本机回环网卡通信,在INPUT链
iptables-A INPUT -i eth0 -s 192.168.140.254 -j ACCEPT
允许254进入eth0
iptables-A INPUT -i eth0 -s 192.168.140.0/24 -j DROP
拒绝140网段访问
4、设定端口访问
iptables -A INPUT -i eth0 -p all -s源ip
--sport 源端口 -d 目标IP
--dport 目标端口-j 动作
#一般需要指定的是目标端口,而且一定要设置协议类型!
实例:
iptables -A INPUT -i eth0 -p tcp -s 192.168.140.0/24 --dport 22 -j DROP
iptables -A INPUT -i eth0 -p tcp -s 192.168.140.0/24 --dport 137:139 -j ACCEPT #允许访问137到139端口
注意:指定端口时,协议不能用all,要指定确切协议,如TCP
5、模块调用
-m 模块名 模块选项加载iptables功能模块
1) -m state
--state ESTABLISHED,RELATED
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#state状态模块常见状态ESTABLISHED【联机成功的状态】RELATED【返回包状态】
2)-m mac --mac-source按照mac地址限制访问
iptables -A INPUT -m mac --mac-source aa:bb:cc:dd:ee:ff -j DROP
#拒绝某mac访问
3)-mstring
--string "想要匹配的数据包中字串"
iptables -A FORWARD -p udp --dport 53 -m string --string "tencent"--algo kmp -j DROP
#通过dns拒绝QQ登录
#--algo指定字符串模式匹配策略,支持KMP和BM两种字符串搜索算法,任意指定一个即可
6、简易防火墙实例
iptables -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -p tcp --dport 22 -s <IP地址>-j
ACCEPT
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -P INPUT DROP
7、防火墙服务开机自启动
chkconfig iptables on
8、防火墙规则开启自启动
1) service
iptables save
会把规则保存到/etc/sysconfig/iptables文件中,重启会自动读取
2) a.手工写防火墙脚本
如 vi /root/iptables.rule
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -P INPUT DROP
b.赋予执行权限 chmod
755 /root/iptables.rule
c.开机运行 vi/etc/rc.local
d.写入 /root/iptables.rule
Linux学习笔记 --iptables防火墙配置的更多相关文章
- Linux学习笔记1:配置Linux网络和克隆虚拟机并更改配置
一.配置Linux网络 在安装Linux的时候,一定要保证你的物理网络的IP是手动设置的,要不然会在Linux设置IP连通网络的时候会报network is unreachable 并且怎么也找不到问 ...
- Linux学习笔记之CentOS7配置***SS
0x00 概述 最近安装K8S,镜像在国内不可达,只能通过科学方法获取. 0x01 安装配置Shadowsocks客户端 1.1 安装Sha.dows.ocks客户端 安装epel扩展源 采用Pyth ...
- Linux学习笔记04—IP配置
一.自动获取IP只有一种情况可以自动获取IP地址,那就是你的Linux所在的网络环境中有DHCP服务.只要你的真机可以自动获取IP,那么安装在虚拟机的Linux同样也可以自动获取IP. 方法很简单,只 ...
- Linux学习笔记之rsync配置
0x00 rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录. ...
- Linux学习笔记之目录配置
一.目录配置 相关目录说明 /bin 二进制文件 /boot 系统启动文件(内核的初始化文件等) /dev 设备文件(硬盘等) /e ...
- Linux学习笔记总结--memcached配置
Memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到 ...
- Linux学习笔记(11)linux网络管理与配置之一——配置路由与默认网关,双网卡绑定(5-6)
Linux学习笔记(11)linux网络管理与配置之一——配置路由与默认网关,双网卡绑定(5-6) 大纲目录 0.常用linux基础网络命令 1.配置主机名 2.配置网卡信息与IP地址 3.配置DNS ...
- Linux学习笔记(10)linux网络管理与配置之一——主机名与IP地址,DNS解析与本地hosts解析(1-4)
Linux学习笔记(10)linux网络管理与配置之一——主机名与IP地址,DNS解析与本地hosts解析 大纲目录 0.常用linux基础网络命令 1.配置主机名 2.配置网卡信息与IP地址 3.配 ...
- Linux学习笔记 | 配置ssh
目录: SSH的必要性 将默认镜像源修改为清华镜像源 Linux安装ssh软件 使用putty软件实现ssh连接 Windows下安装winscp SSH的必要性 一般服务器都位于远程而非本地,或者及 ...
随机推荐
- Bootstrap3 排版-标题
HTML 中的所有标题标签,<h1> 到 <h6> 均可使用.另外,还提供了 .h1 到 .h6 类,为的是给内联(inline)属性的文本赋予标题的样式. h1. Boots ...
- Bootstrap3 栅格系统-列排序
通过使用 .col-md-push-* 和 .col-md-pull-* 类就可以很容易的改变列(column)的顺序. <div class="row"> <d ...
- Jedis分片Sentinel连接池实验
Jedis分片Sentinel连接池实验 1.起因 众所周知,Redis官方HA工具Sentinel已经问世很久了,但令人费解的是,Jedis官方却迟迟没有更新它的连接池.到目前Maven库中最新的2 ...
- Shell脚本了解
一.什么是Shell Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面, ...
- linux:cpu 每-CPU 的变量
每-CPU 的变量 每-CPU 变量是一个有趣的 2.6 内核的特性. 当你创建一个每-CPU变量, 系统中每个处理器获得它自己的这个变量拷贝. 这个可能象一个想做的奇怪的事情, 但是它有自己的优点. ...
- argparse库 学习记录
初始化 始见参数 name or flags action nargs default type choices required help dest metavar 总结 继上次的optparser ...
- Android EditText在ScrollView中被输入法遮挡
千言万语不如一张图来的实在,问题如下GIF图所示[输入框被输入法挡住了]: 为了不让底部的按钮随着输入法一起起来,我把windowSoftInputMode设置为adjustPan. <acti ...
- git中status指令总是提示内容被修改的解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 最近在用git提交项目修改时发现一个问题,就是多次 git a ...
- java设计模式-----单例设计模式
设计模式是个很高深的东西,我也是略懂皮毛,下面让我用最简洁易懂的语言描述下单例设计模式吧. 一些人总结出来用来解决特定问题的固定的解决方案. 解决一个类在内存中只存在一个对象,想要保证对象的唯一. 1 ...
- Struts 1 之文件上传
Struts 1 对Apache的commons-fileupload进行了再封装,把上传文件封装成FormFile对象 定义UploadForm: private FormFilefile; //上 ...