免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: yingtank
打印 上一主题 下一主题

iptables 设置只允许某一IP,访问特定端口,老是不成功 [复制链接]

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
21 [报告]
发表于 2011-10-25 17:44 |只看该作者
回复 20# baoersc


    这个建议是我发的,现在看应该不是那个规则的问题,那个规则是针对lo接口的,应该允许

论坛徽章:
0
22 [报告]
发表于 2011-10-26 15:15 |只看该作者
policy ACCEPT的问题

论坛徽章:
0
23 [报告]
发表于 2011-10-26 15:32 |只看该作者
回复 9# yingtank


    你先拒绝所有,然后在写允许,,,这样就OK,,

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
24 [报告]
发表于 2011-10-26 15:47 |只看该作者
回复 19# chenyx

恩,确实是,ls是全都accept,最后,在reject。

论坛徽章:
1
天秤座
日期:2013-10-23 13:20:42
25 [报告]
发表于 2011-10-26 15:51 |只看该作者
[root@machine1 ~]# iptables -vnL
Chain INPUT (policy ACCEPT 1 packets, 52 bytes)
pkts bytes target     prot opt in     out     source               destination         
2448  184K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
    3   180 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    4   288 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    8   470 ACCEPT     tcp  --  *      *       192.168.221.211      0.0.0.0/0           tcp dpt:21
    8   784 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2219 packets, 216K bytes)
pkts bytes target     prot opt in     out     source               destination         
[root@machine1 ~]# iptables -t nat -vnL
Chain PREROUTING (policy ACCEPT 33 packets, 3167 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 6 packets, 528 bytes)
pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 6 packets, 528 bytes)
pkts bytes target     prot opt in     out     source               destination      

测试,证明如上的配置是可以达到ls的目的的。

--------------------------------------------------------------------------------------------------------------
以下为我用tcpdump抓包的结果,我分别从192.168.221.211何192.168.221.1来ftp测试

[root@machine1 ~]# /usr/sbin/tcpdump -s 0 -i eth0 tcp port 21
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes

15:49:34.348721 IP 192.168.221.1.17806 > machine1.ftp: S 2323538001:2323538001(0) win 65535 <mss 1460,nop,wscale 0,nop,nop,sackOK>
15:49:37.342698 IP 192.168.221.1.17806 > machine1.ftp: S 2323538001:2323538001(0) win 65535 <mss 1460,nop,wscale 0,nop,nop,sackOK>
15:49:43.378098 IP 192.168.221.1.17806 > machine1.ftp: S 2323538001:2323538001(0) win 65535 <mss 1460,nop,wscale 0,nop,nop,sackOK>
15:50:04.710598 IP machine2.48442 > machine1.ftp: S 2301095987:2301095987(0) win 5840 <mss 1460,sackOK,timestamp 3785626 0,nop,wscale 7>
15:50:04.710716 IP machine1.ftp > machine2.48442: S 2353854985:2353854985(0) ack 2301095988 win 5792 <mss 1460,sackOK,timestamp 4227326 3785626,nop,wscale 7>
15:50:04.713161 IP machine2.48442 > machine1.ftp: . ack 1 win 46 <nop,nop,timestamp 3785707 4227326>
15:50:04.719906 IP machine1.ftp > machine2.48442: P 1:21(20) ack 1 win 46 <nop,nop,timestamp 4227335 3785707>
15:50:04.721555 IP machine2.48442 > machine1.ftp: . ack 21 win 46 <nop,nop,timestamp 3785716 4227335>
15:50:04.722988 IP machine2.48442 > machine1.ftp: P 1:14(13) ack 21 win 46 <nop,nop,timestamp 3785717 4227335>
15:50:04.723031 IP machine1.ftp > machine2.48442: . ack 14 win 46 <nop,nop,timestamp 4227338 3785717>
15:50:04.724032 IP machine1.ftp > machine2.48442: P 21:59(3 ack 14 win 46 <nop,nop,timestamp 4227339 3785717>
15:50:04.726203 IP machine2.48442 > machine1.ftp: P 14:32(1 ack 59 win 46 <nop,nop,timestamp 3785722 4227339>
15:50:04.726534 IP machine1.ftp > machine2.48442: P 59:97(3 ack 32 win 46 <nop,nop,timestamp 4227342 3785722>
15:50:04.768604 IP machine2.48442 > machine1.ftp: . ack 97 win 46 <nop,nop,timestamp 3785764 4227342>
15:50:06.480769 IP machine2.48442 > machine1.ftp: P 32:46(14) ack 97 win 46 <nop,nop,timestamp 3787476 4227342>
15:50:06.481145 IP machine1.ftp > machine2.48442: P 97:131(34) ack 46 win 46 <nop,nop,timestamp 4229096 3787476>
15:50:06.484037 IP machine2.48442 > machine1.ftp: . ack 131 win 46 <nop,nop,timestamp 3787478 4229096>
15:50:07.930228 IP machine2.48442 > machine1.ftp: P 46:60(14) ack 131 win 46 <nop,nop,timestamp 3788926 4229096>
15:50:07.941828 IP machine1.ftp > machine2.48442: P 131:154(23) ack 60 win 46 <nop,nop,timestamp 4230557 3788926>
15:50:07.943624 IP machine2.48442 > machine1.ftp: . ack 154 win 46 <nop,nop,timestamp 3788938 4230557>
15:50:07.943668 IP machine2.48442 > machine1.ftp: P 60:66(6) ack 154 win 46 <nop,nop,timestamp 3788938 4230557>
15:50:07.944206 IP machine1.ftp > machine2.48442: P 154:173(19) ack 66 win 46 <nop,nop,timestamp 4230559 3788938>
15:50:07.985398 IP machine2.48442 > machine1.ftp: . ack 173 win 46 <nop,nop,timestamp 3788981 4230559>

ls,也可以尝试抓包查看,看数据包具体的状态

论坛徽章:
0
26 [报告]
发表于 2011-10-27 15:14 |只看该作者
回复  yingtank


    你先拒绝所有,然后在写允许,,,这样就OK,,
小丶力丫 发表于 2011-10-26 15:32



    弱弱的问下,你拒绝,再允许就可以通过?
我理解不是这样的,我理解当包走到拒绝匹配后,后面就不执行了。
或者你拒绝所有非139的IP,然后再允许。

论坛徽章:
0
27 [报告]
发表于 2011-10-27 15:34 |只看该作者
回复 26# cuijun21cn


    那句话意思是 链表规则  拒绝   表下面各条规则 accept

论坛徽章:
0
28 [报告]
发表于 2011-10-27 15:40 |只看该作者
回复  cuijun21cn


    那句话意思是 链表规则  拒绝   表下面各条规则 accept
taojie2000 发表于 2011-10-27 15:34



    哦,原来如此,我没仔细看规则。

论坛徽章:
0
29 [报告]
发表于 2011-10-28 01:16 |只看该作者
你需要的那条只允许139通过的规则是这样写的
iptables -A INPUT -p tcp --dport 21 -s !192.168.1.139 -j DROP

论坛徽章:
0
30 [报告]
发表于 2011-10-28 01:24 |只看该作者
把那条ACCEPT all 到 all 确实需要删掉,ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0  

加上这条貌似是所有iptables应该都没有效果吧

你的可以这样实现
INPUT默认DROP,FORWARD、OUTPUT默认ACCEPT

#允许远程登录22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

#设置默认规则 P是大写的
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

# 允许ping,指定ICMP协议,允许ICMP协议
iptables -A INPUT -p icmp -j ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#允许80端口的访问
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

#允许DNS
iptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT

#允许自身连接通信
iptables -A INPUT -d 127.0.0.1 -j ACCEPT

iptables -A INPUT -p tcp --dport 21 -s !192.168.1.139 -j DROP

提示一下,ftp是有两个端口的,一个20控制端口,一个21数据传输
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP