*********iptables********
iptables命令管理参数如下:
一、iptables的安装
为iptable创建一个纯净的环境如下操作:
1 yum search iptables
2 yum install iptables-services.x86_64 -y
3 systemctl stop firewalld
4 systemctl disable firewalld
5 systemctl mask firewalld
6 systemctl start iptables.service
7 systemctl enable iptables.service
8 iptables -t filter -L
9 iptables -t filter -nL
10 iptables -F ##刷新策略
11 service iptables save ##将iptables表内容永久保存
二、iptables 的基本管理命令
策略的查看与刷新:
iptables -vnL:查看iptables表中策略
iptables -t nat -nL:查看nat策略
iptables -t nat -L PREROUTING:查看nat表PREROUTING链的规则
iptables -F:刷新策略
iptables -t nat -F:清空nat策略(-F仅仅是清空链中规则,并不影响-P设置的默认规则)
iptables -t nat -F PREROUTING:清空nat表PREROUTING链的规则
策略的添加、删除与更改:
iptables -A INPUT -s 192.168.0.4 -p tcp --dport 23 -j REJECT:
iptables -A INPUT -s 192.168.0.4 -p tcp --dport 23 -j DROP:(访问
拒绝,无任何提示)
iptables -I INPUT 2 -p tcp --dport 23 -j DROP:插入到第二条策略
iptables -D INPUT 3:删除filter表中的第三条规则
iptables -D INPUT -s 192.168.0.1 -j DROP:按内容删除
iptables -R INPUT 3 -j ACCEPT:将原来编号为3的规则内容替换为-j
ACCEPT
规则链的设置:
iptables -N redhat:添加自定义链名
iptables -D redhat 1:删除自定义链下的策略
iptables -X redhat:删除自定义链
iptables -E allowed disallowed:修改规则链名称
iptables -P INPUT DROP: 设置filter表INPUT链的默认规则 ,当数据包没有被规则列表里的任何规则匹配到时,按此默认规则处理
三、地址的伪装与转发
POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则;
SNAT就是改变转发数据包的源地址 --to-source:
PREROUTING:(外部访问内部)可以在这里定义进行 目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT;
DNAT就是改变转发数据包的目的地址 --to-dest:
SNAT示例:
将内网从eth0网卡流入的数据包原地址修改为172.25.254.118
#iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.118
#sysctl -a | grep ip_forward#vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
#sysctl -p
DNAT示例:
将从eth0网卡进来的要访问172.25.18.118 的数据包目的地址改为172.25.254.18
iptables -t nat -A PREROUTING -i eth1 -d 172.25.18.118 -j DNAT --to-dest 172.25.254.18
四、基于状态的匹配扩展
每个网络连接包括以下信 息:源地址、目标地址、源端口、目的端口,称为套接字对(socket pairs);协议类型、连接状态(TCP协议)和超时时间等。防火墙把这些信息称为状态(stateful)。状态包过滤防火墙能在内存中维护一个跟踪状态的表,
命令格式如下:
iptables -m state --state
»NEW: 该包想要开始一个新的连接(重新连接或连接重定 向)
»RELATED:该 包是属于某个已建立的连接所建立的新连接。举例:FTP的
数据传输连接和控制连接之间就是RELATED关系。
»ESTABLISHED:该包属于某个已建立的连接。
»INVALID:该 包不匹配于任何连接,通常这些包被DROP。
我们一般设置服务器策略如下:
#iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -m state --state NEW -i lo -j ACCEPT
#iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -j REJECT
注:iptables 不会打开内核智能,做NAT SANT 为内核路由功能