写iptables限制外部访问

sh/bash/dash/ksh/zsh等Shell脚本
回复
whaha
帖子: 104
注册时间: 2016-07-08 17:43
系统: debian8

写iptables限制外部访问

#1

帖子 whaha » 2017-02-04 21:44

仅仅允许本机访问 58.83.238.20 ,
/sbin/iptables -A INPUT -i eth1 -p tcp -s 58.83.238.20 --dport 80 -j ACCEPT
这句话允许本机访问 58.83.238.20 ,如何再写一条,禁止它访问其他网站?
头像
lilydjwg
论坛版主
帖子: 4249
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 写iptables限制外部访问

#2

帖子 lilydjwg » 2017-02-04 22:49

更改默认策略:

代码: 全选

iptables -P OUTPUT DROP
不太明白你的「其他网站」指的是什么。这样加之后会禁止向外的所有通讯(除非之前允许过)。如果只是限制 80 端口,你加句 iptables -A OUTPUT -p tcp --dport 80 -j REJECT/DROP 就可以了。

另外,你那行加到了 INPUT chain 上,是说允许指定 IP 访问本地。
whaha
帖子: 104
注册时间: 2016-07-08 17:43
系统: debian8

Re: 写iptables限制外部访问

#3

帖子 whaha » 2017-02-05 20:14

仅仅允许访问 58.83.238.20 ,其他的都不可以。
frostfall
帖子: 8
注册时间: 2016-10-31 15:31
系统: 16.10

Re: 写iptables限制外部访问

#4

帖子 frostfall » 2017-02-14 10:39

whaha 写了:仅仅允许访问 58.83.238.20 ,其他的都不可以。
并不清楚你的意思,看标题貌似是限制外部访问本机,看着一楼貌似又是限制本机访问外部
两者操作的链是不一样的,前者是INPUT链,后者是OUTPUT链

如果是前者:
iptables -A INPUT -i eth1 -p tcp -s 58.83.238.20 --dport 80 -j ACCEPT
然后执行iptables -P INPUT DROP,注意如果你是ssh连接,要先执行iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT

如果是后者:
iptables -A OUTPUT -i eth1 -p tcp -s 58.83.238.20 --dport 80 -j ACCEPT
然后执行iptables -P OUTPUT DROP,同样如果你是ssh连接,要先执行iptables -A OUTPUT -i eth1 -p tcp --sport 22 -j ACCEPT
回复