我这样添加的规则-A INPUT -s 192.168.0.105 -d 192.168.0.106 -j ACCEPT,但是不行,其中106是服务器,105是我的电脑。
14 个解决方案
#1
# iptables -t filter --append INPUT -s 192.168.0.105 -i eth0 -j ACCEPT
#2
不太明白这个-d 192.168.0.106,楼主是不是在106的服务器上设置iptables?
#3
对啊,是在服务器上设置iptables。
我要实现的就是只有指定的ip能够访问服务器,其他ip不能访问服务器。
我要实现的就是只有指定的ip能够访问服务器,其他ip不能访问服务器。
#4
这样不行啊,我都不能ssh到服务器。
#5
那就在加一条,其它的ip采用默认策略就可以了。
# iptables -P INPUT DROP
查看以下设置是否成功?
# iptables -L -n
#6
# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
ACCEPT all -- 192.168.0.105 0.0.0.0/0
但是我ssh连接的时候提示
ssh: connect to host 192.168.0.106 port 22: No route to host
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
ACCEPT all -- 192.168.0.105 0.0.0.0/0
但是我ssh连接的时候提示
ssh: connect to host 192.168.0.106 port 22: No route to host
#7
按照你的要求iptables规则是没有错误的,ssh服务开启没有?
# netstat -tlup | grep ssh
#8
ssh服务肯定是开启的,因为防火墙关掉后是可以连接的,这个我保证肯定是没问题的。
#9
那就指定一下端口。看看是否可行?尝试性的~~
# iptable -F
# iptable -P INPUT DROP
# iptables -t filter --append -i eth0 -p tcp -s 192.168.0.105 --dport 22 -j ACCEPT
#10
好像找到原因了,可能是命令顺序不对,为什么先要drop呢?
#11
再次失败,刚才能连上是因为我把22端口开启了。
#12
你说的其他ip就是拒绝,所以默认的策略就是DROP了。
#13
这样确实可以,但是这样的话岂不是每次都要设置?要是把它写到iptables表里应该如何写呢?
#14
#iptables -F
#iptables -X
#iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD DROP
#iptables -A INPUT -i eth0 -p tcp -s 192.168.0.105 --dport 22 -j ACCEPT
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables-save > /etc/sysconfig/iptables
#/etc/init.d/iptables restart
#iptables -X
#iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD DROP
#iptables -A INPUT -i eth0 -p tcp -s 192.168.0.105 --dport 22 -j ACCEPT
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables-save > /etc/sysconfig/iptables
#/etc/init.d/iptables restart
#1
# iptables -t filter --append INPUT -s 192.168.0.105 -i eth0 -j ACCEPT
#2
不太明白这个-d 192.168.0.106,楼主是不是在106的服务器上设置iptables?
#3
对啊,是在服务器上设置iptables。
我要实现的就是只有指定的ip能够访问服务器,其他ip不能访问服务器。
我要实现的就是只有指定的ip能够访问服务器,其他ip不能访问服务器。
#4
这样不行啊,我都不能ssh到服务器。
#5
那就在加一条,其它的ip采用默认策略就可以了。
# iptables -P INPUT DROP
查看以下设置是否成功?
# iptables -L -n
#6
# iptables -L -n
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
ACCEPT all -- 192.168.0.105 0.0.0.0/0
但是我ssh连接的时候提示
ssh: connect to host 192.168.0.106 port 22: No route to host
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
ACCEPT all -- 192.168.0.105 0.0.0.0/0
但是我ssh连接的时候提示
ssh: connect to host 192.168.0.106 port 22: No route to host
#7
按照你的要求iptables规则是没有错误的,ssh服务开启没有?
# netstat -tlup | grep ssh
#8
ssh服务肯定是开启的,因为防火墙关掉后是可以连接的,这个我保证肯定是没问题的。
#9
那就指定一下端口。看看是否可行?尝试性的~~
# iptable -F
# iptable -P INPUT DROP
# iptables -t filter --append -i eth0 -p tcp -s 192.168.0.105 --dport 22 -j ACCEPT
#10
好像找到原因了,可能是命令顺序不对,为什么先要drop呢?
#11
再次失败,刚才能连上是因为我把22端口开启了。
#12
你说的其他ip就是拒绝,所以默认的策略就是DROP了。
#13
这样确实可以,但是这样的话岂不是每次都要设置?要是把它写到iptables表里应该如何写呢?
#14
#iptables -F
#iptables -X
#iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD DROP
#iptables -A INPUT -i eth0 -p tcp -s 192.168.0.105 --dport 22 -j ACCEPT
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables-save > /etc/sysconfig/iptables
#/etc/init.d/iptables restart
#iptables -X
#iptables -P INPUT DROP
#iptables -P OUTPUT ACCEPT
#iptables -P FORWARD DROP
#iptables -A INPUT -i eth0 -p tcp -s 192.168.0.105 --dport 22 -j ACCEPT
#iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables-save > /etc/sysconfig/iptables
#/etc/init.d/iptables restart