因服务器受木马攻击,导致CPU占用太高,手工清除后,准备采用防火墙对服务器限制外网访问(不能访问到外网,但可以访问部分指定的外网IP)

一、安装与配置

# 安装iptables服务
yum install iptables-services -y

禁止上外网的脚本

​vi /usr/local/forbid-Intranet.sh​

#!/bin/sh

# 黄海反复试验了几次,发现在设置之前关闭防火墙才是最安全的办法,否则会发生连接不上的问题
service iptables stop

iptables -F

iptables -X

iptables -Z


# 允许部分出去的网络
iptables -A OUTPUT -d 192.168.0.0/8 -j ACCEPT

# 测试一个外网
iptables -A OUTPUT -d www.cnblogs.com -j ACCEPT


#允许icmp包通过,也就是允许ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

#本机对外请求相当于OUTPUT,对于返回数据包必须接收啊,这相当于INPUT了
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


#信任IP
iptables -A INPUT -s 192.168.192.1 -j ACCEPT

# 禁用所有出去的网络
iptables -P OUTPUT DROP

# 保存iptbales规则
service iptables save

# 重新启动
service iptables restart

恢复上外网的脚本

​vi /usr/local/allow-Intranet.sh​

#!/bin/sh

# 黄海反复试验了几次,发现在设置之前关闭防火墙才是最安全的办法,否则会发生连接不上的问题
service iptables stop

iptables -F

iptables -X

iptables -Z


# 据说这两句话是必不可缺少的
iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# 开放22端口
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT


#信任IP
iptables -A INPUT -s 192.168.192.1 -j ACCEPT

#关闭其它端口
iptables -P INPUT DROP

# 保存iptbales规则
service iptables save

# 重新启动
service iptables restart

二、测试

尝试访问内网

ping 192.168.198.2 通了!

尝试访问外网

ping www.baidu.com 
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
ping: sendmsg: Operation not permitted

测试cnblogs

curl -L www.cnblogs.com

可以测试一下修改​​set.sh​​​中,注释掉​​cnblogs​​​那句,执行,然后再次测试​​curl -L www.cnblogs.com​​来测试一下是否有变化

三、常用命令

启动iptables

systemctl enable iptables

打开iptables

systemctl start iptables

保存iptables

service iptables save

重启服务

service iptables restart

查看iptables现行规则

iptables -L -n

查看网络配置

vi /etc/sysconfig/network-scripts/ifcfg-ens33

查看网关

route -n

192.168.198.2