记录技术收获,分享个人心得

人生如负重远行,不可急于求成

Linux系统防火墙iptables/firewalld及ufw放行端口脚本

Linux系统中默认都自带iptables进行规则控制,我在工作和实际生活中经常遇到linux服务器需要开放某个端口的问题,一般不常接触linux的人往往对这个概念不是特别的熟悉。本文书写了一个shell脚本,用来放行端口或者端口段,支持tcp和udp的端口和段的放行,系统可以支持centos6和7,ubuntu,后期我会逐步再更新这个脚本。

下载地址:http://www.gaoshan.me/download/shell/portctl.sh

使用方法:

ssh远程登录后,在服务器命令行界面,复制下面代码粘贴在服务器上执行

wget -O portctl.sh http://www.gaoshan.me/download/shell/portctl.sh && chmod +x portctl.sh && bash portctl.sh

——————————–

更新日志:

 

2019年3月14日 

# v1.0 发布脚本

 

2019年6月6日 

# v1.1 修复在TCP和UDP下出现相同端口无法正常覆盖已有规则的情况。

2019年6月18日

# v1.2 新增centos端口范围调整

2019年7月3日
# v1.3 新增删除端口和段放行功能

2019年7月15日
# v1.4 新增ubuntu ufw放行端口范围支持,支持删除已放行端口

2019年8月20日 

# v1.5 调整了初始显示已放行的端口规则的可阅读性

2019年10月17日 

# v1.6 新增了对centos7以上的firewalld的支持,避免切换防火墙导致规则出现问题,增加iptables未启动情况的判断

——————————–

1、放行端口

先输入需要放行的端口(端口范围限制1——65535),比如这里输入5555,然后输入协议,正常tcp协议直接回车即可,如果是udp协议端口则输入udp。

《Linux系统防火墙iptables/firewalld及ufw放行端口脚本》

如果是放行端口范围,则输入  端口1:端口2 的形式,比如这里输入的8001:8009

《Linux系统防火墙iptables/firewalld及ufw放行端口脚本》

注意ubuntu一般默认都没开ufw,脚本会先检测一次ufw的状态。如果未开启则默认没有端口拦截,会跳过设置。

centos中,会添加到iptables规则中进行控制,默认规则是加到iptables中的第一行的,这样避免被最后的拦截规则拦截掉。

2、删除已放行的端口

可支持删除放行端口或者端口段,首先运行脚本,选择2,删除端口放行:

《Linux系统防火墙iptables/firewalld及ufw放行端口脚本》

根据需求,输入需要放行的端口,比如这里我删除8001:8009的IP段放行

《Linux系统防火墙iptables/firewalld及ufw放行端口脚本》

输入IP后还需验证协议,默认tcp协议直接回车即可,检测无误后脚本会删除已放行的端口。

《Linux系统防火墙iptables/firewalld及ufw放行端口脚本》

================

3、简洁版

应同事的要求,写了一个简洁版的端口放行脚本,只支持centos,目前暂时只用了iptables,使用firewalld的慎用,附带禁ping功能,下载地址:

http://www.gaoshan.me/download/shell/simpleportctl.sh

下载后请使用不是win自带记事本的编辑软件打开,比如editplus,subline text,notpad++等,编辑前面的总配置,禁ping就设置1,要放行的端口之间用空格隔开,支持范围端口,目前仅支持tcp,保存后上传到服务器bash simpleportctl.sh运行即可。

《Linux系统防火墙iptables/firewalld及ufw放行端口脚本》

 

命令行操作(需要ssh登录服务器内):

centos6:

iptables -I INPUT -p 协议 -m 协议 --dport 端口 -j ACCEPT 
iptables-save > /etc/sysconfig/iptables 
service iptables restart

centos7(firewalld和iptables只能使用其中一个):

a、iptables

iptables -I INPUT -p 协议 -m 协议 --dport 端口 -j ACCEPT 
iptables-save > /etc/sysconfig/iptables 
systemctl restart iptables

b、firewall

firewall-cmd --zone=public --add-port=端口/协议 --permanent 
firewall-cmd --reload

ubuntu:

ufw enable   (启动防火墙) 
ufw allow 端口/协议 
ufw reload

 

 

 


点赞

发表评论

邮箱地址不会被公开。 必填项已用*标注

hi~

你好,欢迎来到我的博客,欢迎留言。

快速搜索:





Generic selectors

Exact matches only


Search in title


Search in content



Search in posts


Search in pages

欢迎关注我:

微博
steam
网易云音乐
QQ
500px

常用命令:

http://www.gaoshan.me/cmd