itables 防火墙

临时设置:即重启后就失效

查询防火墙状态: service iptables status

停止防火墙: service iptables stop

启动防火墙: service iptables start

重启防火墙: service iptables restart

保存防火墙设置: service iptables save

注意:在没保存之前不代表不生效,所有修改了规则后会立即生效,若没保存,则重启服务器或重启防火墙后,刚才所有的修改才会丢失。

永久设置:即要想生效需要硬重启:

关闭防火墙: chkconfig iptables off

关闭后启用: chkconfig iptables on

centos7:

systemctl start firewalld.service #启动firewall

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

四表五链及状态:

四表:包过滤filter,网络地址转换nat,包重构mangle,数据跟踪raw,优先级:raw>mangle>nat>filter

五链:PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD

状态:NEW第一个包,ESTABLISHED首次通过其后都通过,RELATED由已认证的连接产生的附加连接,INVALID状态不明包

关于四表五链和状态的理解:

防火墙相当于行政服务大厅,表相当于各个职能部门,链相当于各个窗口,状态相当于进来办事的人身份。

张三进了市政厅iptables,先到接待窗口PREROUTING,由接待窗口状态要办的事项是本中心办理,还是其他兄弟城市的行政业务:

1,若不是本中心的业务,就引导入FORWARD,进行一系列核核后,交给POSTROUTING发送给办事人员。

    2,若是本中心的业务,就引导入办事窗口INPUT,然后在INPUT里的各个职能部门对照法规判断事务内容,即表规则对照,若通过,则再交给系统具体处理(程序),然后程序处理完成后交到OUTPUT部门进行通知准备等事项,OUTPUT部门也需要对照各种规则去判断能否将有关资料给该办事人员,若通过,则交给POSTROUTING部门去处理。

对于用户身份:NEW为刚进入的人,ESTABLISHED为已通过身份证证的人,RELATED通过认证的人再带来的,INVALID身份不明的人

功能区     表名、链名   PREROUTING  POSTROUTING     INPUT   OUTPUT  FORWARD
包过滤     filter  --  --  INPUT   OUTPUT  FORWARD
网络地址转换  nat     POSTROUTING     POSTROUTING     --  OUTPUT   
包重构     mangle  POSTROUTING     POSTROUTING     INPUT   OUTPUT  FORWARD
数据跟踪    raw     POSTROUTING     --  --  OUTPUT   

/etc/sysconfig/network 包括主机基本网络信息,用于系统启动

/etc/sysconfig/network-script/ 此目录下是系统启动最初始化网络的信息

/etc/sysconfig/network-script/ifcfg-eth0 网络配置信息

/etc/xinetd.conf 定义了由超级进程XINETD启动的网络服务

/etc/protocols 设定了主机使用的协议以及各个协议的协议号

/etc/services 设定了主机的不同端口的网络服务

/etc/sysconfig/iptables 防火墙配置信息

[[email protected] ~]# iptables -h

iptables v1.4.7

Usage: iptables -[ACD] chain rule-specification [options]

iptables -I chain [rulenum] rule-specification [options]

iptables -R chain rulenum rule-specification [options]

iptables -D chain rulenum [options]

iptables -[LS] [chain [rulenum]] [options]

iptables -[FZ] [chain] [options]

iptables -[NX] chain

iptables -E old-chain-name new-chain-name

iptables -P chain target [options]

iptables -h (print this help information)

Commands:

Either long or short options are allowed.

–append -A chain Append to chain追加规则到末尾。

–check -C chain Check for the existence of a rule

–delete -D chain rulenum Delete rule rulenum (1 = first) from chain删除某个规则,若不指定则删除第一条

–insert -I chain [rulenum] Insert in chain as rulenum (default 1=first)插入规则到位置,若不指定位置则为插入到第1条

–replace -R chain rulenum Replace rule rulenum (1 = first) in chain替换指定序号的规则

–list -L [chain [rulenum]] List the rules in a chain or all chains列出规则,默认filter表

–list-rules -S [chain [rulenum]] Print the rules in a chain or all chains

–flush -F [chain] Delete all rules in chain or all chains若指定了chain,删除该chain中的所有规则,否则删除所有chain中的所有规则。

–zero -Z [chain [rulenum]] Zero counters in chain or all chains

–new -N chain Create a new user-defined chain

–delete-chain -X [chain] Delete a user-defined chain 清空自定义链中的规则

–policy -P chain target Change policy on chain to target 默认的规则

–rename-chain -E old new Change chain name, (moving any references)链重命名

Options:

[!] –proto -p proto protocol: by number or name, eg. tcp‘

[!] --source -s address[/mask][...] source specification源地址IP

[!] --destination -d address[/mask][...] destination specification目标地址IP

[!] --in-interface -i input name[+] network interface name ([+] for wildcard)

--jump -j target target for rule (may load target extension) 要操作什么动作,可选有:ACCEPT接受,DROP丢弃,REJECT拒绝

--goto -g chain jump to chain with no return

--match -m match extended match (may load extension)启用一个模块

--numeric -n numeric output of addresses and ports 只显示IP地址,不显示域名

[!] --out-interface -o output name[+] network interface name ([+] for wildcard)

--table -t table table to manipulate (default:filter’)指定操作的表,默认filter

–verbose -v verbose mode

–line-numbers print line numbers when listing

–exact -x expand numbers (display exact values)

[!] –fragment -f match second or further fragments only

–modprobe=< command > try to insert modules using this command

–set-counters PKTS BYTES set the counter during insert/append

[!] –version -V print package version.防火墙版本号

[[email protected] ~]#

语法:

iptables [-t表名]<-A|I|D|R>链名[规则编号][-i|o网卡名称][-p协议类型][-s源IP地址|源子网段][–sport源端口号][-d目标IP地址或段][–dport目标商口]<-j动作>

iptables[-ttable][chain][options][-jtarget]

[-ttable]用来指明使用的表:filter,nat和mangle,raw,如果未指定,则使用filter作为缺省表。filter表包括INPUT,OUTPUT,和FORWARD三个链.

command表明iptables命名要做什么,就是具体的操作动作<-A|I|D|R>

[chain]链名

[options]具体的规则

[-jtarget]是由规则指定的操作。包括:ACCEPT,DROP,REJECT,RETURN,LOG,REDIRECT,MARK,MIRROR,MAQUERADE等

[[email protected] ~]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:9502
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh state NEW recent: CHECK seconds: 3600 hit_count: 5 name: SSH side: source
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh state NEW recent: UPDATE seconds: 300 hit_count: 3 name: SSH side: source
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh state NEW recent: SET name: SSH side: source
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:ssh
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[[email protected] ~]# 
[root@localhost php]# iptables -P INPUT DROP    #改变默认规则:ACCEPT表示所有都接受,DROP表示默认拒绝
[root@localhost php]# iptables -L
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
[root@localhost ~]# iptables -F    清除所有默认规则,注意:当默认规则为DROP时,切不可清除所有规则,否则将与服务器失去联系。
[root@localhost ~]# iptables -X 清清所有自定义规则
[root@localhost ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination 

Chain FORWARD (policy ACCEPT)
target prot opt source destination 

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost ~]# 

模块:

添加备注模块:comment;

[[email protected] ~]# iptables -A INPUT -p tcp –dport 80 -j ACCEPT -m comment –comment “备注内容,最多256字”

限制连接数:connlimit,下例内容:只允许每IP同时发起30个80口请求,超过的丢弃

[[email protected] ~]# iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 30 -j DROP

限制IP段:iprange,下例内容:不允许该IP段数据包进入

[[email protected] ~]# iptables -A INPUT -m iprange –src-range 192.168.1.100-192.168.1.120 -j DROP

应用过滤:layer7,限制QQ,此模块默认没安装。

[[email protected] ~]# iptables -A FORWARD -m layer7 –l7proto qq -j DROP

基于MAC地址过滤:mac,过滤该MAC

[[email protected] ~]# iptables -A INPUT -m mac –mac-source 00:0C:29:09:62:25 -j DROP

多端口匹配:muluiport,同时匹配多个端口,默认好象没安装

[[email protected] ~]# iptables -A INPUT -p tcp -m muluiport -dport 21,22,80,443 -j DROP

状态匹配:state

[[email protected] ~]# iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

数据包字符串匹配:string

[[email protected] ~]# iptables -A FORWARD -m string –algo bm -string baidu -j DROP

访问行为综合判断:recent,其参数有:

–name #设定列表名称,默认DEFAULT。

–rsource #源地址,此为默认。

–rdest #目的地址

–seconds #指定时间内

–hitcount #命中次数

–set #将地址添加进列表,并更新信息,包含地址加入的时间戳。

–rcheck #检查地址是否在列表,以第一个匹配开始计算时间。

–update #和rcheck类似,以最后一个匹配计算时间。

–remove #在列表里删除相应地址,后跟列表名称及地址。

[[email protected] ~]# iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –name SSHPOOL –rcheck –seconds 3600 –hitcount 5 -j DROP

[[email protected] ~]# iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –name SSHPOOL –update –seconds 300 –hitcount 3 -j DROP

[[email protected] ~]# iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –name SSHPOOL –set -j ACCEPT

[[email protected] ~]# iptables -A INPUT -p tcp –dport 22 -j ACCPET

第一句:尝试连接22,从开始算起在3600秒内尝试过5次的,丢弃;

第二句:尝试连接22,就记录下来,并允许进入,但这里并不代就真的进入了,后面需要验证密码;

第三句:都允许进入22

记录日志:

iptables -A INPUT -p tcp –dport 22 -m state –state NEW -j LOG –log-prefix “SSH Attack”

iptables -A INPUT -p tcp –dport 80 -m state –state NEW -j LOG –log-prefix “HTTP”

WEB服务器完整定义:

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSH --rcheck --seconds 3600 --hitcount 5 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSH --update --seconds 300 --hitcount 3 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSH --set -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -P INPUT DROP
service iptables save
service iptables restart
clear
service iptables status

只有数据库的服务器:

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSH --rcheck --seconds 3600 --hitcount 5 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSH --update --seconds 300 --hitcount 3 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSH --set -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -P INPUT DROP
service iptables save
service iptables restart
clear
service iptables status
时间: 2024-10-09 10:06:03

itables 防火墙的相关文章

我掌握的linux防火墙知识

以下这是是我学生时代在达内培训并且结合网上的一些资料做的学习笔记,和大家分享下 1. 什么是防火墙 1.1简介 1)防火墙是一道保护性的安全屏障,起保护,隔离的作用,Iptables是linux/unix自带的基于包过滤的防火墙工具 2)可以对流入和流出服务器的数据包进行很精细的控制.特别是它可以在一台低配置的服务器上跑的非常好. 3)Iptables主要工作在OSI七层的二.三.四层,如果重新编译内核,iptables也可以支持7层控制(squid代理+iptables) 1.2分类 1)根据

Linux防火墙工具iptables基础介绍

iptables基础知识说明: 一.规则链:规则链是防火墙规则/策略的集合 INPUT:处理入站数据包 OUTPUT:处理出站数据包 FORWARD:处理转发数据包 POSTROUTING链:在进行路由选择后处理数据包 PREROUTING链:在进行路由选择前处理数据包 二.规则表:规则表是规则链的集合(优先顺序:raw.mangle.nat.filter) raw表:确定是否对该数据包进行状态跟踪(OUTPUT.PREROUTING) mangle表:为数据包设置标记(PREROUNTING.

linux iptables:安全应用,防火墙

iptables:安全应用,防火墙 windows和linux都有防火墙,企业的边缘会部署防火墙保证企业内部的局域网是安全的.针对个人电脑会有防火墙保证系统是安全的. 防火墙是唯一通道. 防火墙分类(这里的分类只是一个简单的分类,还有很多种): 1.包过滤防火墙,速度快,但是只检查包头,不检查数据区,不建立连接状态表,安全性能低. 2.应用代理防火墙.安全高,性能高.只检查包头,不检查数据区,建立连接状态表. 防火墙还可以分为硬件和软件防火墙.硬件防火墙就是一个硬件设备,软件防火墙比如windo

Linux下防火墙配置

查看防火墙的状态:/etc/init.d/iptables  status  或  service  iptables  status 1) 临时生效,重启后复原 开启: service  iptables  start 关闭: service  iptables  stop   或  /etc/init.d/iptables  stop 重启:/etc/init.d/iptables  restart 2) 永久性生效,重启后不会复原 开启: chkconfig  iptables  on 关

状态检测防火墙原理

状态检测防火墙原理 防火墙发展到今天,虽然不断有新的技术产生,但从网络协议分层的角度,仍然可以归为以下三类: 1.包过滤防火墙: 2.基于状态检测技术(Stateful-inspection)的防火墙: 3.应用层防火墙 这三类防火墙都是向前兼容的,即基于状态检测的防火墙也有一般包过滤防火墙的功能,而基于应用层的防火墙也包括前两种防火墙的功能.由于<<浅>>文已讲了第一类防火墙,在这里我就讲讲基于状态检测技术的防火墙的实现原理. 为什么会有基于状态检测的防火墙呢?这就要先看看第一类

NFSv3 NFSv3针对防火墙端口开通策略 生产环境实践

针对NFSv4版本需要服务官方说明: NFS version 4 (NFSv4) works throughfirewalls and on the Internet, no longer requires an rpcbind service, supportsACLs, and utilizes stateful operations. Red Hat Enterprise Linux 6 supportsNFSv2, NFSv3, and NFSv4 clients. When mount

CentOS7安装iptables防火墙

CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #先检查是否安装了iptables service iptables status #安装iptables yum install -y iptables #升级iptables yum update iptables #安装iptables-services yum install iptables-services 禁用/停止自带的firewalld服务 #停止fir

工业防火墙架构与技术【第二节:硬件架构②】

2).满足对数据包的处理性能的高速度要求 任何防火墙的基本技术功能都是过滤报文.防火墙检查其接收的每个数据包,以确定数据包是否对应于流量模式的所需模板.防火墙然后过滤(丢弃)或转发与这些模板匹配的数据包.这些模板以规则的形式进行建模.在工控防火墙中,有针对已知协议提前建模好的规则模板,也有后期自动学习进行建模的规则模板.由于工控防火墙处理数据包是一个一个处理,包括数据包的校验,数据包每一层包头的处理,所以数据包越小,到达时间就越短,服务器处理数据包要求就越高.比如64B的小包,如果处理数据包要达

防火墙识别

先发一个SYN包,再发一个ACK包,如果两个包都有回应,说明未被防火墙过滤,如果其中一个没有回应说明被防火墙过滤了,如果都没有回应说明端口未开启. nmap扫描默认用SYN包 nmap ip号 如果想用ACK包扫描,在后面加-sA nmap ip号 -sA wafwOOf识别waf wafwOOf 域名 wafwOOf www.baidu.com nmap识别waf