iptables 免费的 基于包过滤的
类似交换机acl
iptables 表和链 个分类
4个表
filter 和主机有关 负责防火墙功能 过滤本机流入流出的数据包 是iptables默认的表
INPUT FORWORD OUTPUT
INPUT
过滤所有目标是本机的数据包
过滤进入主机的数据包
FORWORD
转发流经主机但不进入主机的数据包
转发
OUTPUT
处理源地址是本机的数据包
处理从主机发出去的数据包
nat 和主机无关 是网络地址转换
OUTPUT PREROUTING POSTROUTING
OUTPUT
PREROUTING
在数据包刚到防火墙,进行路由判断之前的规则,改变包的目的地址
改变访问的地址 改变访问的端口
外部IP地址及端口的服务,映射为内部IP地址及端口
POSTROUTING
在数据包离开防火墙时进行路由判断之后执行的规则改变包的源地址
局域网共享上网,把所有局域网的地址,转换为公网地址上网
mangle 修改数据包中特殊的路由标记 TTL TOS MARK 很少用
INPUT FORWORD OUTPUT PREROUTING POSTROUTING
INPUT
FORWORD
OUTPUT
PREROUTING
POSTROUTING
raw 基本不用
查看
iptables -L -n
iptables -L -n -x -v
iptables -L -n --line-numbers
清除默认规则
临时
iptables -F
iptables -Z
iptables -X
保存
service iptables save
添加 filter 规则
禁止ssh
iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
禁止ping
iptables -t filter -I INPUT -p -icmp --icmp-type 8 -i eth0 -s !192.168.1.123 -j DROP
禁止网段访问
iptables -t filter -A INPUT -i eth0 -s 192.168.1.0/24 -j DROP
禁止非网段的访问
iptables -t filter -A INPUT -i eht0 -s ! 192.168.1.0/24 -j DROP
删除 filter 规则
iptables -D INPUT -p tcp --dport 22 -j DROP
iptables -D INPUT 1
! #非
-p ! tcp
-s ! 192.168.1.0/24
-i ! eth0
--dport !22
--sport ! 22
-t filter
-t nat #选择表
-t mangle
-t raw
-A #添加到最后
-A INPUT #添加INPUT
-A OUTPUT #添加OUTPUT
-A FORWORD #添加FORWORD
-A PREROUTING #添加PREROUTING
-A POSTROUTING #添加POSTROUTING
-I #添加到第一条
-D #删除
-p tcp
-p udp #协议
-p imcp
-p all
数据进入的网络接口
-i eth0
数据流出的网络接口
-o eth1
源地址
-s
目的地址
-d
--dport 22 #目的端口号
--sport 22 #源端口号
--dport 22:80
-m multiport --dport 21,22,34,45,80
-j DROP # 丢弃
-j ACCEPT # 允许
-j REJECT # 拒绝
ftp 21 20
nfs 111 2049
rsync 873
snmp 161
ssh 22
http 80
nagios 5666
mysql 3306
oracle 1521
icmp icmp-type 8
配置iptables
iptables -F
iptables -Z
iptables -X
允许ssh
屏蔽22 DROP
换其他的
办公网IP IDC机房的的内网外网IP
配置允许lo接口的进入和流出 无条件通过
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
设置默认的防火墙禁止和允许规则
#DROP FORWORD INPUT
#ACCEPT OUTPUT
iptables -p FORWORD DROP
iptables -p INPUT DROP
iptables -p OUTPUT ACCEPT
设置信任的IP网段
#IDC LAN 办公网IP
iptables -A INPUT -s 142.142.62.65/27 -p all -j ACCEPT #办公网
iptables -A INPUT -s 142.142.62.65/27 -p all -j ACCEPT #IDC局域网网
iptables -A INPUT -s 142.142.62.65/27 -p all -j ACCEPT #vpn的
允许http服务无条件通过
iptables -A INPUT -p tcp --dport 80 - j ACCETP
允许icmp的ping (可以不做,信任网段已经可以ping)
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
允许关联的状态包通过
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
保存
service iptablessava
以后在添加就可以直接编辑文件
vim /etc/sysconfig/iptables
ddos攻击的防范
直接在命令行执行
iptables -t filter -I INPUT -s 101.234.123.22 -j DROP