iptables-远程访问数据库端口策略

一个开发提出的业务需求,需要开通某台服务器,到某套数据库的访问权限,即1521端口访问权限,提交了网络工单,等网络实施后,进行测试,

> telnet x.x.x.x 1521

正在连接10.6.1.1...


竟然连接不通?咨询网络,确认已经开通了。还有什么问题?


朋友们可能已经猜出来,有可能是防火墙,屏蔽了对于1521端口的访问。如何验证?因为是测试环境,所以最简单的一种方法,就是关闭防火墙,

> service iptables stop


再测试这次就是通的了,

> telnet x.x.x.x 1521

Trying x.x.x.x...

Connected to x.x.x.x (x.x.x.x).

Escape character is '^]'.


说明网络开通了,但数据库服务器的防火墙,并未开放1521端口,因此导致telnet错误,解决方案当然不能是,关闭防火墙这种粗暴方法,而是可以增加,1521端口的访问策略。


解决方案:


1. 以root身份编辑/etc/sysconfig/iptables文件,向文件中增加,红色部分信息,

> vi /etc/sysconfig/iptables


# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT


2. 重启iptables服务

service iptables restart

iptables: Applying firewall rules: [  OK  ]



此时1521端口,就可以正常访问。


对于iptables使用,可能会以上操作,基本就可以了,但若深究起来,iptables的学问真是很深,越看越觉得陌生,越觉得自己知道的只是皮毛,足以看出,“会用”和“精通”区别不小。


针对指令,

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT


含义就是,允许访问1521端口,其中一些参数,

-A:向规则链中添加条目;

-p:指定要匹配的数据包协议类型; 

-j<目标>:指定要跳转的目标;

ACCEPT:表示接收数据包;


iptables命令选项输入顺序(引自:http://man.linuxde.net/iptables):

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作


网上有篇文章,介绍基本概念通俗易懂,摘录一些,原文可以参考http://www.zsythink.net/archives/1199,

从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。

主机防火墙:针对于单个主机进行防护。

网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。

网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。

 

从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。

硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。

软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。


iptables 其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个框架的名字叫 netfilter

 

netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。

iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。

 

netfilter/iptables(下文中简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。


Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:

网络地址转换(Network Address Translate)

数据包内容修改

以及数据包过滤的防火墙功能

 

所以说,虽然我们使用service iptables start启动iptables"服务",但是其实准确的来说,iptables并没有一个守护进程,所以并不能算是真正意义上的服务,而应该算是内核提供的功能。


总结来讲,Linux系统中,防火墙(Firewall),网址转换(NAT),数据包(package)记录,流量统计,这些功能是由Netfilter子系统所提供的,而iptables是控制Netfilter的工具。iptables将许多复杂的规则组织成成容易控制的方式,以便管理员可以进行分组测试,或关闭、启动某组规则。iptable只读取数据包头,不会给信息流增加负担,也无需进行验证。(引自:https://www.centos.bz/2017/11/linux-iptables防火墙原理与常用配置/)


这张图是数据包,经过防火墙的流程图,(引自:http://www.zsythink.net/archives/1199)

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1


iptables涉及Linux配置、网络等几方面的知识,一个小小的指令,可谓“博大精深”,如果对于开通数据库,端口访问策略,会用上面的指令,就已可以,若朋友们对此感兴趣,可以深入研究,还是能学习到,非常纯粹的知识。


参考文献:

https://wiki.debian.org/iptables

https://linux.die.net/man/8/iptables

http://www.zsythink.net/archives/1199

https://www.centos.bz/2017/11/linux-iptables防火墙原理与常用配置/

http://www.linuxidc.com/Linux/2016-09/134832.htm

http://man.linuxde.net/iptables

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7192724/viewspace-2214421/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7192724/viewspace-2214421/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux Iptables命令列表: 用iptables -ADC 来指定链的规则,-A添加 -D删除 -C 修改 iptables - [RI] chain rule num rule-specification[option] 用iptables - RI 通过规则的顺序指定 iptables -D chain rule num[option] 删除指定规则 iptables -[LFZ] [chain][option] 用iptables -LFZ 链名 [选项] iptables -[NX] chain 用 -NX 指定链 iptables -P chain target[options] 指定链的默认目标 iptables -E old-chain-name new-chain-name -E 旧的链名 新的链名 用新的链名取代旧的链名 说明 Iptalbes 是用来设置、维护和检查Linux内核的IP包过滤规则的。 可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包。这被称作'target'(目标),也可以跳向同一个表内的用户定义的链。 TARGETS 防火墙的规则指定所检查包的特征,和目标。如果包不匹配,将送往该链中下一条规则检查;如果匹配,那么下一条规则由目标值确定.该目标值可以是用户定义的链名,或是某个专用值,如ACCEPT[通过], DROP[删除], QUEUE[排队], 或者 RETURN[返回]。 ACCEPT 表示让这个包通过。DROP表示将这个包丢弃。QUEUE表示把这个包传递到用户空间。RETURN表示停止这条链的匹配,到前一个链的规则重新开始。如果到达了一个内建的链(的末端),或者遇到内建链的规则是RETURN,包的命运将由链准则指定的目标决定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值