iptables防火墙

对于防火墙, 不是做运维的朋友应该是比较难接触到, 就算接触到了, 也是会将它关闭, 这里只是简要的介绍下防火墙 iptables 最精简的配置.

CentOS 6.x

查看防火墙状态

service iptables status

查看防火墙规则

iptables -L -nv

清空防火墙所有规则

iptables -F  # 清除预设表filter中的所有规则链的规则
iptables -X  # 清除预设表filter中使用者自定链中的规则

添加规则

iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 非常重要, 最好第一步就设置

如果不优先设置这条规则, 就无法通过 ssh 远程登录, 如果是实体服务器就需要本机操作了, 云服务器就悲剧了

这里只关闭入口

iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

修改了配置一定记得保存, 否则这些修改只是临时生效, 文件保存在 /etc/sysconfig/iptables

service iptables save

防火墙开启, 停止和重启

service iptables start
service iptables stop
service iptables restart

其他重要端口

iptables -A INPUT -p tcp --dport 80 -j ACCEPT  # http
iptables -A INPUT -p tcp --dport 443 -j ACCEPT  # https
iptables -A INPUT -p tcp --dport 21 -j ACCEPT  # ftp
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT # mysql
iptables -A INPUT -p tcp --dport 6379 -j ACCEPT # redis

内部回路, 这个非常重要, 否则服务器内部无法相互访问

iptables -A INPUT -i lo -p all -j ACCEPT

是否允许别人 ping, 测试环境有用

iptables -A INPUT -p icmp -j ACCEPT

有时候, 我们操作php, 使用curl 访问外部, 或者操作java 使用 HttpConnection, 都需要开启

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

大致这样配置, 可以满足大部分需求, 当然, 有些严谨的朋友可能会将出口OUTPUT关闭, 这个时候大家只需要将OUTPUT按照INPUT的命令设置一遍即可

你可能感兴趣的:(iptables防火墙)