VPS 上更新到了最新的 CentOS 7,以前没有配置防火墙,为了系统安全,现打算启用防火墙并进行严格过滤控制。CentOS 7.0 默认使用的是 firewall 作为防火墙,没用过,听说也不是很好用,我还是比较习惯用 iptables。
所以接下来要做的主要是两步:一是关闭默认的防火墙;二是开启 iptables,并对其进行配置,主要是开放一些端口。
一、关闭默认的 firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd –state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
启用 iptables 防火墙
编辑防火墙配置文件:
vi /etc/sysconfig/iptables
这里使用80和8080端口为例:
# sampleconfiguration for iptables service # you can edit thismanually or use system-config-firewall # please do not askus 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 -jACCEPT -A INPUT -i lo -jACCEPT -A INPUT -p tcp -mstate --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -jACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080-j ACCEPT -A INPUT -j REJECT--reject-with icmp-host-prohibited -A FORWARD -jREJECT --reject-with icmp-host-prohibited
命令:wq!保存。
一般添加到“-A INPUT -p tcp -m state –state NEW -m tcp–dport 22 -j ACCEPT”行的上面或者下面,切记不要添加到最后一行,否则防火墙重启后不生效。
systemctl restart iptables.service #最后重启防火墙使配置生效 systemctl enable iptables.service #设置防火墙开机启动