请教iptables防火墙的脚本问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教iptables防火墙的脚本问题。相关的知识,希望对你有一定的参考价值。

网上搜了一篇文章“利用iptables防火墙保护Oracle数据库”,里面只有一个Shell脚本,没空去研究iptables请教一下会的朋友们。前面定义的第一个变量LC_ADDR是什么(没有注释不知道改成什么IP)?脚本如下:

#!/bin/bash

LC_ADDR=192.168.1.99
LO_ADDR=127.0.0.1

iptables -F
#清除现有的规

iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#设置INPUT和OUTPUT链的默认规则为DROP,既不允许任何包到达本机,也不允许本机向外发包

iptables -A INPUT -p ALL -s $LC_ADDR -d $LC_ADDR -j ACCEPT
iptables -A OUTPUT -p ALL -s $LC_ADDR -d $LC_ADDR -j ACCEPT
iptables -A INPUT -p ALL -s $LO_ADDR -d $LO_ADDR -j ACCEPT
iptables -A OUTPUT -p ALL -s $LO_ADDR -d $LO_ADDR -j ACCEPT
#允许本机和本机联系,必须打开,否则listener无法正常启动

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
#添加规则,允许入站的ssh连接

iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1521 -j ACCEPT
#添加规则,允许入站的1521端口的连接,也就是允许其他主机通过监听器访问本机的数据库。
#如果listener监听的不是1521端口,则要做相应的修改

iptables -A INPUT -p tcp --dport 5560 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 5560 -j ACCEPT
#添加规则,允许入站的5560端口的连接,也就是允许其他主机访问本机的isqlplus

iptables -A INPUT -p tcp --dport 5500 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 5500 -j ACCEPT
#添加规则,允许入站的55600端口的连接,也就是允许其他主机访问本机的em

LC_ADDR 就是你的机器的IP, 一般来说就是 if_config 后 eth0 对应的IP.
LO_ADDR 127.0.0.1 是环回IP,不用改

后面都是调用的 iptables 命令来添加 防火墙过滤规则的,具体看iptables命令说明。
参考技术A 就该脚本来说,LC_ADDR指的是本地IP,也就是oracle数据库所在机器IP,因为该脚本上的策略都是应用在本机上的;
LO_ADDR,本地环回IP,所有机器都一样是:127.0.0.1;
简单说下上面一些参数的概念,具体的可以搜下iptables配置.
-P,设置默认策略.
-A,添加规则;
-p,协议;
-s,源;
-d,目标;
-j,策略(有允许,拒绝,丢弃),上面的accept是允许;
-dport,目标端口;
-sport,源端口.

请教iptables对指定端口的IP白名单设置

请教iptables的设置。系统Redhat,对于FTP服务器端口21以及SSH的22端口需要设置IP白名单。

已经有以下设置:
================================
# Generated by iptables-save v1.3.5 on Thu Jan 24 11:20:18 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [14473:7280859]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 23 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m state --state NEW -m udp --dport 138 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Thu Jan 24 11:20:18 2013
================================

请问添加什么规则可以是的21端口 22端口只能允许指定的IP访问?
最好举个例子,设IP白名单中一条IP为192.168.1.144

iptables -I INPUT -s 192.168.1.123(指定ip白名单) -p tcp --dport 21 -j ACCEPT
iptables -I INPUT -s 192.168.1.123(指定ip白名单) -p tcp --dport 22 -j ACCEPT
这样能满足您的要求吗 您可以试一下 希望能够帮助到您追问

目前的21端口是ACCEPT, 您的意思是将原配置中删除21端口ACCEPT那一条然后再加新的?我试过了那样是不行的…谢谢~

参考技术A 厄,尽管我看不懂,但个人认为你找这类论坛发帖更有可能得到答案的。 参考技术B 应该是这样的
iptables -I INPUT -s 192.168.1.123 -p tcp --dport 21:22 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j DROP (第一条命令)

您可以试试,如果不行再帮我说。

以上是关于请教iptables防火墙的脚本问题。的主要内容,如果未能解决你的问题,请参考以下文章

如何启用iptables 防火墙

防火墙初始化脚本 iptables.sh

iptables的备份及脚本构成

linux iptables设置

iptables 简单使用

配置IPTABLES防火墙