操作环境
个人使用的是kali linux,该系统默认已经安装好iptables,通过命令iptables -L 可以查看是否有安装。如果没有安装,可以使用命令apt-get install iptables* 进行安装,带"*"是防止依赖包没有安装导致"iptables"安装失败。
常用命令
iptables -L -n:查看配置的规则
iptables -F INPUT:删除对应规则链中的所有规则
iptables -F:清空规则
iptables-save > filename:备份命令,若提示命令不存在,则使用/sbin/iptables-save
service iptables save:保存配置
常用参数
新增规则:-A INPUT/OUTPUT/FORWARD,规则会添加到规则链末尾
插入规则:-I INPUT/OUTPUT/FORWARD,规则会添加到规则链前
删除规则:-D INPUT 1,删除序列号为1的规则,系列号可以通过命令iptables -L -n --line-number
查找
指定协议:-p tcp
指定源IP:-s 10.10.10.10
目的IP: -d 10.10.10.10
源目的端口: --sport 22(源端口);–dport 22(目的端口)
处理动作:-j APPECT(放行)/REJECT(拦截)/DROP(丢弃)
白名单设置
kali iptables默认是没有任何规则配置的,允许所有的数据流通过
本文以设置只允许部分IP访问5901端口(VNC服务)为例
- 禁止外部访问
iptables -P INPUT DROP //外部的任何IP都访问不了
或者只禁止端口访问
iptables -I INPUT -p TCP --dport 5901 -j DROP
- 放行访问IP和端口号
iptables -I INPUT -p tcp -s 10.10.10.10 --dport 5901 -j ACCEPT
需要使用**-I**指令插入,因为该规则需要放置在端口禁止规则的前面才可以
上面命令表示允许IP地址为10.10.10.10
访问端口5901
- 保存配置
iptables-save
黑名单设置
- 默认数据全部放行,不做限制
- 禁止某个IP访问5901端口
iptables -A INPUT -p tcp -s 10.10.10.10 --dport 5901 -j DROP
IP地址为10.10.10.10
无法访问5901端口
- 保存配置
限制多端口
连续端口配置
iptables -A INPUT -p tcp -dport 5900:5955 -j DROP
不连续端口配置
iptables -A INPUT -p tcp -m multiport -dport 21:25,135:139 -j DROP