iptables只允许指定ip地址访问指定端口,如何关闭
分类:计算机网络

我们在之前的教程中创建的DNS服务器是一个开放DNS解析器。开放解析器不会过滤任何来源请求,并会接受来自所有IP的查询。

首先,清除所有预设置

echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_all

IPTABLES规则,先拒绝所有链接,在注意开放对外服务

图片 1

iptables -F#清除预设表filter中的所有规则链的规则
 
iptables -X#清除预设表filter中使用者自定链中的规则

这下是别人不能ping你,你也不能ping别人

IPTABLES可用操作

--------------------------------------分割线

推荐阅读:

使用BIND配置DNS服务器---初级篇 http://www.linuxidc.com/Linux/2013-05/84920.htm

BIND+DLZ+MySQL智能DNS的正向解析和反向解析实现方法 http://www.linuxidc.com/Linux/2013-04/82527.htm

域名服务BIND构建与应用配置 http://www.linuxidc.com/Linux/2013-04/82111.htm

Ubuntu BIND9泛域名解析配置 http://www.linuxidc.com/Linux/2013-03/81928.htm

CentOS 5.2下安装BIND9.6 http://www.linuxidc.com/Linux/2013-02/79889.htm

其次,设置只允许指定ip地址访问指定端口

将其值改为1后为禁止PING

(1)-L:先是所选链中所有策略  IPTABLES -t filter -L

--------------------------------------分割线

不幸的是,开放解析器很容易成为一个攻击目标。比如,攻击者可以对开放DNS服务器发起一个拒绝服务攻击(DoS)或者更糟的分布式拒绝服务攻击(DDoS)。这些也可与IP欺骗结合,将应答包指向受害者被欺骗的IP地址。在另外的场合下称作DNS放大攻击,开放的DNS服务器很容易就会成为攻击的对象。

根据openresolverproject.org,除非有必要,运行一个开放解析器是不明智的。大多数公司要让它们的DNS服务器仅对他们的客户开放。本篇教程会只要集中于如何配置一个DNS服务器来使它停止开放解析且仅对有效的客户响应。

iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT
 
iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 22 -j ACCEPT  

将其值改为0后为解除禁止PING

(2)-A:(链名称):在所选链尾部加上一条新的策略

调整防火墙

由于DNS运行在UDP的53端口上,系统管理可能试图仅允许来自53端口的客户端IP地址,并阻止剩余的因特网端口。虽然这可以工作,但是也会有一些问题。既然根服务器与DNS服务器的通信也用53端口,我们不得不在防火墙内也确保UDP 53端口被允许。

一个防火墙示例如下所示。对于生产服务器,确保你的规则匹配你的要求并遵守与公司安全制度。

  1. # vim firewall-script

  1. ## existing rules are flushed to start with a new set of rules ##
  2. iptables -F
    1. iptables -A INPUT -s A.A.A.A/X -p udp --dport 53-j ACCEPT
  3. iptables -A INPUT -s B.B.B.B/Y -p udp --dport 53-j ACCEPT
  4. iptables -A INPUT -s C.C.C.C/Z -p udp --dport 53-j ACCEPT
    1. iptables -A INPUT -p udp --dport 53-j DROP
    1. ## making the rules persistent ##
  5. service iptables save

让脚本可执行并运行它。

  1. # chmod +x firewall-script
  2. # ./firewall-script

 
iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 3306 -j ACCEPT
 
iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 3306 -j ACCEPT

其实使用iptable最简单

例:IPTABLES -t filter -A INPUT -S 192.168.3.1 -j DROP

阻止递归查询

DNS查询主要可以分为递归查询和迭代查询。对于递归查询,服务器会响应客户端应答或者错误信息。如果应答不在服务器的缓存中,服务器会与根服务器通信并获得授权域名服务器。服务器会不停查询知道获得结果,或者请求超时。对于迭代查询,另一个方面讲,服务器会将客户端指向另外一个可能可以处理的服务器上,那么就会减少服务器自身的处理。

我们可以控制运行递归查询的IP地址。我们修改位于/etc/named.conf的配置文件并增加/修改下面的参数。

  1. # vim /etc/named.conf

  1. ## we define ACLs to specify the source address/es ##
  2. acl customer-a{ A.A.A.A/X;};
  3. acl customer-b { B.B.B.B/Y; C.C.C.C/Z;};
    1. ## we call the ACLs under options directive ##
  4. options {
  5. directory "/var/named";
  6. allow-recursion { customer-a; customer-b;};
  7. };

上面这两条,请注意--dport为目标端口,当数据从外部进入服务器为目标端口;反之,数据从服务器出去则为数据源端口,使用 --sport
同理,-s是指定源地址,-d是指定目标地址。

iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -j DROP

(3) -D:(链名称) (策略内容或序号)从所选链中删除策略

调整用于开放解析器的防火墙

如果你必须运行一个开放解析器,建议你适当调节一下你的服务器,这样就不会被利用了。smurfmonitor 仓库提供了强大的一组可以用于开放解析器的iptables规则,比如阻止来自DNS放大攻击的域名解析请求。这个仓库会定期地更新,强烈建议DNS服务器管理员使用它。

总的来说,对于开放DNS解析器的攻击是很常见的,特别是对于没有适当安全防护的DNS服务器而言。这个教程延时了如何禁止一个开放DNS服务器。我们同样看到了如何使用iptables在一个开放DNS服务器上加上一层安全防护。

希望这对你有用。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-05/101310.htm

图片 2

然后,关闭所有的端口

iptables -A INPUT -p icmp –icmp-type 0 -s 0/0 -j ACCEPT

例:iptables -t filter -D INPUT 3

iptables -P INPUT DROP
 
iptables -P OUTPUT DROP
 
iptables -P FORWARD DROP

iptables -A OUTPUT -p icmp –icmp-type 0 -s 192.168.29.1 -j DROP

(4) -F(链名称)清空所选链策略,

最后,保存当前规则

iptables -A OUTPUT -p icmp –icmp-type 8 -s 192.168.29.1 -j ACCEPT

iptables -F INPUT

/etc/rc.d/init.d/iptables save
 
service iptables restart

如何让别人ping不到自己,而自己又能ping别人,问题其实很简单,用如下脚本

IPTABLES可用数据描述

这种iptables的规则设定适用于只充当MySQL服务器的管理和维护,外部地址不提供任何服务。

#/bin/bash
iptables -F
iptables -F -t nat
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 80,22 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport --sport 80,22 -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 8 -j ACCEPT

(1)-p(tcp/udp/icmp)匹配指定的协议  例:

如果你希望yum可以运行的话,还需要添加以下内容,允许DNS请求的53端口,允许下载随机产生的高端口

iptables应用之禁ping和防ddos向外发包

阻止源地址为192.168.3.1到本机的所有UDP通信

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 
iptables -A INPUT -p udp --sport 53 -j ACCEPT
 
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
 
iptables -A OUTPUT -p tcp --sport 10000:65535 -j ACCEPT
 
/etc/rc.d/init.d/iptables save
 
service iptables restart

主要讲2个基本的实际应用,主要涉及到禁ping(ipv4)以及禁止udp,即禁止有黑客利用服务器向外发包ddos攻击方面的内容。

iptables -t filter -A INPUT -P udp -S 192.168.3.1 -j DROP

更多iptables相关教程见以下内容

一、如果没有iptables禁止ping

(2) -d (ip地址) 阻止这个地址的通信

CentOS 7.0关闭默认防火墙启用iptables防火墙  http://www.linuxidc.com/Linux/2015-05/117473.htm

echo1 > /proc/sys/net/ipv4/icmp_echo_igore_all #开启

阻止ip地址为192.168.3.1/192.168.3.0这个网段的通信

iptables使用范例详解 http://www.linuxidc.com/Linux/2014-03/99159.htm

echo0 > /proc/sys/net/ipv4/icmp_echo_igore_all #关闭

iptables -t filter -A OUTPUT -d 192.168.3.1/  192.168.3.0/24 -j DROP

Linux防火墙iptables详细教程 http://www.linuxidc.com/Linux/2013-07/87045.htm

二、利用iptables规则禁ping

(3) -i(网络接口) 以数据包进入本机接口来匹配数据包 (进入本地接口 -i)

iptables的备份、恢复及防火墙脚本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm

iptables -A INPUT -p icmp --icmp-type8 -s 0/0 -j DROP

例:阻止从eth0进入的源地址为192.168.3.1的所有通信

Linux下防火墙iptables用法规则详解 http://www.linuxidc.com/Linux/2012-08/67952.htm

三、利用iptables规则,禁止服务器向外发包,防止DDOS向外攻击

iptables -t filter -A INPUT -i eth0 -s 192.168.3.1 -j DROP

Linux下iptables防火墙设置 http://www.linuxidc.com/Linux/2015-10/123843.htm

iptables -I OUTPUT -p udp --dport 53 -d 8.8.8.8 -j ACCEPT #允许UDP服务IP

(4)-o (网络接口) 以数据包离开本地所使用的网络接口来匹配数据包,同 -i(离开本地接口 -o)

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-01/127806.htm

iptables -A OUTPUT -p udp -j DROP #禁止udp服务

例:阻止目标IP地址为192.168.3.0从eth0发出的所用通信

图片 3

上述53端口和8888是DNS服务必须有的,如果不清楚本机的DNS设置,可执行以下命令得到IP:

iptables -t filter -A OUTPUT -o eth0 -S 192.168.3.0/24 -j DROP

cat/etc/resolv.conf

(5) --sport (端口) 使用数据包源端口匹配数据包,该参数必须同 -p配合使用

推荐阅读:

例:阻源端口为1000的所有tcp通信

iptables—包过滤(网络层)防火墙 http://www.linuxidc.com/Linux/2013-08/88423.htm

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

Linux防火墙iptables详细教程 http://www.linuxidc.com/Linux/2013-07/87045.htm

(6) --dport(端口) 基于数据包目的端口匹配

iptables+L7+Squid实现完善的软件防火墙 http://www.linuxidc.com/Linux/2013-05/84802.htm

例:阻止目标端口为1000的所tcp通信

iptables的备份、恢复及防火墙脚本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm

iptables -t filter -A OUTPUT -p tcp --dport 1000 -j DROP

Linux下防火墙iptables用法规则详解 http://www.linuxidc.com/Linux/2012-08/67952.htm

常见服务策略配置

图片 4

例:DNS:

iptables -A INPUT -p udp -s 192.168.3.0/24 --dport 53 -j ACCEPT

iptables -A INPUT -p udp -s 192.168.3.0/24 --sport 53 -j ACCEPT

iptables -A OUTPUT -p udp -D 192.168.3.0/24 --dport 53 -j ACCEPT

iptables -A OUTPUT -p udp -D 192.168.3.0/24 --sport 53 -j ACCEPT

IPTABLES规则保存在配置文件  /etc/sysconfig/iptables

以下命令可以将当前IPTABLES配置保存到配置文件中

service iptables save

推荐阅读:

iptables—包过滤(网络层)防火墙 http://www.linuxidc.com/Linux/2013-08/88423.htm

Linux防火墙iptables详细教程 http://www.linuxidc.com/Linux/2013-07/87045.htm

iptables+L7+Squid实现完善的软件防火墙 http://www.linuxidc.com/Linux/2013-05/84802.htm

iptables的备份、恢复及防火墙脚本的基本使用 http://www.linuxidc.com/Linux/2013-08/88535.htm

Linux下防火墙iptables用法规则详解 http://www.linuxidc.com/Linux/2012-08/67952.htm

图片 5

本文由美高梅网址发布于计算机网络,转载请注明出处:iptables只允许指定ip地址访问指定端口,如何关闭

上一篇:【美高梅网址】引用类型和值类型,值类型和引 下一篇:没有了
猜你喜欢
热门排行
精彩图文