iptables防火墙重点简单总结

iptables防火墙重点简单总结

1.iptables防火墙简介4表5链

iptables的4表:(filter表,nat表,mangle表,raw表,最常用的是前面两个)

iptables的5链:(INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING,所有的链名字要大写。)

filter表的作用:主要和主机自身有关,负责主机防火墙功能过滤的,过滤流入流出主机的数据包.

nat表的作用:负责网络地址转换,来源与目的IP地址和port的转换。

2.iptables常用的命令总结

[root@bogon ~]# iptables -V                   #查看版本号

[root@bogon ~]# iptables -nL        #查看当前状态filter表的防火墙规则

[root@bogon ~]# iptables -t nat -nL   #查看当前状态nat表的防火墙规则

[root@bogon ~]# iptables (-t filter)-F        #清除filter表中所有的规则

[root@bogon ~]# iptables -t nat -F              #清除nat表中所有的规则

[root@bogon ~]# /etc/init.d/iptables save       #保持防火墙规则

[root@bogon ~]# /etc/init.d/iptables restart    #重启iptables

[root@bogon ~]# iptables -nL --line-numbers     #查看链并带序号

[root@bogon ~]# iptables -t filter -I INPUT 2 -p tcp --dport 70 -j DROP  #在第2条规则位置插入一条规则

[root@bogon ~]# iptables -t filter -D INPUT 3   #删除指定序号的链(删除第3条序号的链)

[root@bogon ~]# iptables -N chain               #创建自定义链,很少用

[root@bogon ~]# iptables -X                     #删除自定义的链,很少用

[root@bogon ~]# iptables -Z                     #把曾经的链的计数器清零,很少用

3.iptables常用语法    iptables  -t [表] -选项  链  规则  -j  处理方式

表:filter,nat(主要),manngle,raw

选项:A增加(在末尾添加)D删除I增加(在开头添加)

链:INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING

规则:-p 协议等,如:-p tcp

处理方式:DROP,ACCEPT,REJECT(丢弃、接受、拒绝)

常见规则: 

-p 协议(tcp,udp,icmp)                                         #匹配协议

--dport 目的端口              或:    --sport 源端口          #匹配端口

-i eth0(入口网卡)             或:    -o eth1(出口网卡)        #匹配网卡接口

-s  源ip                     或:     -d  目标ip              #匹配ip

-m multiport --dport 端口1,端口2,端口3,...                #匹配多端口,也可换成--sport(很少用)

-m state --state NEW/ESTABLISHED/RELATED(也可逗号匹配多个)     #匹配网络状态

NEW:已经或将启动新的连接,ESTABLISHED:已建立的连接,RELATED:正在启用的新连接,INVALID:非法或无法识别的

例子:iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

4.其他常见的匹配规则 (一般源端口一般很少封

注意:下面的-A换成-D是删除规则

1)禁止所有客户端访问我本机指定的服务,其他服务不受影响

iptables -t filter -A INPUT -p tcp --dport 22 -j DROP     #封22端口,客户端无法ssh连接服务器

iptables -t filter -A INPUT -p tcp --dport 80 -j DROP    #封80端口,禁止用户访问80端口,客户端访问不了web

iptables -t filter -A INPUT -p tcp --dport 3306 -j DROP  #封3306端口,禁止用户访问3306端口,客户端访问不了mysql

iptables -t filter -A INPUT -p tcp -m multiport --dport 80,3306 -j DROP  #一次封多个端口

2)禁止某一个客户端(192.168.4.205)访问我本机指定的服务,其他服务不受影响

iptables -t filter -A INPUT -p tcp -s 192.168.4.205 --dport 22 -j DROP     #封22端口

iptables -t filter -A INPUT -p tcp -s 192.168.4.205 --dport 80 -j DROP    #封80端口

iptables -t filter -A INPUT -p tcp -s 192.168.4.205 --dport 3306 -j DROP  #封3306端口

iptables -t filter -A INPUT -p tcp -s 192.168.4.205 -m multiport --dport 80,3306 -j DROP  #一次封多个端口

3)禁止某个网段(192.168.4.0)访问我本机指定的服务,其他服务不受影响

iptables -t filter -A INPUT -p tcp -s 192.168.4.0/24 --dport 22 -j DROP     #封22端口

iptables -t filter -A INPUT -p tcp -s 192.168.4.0/24 --dport 80 -j DROP    #封80端口

iptables -t filter -A INPUT -p tcp -s 192.168.4.0/24 --dport 3306 -j DROP  #封3306端口

iptables -t filter -A INPUT -p tcp -s 192.168.4.0/24 -m multiport --dport 80,3306 -j DROP  #一次封多个端口

4)禁止所有客户端访问我本机所有的服务

iptables -t filter -A INPUT -p tcp -j DROP

5)禁止某一个客户端(192.168.4.205)访问我本机所有的服务

iptables -t filter -A INPUT -p tcp -s 192.168.4.205 -j DROP

6)禁止某个网段(192.168.4.0)访问我本机所有的服务

iptables -t filter -A INPUT -p tcp -s 192.168.4.0/24 -j DROP

7)禁止不是某个客户端(192.168.4.205)访问我所有的服务(也可指定端口) #其他非网段等类似

iptables -t filter -A INPUT -p tcp ! -s 192.168.4.205 -j DROP   #!表示非该客户端的禁止

8)服务器禁止客户端ping,但其他服务没事(以限制某个客户端为例,其他都类似)

iptables -t filter -I INPUT -p icmp --icmp-type 8 -i eth0 -s 192.168.4.205 -j DROP 

                                                      #--icmp-type 8表示:源主机被隔离

5.SNAT和DNAT作用和使用

SNAT作用改变数据包的源地址、源端口等。(不改变目标地址、目标端口)

注意:之前的思维老是认为是:内网出去的时候才配置SNAT,外网进来的时候配置DNAT,这是一个误区,SNAT和DNAT既可以出去也可进来,我们只是要根据作用和需要进行相应规则配置。

DNAT作用改变数据包的目标地址、目标端口等。(不改变源地址、源端口

6.企业配置规则案例:

(注意:案例2和3本质是一样的,只是一个是内网配网关可以少打一条规则,一个是内网没配网关,需要多打一条规则)

1)企业案例1:企业内部主机实现共享上网  SNAT规则

在A机器(外网web服务器) (10.0.0.6上(eth0(vmnet2))

B机器(防火墙机器)外网10.0.0.19(eth0(vmnet2)),内网192.168.1.19(eth1(vmnet1))

a)网卡配置: 外网卡配网关: 10.0.0.254 内网卡: 不配网关

b)开启路由转发 #vim /etc/sysctl.conf   

net.ipv4.ip_forward = 1

# sysctl –p

c)配置snat规则

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.19

#-o eth0   从eth0网卡出去,网关的外网卡接口,--to-source后面是B机器的公网地址

注意:当路由的公网是一个变化的IP时,可以用地址欺骗伪装的方式配置,如下:

# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

在C机器192.168.1.17上:eth0(vmnet1)配置网关:192.168.1.19(网关是防火墙机器的内网IP)

# curl http://10.0.0.6   访问外网成功。 

2)企业案例2:把外网IP地址及端口映射到内部服务器地址及端口(外网客户端访问内网web机器)  DNAT规则

内网web机器(企业内部web机器192.168.1.17) (vmnet1)  #内网配置了网关:192.168.1.19(目的能和外网通)

[root@bogon ~]# yum -y install httpd

[root@bogon ~]# /etc/init.d/httpd start

[root@bogon ~]# echo 2222 > /var/www/html/index.html

[root@bogon ~]# /etc/init.d/iptables stop

防火墙机器上:外网10.0.0.19(eth0(vmnet2)),内网192.168.1.19(eth1(vmnet1))

a)网卡配置: 外网卡配网关: 10.0.0.254 内网卡: 不配网关

b)开启路由转发 #vim /etc/sysctl.conf   

net.ipv4.ip_forward = 1

# sysctl -p

c)配置dnat规则

# iptables -t nat -A PREROUTING -d 10.0.0.19 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.17:80 

#若C机器没有配置网关,则还需要添加下面一条规则:(此处配了网关,所以可以不加下面的规则)

#iptables -t nat -A POSTROUTING -d 192.168.1.17 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.1.19

外网客户端机器:10.0.0.6上(eth0(vmnet2)):访问内网web服务  能访问内网web服务

[root@localhost 桌面]# curl http://10.0.0.19

2222

3)企业案例3:使外网客户端的plsql能连接到内网的oracle服务器案例:(工作案例,iptables机器作为跳板机)

外网客户端机器: 外网的任意IP机器。

iptables机器:外网IP: 124.42.15.118   内网:192.168.15.110  有监听端口:10050(通过配置能和内网192.168.8.151连通)

内网oracle机器:       只有内网: 192.168.8.151:1521 (通过配置能和内网192.168.15.110连通)内网没配网关

在iptables机器上配置规则:(需要开启路由转发)

iptables -t nat -A PREROUTING -d 124.42.15.118 -p tcp -m tcp --dport 10050  -j DNAT --to-destination 192.168.8.151:1521

iptables -t nat -A POSTROUTING -d 192.168.8.151 -p tcp -m tcp --dport 1521 -j SNAT --to-source 192.168.15.110

外网客户端机器操作:

在plsql的tns文件中修改端口和跳板机的IP地址,如下:

A_PRI_CRM =

  (DESCRIPTION =

    (ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 124.42.15.118)(PORT = 10050)))

    (CONNECT_DATA =(SERVICE_NAME = orcl))

  )

以后登录plsql时候可以如下图登录:

7.一般第一次配置规则后,保存规则后,会把规则自动写入配置文件/etc/sysconfig/iptables中

以后,如果想增加或删除规则,可以直接修改配置文件:vim /etc/sysconfig/iptables,将规则写入或修改即可。

将规则修改或写入后,/etc/init.d/iptables reload 重新加载即可。

8.对攻击服务器黑客IP进行封堵案例思路

自动封:先用awk,sort排序等取出攻击服务器的黑客IP, ……   > /home/shell/gongjiip,然后写脚本:

/bin/netstat –anptu |grep ESTABLISHED|awk ……   > /home/shell/gongjiip

for i in $(cat /home/shell/gongjiip)

do

/sbin/iptables  -I  INPUT  -s  $i  -j  DROP

echo “$i kill at `date`” >>/var/log/ddos

done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维实战帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值