找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4006|回复: 3

[其它] 那位高手帮忙帮忙!!!

[复制链接]
发表于 2008-9-10 23:34:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
我想问下关于linux iptables问题。
如果我就想某个ip只能访问一个网站 其它都不允许,该如何设置。是不是那些规则还要看顺序是吗?
再就是设置完后如何保存,让它重起后还有.
routeros
 楼主| 发表于 2008-9-14 14:04:18 | 显示全部楼层
怎么没人说下啊!郁闷
routeros
回复

使用道具 举报

发表于 2008-9-15 10:50:42 | 显示全部楼层
1、楼主应该到linux专区去
2、iptables 有先后顺序
3、iptables -A FORWARD -p tcp -s 限制地址 -d 目标ip --dport 80 -j ACCEPT 是允许 这个地址访问该网站
    iptables -A FORWARD -j DROP 全部阻止。
4、iptables一般在fc有个配置文件,在/etc/sysconfig/iptables 加入这里就可以,其他系统有所不同,也以及自己建立脚本。
routeros
回复

使用道具 举报

发表于 2008-9-15 13:00:26 | 显示全部楼层
原帖由 paldos 于 2008-9-15 10:50 发表
1、楼主应该到linux专区去
2、iptables 有先后顺序
3、iptables -A FORWARD -p tcp -s 限制地址 -d 目标ip --dport 80 -j ACCEPT 是允许 这个地址访问该网站
    iptables -A FORWARD -j DROP 全部阻止。
4、ipt ...



你这样操作,那这个机器是可以只访问这个网站了,那其他的用户不都不能打开网了
建议是
iptables -I FORWARD -p tcp -s 192.168.1.116/32 -d www.163.com --dport 80 -j ACCEPT
这样放开192.168.1.116对整个域名www.163.com的http 80端口的访问,因为很多网站都是有多个ip的,所以直接用域名可以操作同时好几条

然后我们查看一下
root@pppoed:~# iptables -nvL
Chain INPUT (policy ACCEPT 6693K packets, 437M bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 245M packets, 142G bytes)
pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.53       tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.52       tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.51       tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.50       tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.54       tcp dpt:80

Chain OUTPUT (policy ACCEPT 6095K packets, 509M bytes)
pkts bytes target     prot opt in     out     source               destination

这里可以看到自动加入了5条规则,如果你是直接指向某个ip,那么这一步就没这麻烦,直接-d 目标地址
有5条规则,那么我们就在第六的位置添加一条规则,将所有1.116/32的除开访问www.163.com:80以外的包都丢弃掉
iptables -I FORWARD 6 -s 192.168.1.116/32 -j DROP

这样操作,一是不影响其他机器,而是会因为规则的前后顺序导致问题
iptables-save > /etc/iptables.conf

这样你的/etc/iptables.conf
就会有一些内容,类似如下这样的,呵呵,有部分关于我的规则我以后删除了,就留了个dns强制转向到缓冲服务器和伪装规则,还有刚才加的关于www.163.com的几条测试规则
root@pppoed:~# iptables-save
# Generated by iptables-save v1.3.8 on Mon Sep 15 12:56:30 2008
*nat
REROUTING ACCEPT [3613921:226882714]
OSTROUTING ACCEPT [144587:7617746]
:OUTPUT ACCEPT [139:8724]
-A PREROUTING -s ! 192.168.1.252 -p tcp -m tcp --dport 53 -j DNAT --to-destination 192.168.1.252
-A PREROUTING -s ! 192.168.1.252 -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.1.252
-A POSTROUTING -s 192.168.0.0/255.255.0.0 -j MASQUERADE
COMMIT
# Completed on Mon Sep 15 12:56:30 2008
# Generated by iptables-save v1.3.8 on Mon Sep 15 12:56:30 2008
*filter
:INPUT ACCEPT [6703191:437077087]
:FORWARD ACCEPT [244905367:142167776348]
:OUTPUT ACCEPT [6103243:509417560]
-A FORWARD -s 192.168.1.116 -d 220.181.28.53 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.1.116 -d 220.181.28.52 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.1.116 -d 220.181.28.51 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.1.116 -d 220.181.28.50 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.1.116 -d 220.181.28.54 -p tcp -m tcp --dport 80 -j ACCEPT
-A FORWARD -s 192.168.1.116 -j DROP
COMMIT
# Completed on Mon Sep 15 12:56:30 2008

再次查看一下规则
root@pppoed:~# iptables -nvL
Chain INPUT (policy ACCEPT 6699K packets, 437M bytes)
pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 245M packets, 142G bytes)
pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.53       tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.52       tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.51       tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.50       tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       192.168.1.116        220.181.28.54       tcp dpt:80
  116 75250 DROP       all  --  *      *       192.168.1.116        0.0.0.0/0

Chain OUTPUT (policy ACCEPT 6100K packets, 509M bytes)
pkts bytes target     prot opt in     out     source               destination


关于怎么让启动能够运行这些规则,我的建议是使用iptables-save

和iptables-restore这两个命令来操作,在rc.local里面添加一条
iptables -F
iptables -t nat -F
iptables-restore </etc/iptables.conf

这样就能非常方便的在启动的时候调用规则,为什么要用iptables-seve和iptables-restore来操作,用多了就知道了,呵呵,最大的方便是可以直接vi /etc/iptables.conf,然后直接手写规则,非常方便



本方法只是我个人习惯和意见的体现,每个人的方法和思维都不一样,所以仅供参考
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-12-23 08:40 , Processed in 0.073572 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表