CentOS 7下使用iptables代替FireWall防火墙

CentOS 7 中默认的防火墙是 FireWall,不是很会用,所以想改成原来使用的 iptables。

关闭 FireWall

1
2
systemctl stop firewalld.service #停止 firewall
systemctl disable firewalld.service #禁止 firewall 开机启动

安装 iptables

1
yum install iptables-services

配置 iptables

1
vim /etc/sysconfig/iptables

配置文件参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to
this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j A
CCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j A
CCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 20 -j A
CCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j A
CCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 10020:1
0030 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

红色为新加入的行,开放了 21,20 和 80 端口作为 ftp 和 http 使用,开放了 10020 到 10030 端口作为 ftp 的 pasv 模式。

保存配置

1
2
systemctl restart iptables.service #最后重启防火墙使配置生效
systemctl enable iptables.service #设置开机启动

注:关闭 SELINUX 的方法:

打开 SELINUX 配置文件

1
vim /etc/selinux/config

修改配置文件

1
2
3
#SELINUX=enforcing #注释之
#SELINUXTYPE=targeted #注释之
SELINUX=disabled #增加

使配置生效

1
setenforce 0