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防火墙配置的更多相关文章

  1. Linux学习笔记1:配置Linux网络和克隆虚拟机并更改配置

    一.配置Linux网络 在安装Linux的时候,一定要保证你的物理网络的IP是手动设置的,要不然会在Linux设置IP连通网络的时候会报network is unreachable 并且怎么也找不到问 ...

  2. Linux学习笔记之CentOS7配置***SS

    0x00 概述 最近安装K8S,镜像在国内不可达,只能通过科学方法获取. 0x01 安装配置Shadowsocks客户端 1.1 安装Sha.dows.ocks客户端 安装epel扩展源 采用Pyth ...

  3. Linux学习笔记04—IP配置

    一.自动获取IP只有一种情况可以自动获取IP地址,那就是你的Linux所在的网络环境中有DHCP服务.只要你的真机可以自动获取IP,那么安装在虚拟机的Linux同样也可以自动获取IP. 方法很简单,只 ...

  4. Linux学习笔记之rsync配置

    0x00 rsync 简介 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 Rsync 同步本地硬盘中的不同目录. ...

  5. Linux学习笔记之目录配置

    一.目录配置 相关目录说明 /bin              二进制文件 /boot           系统启动文件(内核的初始化文件等) /dev            设备文件(硬盘等) /e ...

  6. Linux学习笔记总结--memcached配置

    Memcached是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到 ...

  7. Linux学习笔记(11)linux网络管理与配置之一——配置路由与默认网关,双网卡绑定(5-6)

    Linux学习笔记(11)linux网络管理与配置之一——配置路由与默认网关,双网卡绑定(5-6) 大纲目录 0.常用linux基础网络命令 1.配置主机名 2.配置网卡信息与IP地址 3.配置DNS ...

  8. Linux学习笔记(10)linux网络管理与配置之一——主机名与IP地址,DNS解析与本地hosts解析(1-4)

    Linux学习笔记(10)linux网络管理与配置之一——主机名与IP地址,DNS解析与本地hosts解析 大纲目录 0.常用linux基础网络命令 1.配置主机名 2.配置网卡信息与IP地址 3.配 ...

  9. Linux学习笔记 | 配置ssh

    目录: SSH的必要性 将默认镜像源修改为清华镜像源 Linux安装ssh软件 使用putty软件实现ssh连接 Windows下安装winscp SSH的必要性 一般服务器都位于远程而非本地,或者及 ...

随机推荐

  1. MacOS下Rails+Nginx+SSL环境的搭建(下)

    五.以Production环境部署Rails项目 这里插一个题外话,我们之前是以development环境运行的rails项目,现在我们希望在实际的生产系统中跑一下看看.这是十分有必要的,应该在rai ...

  2. Android适配难题全面总结

    支持多种屏幕 Android 可在各种具有不同屏幕尺寸和密度的设备上运行.对于 应用,Android 系统在不同设备中提供一致的开发环境, 可以处理大多数工作,将每个应用的用户界面调整为适应其显示的 ...

  3. java获取ip的方式,注意多级代理的方式获取

    public String getIP() { String clientIP = ServletActionContext.getRequest().getHeader("x-forwar ...

  4. iOS 滚动视图的复用问题解决方案

    LazyScroll是什么 LazyScrollView 继承自ScrollView,目标是解决异构(与TableView的同构对比)滚动视图的复用回收问题.它可以支持跨View层的复用,用易用方式来 ...

  5. Mybatis源码分析之参数映射及处理ParameterHandler

    ParameterHandler是用来设置参数规则的,当StatementHandler调用prepare方法之后,接下来就是调用它来进行设置参数. ParameterHandler接口: publi ...

  6. 打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路3)

    续前一篇:打开Voice Over时,CATextLayer的string对象兼容NSString和NSAttributedString导致的Crash(二解决思路2)ok,到这里已经能够锁定范围了, ...

  7. JobTracker,TaskTracker简述

    JobTracker 负责接收用户提交的作业,负责启动.跟踪任务执行.JobSubmissionProtocol是JobClient与JobTracker通信的接口.InterTrackerProto ...

  8. P2P系统,一致性哈希和DHT

    数据网格产品经常会使用P2P进行通信,借此机会系统地学习一下P2P网络和其资源搜索策略. 1 P2P网络架构 谈到P2P就涉及到一个概念:Overlay Network(覆盖网络).所谓覆盖网络是应用 ...

  9. JSP1.x 自定义标签

    Tag接口 任何一个标签都对应着一个java类,该类必须实现Tag接口,JSP遇到一个标签后后,将通过一个tld文件查找该标签的实现类,并运行该类的相关方法 import javax.servlet. ...

  10. 为何不能在viewDidLoad方法中显示其他视图

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 你可以使得当视图控制器(view controller)显示自 ...