欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Iptables对内网开放所有端口,对外只开放80端口

shiping1 的头像

 

Iptables对内网开放所有端口,对外只开放80端口

背景:
准备把Raspberry Pi开放外网访问,先配置好防火墙

目标:
对内网ip开放所有端口
对外网ip只开放80端口
因为是开发环境,所以允许访问外网所有ip和端口

 

iptables -F # 清空规则
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT # 允许内网ip访问所有端口
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # 允许本机本机访问所有端口
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT # 允许所有ip访问80端口
iptables -A INPUT -m conntrack --ctstate ESTABLISHED -j ACCEPT # 允许本地发起的连接返回数据到任意端口。本地作为客户端可以发起到任何ip和端口的请求,这条规则确保能够收到返回
iptables -A OUTPUT  -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT # 允许80端口返回数据
iptables -A OUTPUT -j ACCEPT #允许返回数据给所有ip所有端口(上面那条就没用了)
iptables -P INPUT DROP # 除上面允许的规则,抛弃所有INPUT请求
iptables -P FORWARD DROP # 除上面允许的规则,抛弃所有FORWARD请求
iptables -P OUTPUT DROP # 除上面允许的规则,抛弃所有OUTPUT请求
iptables-save > /etc/iptables/iptables.rules # 保存(ArchLinux系统下的路径可能和其他系统下的路径不同)
iptables -L # 列出规则,供查看
 

 

普通分类: