ftp防火墙支持端口范围灰色_防火墙-55-56day

常见防火墙的选用

公司网站入口使用的硬件放火墙,三层路由带有防火墙的功能

iptables访问量小 c5,c6系统默认,c7 Firewalld(关闭 安装iptables)

3. 名词(关系)与单词

  • 容器:存放内容/存放东西
  • Netfilter/iptables:Netfilter/iptables是表的容器
  • 表(table):用来存放链的容器
  • 链(chain):链存放 规则容器
  • 规则:准许/拒绝访问

防火墙的执行过程

  • 1. 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
  • 2. 如果匹配上规则,即明确表示是阻止(DROP)还是通过(ACCEPT)数据包就不再向下匹配新的规则。
  • 3. 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。
  • 4. 防火墙的默认规则是所有规则执行完才执行的

0d65559eb465f139326aa730c406da64.png

四表五链

整体说明 4表及作用

filter:过滤,默认得表,防火墙功能。

NAT:实现NAT转化1:共享上网,2:端口转发

mangle:

raw:

表中得5链

7386e14ba377dbea50425116d8c1e6e6.png

9d8039a273eedb5c5f6d2d04e49e34ac.png

filter表

cd57f553ab213abb2b34bc6844067f1f.png

nat表

ca15b4d080ba1e43c4148cd0be95ce16.png

Mangle表

主要负责修改数据包中特殊的路由标记,如TTL,TOS,MARK等,这个表定义了5个链(需要补充)

防火墙之filter表

环境准备

m01 iptables

db01

yum install iptables iptables-services   #下载

[root@m01 ~]# rpm -qa iptables-services
 iptables-services-1.4.21-28.el7.x86_64

 [root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #iptables 配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service #iptables服务管理配置 

启动防火墙:

1systemctl start iptables.service
2systemctl enable iptables.service

检查防火墙内核模块是否加载成功:

[root@91 ~]# lsmod |egrep 'nat|ipt|filter'
ipt_REJECT             12541  2 
nf_reject_ipv4         13373  1 ipt_REJECT
iptable_filter         12810  1 
ip_tables              27126  1 iptable_filter
添加模块得命令
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state

[root@91 ~]# modprobe ip_tables
[root@91 ~]# modprobe iptable_filter
[root@91 ~]# modprobe iptable_nat
[root@91 ~]# modprobe ip_conntrack
[root@91 ~]# modprobe ip_conntrack_ftp
[root@91 ~]# modprobe ip_nat_ftp
[root@91 ~]# lsmod |egrep 'nat|ipt|filter'
nf_nat_ftp             12770  0 
nf_conntrack_ftp       18638  1 nf_nat_ftp
iptable_nat            12875  0 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26787  2 nf_nat_ftp,nf_nat_ipv4
ipt_REJECT             12541  2 
nf_reject_ipv4         13373  1 ipt_REJECT
nf_conntrack          133095  6 nf_nat_ftp,nf_nat,nf_nat_ipv4,xt_conntrack,nf_conntrack_ftp,nf_conntrack_ipv4
iptable_filter         12810  1 
ip_tables              27126  2 iptable_filter,iptable_nat
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack

iptables 命令及参数

d1536fb1d2c1d4804adab7970f66ba84.png

5a86cba51472049c3377e6ddeb655ab6.png

1826f18e5d6f4d1bd5fb30795e2a6ec5.png
[root@91 ~]# iptables -nL    #查看规则
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@91 ~]# iptables -F      #清空规则
[root@91 ~]# iptables -nL
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         

配置规则-禁止访问22端口

iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

配置防火墙规则注意事项:

  • 去机房重启系统或者登陆服务器删除刚才的禁止规则。
  • 让机房人员重启服务器或者让机房人员拿用户密码登录进去
  • 通过服务器的远程管理卡管理(推荐)
  • 先写一个定时任务,每5分钟就停止防火墙
  • 测试环境测试好,写成脚本,批量执行

4331d91ccb4536e377120cc4c6a17bdf.png

filter表其他规则配置

只让10.0.0.0/24网段进行访问

只要是10.0.0.0/24 局域网的用户 访问m01 都ACCEPT
此例子主要限制:网段或ip地址
[root@91 ~]# iptables -I INPUT -p tcp ! -s 10.0.0.0/24 -j DROP
[root@91 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

准许或禁止端口

多个端口:表示范围 1-1024范围

[root@91 ~]# iptables -I INPUT -p tcp ! --dport 1:1024 -j DROP
[root@91 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:!1:1024
DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

nc用法:

nc -l 指定监听端口
nc/telnet 连接

多个端口 不连续 80,433,52113,22

[root@m01 ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443,22 j DROP

6.4.2 准许或禁止ping

[root@m01 ~]# iptables -I INPUT	-p icmp	--icmp-type any	-j	DROP 

禁止后检测是否通畅:

可以使用:telnet nc nmap进行检查

  • NEW:已经或将启动新的连接
  • ESTABLISHED:已建立的连接
  • RELATED:正在启动的新连接
  • INVALID:非法或无法识别的
1 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
2 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

匹配网络限制策略(限制并发 访问的频率)

-m limit

-m limit --limit n/{second/minute/hour}:

解释:指定时间内的请求速率”n”为速率,后面为时间分别为:秒 分 时

--limit-burst [n]

解释:在同一时间内允许通过的请求”n”为数字,不指定默认为5

iptables -I INPUT -s 10.0.1.0/24 -p icmp --icmp-type 8 -m limit --limit 6/min
--limit-burst 5 -j ACCEPT

保存规则

[root@m01 ~]# iptables-save

[root@91 ~]# iptables-save >/etc/sysconfig/iptables   #保存到这个文件
[root@91 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:!1:1024
DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@91 ~]# iptables -F     #清空
[root@91 ~]# iptables -nL
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@91 ~]# iptables -nL
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@91 ~]# iptables-restore </etc/sysconfig/iptables    #还原
[root@91 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:!1:1024
DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

注意事项:

iptables-save >/etc/sysconfig/iptables

iptables 是关闭状态 stop/disable

不要使用iptables -nL 查看状态,

如果使用防火墙自动打开查看防火墙状态:systemctl is-active iptables.service

生产环境防火墙配置

配置允许SSH登陆端口进入

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

允许本机回环lo接口数据流量流出与流入

1 iptables -A INPUT -i lo -j ACCEPT
2 iptables -A OUTPUT -o lo -j ACCEPT

-i input 与 INPUT链一起使用

-o output 与 OUTPUT 链一起使用

准许icmp协议通过

[root@m01 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

准许用户使用的端口通过 80,443

1 iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2 iptables -A INPUT -p tcp --dport 443 -j ACCEPT

允许用户与服务器建立连接

1 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
2 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

开启信任的IP网段**

1iptables -A INPUT  -s 10.0.0.0/24 -p all  -j ACCEPT
2iptables -A INPUT  -s 172.16.1.0/24 -p all -j ACCEPT

修改默认规则

1 iptables -P INPUT DROP
2 iptables -P FORWARD DROP
3 iptables -P OUTPUT ACCEPT

NAT表

POSTROUTING

  • 防火墙配置POSTROUTING规则开启内核转发
  • 检查iptable nat模块是否加载 lsmod
[root@m01 ~]# iptables -t nat -A POSTROUTING	-s 172.16.1.0/24 -o eth0 SNAT	--to-source 10.0.0.61

[root@91 ~]# tail /etc/sysctl.conf
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.ip_forward=1
[root@91 ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@91 ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@91 ~]# lsmod |egrep 'ipt|nat|filter'
nf_nat_ftp             12770  0 
nf_conntrack_ftp       18638  1 nf_nat_ftp
iptable_nat            12875  0 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26787  2 nf_nat_ftp,nf_nat_ipv4
ipt_REJECT             12541  0 
nf_reject_ipv4         13373  1 ipt_REJECT
nf_conntrack          133095  6 nf_nat_ftp,nf_nat,nf_nat_ipv4,xt_conntrack,nf_conntrack_ftp,nf_conntrack_ipv4
iptable_filter         12810  1 
ip_tables              27126  2 iptable_filter,iptable_nat
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack
  • 关闭eth0网卡
  • 在eth1网卡中加入网关 指向 xxx.61
[root@db01 ~]# cat	/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=no
IPADDR=10.0.0.51
PREFIX=24
GATEWAY=10.0.0.254
DNS1=10.0.0.254

[root@db01 ~]# cat	/etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static 14	IPADDR=172.16.1.51
PREFIX=24
NAME=eth1
DEVICE=eth1
ONBOOT=yes
GATEWAY=172.16.1.61
重启网卡 ,通过内网连接进来 并进行测试
[root@db01 ~]# ping baidu.com

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61 # 公网ip固定

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source MASQUERADE #伪装

MAS QUE RADE 【mæskəˈreɪd】

练习题

【面试题】防火墙​www.jianshu.com
bc619dd9c25b27916fb3c7a94b5d9ba3.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值