赞
踩
#!/bin/bash
LC_ADDR=10.120.249.144
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
##############################################################################################
iptables里面的dport和sport
首先先来翻译一下dport和sport的意思:
dport:目的端口
sport:来源端口
初学iptables比较容易迷糊,但是我尽量用通俗的语言给你讲解。
dport 和sport字面意思来说很好理解,一个是数据要到达的目的端口,一个是数据来源的端口。
但是在使用的时候要分具体情况来对待,这个具体情况就是你的数据包的流动行为方式。(INPUT还是OUTPUT)
比如你的例子:/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT
注意里面的INPUT参数,这个代表你的这条数据包的进行的 "进入" 操作!
那么你的这条数据包可以这么描述:
1.这是一条从外部进入内部本地服务器的数据。
2.数据包的目的(dport)地址是80,就是要访问我本地的80端口。
3.允许以上的数据行为通过。
总和:允许外部数据访问我的本地服务器80端口。
再看第2条列子:/sbin/iptables -A INPUT -p tcp --sport 80 -j ACCEPT
1.这是一条从外部进入内部本地服务器的数据。
2.数据包的来源端口是(sport)80,就是对方的数据包是80端口发送过来的。
3.允许以上数据行为。
总结:允许外部的来自80端口的数据访问我的本地服务器。
input方式总结: dport指本地,sport指外部。
如果你的数据包是(OUTPUT)行为,那么就是另外一种理解方式:
比如:
/sbin/iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
1.这是一条从内部出去的数据。
2.出去的目的(dport)端口是80。
3.允许以上数据行为。
output行为总结:dport只外部,sport指本地。
##########################################################################################################
iptables 删除一条已有的iptables规则
语法是: iptables -D chain rulenum [options]
其中: chain 是链的意思,就是INPUT FORWARD 之类的定语
rulenum 是该条规则的编号。从1开始。可以使用iptables -L -n INPUT --line-numbers列出指定的链的规则的编号来。
所以,例如上面要删除一个INPUT链的规则的话可以这样:
iptables -D INPUT 3
意思是删除第3条规则。
#for example
[root@rhel6 ~]# iptables -L INPUT -n --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
iptables -D INPUT 3
[root@rhel6 ~]# iptables -L INPUT -n --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
##########################################################################################################
iptables 添加规则
添加规则有两个参数:-A和-I。其中-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部。
添加一条规则到尾部:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@rhel6 ~]# iptables -L INPUT -n --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
iptables -A INPUT -p tcp -s 10.120.249.154 --dport 22 -j ACCEPT
[root@rhel6 ~]# iptables -L INPUT -n --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
5 ACCEPT tcp -- 10.120.249.154 0.0.0.0/0 tcp dpt:22
再插入一条规则到第三行,将行数直接写到规则链的后面:
iptables -I INPUT 3 -p tcp -s 10.120.249.154 --dport 22 -j ACCEPT
[root@rhel6 ~]# iptables -L INPUT -n --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 10.120.249.154 0.0.0.0/0 tcp dpt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
6 ACCEPT tcp -- 10.120.249.154 0.0.0.0/0 tcp dpt:22
iptables -D INPUT 5
iptables -D INPUT 5
[root@rhel6 ~]# iptables -L -n --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 10.120.249.154 0.0.0.0/0 tcp dpt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:1521
######################################################################################
修改规则
修改使用-R参数
iptables -R INPUT 3 -p tcp --dport 22 -j ACCEPT
[root@rhel6 ~]# iptables -L INPUT -n --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
iptables -R INPUT 3 -p tcp -s 10.120.249.154 --dport 22 -j ACCEPT
[root@rhel6 ~]# iptables -L INPUT -n --line-numbers
Chain INPUT (policy DROP)
num target prot opt source destination
1 ACCEPT all -- 10.120.249.144 10.120.249.144
2 ACCEPT all -- 127.0.0.1 127.0.0.1
3 ACCEPT tcp -- 10.120.249.154 0.0.0.0/0 tcp dpt:22
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1521
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22193071/viewspace-1337811/,如需转载,请注明出处,否则将追究法律责任。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。