软件防火墙,它是建立在netfilter架构基础上的一个包过滤管理工具;提供包过滤、NAT(网络地址转换)和通用的pro-route packet mangling。
所在目录:/etc/init.d/iptables
所有规则文件:/etc/sysconfig/iptables
自身基本操作
- 启动iptables:service iptables start
- 关闭iptables:service iptables stop
- 重启iptables:service iptables restart
- 查看iptables状态:service iptables status
- 保存iptables配置:service iptables save
- iptables服务配置文件:/etc/sysconfig/iptables-config
- iptables规则保存文件:/etc/sysconfig/iptables
- 打开iptables转发:echo "1" > /proc/sys/net/ipv4/ip_forward
三种内建链
1、INPUT链 处理来自外部的数据;
2、OUTPUT链 处理向外发送的数据;
3、FORWARD链 将数据转发到本机上的其他网卡设备上;
指令
- ACCEPT:数据包被允许到达目的地;
- REJECT:数据包被拒绝并返回给发数据包主机一个简单的解释;
- DROP:数据包被拒绝不返回任何信息;
包状态
- NEW:第一服务器发送给第二服务器一个SYN数据包来新建一个连接;
- RELATED:第二服务器接收SYN数据库并发送给第一服务器一个SYN-ACK数据包来确定连接正常;
- ESTABLISHED:第一服务器收到SYN-ACK数据包并发送给第二服务器,TCP三次握手完成;
注意
1、规则的顺序;如果一开始就添加了阻止任何的规则,那么下面的规则就不起作用了。
2、编写的规则是存储在内存中的,重启后就会失效,因此需要手工执行初始化脚本来保存规则;
3、如何你是通过SSH等远程管理服务器的,那么首先配置规则添加允许ssh的规则。
参数-A:增加一个规则
-D 删除规则
-R 替换
-I 插入
-L 显示所有规则
-F 删除所有规则
-s:来源IP
-d:目的地址
-i:指定网卡
-p:指定通信协议
--sport:源端口
--dport:目的端口
--state:状态
-j:指令
基于TCP/IP状态的规则
iptables -A INPUT -m state --state RELATED,ESTABLISHED j ACCEPT
iptables -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED
阻止IP
iptables -A INPUT -s ip -j DROP
保存规则
/etc/init.d/iptables save
/etc/init.d/iptables stop
/etc/init.d/iptables start