标签:开机 reply 替换 color 个数 调整 地址 get 火墙
查看当前selinux的状态[root@apenglinux-001 ~]# getenforce
临时关闭selinux
[root@apenglinux-001 ~]# setenforce 0
永久关闭selinux
[root@apenglinux-001 ~]# vim /etc/selinux/config 将SELINUX=enforcing 改成 SELINUX=disabled 重启系统
关闭firewalld,开启iptables
#systemctl stop firewalld.service #systemctl disable firewalld.service #yum install -y iptables-services #systemctl enable iptables.service #systemctl start iptables.service
iptables规则
-A 在指定链的末尾添加(--append)一条新的规则 -D 删除(--delete)指定链中的某一条规则,按规则序号或内容确定要删除的规则 -I 在指定链中插入(--insert)一条新的规则,若未指定插入位置,则默认在链的开关插入 -R 修改,替换(--replace)一条新的规则,按规则序号或内容确定要替换的规则 -L 列出(--list)指定链中所有的规则进行查看,若未指定链名,则列出表中所有链的内容 -F 清空(--flush)指定链中的规则,若未指定链名,则清空表中所有链的内容 -N 新建(--new-chain)一条用户自己定义的规则链 -X 删除指定表中用户自定义的规则链(--delete-chain) -P 设置指定链的默认策略(--policy) -n 使用数字形式(--numeric)显示输出结果,如显示主机的ip地址而不是主机名 -v 查看规则列表时显示详细(--verbose)信息 -V 查看iptables命令工具的版本(--version)信息 -h 查看命令帮助信息(--help) --line-numbers 查看规则列表时,同时显示规则在链中的顺序号 -Z 表示把包以及流量计数器置零
规则表
filter表,包含三个规则链:INPUT,FORWARD,OUTPUT。 filter表主要用于对数据包进行过滤,根据具体的规决定是否放行该数据包 nat表,包含三个规则链:PREROUTING,POSTROUTING,OUTPUT. nat表主要用于修改数据包的ip地址、端口号等信息 mangle表,包含五个规则链:PREROUTING,POSTROUTING,INPUT,OUTPUT,FORWARD. mangle表主要用于修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期)值以及数据包设置Mark标记,实现Qos(Quality of Service,质量服务)调整以及策略路由等应用 raw表,包含两条规则链:OUTPUT,PREROUTING. raw表主要用于决定数据包是否被状态跟踪机制处理。 security表
netfilter的五个链
PREROUTING: 数据包进入路由表之前 INPUT: 通过路由表目的地为本机 FORWARD: 通过路由表后,目的地不为本机 OUTPUT: 由本机产生,向外转发 POSTROUTING: 发送到网卡接口之前
查看filter表中各链的规则
[root@apenglinux-001 ~]# iptables -t filter -nvL // [-t filter]可省略 Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 369 27373 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 1 40 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 1145 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 294 packets, 48378 bytes) pkts bytes target prot opt in out source destination
清空filter表中的各链中的规则,然后将清除后的规则保存
#iptables -t filter -F;service iptables save
防火墙规则保存在/etc/sysconfig/iptables
添加及插入规则
在filter表的INPUT链的末尾添加一条防火墙规则
[root@apenglinux-001 ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT
在filter表的INPUT链中插入一条防火墙规则
[root@apenglinux-001 ~]# iptables -I INPUT -p udp -j ACCEPT
在filter表的INPUT链中插入一条防火墙规则作为链中的第二条规则
[root@apenglinux-001 ~]# iptables -t filter -I INPUT 2 -p icmp -j ACCEPT
查看规则列表
查看filter表INPUT链中的所有规则,同时显示各规则的顺序号
[root@apenglinux-001 ~]# iptables -t filter -nvL INPUT [#一个数字,表示链中的第几条规则] --line-number
删除、清空规则
删除filter表INPUT链中的第2条规则
[root@apenglinux-001 ~]# iptables -D INPUT 2
清空filter表、nat表、mangle各链中的所有规则
[root@apenglinux-001 ~]# iptables -F;iptables -t nat -F;iptables -t mangle -F
设置规则链的默认策略
将filter表中FORWARD规则链的默认策略设为DROP
[root@apenglinux-001 ~]# iptables -t filter -P FORWARD DROP
将filter表中OUTPUT规则链的默认策略设为ACCEPT
[root@apenglinux-001 ~]# iptables -t filter -P OUTPUT ACCEPT
新增、删除自定义规则链
在raw表中新增一条自定义的规则链,链名为TCP_PACKETS
[root@apenglinux-001 ~]# iptables -t raw -N TCP_PACKETS
清空raw表中用户自定义的所有规则链
[root@apenglinux-001 ~]# iptables -t raw -X
通用条件匹配
协议匹配
[root@apenglinux-001 ~]# iptables -I INPUT -p icmp -j REJECT //拒绝进入防火墙的所有icmp协议数据包 [root@apenglinux-001 ~]# iptables -I FORWARD ! -p icmp -j ACCEPT //允许防火墙转发除icmp协议以外的所有数据包
地址匹配
拒绝转发来自192.168.1.11主机的数据,允许转发来自192.168.0.0/24网段的数据
[root@apenglinux-001 ~]# iptables -A FORWARD -s 192.168.1.11 -j DROP [root@apenglinux-001 ~]# iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT
网络接口匹配
丢弃从外网接口ens33进入防火墙本机的源地址为私网地址的数据包
[root@apenglinux-001 ~]# iptables -A INPUT -i ens33 -s 192.168.0.0/16 -j DROP [root@apenglinux-001 ~]# iptables -A INPUT -i ens33 -s 172.16.0.0/12 -j DROP [root@apenglinux-001 ~]# iptables -A INPUT -i ens33 -s 10.0.0.0/8 -j DROP
管理员在网关服务器上检测到来自某个ip网段(192.168.2.0/24)的频繁扫描,希望设置iptables规则封堵ip地址段,两小时后解封
[root@apenglinux-001 ~]# iptables -I INPUT -s 192.168.2.0/24 -j DROP [root@apenglinux-001 ~]# iptables -I FORWARD -s 192.168.2.0/24 -j DROP [root@apenglinux-001 ~]# at now +2 hours at> iptables -D INPUT 1 at> iptables -D FORWARD 1 at> <EOT> job 4 at Thu Feb 22 16:43:00 2018 [root@apenglinux-001 ~]# atq 4 Thu Feb 22 16:43:00 2018 a root
隐含条件匹配
端口匹配
仅允许系统管理员从192.168.221.0/24网段使用ssh方式远程登录防火墙主机
[root@apenglinux-001 ~]# iptables -A INPUT -p tcp --dport 22 -s 192.168.221.0/24 -j ACCEPT [root@apenglinux-001 ~]# iptables -A INPUT -p tcp --dport 22 -j DROP
允许本机开放从tcp端口20-1024提供的应用服务
[root@apenglinux-001 ~]# iptables -A INPUT -p tcp --dport 20:1024 -j ACCEPT [root@apenglinux-001 ~]# iptables -A OUTPUT -p tcp --sport 20:1024 -j ACCEPT
作为网关使用时,允许转发来自192.168.0.0/24局域网段的DNS解析请求数据包
[root@apenglinux-001 ~]# iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT [root@apenglinux-001 ~]# iptables -A FORWARD -d 192.168.0.0/24 -p udp --sport 53 -j ACCEPT
TCP标记匹配
拒绝从外网接口直接访问防火墙本机的数据包
[root@apenglinux-001 ~]# iptables -P INPUT DROP [root@apenglinux-001 ~]# iptables -I INPUT -i ens33 -p tcp --tcp-flags SYN,RST,ACK SYN -j REJECT
ICMP类型匹配
禁止其他主机ping防火墙主机,但是允许从防火墙上ping其他主机(允许接收ICMP回应数据)
[root@apenglinux-001 ~]# iptables -A INPUT -p icmp --icmp-type Echo-Request -j DROP [root@apenglinux-001 ~]# iptables -A INPUT -p icmp --icmp-type Echo-Reply -j ACCEPT [root@apenglinux-001 ~]# iptables -A INPUT -p icmp --icmp-type destination-Unreachable -j ACCEPT
显示条件匹配
MAC地址匹配
禁止转发来自MAC地址为00-50-56-c0-00-08的主机的数据包
[root@apenglinux-001 ~]# iptables -A FORWARD -m mac --mac-source 00:50:56:c0:00:08 -j DROP
多端口匹配
允许防火墙本机对外开放tcp端口20、21、25、110以及被动模式ftp端口1250-1280
[root@apenglinux-001 ~]# iptables -A INPUT -p tcp -m multiport --dport 20,21,25,110,1250:1280 -j ACCEPT
多ip地址匹配
禁止转发源ip地址为192.168.1.20-192.168.1.99的tcp数据包
[root@apenglinux-001 ~]# iptables -A FORWARD -p tcp -m iprange --src-range 192.168.1.20-192.168.1.99 -j DROP
状态匹配
禁止转发与正常TCP连接无关的非--syn请求数据包(如网络中可能存在的一些非法攻击数据包)
[root@apenglinux-001 ~]# iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP
拒绝访问防火墙的新数据包,但允许响应连接或与已有连接相关的数据包
[root@apenglinux-001 ~]# iptables -A INPUT -p tcp -m state --state NEW -j DROP [root@apenglinux-001 ~]# iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
在服务器中设置防火墙策略,只开放本机的web服务80端口、ftp服务(21、20、20450-20480),放行外部主机发往服务器其他端口的应答数据包,将其他入站数据包均予以丢弃处理
[root@apenglinux-001 ~]# iptables -I INPUT -p tcp -m multiport --dport 20,21,80,20450:20480 -j ACCEPT [root@apenglinux-001 ~]# iptables -I INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT [root@apenglinux-001 ~]# iptables -P INPUT DROP
需求:只针对filter表,预设策略INPUT链DROP,其他两个链ACCEPT,然后对192.168.221.0/24开通22端口,对所有网段开放80端口和21端口(写一个脚本)
[root@apenglinux-001 sbin]# cat iptables.sh #!/bin/bash # ipt="/usr/sbin/iptables" $ipt -F $ipt -P INPUT DROP $ipt -P OUTPUT ACCEPT $ipt -P FORWARD ACCEPT $ipt -A INPUT -s 192.168.221.0/24 -p tcp --dport 22 -j ACCEPT $ipt -A INPUT -p tcp -m multiport --dport 80,21 -j ACCEPT [root@apenglinux-001 sbin]# sh /usr/local/sbin/iptables.sh
开机启动就初始化防火墙规则
#echo '/bin/sh /usr/local/sbin/iptables.sh' >> /etc/rc.d/rc.local #chmod +x /etc/rc.d/rc.local #init 6
标签:开机 reply 替换 color 个数 调整 地址 get 火墙
原文地址:http://blog.51cto.com/13480443/2072115