Centos6和7,内置的防火墙分别是iptables和firewalld,启动和配置方式不一样,
比如iptables启动service iptables start
firewalld启动systemctl start firewalld
这里的例子都是基于iptables的.
常用命令:
开启防火墙(重启后永久生效):chkconfig iptables on
关闭防火墙(重启后永久生效):chkconfig iptables off
开启防火墙(即时生效,重启后失效):service iptables start
关闭防火墙(即时生效,重启后失效):service iptables stop
重启防火墙:service iptables restartd
查看打开的端口
iptables -L -n
打开端口(8080)
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
保存配置
service iptables save
/将规则保存在/etc/sysconfig/iptables文件里
打开49152~65534之间的端口
iptables -A INPUT -p tcp --dport 49152:65534 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
//允许源IP地址为192.168.0.0/24网段的包流进(包括所有的协议,这里也可以指定单个IP)
iptables -A INPUT -d 192.168.0.22 -j ACCEPT
//允许所有的IP到192.168.0.22的访问
iptables -A INPUT -p icmp –icmp-type echo-request -j ACCEPT
//开放本机的ICMP协议
删除规则,先查找所有规则
iptables -L INPUT --line-numbers -n
删除一条规则
iptables -D INPUT 11 (11是行号,是上面命令所打印出来的行号)
或者iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
-A换成-D执行
iptables -D INPUT -p tcp --dport 8080 -j ACCEPT
参数说明:
–A 参数就看成是添加一条规则
–p 指定是什么协议,我们常用的tcp 协议,当然也有udp
–dport 就是目标端口,当数据从外部进入服务器为目标端口
–sport 数据从服务器出去,则为数据源端口使用
–j 就是指定是 ACCEPT -接收 或者 DROP 不接收
清空并重新配置防火墙(中间ssh连接会断开,谨慎)
查看本机关于IPTABLES的设置情况
iptables -L -n
iptables -F 清除预设表filter中的所有规则链的规则
iptables -X 清除预设表filter中使用者自定链中的规则
再查看 iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
规则已经清空
service iptables save
保存配置
service iptables restart
设定预设规则
iptables -P INPUT DROP // 不允许进
iptables -P FORWARD DROP // 不允许转发
iptables -P OUTPUT ACCEPT // 允许出
ssh会断开
添加规则.
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
FTP服务器,开启21端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
打开ping功能,便于维护和检测。
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
允许loopback,把“回环”打开,以免有不必要的麻烦。
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT