linux 脚本:iptables-secure.sh
#!/bin/bash
# 2022.2.28 by dewan
# secutiry configuration.
usage ()
{
echo "$0 start # setup secutiry configuration"
echo "$0 add-ip <ip> # add whitelist ip"
exit
}
# whitelist ip
MANAGER_IP=""
LAN_IP="10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 172.168.0.0/16 0.0.0.0/32 127.0.0.1/32"
# prohibit port
BLACK_PORT="6379 2022 22 20 21 23 69 111 135 137:139 177 389 445 513 1433:1435 1521:1530 3306 3389 4899 6000:6063 8888 50000:50050"
DNAT_PORT="5900:5999 20000:20999 21000:23999 32000:32768 61000:65535"
# basic config
basic_rule ()
{
iptables -F
## service: sshd
sshd_port=
iptables -I INPUT -p tcp --dport $sshd_port -j ACCEPT
## lo
iptables -A INPUT -i lo -j ACCEPT
## inner net access
for ip in $LAN_IP
do
iptables -A INPUT -p all -s $ip -j ACCEPT
done
## access ping
iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
## outgoing access
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# default forbidden
iptables -P INPUT DROP
}
whitelist_ip ()
{
iptables -N whitelist_FORWARD
iptables -N whitelist_INPUT
local ip port
for table in whitelist_INPUT whitelist_FORWARD
do
for ip in $MANAGER_IP $LAN_IP
do
iptables -I $table -s $ip -j ACCEPT
done
while read ip
do
iptables -I $table -s $ip -j ACCEPT
done < add_whitelist_ip
done
iptables -I FORWARD -j whitelist_FORWARD
iptables -I INPUT -j whitelist_INPUT
}
add_whitelist_ip ()
{
local ip
ip=$1
iptables -I whitelist_FORWARD -s $ip -j ACCEPT
echo $ip >> add_whitelist_ip
}
case $1 in
start)
basic_rule
whitelist_ip
;;
add_ip | add-ip)
add_whitelist_ip $2
;;
*)
usage
;;
esac
linux 脚本:iptables-secure.sh的更多相关文章
- 【linux】linux脚本中#!/bin/sh的含义
来源:百度知道 #! /bin/sh 是指此脚本使用,/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径.
- Linux下如何将数据库脚本文件从sh格式变为sql格式
在从事软件开发的过程中,经常会涉及到在Linux下将数据库脚本文件从sh格式变为sql格式的问题.本文以一个实际的脚本文件为例,说明格式转换的过程. 1. sh文件内容 本文中的文件名为 ...
- Linux在什么样的从脚本文件数据库sh格式改变sql格式
在软件开发过程中,经常参与Linux从下一个脚本文件数据库sh格式改变sql格式问题.在本文中,一个实际的脚本文件,例如.描述格式转换过程. 1. sh文件内容 本文中的文件名称为exa ...
- [shell]Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
一直以为在shell脚本中#都是代表着注释功能,同样在脚本开始的#!/bin/sh也只是告诉用户这是一个shell脚本,而最近顺手查了下,才发现不是这个意思,分享下面的文章. 转自:http://ww ...
- Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
一.意思 #!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径. 其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释 ...
- linux 防火墙iptables简明教程
前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...
- Linux防火墙iptables简明教程
前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...
- Linux利用iptables实现真-全局代理
对于经常要浏览油管等被墙网站的人而言,利用代理来实现fq是非常有必要的.现在fq的方法中,最为主流的应该要数ssr了,因此本教程都是基于ssr的socks5代理而言的. 在windows中,ssr客户 ...
- 主机巡检脚本:OSWatcher.sh
主机巡检脚本:OSWatcher.sh 2016-09-26更新,目前该脚本只支持Linux操作系统,后续有需求可以继续完善. 注意: 经测试,普通用户执行脚本可以顺利执行前9项检查: 第10项,普通 ...
- Linux:-防火墙iptables如何个性化定制?
身份标签/usr/local/etc/identity,主脚本iptables.sh,附属目录functions/iptables.d ├── iptables.sh ├── functions│ ...
随机推荐
- RCE-Tricks
这篇文章介绍RCE的一些tricks 0x01 无回显的RCE 在ctf中,有时会遇到无回显rce,就是说虽然可以进行命令执行,但却看不到命令执行的结果,也不知道命令是否被执行,借着这次总结rce的机 ...
- Rust -- 模式与匹配
1. 模式 用来匹配类型中的结构(数据的形状),结合 模式和match表达式 提供程序控制流的支配权 模式组成内容 字面量 解构的数组.枚举.结构体.元祖 变量 通配符 占位符 流程:匹配值 --&g ...
- vue下载文件模板(excel) 和 导出excel表格
1. get形式传参数 仅限于get方式,注意请求头参数...,需要后台放开 window.location = '/dms-underlying-asset/download?assetType=' ...
- 痞子衡嵌入式:聊聊i.MXRT1xxx上第三级启动保障 - SDMMC manufacture模式
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1xxx上第三级启动保障 - SDMMC manufacture模式. 如果你在 i.MXRT1xxx 板卡上尝试过从 SD ...
- Wolai 使用教程:嵌入小组件库,打造精美、强大的知识库主页
Wolai /我来云笔记在 2022.7.11 日的更新中,支持嵌入包括 NotionPet.芦笋.Replit 等在内的第三方应用.感谢 Wolai 云笔记官方对于 NotionPet 的支持. 趁 ...
- Java设计模式简介(总结)
Java设计模式简介(总结) 什么是设计模式 Java设计模式是一组经过验证的解决特定问题的编程技术,这些技术可以帮助开发人员快速.有效地开发高质量的软件.使用设计模式是为了可重用代码.让代码更容易被 ...
- .NET6项目连接数据库方式方法
前言 接上一篇Linux系统下创建dotnet项目,这一篇我们聊聊.NET6环境下dotnet项目连接数据库的方式方法,包括数据库字符串该如何配置.看了很多博主写的文章,连接数据库字符串配置的方式和位 ...
- 在程序里如何停止整个python项目的运行
我们的项目无可避免的会遇到一些场景,当出现某个故障或者异常,必须停止整个项目的运行,这时只需要在抛出的异常里执行以下即可: os._exit(0)
- API架构的选择,RESTful、GraphQL还是gRPC
hi,我是熵减,见字如面. 在现代的软件工程中,微服务或在客户端与服务端之间的信息传递的方式,比较常见的有三种架构设计的风格:RESTful.GraphQL和gRPC. 每一种模式,都有其特点和合适的 ...
- 2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么?
2023-05-20:go语言的slice和rust语言的Vec的扩容流程是什么? 答案2023-05-20: go语言的slice扩容流程 go版本是1.20.4. 扩容流程见源码见runtime/ ...