在Linux中,你可以使用iptables
命令来管理防火墙规则
- 首先,确保你已经安装了Ruby和
iptables
。在大多数Linux发行版中,Ruby通常是预安装的。你可以使用以下命令检查Ruby是否已安装:
ruby -v
如果未安装,请使用你的包管理器(如apt-get
、yum
或pacman
)进行安装。
- 创建一个名为
firewall_manager.rb
的新Ruby脚本文件:
touch firewall_manager.rb
- 使用文本编辑器打开
firewall_manager.rb
文件,并添加以下代码:
#!/usr/bin/env ruby
def add_rule(protocol, port)
system("sudo iptables -A INPUT -p #{protocol} --dport #{port} -j ACCEPT")
end
def remove_rule(protocol, port)
system("sudo iptables -D INPUT -p #{protocol} --dport #{port} -j ACCEPT")
end
def list_rules
system("sudo iptables -L -n")
end
puts "Select an option:"
puts "1. Add a rule"
puts "2. Remove a rule"
puts "3. List rules"
puts "4. Exit"
choice = gets.chomp.to_i
case choice
when 1
puts "Enter the protocol (tcp or udp):"
protocol = gets.chomp
puts "Enter the port:"
port = gets.chomp
add_rule(protocol, port)
when 2
puts "Enter the protocol (tcp or udp):"
protocol = gets.chomp
puts "Enter the port:"
port = gets.chomp
remove_rule(protocol, port)
when 3
list_rules
when 4
exit
else
puts "Invalid option"
end
-
保存并关闭文件。
-
为脚本添加可执行权限:
chmod +x firewall_manager.rb
- 运行脚本:
./firewall_manager.rb
这个简单的Ruby脚本允许你添加、删除和列出防火墙规则。请注意,这个脚本需要root权限才能运行iptables
命令。在运行脚本时,你可能需要输入密码以获取超级用户权限。
根据你的需求,你可以修改和扩展此脚本以满足更复杂的防火墙管理任务。