熟悉iptables框架
iptables的4个表(区分大小写):
iptables默认有4个表,nat表(地址转换表)、filter表(数据过滤表)、raw表(状态跟踪表)、mangle表(包标记表)。
iptables的5个链(区分大小写):
INPUT链(入站规则)
OUTPUT链(出站规则)
FORWARD链(转发规则)
PREROUTING链(路由前规则)
POSTROUTING链(路由后规则)
iptables命令的基本使用方法
iptabels语法格式
iptables [-t 表名] 选项 [链名] [条件] [-j 目标操作]
//注意事项与规律:
//可以不指定表,默认为filter表
//可以不指定链,默认为对应表的所有链
//如果没有找到匹配条件,则执行防火墙默认规则
//选项/链名/目标操作用大写字母,其余都小写
//目标操作:
// ACCEPT:允许通过/放行
// DROP:直接丢弃,不给出任何回应
// REJECT:拒绝通过,必要时会给出提示
// LOG:记录日志,然后传给下一条规则
iptables命令的常用选项如表-1所示。
iptables防火墙可以根据很多很灵活的规则进行过滤行为,具体常用的过滤条件如表-2所示。
linux防火墙iptables封IP,拒绝指定IP和网段的办法
封IP
service iptables status可以查看到iptables服务的当前状态
/etc/init.d/iptables stop
/etc/init.d/iptables start
单个IP的命令是
iptables -I INPUT -s 211.1.0.0 -j DROP
封IP段的命令是
iptables -I INPUT -s IP地址加子网
-j DROP
iptables -I INPUT -s 192.168.4.1/16 -j DROP
iptables -I INPUT -s 192.168.0.0/16 -j DROP
封整个段的命令是
iptables -I INPUT -s 192.0.0.0/24 -j DROP
封几个段的命令是
iptables -I INPUT -s 192.168.4.0/24 -j DROP
iptables -I INPUT -s 192.168.5.0/24 -j DROP
服务器启动自运行
有三个方法:
1、把它加到/etc/rc.local中
2、iptables-save >;/etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行。
3、service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行。
后两种更好此,一般iptables服务会在network服务之前启来,更安全
解封:
iptables -L INPUT
iptables -L --line-numbers 然后iptables -D INPUT 序号
防火墙端口操作
开启端口:
#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
然后保存:
#/etc/rc.d/init.d/iptables save
关闭端口:
#/sbin/iptables -I INPUT -p tcp --dport 80 -j DROP
#/sbin/iptables -I INPUT -p tcp --dport 22 -j DROP
然后保存:
#/etc/rc.d/init.d/iptables save
iptables -F /* 清除所有规则 /
iptables -A INPUT -p tcp --dport 22 -j ACCEPT /允许包从22端口进入/
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT /允许从22端口进入的包返回/
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT / 域名解析端口,一般不开 /
iptables -A INPUT -p udp --sport 53 -j ACCEPT / 域名解析端口,一般不开 /
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT /允许本机访问本机/
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT /允许所有IP访问80端口/
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables /保存配置/
iptables -L / 显示iptables列表 */