2019年12月21日 上午10:42
- 这篇文章是网上最好的iptable入门文章,这是一个系列还有14篇具体深度讲解iptable的文章,需要时可以仔细看
查看所有开放端口信息:
netstat -anp
常操作的两个表
- filter表是系统默认的
- INPUT表(进入的包),FORWORD(转发的包),OUTPUT(处理本地生成的包),filter表只能对包进行授受和丢弃的操作。
- nat表(网络地址转换):其实就是在修改数据包
- PREROUTING(修改即将到来的数据包)
- OUTPUT(修改在路由之前本地生成的数据包)
- POSTROUTING(修改即将出去的数据包)
命令参数:
iptables [-t 表名] <-A|I|D|R> 链名 [规则编号] [-i|o 网卡名称] [-p 协议类型] [-s 源ip|源子网] [—sport 源端口号] [-d 目的IP|目标子网] [—dport 目标端口号] [-j 动作]
- 参数:-A 增加 -I 插入 -D 删除 -R 替换
常用命令:
①iptables -t filter -A INPUT -s 192.168.1.5 -I eth0 -j DROP
* 禁止IP为192.168.1.5的主机从eth0访问本机
②iptables -t filter -I INPUT 2 -s 192.168.5.0/24 -p tcp —dport 80 -j DROP
* 禁止子网192.168.5.0访问web服务
③iptables -t filter -I INPUT 2 -s 192.168.7.9 -p tcp —dport ftp -j DROP
* 禁止IP为192.168.7.9访问FTP服务
④iptables -t filter -L INPUT
* 查看filter表中INPUT链的规则
⑤iptables -t nat -F
* 删除nat表中的所有规则
⑥iptables -I FORWARD -d wwww.playboy.com -j DROP
* 禁止访问 www.playboy.com 网站
⑦iptables -I FORWARD -s 192.168.5.23 -j DROP
* 禁止192.168.5.23上网
自己补充:
-
- 编辑_etc_sysconfig/iptables
1
2
3
4
5
6
7
8
9# 本机和141.36.185.213开放8080端口,其他ip用telnet是无法连接的
-A INPUT -m state --state NEW -m tcp -p tcp -s 127.0.0.1 —dport 8080 -j ACCEPT
-A INPUT -m state —state NEW -m tcp -p tcp -s 141.36.185.213 —dport 8080 -j ACCEPT
#拦截所有非指定ip(host)的访问的规则
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT —reject-with icmp-host-prohibited
COMMIT - 重启防火墙:
service iptables start
- 编辑_etc_sysconfig/iptables
拦截特定IP地址的访问
### iptables -A INPUT -I $IF_PUB -s 10.220.231.236 -j REJECT —reject-with icmp-host-prohibited- 这条规则拒绝那些到达公网接口的、来自IP地址10.220.231.236的传输。我是通过回应说主机被封锁了来拒绝这些传输,你也可以只是丢弃这些数据包,对问题主机不做回应。
拦截特定网络段的访问
iptables -A INPUT -I $IF_PUB -s 10.67.232.0/24 -j REJECT —reject-with icmp-net-prohibited- 这条规则拒绝到达公网接口的、源地址为10.67.232.0/24的网络。这次该传输的发送方会收到一条ICMP网络禁止的消息