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 #***的

允许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