iptables防火墙配置

iptables防火墙配置

1、防火墙简介html

一、功能:算法

    1)经过源端口,源IP地址,源MAC地址,包中特定标记和目标端口,IP,MAC来肯定数据包是否能够经过防火墙安全

    2)分割内网和外网【附带的路由器的功能】服务器

    3)划分要被保护的服务器tcp

若是Linux服务器启用了防火墙,SELinux等的防御措施,那么,他的安全级别能够达到B2[原来是C2]spa

 

二、防火墙分类代理

    1)数据包过滤【绝大多数的防火墙】htm

            分析IP地址,端口和MAC是否符合规则,若是符合,接受blog

    2)代理服务器dns

 

三、防火墙的限制

    1)防火墙不能有效防止病毒,因此防火墙对病毒攻击基本无效,可是对木马仍是有必定的限制做用的。

    2)防火墙通常不设定对内部[服务器本机]访问规则,因此对内部攻击无效

【附】现当今的杀毒软件对病毒的识别率大约在30%左右。也就是说,大部分的病毒是杀毒软件并不认识的!

 

四、防火墙配置原则【交叉使用】

    拒绝全部,逐个容许

    容许全部,逐个拒绝

【附:】防火墙规则:谁先配置,谁先申请!

 

五、Linux常见防火墙

    2.4/2.6内核        iptables #如今经常使用的

    2.2内核              ipchains

 

 、iptables防火墙

一、结构:表-------链--------规则

 

 PREROUTING 和 POSTROUTING

 

 

二、表:在iptables中默认有如下三个表

     filter表        数据过滤表 #filter过滤,渗透

     NAT表        内网与外网地址转换

     Mangle    特殊数据包标记

 

三、链

filter表中: INPUT OUTPUT FORWARD

 

3、iptables基础语法

一、规则的查看和清楚

    iptables [-t表名] [选项]

选项:

    -L    查看

    -F    清除全部规则

    -X    清除自定义链

    -Z    清除全部链统计

    -n    以端口和ip显示

示例:

    iptables -t nat -L    #查看nat表中规则

    iptables -L             #查看filter表中规则,不写表名默认查看的是filter表!

 

二、定义默认策略

   iptables  -t 表名  -P 链名 ACCEPT|DROP        #-P(大) 定义默认策略

 

实例:

    iptables -t filter -P INPUT DROP

注意:不要把本身踢出服务器,因此这条规则应该最后设定。

 

三、限定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网段访问

 

四、设定端口访问

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

 

五、设置多端口访问

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

 

 

六、模块调用

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

 

七、简易防火墙实例

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

 

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

chkconfig iptables on

 

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

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

相关文章
相关标签/搜索