Linux防火墙基本学习

远程访问控制

/etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问的,通过它可以允许或禁止某个IP/IP段的客户访问Linux。

sshd:172.25.254. :spawn echo `date` from %c to %s >> /dev/pts/1

Linux防火墙基本学习_第1张图片


iptables

概述:

Linux的数据包过滤软件。

三表五链

iptables里面有很多个表格,没个表格都定义出自己的默认策略和规则,且每个表格的用途都不相同。

Filter(过滤器):

主要跟进入Linux本季的数据包有关,是默认的table。
1、INPUT: 主要跟想进入Linux本机的数据包有关。
2、OUPUT: 主要跟Linux本机想要送出去的数据包有关。
3、FORWARD: 与Linux本机没有关系,它可以传递数据包到后端的计算机中,与 NAT的table相关性较高。

NAT(地址转换):

是Network Address Translation的缩写,这表格主要用来进行来源与目的地的IP或port的转换,与Linux本机无关,与要与Linux主机后的局域网内计算机相关。
PREROUTING:在进行路由判断之前所要进行的规则。
POSTROUTING:在进行路由潘多之后所要进行的规则。
OUTPUT:与发送出去的数据包有关。

Mangle(破坏者):

由于这个表格与特殊标志相关性较高,在此环境下,使用率很低。

安装iptables服务

yum install iptables-services -y
systemctl status iptables.service
systemctl enable iptables.service
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld

查看规则

ipatable
-t       #后面接table,若省略此项目,则使用默认的filter
-L       #列出面前的table的规则
-n       #不进行IP与HOSTNAME的反查,显示信息的速度会快很多
-v       #列出更多的信息,包括通过该规则的数据包总位数,相关的网络接口等

target:代表进行的操作,ACCEPT(放行)、REJECT(拒绝)、DROP(丢弃)
prot:代表使用的数据包协议,主要有TCP、UDP和IPCM 3种数据包格式。
opt:额外的选项说明
source:代表词规则是针对哪个来源IP进行限制
destination:代表此规则是针对哪个目标IP进行限制。

参数:

-A   #新增规则,默认在已有规则之后
-I   #插入规则,默认是第一条 
-io  #网络接口
-p   #协定
-s   #来源 ip/网络
-d   #目标 ip/网络
-j   #后面跟操作

固定ftp端口

pasv_max_port=7000>vim/etc/vstpd/vstpd.conf
pasv_min_port=7000>vim/etc/vstpd/vstpd.conf
iptables -I INPUT 3 -m state --state NEW -p tcp --dport 7000 -j ACCEPT

一般来说,c端启用的端口都大于1024,而s端起用的端口都小于1023,所以我们可以丢弃来自远程的小于1023的端口数据的主动连接

NAT

POSTROUTING修改源ip,源NAT(SNAT)
PREROUTING修改目标ip,目标NAP(DNAT)

SNAT:

net.ipv4.ip_forward = 1>/etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-suource 172.25.254.130

DNAT:

net.ipv4.ip_forward = 1>/etc/sysctl.conf
sysctl -p
iptables -t nat -A PREROUTING -o eth1 -j DNAT --to-suource 172.25.0.130

其实dnat就是将snat反过来进行,很容易理解。


Firewalld

firewalld和iptables的不同:

iptables service在/etc/sysconfig/iptables中储存配置
firewalld将配置存储在
/usr/lib/firewalld(系统配置,尽量不修改)
/etc/firewalld/中的各种xml文件里(用户配置地址)。
Linux防火墙基本学习_第2张图片

1、zone概念:

硬件防火墙默认一般有三个区,firewalld引入这一概念系统默认存在以下区域
Linux防火墙基本学习_第3张图片

命令:

firewalld-cmd –status ##火墙状态 
firewalld-cmd - -get-default-zones ##显示当前使用的域 
firewalld-cmd - -set-default-zones=trusted ##设置默认域 
firewalld-cmd - -list-all ##显示火墙策略
firewalld-cmd - -add-service= ##临时添加火墙策略,立即生效 
firewalld-cmd - -permanent - -add-service ##永久添加不reload的话不生效 
firewalld-cmd - -permanent - -remove-service= 
firewalld-cmd - -permanent - -add-port=8080/tcp 
firewalld-cmd - -permanent - -remove-port=8080/tcp

ip授信:

firewalld-cmd - -permanent - -add-source= 
firewalld-cmd - -permanent - -remove-source= 
firewalld-cmd - -permanent - -add-source= - -zone= 
firewalld-cmd - -permanent - -remove-source= - -zone= 
这些策略在更改后需reload

网络接口

firewalld-cmd - -permanent - -add-interface= - -zone= ##将网络接口添加至某域

firewalld-cmd - -permanent - -remove-interface= - -zone= ##删除某域的某接口

更新防火墙规则

firewall-cmd --reload
firewall-cmd --complete-reload
两者的区别就是第一个无需断开连接,就是firewalld特性之一动态添加规则,第二个需要断开连接,类似重启服务
firewall-cmd --zone=work --add-service=添加服务
firewall-cmd --zone=work --remove-service=移除服务

Direct Rules

通过firewall-cmd工具,可以使用–direct选项在运行时间里增加或移除链。直接端口模式添加的规则优先应用。

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT ! -s 172.25.254.230 -p tcp --dport 22 -j ACCEPT
firewall-cmd --reload
systemctl restart firewalld
firewall-cdm --direct --get-all-rules

Ps:在direct功能下所写的策略等级都是平行的,没有先后顺序之分

rich rules

更为高级的一种火墙策略语言,并且可以永久配置。,是iptalbes工具的抽象表示。这种芋圆可以用来配置分区,也仍然支持现行的配置方式。

NAT伪装

firewall-cmd --permanent --add-rich-rules="rule family=ipv4 source address=172.25.254.30 forward=port port=22 protocol=tcp to-port=22 to-addr=172.25.0.230"
#dnat
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.254.130 masquerade'#snat

管理Se-Linux端口标签

getenforce 0
semanage port -l
semanage port -l | grep http
semanage port -a -t http_port_t -p tcp 9527

Linux防火墙基本学习_第4张图片

你可能感兴趣的:(Linux防火墙基本学习)