防火墙:netfilter
在6中管理防火墙工具:iptables
在7中管理防火墙工具:firewalled
(1)Linux系统结构
在X86平台的CPU,是如何执行内核程序和用户程序
精简指令集和复杂指令集
ring0-----ring3:从里到外越来越低级
ring0:与硬件、设备或总线控制相关的程序------内核程序
ring1、ring2:与驱动或虚拟化相关的程序
ring3:与用户程序有关的在
(2)/proc与/sys
1、PID是不是文件? 是,在proc中
2、资源的使用情况是以文件的形式呈现吗? 是,在proc中
3、系统分区的情况会不会记录在文件中? 是,在proc中
4、驱动程序的具体信息能否看到? 能,在sys文件中
(3)防火墙基础
网络防火墙、主机防火墙
硬件防火墙、软件防火墙
网络安全的知名企业:深圳信服、思科、天融信
硬件防火墙:思科(AIR-CT5508-300-K9)、华为(USG6670)
(4)四表,五链
四表:
filter(INPUT、FORWARD、OUTPUT)
nat(PREROUTING、POSTROUTING、OUTPUT)
raw(PREROUTING、OUTPUT)
mangle(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING)
五链:
INPUT
OUTPUT
FORWARD
PREROUTING
POSTROUTING
四表在同一链中的优先级:
raw(关闭nat表)
---->
mangle(解析报文,并重新封装)
---->
nat(网络地址转换功能)
---->
filter(负责过滤功能,防火墙;内核模块:iptable_filter )
(5)查看防火墙的配置
-L:查看规则
-t 指定表 -L
-n:转化成数字
-v:显示详细信息
–line-number:显示链下规则的行号
[root@localhost ~]# modprobe iptable_nat
#重新加载表模块
[root@localhost ~]# iptables -L#查看所有规则
[root@localhost ~]# iptables -F#清除规则
[root@localhost ~]# service iptables restart重新启动
[root@localhost ~]# iptables -t filter -L#指定查找内容
[root@localhost ~]# iptables -nL#将地址转换成数字
[root@localhost ~]# iptables -nvL#详细信息
[root@localhost ~]# iptables -nvL --line-number标出行号
source:源地址 (这个地址ping你)
-s 地址
destinat:目标地址(我ping这个地址)
-d 地址
target:
ACCEPT:容许,接收
DROP:丢弃
REJECT:拒绝
-I:加到第一条
-A:加到最后一条
-p:指定协议
--dport:目标端口
--sport:源端口
增:
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.220.19 -j REJECT
#拒绝源地址的请求
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.220.19 -j DROP#丢弃源地址的请求
[root@localhost ~]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 260 21840 DROP all – * * 192.168.220.19 0.0.0.0/0
2 71 5964 REJECT all – * * 192.168.220.19 0.0.0.0/0
#放在前面的优先级高
[root@localhost ~]# iptables -t filter -I OUTPUT -d 192.168.220.19 -j REJECT# 将输出也设为拒绝
[root@localhost ~]# iptables -t filter -A INPUT -s 192.168.220.19 -j DROP#追加到最后
[root@localhost ~]# iptables -t filter -I INPUT 2 -s 192.168.220.19 -j REJECT# 指定行号,具体添加到哪一行
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.220.19 -p ICMP -j DROP# 只禁掉ping
[root@localhost ~]# iptables -t filter -I INPUT -j REJECT#禁掉全部,拒绝所有
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.220.19,192.168.220.17 -p ICMP -j ACCEPT# 同时添加多个可ping通的地址
[root@localhost ~]# iptables -t filter -I INPUT -p ICMP -s 192.168.220/24 -j ACCEPT# 添加一个网段,这个网段内的所有网络都可以ping通
[root@localhost ~]# iptables -t filter -I INPUT -p ICMP ! -s 192.168.19 -j ACCEPT# 除了这个网段中的这一个ip地址ping不同,其他都可以ping通
curl:
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.220.19 -p tcp --dport 80 -j ACCEPT
# 接收curl
[root@localhost ~]# iptables -t filter -I INPUT -s 192.168.220.19 -p tcp --sport 80 -j REJECT# 禁掉curl
ssh:
[root@localhost ~]# iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT
# 接收ssh
[root@localhost ~]# iptables -t filter -A INPUT -j REJECT# 禁掉全部,拒绝所有,先执行接收ssh
[root@localhost ~]# iptables -t filter -I INPUT -p tcp -m tcp --dport 22:80 -j ACCEPT
ping ip:
[root@localhost ~]# iptables -t filter -I INPUT -p ICMP ! -s 192.168.19 -j ACCEPT
# 除了这个网段中的这一个ip地址ping不同,其他都可以ping通
[root@localhost ~]# iptables -t filter -I INPUT -p ICMP -s 192.168.220/24 -j ACCEPT# 添加一个网段,这个网段内的所有网络都可以ping通
删:
[root@localhost ~]# iptables -F
#清除规则
[root@localhost ~]# iptables -t filter -D INPUT 3#指定行号删除
[root@localhost ~]# iptables -t filter -D INPUT -p tcp --sport 22 -j ACCEPT# 指定条件删除(自己为源端口)
改:
[root@localhost ~]# iptables -t filter -R INPUT 2 -p tcp --dport 80 -s 192.168.220.15 -j ACCEPT
查:
[root@localhost ~]# iptables -nL
#将地址转换成数字
[root@localhost ~]# iptables -nvL#详细信息
[root@localhost ~]# iptables -nvL --line-number#列出行数
保存:
[root@localhost ~]# iptables-save
# 输出到屏幕
[root@localhost ~]# iptables-save > /etc/sysconfig/iptables# 重定向到文件中
[root@localhost ~]# service iptables save# 保存到/etc/sysconfig/iptables文件中
[root@localhost ~]# md5sum iptables
[root@localhost ~]# md5sum /etc/sysconfig/iptables
#校验两个文件内容是否相同,若校验码相同,则可以替换,若校验码不同,不能替换
若7中没有iptables,使用不了service iptables save指令
首先不管防火墙有没有关 先使用systemctl stop firewalld 关闭防火墙
然后使用 yum install iptables-services 安装或更新服务
再使用systemctl enable iptables 启动iptables
最后 systemctl start iptables 打开iptables
最后 service iptables save
查看端口号
[root@localhost ~]# netstat -lunpt