ubuntu中使用iptables限制端口

脚本

#!/bin/bash

#关闭所有端口
echo "关闭所有入口"
iptables -P INPUT DROP
iptables -P FORWARD DROP

#允许所有已建立的连接和相关连接的回复数据包通过
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

#允许ping
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

#开启端口
echo "开启tcp端口"
port_tcp_arr=(8090 9000 3306 22 21)
for i in "${port_tcp_arr[@]}"
do
	iptables -A INPUT -p tcp --dport "$i" -j ACCEPT
done

echo "开启udp端口"
port_udp_arr=(123)
for i in "${port_udp_arr[@]}"
do
	iptables -A INPUT -p udp --dport "$i" -j ACCEPT
done

设置开机启动

vim /etc/rc.local

/home/ubuntu/iptables.sh

注意:如果脚本不执行,原因是系统使用的bash shell 更换成了dash shell。而/etc/rc.local脚本中用的正是/bin/sh。

有两种方法修改

1、将默认的shell改成bash的方法:

在终端执行 sudo dpkg-reconfigure dash,然后选择 no  (推荐)

2、
sudo rm /bin/sh

sudo ln -s /bin/bash /bin/sh

你可能感兴趣的:(其他,ubuntu,linux,运维,iptables)