## Centos7防火墙设置
##### 目的 : 给一个服务器配置防火墙 限制访问
> 注意 : 防火墙的规则设置 可对5种链 4种表进行设置 因为需求为阻断特定IP访问 本文操作 只关注filter链-INPUT表的规则 且出于安全考虑 不修改链表的默认策略
##### 安装iptables
* 0.安装iptables-services
```bash
$ yum install -y iptables-services
```
效果图

* 1.停止firewalld
```bash
$ systemctl stop firewalld
```
效果图
* 2.禁止firewalld开机自启
```bash
$ systemctl disable firewalld
```
效果图

* 3.启动iptables
```bash
$ systemctl start iptables
```
效果图
* 4.设置iptables开机自启
```bash
$ systemctl enable iptables
```
效果图

* 5.查看iptables服务状态
```bash
$ service iptables status
```
效果图

##### 操作前准备
* 0.查看当前的规则列表
```bash
$ iptables -nvL
```
效果图 (每个服务器的效果可能不一样 不用在意 我们要改的)

* 1.清空当前的规则列表
```bash
$ iptables -F INPUT
```
效果图

再次查看 确保已清空
```bash
$ iptables -nvL
```
效果图
##### 添加规则
> 注意: 现在的添加 是将规则添加到当前的规则列表 并未保存到配置文件 是临时性的 如执行命令$ iptables -nvL 会清空你现在的操作 没有备份可寻 但可重新添加规则
* 0.放行
放行10.255.175.0/24网段的访问
```bash
$ iptables -t filter -A INPUT -s 10.255.175.0/24 -j ACCEPT
```
效果图

* 2.拒绝
拒绝其他IP主动请求 只允许本机主动请求 对方进行响应
```bash
$ iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
```
效果图
```bash
$ iptables -t filter -A INPUT -j REJECT
```
效果图

* 3.查看当前的规则列表 确保添加正确
```bash
$ iptables -nvL
```
效果图
##### 保存规则
> 这里的操作 就是保存当前的规则列表到配置文件 是永久生效的 遇到服务器被重启 配置文件的规则也存在 开启iptabes服务 规则就会自动生效 即同步到当前的规则列表 用命令$ iptables -nvL可查询
> 注意 : 只关注filter链-INPUT表的规则
* 0.查看配置文件原本的规则
```bash
$ vi /etc/sysconfig/iptables
```
效果图

* 1.备份配置文件原本的规则
(以防不时之需 例如:原来的规则 有一些是有用的 被清空了 想找到可以用这个备份文件恢复原来的规则)
```bash
$ cp /etc/sysconfig/iptables /etc/sysconfig/iptables_copy
```
* 2.保存当前的规则列表到配置文件
```bash
$ service iptables save
```
效果图

* 3.查看配置文件 规则已更新
```bash
$ vi /etc/sysconfig/iptables
```
效果图
##### 测试防火墙
用放行的主机IP ping 服务器IP 是通的
用其他主机IP ping 服务器IP 是拒绝请求的
----
##### 增加新的放行规则
> 说明 : 是在现在已有规则上再新增一个放行的规则 比如说 我之前少加了一个放行规则 现在加上
添加规则
```
$ iptables -I INPUT -p udp --dport 514 -j ACCEPT
```
效果图


保存规则 同上
测试防火墙 同上
-----
-----