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、结构:表-------链--------规则

PREROUTING 和 POSTROUTING

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、设置多端口访问

iptables可以方便的配置多个端口。其中根据端口的连续性,又可分为连续端口配置和不连续端口配置。

1)、连续端口配置

如:

iptables -A INPUT -p tcp --dport 81:89 -j ACCEP

2)、使用multiport参数配置不连续端口

如:

iptables -A INPUT -p tcp -m multiport --dport 21:25,135:139 -j DROP

6、模块调用

-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两种字符串搜索算法,任意指定一个即可

7、简易防火墙实例

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

拦截目的或者源端口为相应服务端口(123 - ntp)的所有UDP报文(一次UDP反射DDOS攻击设置规则)

iptables -A INPUT -p udp -m udp --sport 123 -j DROP

iptables -A INPUT -p udp -m udp --dport 123 -j DROP

iptables -A OUTPUT -p udp -m udp --sport 123 -j DROP

iptables -A OUTPUT -p udp -m udp --dport 123 -j DROP

8、防火墙服务开机自启动

chkconfig iptables on

9、防火墙规则开启自启动

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

转载自:http://www.cnblogs.com/luyiba/p/6304032.html

iptables防火墙配置的更多相关文章

  1. Linux学习笔记 --iptables防火墙配置

    iptables防火墙配置 一.防火墙简介 1.功能: 1)通过源端口,源IP地址,源MAC地址,包中特定标记和目标端口,IP,MAC来确定数据包是否可以通过防火墙 2)分割内网和外网[附带的路由器的 ...

  2. Keepalived 无法自动转换主备角色,请关注 iptables 防火墙配置

    最近在研究服务器高可用集群 (HA)…… 搭建了主备两台Keepalived,配置什么的全是网上照抄的,被验证过无数遍的示例…… 然而Master和Backup无法自动切换.两边会同时绑定浮动IP(V ...

  3. LINUX IPTABLES 防火墙配置

     0.iptables(ACL)的匹配原则: 与cisco等一致,从上到下依次匹配. 1.iptables的基本用法:. (1)命令格式 iptables [–ttable] command [mat ...

  4. CentOS切换为iptables防火墙并进行相关配置

    CentOS切换为iptables防火墙 切换到iptables首先应该关掉默认的firewalld,然后安装iptables服务. 1.关闭firewall: service firewalld s ...

  5. CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙

    官方文档介绍地址: https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Gui ...

  6. CentOS 7.4中firewall防火墙详解和配置以及切换为iptables防火墙

    转载:https://blog.csdn.net/xlgen157387/article/details/52672988 一.firewall介绍 CentOS 7中防火墙是一个非常的强大的功能,在 ...

  7. CentOS 7中firewall防火墙详解和配置以及切换为iptables防火墙--转载

    最近在linux(这里用到的是Centos7的64位版本)安装nginx时,在开放80端口时用iptables设置端口 和重启服务发现提示未找到文件,在网络上收集查找后发现在Centos7中iptab ...

  8. Centos7 防火墙关闭和启用iptables防火墙

    操作系统环境:CentOS Linux release 7.0.1406(Core) 64位CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤. 1.关闭f ...

  9. linux网络及防火墙配置命令

      /etc/sysconfig/network 包括主机基本网络信息,用于系统启动 /etc/sysconfig/network-script/ 此目录下是系统启动最初始化网络的信息 /etc/sy ...

随机推荐

  1. node.js如何将远程的文件下载到本地、解压、读取

    其实要解决的问题,很简单,获取远程文件,然后解压到本地读取. 在vscode中通过node.js来实现是比较方便的,相比之前的zip.js,我觉得我还是比较喜欢node.js实现方式. test.js ...

  2. Qt5.9一个简单的多线程实例(类QThread)(第一种方法)

    Qt开启多线程,主要用到类QThread.有两种方法,第一种用一个类继承QThread,然后重新改写虚函数run().当要开启新线程时,只需要实例该类,然后调用函数start(),就可以开启一条多线程 ...

  3. 基于Matlab的多自由度系统固有频率及振型计算

    可参考文涛,基于Matlab语言的多自由度振动系统的固有频率及主振型计算分析,2007 对于无阻尼系统 [VEC,VAL]=eig(inv(A)*K) 对于有阻尼系统,参考振动论坛计算程序 输入M,D ...

  4. 【Codeforces Round 1137】Codeforces #545 (Div. 1)

    Codeforces Round 1137 这场比赛做了\(A\).\(B\),排名\(376\). 主要是\(A\)题做的时间又长又交了两次\(wa4\)的. 这两次错误的提交是因为我第一开始想的求 ...

  5. Python崛起:“人生苦短,我用Python”并非一句戏言

      这些年,编程语言的发展进程很快,在商业公司.开源社区两股力量的共同推动下,涌现出诸如Go.Swift这类后起之秀,其中最为耀眼的是Python.   在这里还是要推荐下我自己建的Python开发学 ...

  6. C++模板的特化

    C++类模板的三种特化,讲得比较全面 By SmartPtr(http://www.cppblog.com/SmartPtr/) 针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型(全特化) ...

  7. 把DataTable转换为List<T>

    前一篇有学习过<把List<T>转换为DataTable>http://www.cnblogs.com/insus/p/8043173.html 那此篇,将是学习反向,把Dat ...

  8. DIV实现水平或垂直滚动条

    添加样式: 在html中,需要创建2层div来实现.一个div包含另一个div: 效果:

  9. JQuery如何实现双击事件时不触发单击事件

    单击和双击事件的执行顺序: 单击(click):mousedown,mouseout,click: 双击(dblclick):mousedown,mouseout,click , mousedown, ...

  10. [HAOI2017]供给侧改革[离线、trie]

    题意 题目链接 分析 由于数据随机所以 LCP 不会很长,维护每个位置后 40 个字符构成的01串. 将询问离线维护,以当前右端点为 R 的每个长度的 LCP 的第一个出现位置 f(这个信息显然是单调 ...