## Centos7防火墙设置
##### 目的 : 给一个服务器配置防火墙 限制访问
> 注意 : 防火墙的规则设置 可对5种链 4种表进行设置 因为需求为阻断特定IP访问 本文操作 只关注filter链-INPUT表的规则 且出于安全考虑 不修改链表的默认策略
##### 安装iptables
* 0.安装iptables-services
```bash
$ yum install -y iptables-services
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403151844257.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc3NzUxNQ==,size_16,color_FFFFFF,t_70)
* 1.停止firewalld
```bash
$ systemctl stop firewalld
```
效果图![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403151959677.png)
* 2.禁止firewalld开机自启
```bash
$ systemctl disable firewalld
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403152027835.png)
* 3.启动iptables
```bash
$ systemctl start iptables
```
效果图![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403152112127.png)
* 4.设置iptables开机自启
```bash
$ systemctl enable iptables
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403152220252.png)
* 5.查看iptables服务状态
```bash
$ service iptables status
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403152427178.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc3NzUxNQ==,size_16,color_FFFFFF,t_70)
##### 操作前准备
* 0.查看当前的规则列表
```bash
$ iptables -nvL
```
效果图 (每个服务器的效果可能不一样 不用在意 我们要改的)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403153033976.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc3NzUxNQ==,size_16,color_FFFFFF,t_70)
* 1.清空当前的规则列表
```bash
$ iptables -F INPUT
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403153251996.png)
再次查看 确保已清空
```bash
$ iptables -nvL
```
效果图![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403153424200.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc3NzUxNQ==,size_16,color_FFFFFF,t_70)
##### 添加规则
> 注意: 现在的添加 是将规则添加到当前的规则列表 并未保存到配置文件 是临时性的 如执行命令$ iptables -nvL 会清空你现在的操作 没有备份可寻 但可重新添加规则
* 0.放行
放行10.255.175.0/24网段的访问
```bash
$ iptables -t filter -A INPUT -s 10.255.175.0/24 -j ACCEPT
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020040316282842.png)
* 2.拒绝
拒绝其他IP主动请求 只允许本机主动请求 对方进行响应
```bash
$ iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
```
效果图![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403160653884.png)
```bash
$ iptables -t filter -A INPUT -j REJECT
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020040316071720.png)
* 3.查看当前的规则列表 确保添加正确
```bash
$ iptables -nvL
```
效果图![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403160903362.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc3NzUxNQ==,size_16,color_FFFFFF,t_70)
##### 保存规则
> 这里的操作 就是保存当前的规则列表到配置文件 是永久生效的 遇到服务器被重启 配置文件的规则也存在 开启iptabes服务 规则就会自动生效 即同步到当前的规则列表 用命令$ iptables -nvL可查询
> 注意 : 只关注filter链-INPUT表的规则
* 0.查看配置文件原本的规则
```bash
$ vi /etc/sysconfig/iptables
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403162125207.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc3NzUxNQ==,size_16,color_FFFFFF,t_70)
* 1.备份配置文件原本的规则
(以防不时之需 例如:原来的规则 有一些是有用的 被清空了 想找到可以用这个备份文件恢复原来的规则)
```bash
$ cp /etc/sysconfig/iptables /etc/sysconfig/iptables_copy
```
* 2.保存当前的规则列表到配置文件
```bash
$ service iptables save
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403162211783.png)
* 3.查看配置文件 规则已更新
```bash
$ vi /etc/sysconfig/iptables
```
效果图![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403162728364.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc3NzUxNQ==,size_16,color_FFFFFF,t_70)
##### 测试防火墙
用放行的主机IP ping 服务器IP 是通的
用其他主机IP ping 服务器IP 是拒绝请求的
----
##### 增加新的放行规则
> 说明 : 是在现在已有规则上再新增一个放行的规则 比如说 我之前少加了一个放行规则 现在加上
添加规则
```
$ iptables -I INPUT -p udp --dport 514 -j ACCEPT
```
效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403165557278.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200403165608647.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MDc3NzUxNQ==,size_16,color_FFFFFF,t_70)
保存规则 同上
测试防火墙 同上
-----
-----