iptables 配置文件存放位置:
[root@Demon yum.repos.d]# vim /etc/rc.d/init.d/iptables
一、只给 Centos 6.5 打开 22 和 80 端口,并且重启后有效:
1、查看所有 iptables 配置:
[root@Demon yum.repos.d]# 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
2、只允许 80 和 22 端口通过防火墙
# 清除所有规则
[root@Demon opt]# iptables -F
# 只允许 发送的包从 22 端口进入和返回, -A 的意思是添加一条 INPUT 规则, -p 指定为什么协议,--dport 为目标端口
[root@Demon opt]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@Demon opt]# iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
# 允许本机访问本机
[root@Demon opt]# iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
[root@Demon opt]# iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 允许所有 IP 访问 80 端口
[root@Demon opt]# iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT
[root@Demon opt]# iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
[root@Demon opt]# iptables -P INPUT DROP
[root@Demon opt]# iptables -P OUTPUT DROP
[root@Demon opt]# iptables -P FORWARD DROP
# 保存配置
[root@Demon opt]# iptables-save > /etc/sysconfig/iptables
[root@Demon opt]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT all -- localhost localhost
ACCEPT tcp -- anywhere anywhere tcp dpt:http
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:ssh state ESTABLISHED
ACCEPT all -- localhost localhost
ACCEPT tcp -- anywhere anywhere tcp spt:http state ESTABLISHED
# 重启电脑后, ping 一下百度:
[root@Demon opt]# ping www.baidu.com
ping: unknown host www.baidu.com
二、关闭 iptables
# 打开防火墙,重启生效
# chkconfig iptables on
# 关闭防火墙,重启生效
# chkconfig iptables off
# 打开防火墙,立即生效,重启后不生效
# chkconfig start
# 关闭防火墙,立即生效,重启后不生效
# chkconfig stop