Linux iptables


软件防火墙,它是建立在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

 

原文地址:https://www.cnblogs.com/endust/p/11881647.html