一、IPtables安装
1、关闭默认防火墙firewalld服务
systemctl stop firewalld #停止firewalld服务
systemctl disable firewalld #禁止firewalld开机服务
2、安装IPtables服务
yum install -y iptables-services
3、启动IPtables服务
systemctl start iptables
4、 查看IPtables运行状态
systemctl status iptables
5、关闭IPtables服务
systemctl stop iptables
二、IPtables配置
1、类别参数
-t 指定操作的表
-L, --list 列出当前的规则
-v 显示数据包和数据包大小
-n 不反解地址
-A, --append 追加一条规则到链中
-I, --insert 插入一条规则,插入到顶部
-F, --flush 清空
-Z, --zero 清空计数器( 包数量 、包大小)
-D, --delete 删除链中的规则
-R, --replace 修改
-S, --list-rules 列出所有的规则
-N, --new-chain 创建一个自定义 链
-X, --delete-chain 删除一个自定义链
-P, --policy 指定链的默认策略
2、指定动作
ACCEPT 将数据包放行,进行完此处理动作后,将不再比对其它规则,直接跳往下一个规则链。
REJECT 拦阻该数据包,并传送数据包通知对方。
DROP 丢弃包不予处理,进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。
REDIRECT 将包重新导向到另一个端口,进行完此处理动作后,将会继续比对其它规则。
3、 匹配条件
TCP(http)
UDP
ICMP(ping)
ALL
4、地址参数
-s 源地址:发送请求的地址
-d 目标地址:访问的地址
5、端口参数
--sport 源端口:发送请求的端口
--dport 目标端口:访问的端口
6、动作参数
-i : 进来的网卡
-o : 出去的网卡
-m : 指定模块
-j : 转发动作
-p :指定协议
三、IPtables使用
1、使用场景:只允许22端口可以访问,其他端口全部无法访问
iptables -t filter -A INPUT -p TCP --dport 22 -j ACCEPT
iptables -t filter -A INPUT -p TCP -j DROP
2、使用场景:只允许22,80,443端口可以访问,其他端口全部无法访问
iptables -t filter -A INPUT -p TCP --dport 22 -j ACCEPT
iptables -t filter -A INPUT -p TCP --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p TCP --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p TCP -j DROP
3、使用场景:要求使用192.168.15.81能够通过22端口链接,但是其他的不行
iptables -t filter -A INPUT -p TCP -d 192.168.15.81 --dport 22 -j ACCEPT
iptables -t filter -A INPUT -p TCP -j DROP
4、使用场景:只允许192.168.15.71能够通过22端口链接,其他的不行
iptables -t filter -A INPUT -p TCP -s 192.168.15.71 -d 192.168.15.81 --dport 22 -j ACCEPT
iptables -t filter -A INPUT -p TCP -j DROP
5、使用场景:要求192.168.15.71对外部不可见
iptables -t filter -A INPUT -p TCP -d 192.168.15.71 -j DROP
6、使用场景:要求使用eth0网卡的所有请求全部拒绝
iptables -t filter -A INPUT -p TCP -i eth0 -j DROP
7、使用场景:要求访问服务器的8080端口转发至80端口
iptables -t nat -A PREROUTING -p TCP --dport 8080 -j REDIRECT --to-port 80
8、使用场景:要求只允许windows通过ssh连接192.168.15.81,其他的拒绝
iptables -t filter -I INPUT -p TCP -s 192.168.15.1 -d 192.168.15.81 --dport 22 -j ACCEPT
iptables -t filter -A INPUT -p TCP --dport 22 -j DROP
9、 配置规则保存到/etc/sysconfig/iptables,使配置永久生效
service iptables save