WEB 生产环境的 Linux iptables 设置脚本

用于生产环境的 iptables rule,期间在内网测试把自己挡住在外面一次,接显示器键盘才搞定,谨慎使用,下面脚本经过无数次测试了,稳定无错:

开启了常用的端口 22 80 25 110 8080 3306 等,如果 sshd 端口不是 22,需要自行修改脚本。

FTP 设置麻烦,也会导致不安全,所以不用设置,一般用 SFTP。

如何查看自己的 ssh 端口:netstat -anpt|grep sshd


<span style="font-family: Arial, Helvetica, sans-serif;">#!/bin/bash</span>

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

# 开放 sshd
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT

# DROP 掉所有的包
iptables -P INPUT ACCEPT 
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

# 本机放行
iptables -t filter -I INPUT 1 -i lo -j ACCEPT
iptables -t filter -I OUTPUT 1 -o lo -j ACCEPT

# DNS
iptables -A INPUT -p udp --sport 53 -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -j ACCEPT

# NFS
iptables -A INPUT -p tcp --dport=111 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=111 -j ACCEPT
iptables -A INPUT -p tcp --dport=2049 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=2049 -j ACCEPT

#sendmail
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 25 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 110 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 110 -j ACCEPT

#sms
iptables -A INPUT -p tcp --dport 8060 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 8060 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 8060 -j ACCEPT

# SAMBA
iptables -A INPUT -p tcp --dport=139 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=139 -j ACCEPT
iptables -A INPUT -p tcp --dport=445 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=445 -j ACCEPT
iptables -A INPUT -p udp --dport=137 -j ACCEPT
iptables -A OUTPUT -p udp --sport=137 -j ACCEPT
iptables -A INPUT -p udp --dport=138 -j ACCEPT
iptables -A OUTPUT -p udp --sport=138 -j ACCEPT

# 21, yum
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -j ACCEPT


# 80
iptables -A INPUT -p tcp --dport=80 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport=80 -j ACCEPT

# 8080
iptables -A INPUT -p tcp --dport=8080 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=8080 -j ACCEPT
iptables -A OUTPUT -p tcp --dport=8080 -j ACCEPT

# 443
iptables -A INPUT -p tcp --dport=443 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=443 -j ACCEPT
iptables -A OUTPUT -p tcp --dport=443 -j ACCEPT

# 3306,只允许 192.168.0.2 连接
iptables -A INPUT -p tcp --dport=3306 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=3306 -j ACCEPT
iptables -A OUTPUT -p tcp --dport=3306 -j ACCEPT
iptables -A INPUT -p udp --dport=3306 -j ACCEPT
iptables -A OUTPUT -p udp --sport=3306 -j ACCEPT


#rsync
iptables -A INPUT -p tcp -s 114.113.229.234 --sport 1024:65535 --dport 873 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.1/3 --sport 1024:65535 --dport 873 -j ACCEPT
iptables -A OUTPUT -p tcp -d 114.113.229.234 --dport 1024:65535 --sport 873 -j ACCEPT
iptables -A OUTPUT -p tcp -d 192.168.0.1/3 --dport 1024:65535 --sport 873 -j ACCEPT

#3690 svn
iptables -A INPUT -p tcp --dport=3690 -j ACCEPT
iptables -A OUTPUT -p tcp --sport=3690 -j ACCEPT
iptables -A OUTPUT -p tcp --dport=3690 -j ACCEPT

# DHCP
iptables -A INPUT -p udp --sport 67 --dport 68 -j ACCEPT

# ICMP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

#allow old connection, deny new connection
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW,INVALID -j DROP

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


/etc/init.d/iptables save
chkconfig iptables --level 2345 on

service iptables start

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值