centos 7中防火墙是一个非常的强大的功能了,但对于centos 7中在防火墙中进行了升级了,下面我们一起来详细的看看关于centos 7中防火墙使用方法。
FirewallD 提供了支持网络/防火墙区域(zone)定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。 以前的 system-config-firewall/lokkit 防火墙模型是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。
相反,firewall daemon 动态管理防火墙,不需要重启整个防火墙便可应用更改。因而也就没有必要重载所有内核防火墙模块了。不过,要使用 firewall daemon 就要求防火墙的所有变更都要通过该守护进程来实现,以确保守护进程中的状态和内核里的防火墙是一致的。另外,firewall daemon 无法解析由 ip*tables 和 ebtables 命令行工具添加的防火墙规则。
守护进程通过 D-BUS 提供当前激活的防火墙设置信息,也通过 D-BUS 接受使用 PolicyKit 认证方式做的更改。
“守护进程”
应用程序、守护进程和用户可以通过 D-BUS 请求启用一个防火墙特性。特性可以是预定义的防火墙功能,如:服务、端口和协议的组合、端口/数据报转发、伪装、ICMP 拦截或自定义规则等。该功能可以启用确定的一段时间也可以再次停用。
通过所谓的直接接口,其他的服务(例如 libvirt )能够通过 iptables 变元(arguments)和参数(parameters)增加自己的规则。
amanda 、ftp 、samba 和 tftp 服务的 netfilter 防火墙助手也被“守护进程”解决了,只要它们还作为预定义服务的一部分。附加助手的装载不作为当前接口的一部分。由于一些助手只有在由模块控制的所有连接都关闭后才可装载。因而,跟踪连接信息很重要,需要列入考虑范围。
静态防火墙(system-config-firewall/lokkit)
使用 system-config-firewall 和 lokkit 的静态防火墙模型实际上仍然可用并将继续提供,但却不能与“守护进程”同时使用。用户或者管理员可以决定使用哪一种方案。
在软件安装,初次启动或者是首次联网时,将会出现一个选择器。通过它你可以选择要使用的防火墙方案。其他的解决方案将保持完整,可以通过更换模式启用。
firewall daemon 独立于 system-config-firewall,但二者不能同时使用。
使用iptables和ip6tables的静态防火墙规则
如果你想使用自己的 iptables 和 ip6tables 静态防火墙规则, 那么请安装 iptables-services 并且禁用 firewalld ,启用 iptables 和ip6tables:
yum install iptables-services
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service
静态防火墙规则配置文件是 /etc/sysconfig/iptables 以及 /etc/sysconfig/ip6tables .
注: iptables 与 iptables-services 软件包不提供与服务配套使用的防火墙规则. 这些服务是用来保障兼容性以及供想使用自己防火墙规则的人使用的. 你可以安装并使用 system-config-firewall 来创建上述服务需要的规则. 为了能使用 system-config-firewall, 你必须停止 firewalld.
为服务创建规则并停用 firewalld 后,就可以启用 iptables 与 ip6tables 服务了:
systemctl stop firewalld.service
systemctl start iptables.service
systemctl start ip6tables.service
什么是区域?
网络区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接。
预定义的服务
服务是端口和/或协议入口的组合。备选内容包括 netfilter 助手模块以及 IPv4、IPv6地址。
端口和协议
定义了 tcp 或 udp 端口,端口可以是一个端口或者端口范围。
ICMP阻塞
可以选择 Internet 控制报文协议的报文。这些报文可以是信息请求亦可是对信息请求或错误条件创建的响应。
伪装
私有网络地址可以被映射到公开的IP地址。这是一次正规的地址转换。
端口转发
端口可以映射到另一个端口以及/或者其他主机。
哪个区域可用?
由firewalld 提供的区域按照从不信任到信任的顺序排序。
丢弃
任何流入网络的包都被丢弃,不作出任何响应。只允许流出的网络连接。
阻塞
任何进入的网络连接都被拒绝,并返回 IPv4 的 icmp-host-prohibited 报文或者 IPv6 的 icmp6-adm-prohibited 报文。只允许由该系统初始化的网络连接。
公开
用以可以公开的部分。你认为网络中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连接接入。(You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.)
外部
用在路由器等启用伪装的外部网络。你认为网络中其他的计算机不可信并且可能伤害你的计算机。只允许选中的连接接入。
隔离区(dmz)
用以允许隔离区(dmz)中的电脑有限地被外界网络访问。只接受被选中的连接。
工作
用在工作网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
家庭
用在家庭网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
内部
用在内部网络。你信任网络中的大多数计算机不会影响你的计算机。只接受被选中的连接。
我应该选用哪个区域?
例如,公共的 WIFI 连接应该主要为不受信任的,家庭的有线网络应该是相当可信任的。根据与你使用的网络最符合的区域进行选择。
如何配置或者增加区域?
你可以使用任何一种 firewalld 配置工具来配置或者增加区域,以及修改配置。工具有例如 firewall-config 这样的图形界面工具, firewall-cmd 这样的命令行工具,以及D-BUS接口。或者你也可以在配置文件目录中创建或者拷贝区域文件。 @PREFIX@/lib/firewalld/zones 被用于默认和备用配置,/etc/firewalld/zones 被用于用户创建和自定义配置文件。
如何为网络连接设置或者修改区域
区域设置以 ZONE= 选项 存储在网络连接的ifcfg文件中。如果这个选项缺失或者为空,firewalld 将使用配置的默认区域。
如果这个连接受到 NetworkManager 控制,你也可以使用 nm-connection-editor 来修改区域。
由NetworkManager控制的网络连接
防火墙不能够通过 NetworkManager 显示的名称来配置网络连接,只能配置网络接口。因此在网络连接之前 NetworkManager 将配置文件所述连接对应的网络接口告诉 firewalld 。如果在配置文件中没有配置区域,接口将配置到 firewalld 的默认区域。如果网络连接使用了不止一个接口,所有的接口都会应用到 fiwewalld。接口名称的改变也将由 NetworkManager 控制并应用到firewalld。
为了简化,自此,网络连接将被用作与区域的关系。
如果一个接口断开了,NetworkManager也将告诉firewalld从区域中删除该接口。
当firewalld由systemd或者init脚本启动或者重启后,firewalld将通知NetworkManager把网络连接增加到区域。
由脚本控制的网络
对于由网络脚本控制的连接有一条限制:没有守护进程通知 firewalld 将连接增加到区域。这项工作仅在 ifcfg-post 脚本进行。因此,此后对网络连接的重命名将不能被应用到firewalld。同样,在连接活动时重启 firewalld 将导致与其失去关联。现在有意修复此情况。最简单的是将全部未配置连接加入默认区域。
区域定义了本区域中防火墙的特性:
使用firewalld
你可以通过图形界面工具 firewall-config 或者命令行客户端 firewall-cmd 启用或者关闭防火墙特性。
使用firewall-cmd
命令行工具 firewall-cmd 支持全部防火墙特性。对于状态和查询模式,命令只返回状态,没有其他输出。
firewall-cmd --state
此举返回 firewalld 的状态,没有任何输出。可以使用以下方式获得状态输出:
firewall-cmd --state && echo "Running" || echo "Not running"
在 Fedora 19 中, 状态输出比此前直观:
# rpm -qf $( which firewall-cmd )
firewalld-0.3.3-2.fc19.noarch# firewall-cmd --state
not running
在不改变状态的条件下重新加载防火墙:
firewall-cmd --reload
如果你使用–complete-reload,状态信息将会丢失。这个选项应当仅用于处理防火墙问题时,例如,状态信息和防火墙规则都正常,但是不能建立任何连接的情况。
获取支持的区域列表
firewall-cmd --get-zones
这条命令输出用空格分隔的列表。
获取所有支持的服务
firewall-cmd --get-services
这条命令输出用空格分隔的列表。
获取所有支持的ICMP类型
firewall-cmd --get-icmptypes
这条命令输出用空格分隔的列表。
列出全部启用的区域的特性
firewall-cmd --list-all-zones
输出格式是:
interfaces: ..
services: ..
ports: ..
forward-ports: ..
icmp-blocks: ....
输出区域 全部启用的特性。如果生略区域,将显示默认区域的信息。
firewall-cmd [--zone=] --list-all
获取默认区域的网络设置
firewall-cmd --get-default-zone
设置默认区域
firewall-cmd --set-default-zone=
流入默认区域中配置的接口的新访问请求将被置入新的默认区域。当前活动的连接将不受影响。
获取活动的区域
firewall-cmd --get-active-zones
这条命令将用以下格式输出每个区域所含接口:
: ..: ..
根据接口获取区域
firewall-cmd --get-zone-of-interface=
这条命令将输出接口所属的区域名称。
将接口增加到区域
firewall-cmd [--zone=] --add-interface=
如果接口不属于区域,接口将被增加到区域。如果区域被省略了,将使用默认区域。接口在重新加载后将重新应用。
修改接口所属区域
firewall-cmd [--zone=] --change-interface=
这个选项与 –add-interface 选项相似,但是当接口已经存在于另一个区域的时候,该接口将被添加到新的区域。
从区域中删除一个接口
firewall-cmd [--zone=] --remove-interface=
查询区域中是否包含某接口
firewall-cmd [--zone=] --query-interface=
返回接口是否存在于该区域。没有输出。
列举区域中启用的服务
firewall-cmd [ --zone= ] --list-services
启用应急模式阻断所有网络连接,以防出现紧急状况
firewall-cmd --panic-on
禁用应急模式
firewall-cmd --panic-off
代码如下
复制代码
应急模式在 0.3.0 版本中发生了变化
在 0.3.0 之前的 FirewallD版本中, panic 选项是 –enable-panic 与 –disable-panic.
查询应急模式
firewall-cmd --query-panic
此命令返回应急模式的状态,没有输出。可以使用以下方式获得状态输出:
firewall-cmd --query-panic && echo "On" || echo "Off"
处理运行时区域
运行时模式下对区域进行的修改不是永久有效的。重新加载或者重启后修改将失效。
启用区域中的一种服务
firewall-cmd [--zone=] --add-service= [--timeout=]
此举启用区域中的一种服务。如果未指定区域,将使用默认区域。如果设定了超时时间,服务将只启用特定秒数。如果服务已经活跃,将不会有任何警告信息。
例: 使区域中的ipp-client服务生效60秒:
firewall-cmd --zone=home --add-service=ipp-client --timeout=60
例: 启用默认区域中的http服务:
firewall-cmd --add-service=http
禁用区域中的某种服务
firewall-cmd [--zone=] --remove-service=
此举禁用区域中的某种服务。如果未指定区域,将使用默认区域。
例: 禁止home区域中的http服务:
firewall-cmd --zone=home --remove-service=http
区域种的服务将被禁用。如果服务没有启用,将不会有任何警告信息。
查询区域中是否启用了特定服务
firewall-cmd [--zone=] --query-service=
如果服务启用,将返回1,否则返回0。没有输出信息。
启用区域端口和协议组合
firewall-cmd [--zone=] --add-port=[-]/ [--timeout=]
此举将启用端口和协议的组合。端口可以是一个单独的端口
或者是一个端口范围 - 。协议可以是 tcp 或 udp。
禁用端口和协议组合
firewall-cmd [--zone=] --remove-port=[-]/
查询区域中是否启用了端口和协议组合
firewall-cmd [--zone=] --query-port=[-]/
如果启用,此命令将有返回值。没有输出信息。
启用区域中的IP伪装功能
firewall-cmd [--zone=] --add-masquerade
此举启用区域的伪装功能。私有网络的地址将被隐藏并映射到一个公有IP。这是地址转换的一种形式,常用于路由。由于内核的限制,伪装功能仅可用于IPv4。
禁用区域中的IP伪装
firewall-cmd [--zone=] --remove-masquerade
查询区域的伪装状态
firewall-cmd [--zone=] --query-masquerade
如果启用,此命令将有返回值。没有输出信息。
启用区域的ICMP阻塞功能
firewall-cmd [--zone=] --add-icmp-block=
此举将启用选中的Internet控制报文协议(ICMP)报文进行阻塞。ICMP报文可以是请求信息或者创建的应答报文,以及错误应答。
禁止区域的ICMP阻塞功能
firewall-cmd [--zone=] --remove-icmp-block=
查询区域的ICMP阻塞功能
firewall-cmd [--zone=] --query-icmp-block=
如果启用,此命令将有返回值。没有输出信息。
例: 阻塞区域的响应应答报文:
firewall-cmd --zone=public --add-icmp-block=echo-reply
在区域中启用端口转发或映射
firewall-cmd [--zone=] --add-forward-port=port=[-]:proto= { :toport=[-] | :toaddr= | :toport=[-]:toaddr= }
端口可以映射到另一台主机的同一端口,也可以是同一主机或另一主机的不同端口。端口号可以是一个单独的端口
或者是端口范围 - 。协议可以为 tcp 或udp 。目标端口可以是端口号 或者是端口范围 - 。目标地址可以是 IPv4 地址。受内核限制,端口转发功能仅可用于IPv4。
禁止区域的端口转发或者端口映射
firewall-cmd [--zone=] --remove-forward-port=port=[-]:proto= { :toport=[-] | :toaddr= | :toport=[-]:toaddr= }
查询区域的端口转发或者端口映射
firewall-cmd [--zone=] --query-forward-port=port=[-]:proto= { :toport=[-] | :toaddr= | :toport=[-]:toaddr= }
如果启用,此命令将有返回值。没有输出信息。
例: 将区域home的ssh转发到127.0.0.2
firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
处理永久区域
永久选项不直接影响运行时的状态。这些选项仅在重载或者重启服务时可用。为了使用运行时和永久设置,需要分别设置两者。 选项 –permanent 需要是永久设置的第一个参数。
获取永久选项所支持的服务
firewall-cmd --permanent --get-services
获取永久选项所支持的ICMP类型列表
firewall-cmd --permanent --get-icmptypes
获取支持的永久区域
firewall-cmd --permanent --get-zones
启用区域中的服务
firewall-cmd --permanent [--zone=] --add-service=
此举将永久启用区域中的服务。如果未指定区域,将使用默认区域。
禁用区域中的一种服务
firewall-cmd --permanent [--zone=] --remove-service=
查询区域中的服务是否启用
firewall-cmd --permanent [--zone=] --query-service=
如果服务启用,此命令将有返回值。此命令没有输出信息。
例: 永久启用 home 区域中的 ipp-client 服务
firewall-cmd --permanent --zone=home --add-service=ipp-client
永久启用区域中的一个端口-协议组合
firewall-cmd --permanent [--zone=] --add-port=[-]/
永久禁用区域中的一个端口-协议组合
firewall-cmd --permanent [--zone=] --remove-port=[-]/
查询区域中的端口-协议组合是否永久启用
firewall-cmd --permanent [--zone=] --query-port=[-]/
如果服务启用,此命令将有返回值。此命令没有输出信息。
例: 永久启用 home 区域中的 https (tcp 443) 端口
firewall-cmd --permanent --zone=home --add-port=443/tcp
永久启用区域中的伪装
firewall-cmd --permanent [--zone=] --add-masquerade
此举启用区域的伪装功能。私有网络的地址将被隐藏并映射到一个公有IP。这是地址转换的一种形式,常用于路由。由于内核的限制,伪装功能仅可用于IPv4。
永久禁用区域中的伪装
firewall-cmd --permanent [--zone=] --remove-masquerade
查询区域中的伪装的永久状态
firewall-cmd --permanent [--zone=] --query-masquerade
如果服务启用,此命令将有返回值。此命令没有输出信息。
永久启用区域中的ICMP阻塞
firewall-cmd --permanent [--zone=] --add-icmp-block=
此举将启用选中的 Internet 控制报文协议 (ICMP) 报文进行阻塞。 ICMP 报文可以是请求信息或者创建的应答报文或错误应答报文。
永久禁用区域中的ICMP阻塞
firewall-cmd --permanent [--zone=] --remove-icmp-block=
查询区域中的ICMP永久状态
firewall-cmd --permanent [--zone=] --query-icmp-block=
如果服务启用,此命令将有返回值。此命令没有输出信息。
例: 阻塞公共区域中的响应应答报文:
firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply
在区域中永久启用端口转发或映射
firewall-cmd --permanent [--zone=] --add-forward-port=port=[-]:proto= { :toport=[-] | :toaddr= | :toport=[-]:toaddr= }
端口可以映射到另一台主机的同一端口,也可以是同一主机或另一主机的不同端口。端口号可以是一个单独的端口
或者是端口范围 - 。协议可以为 tcp 或udp 。目标端口可以是端口号 或者是端口范围 - 。目标地址可以是 IPv4 地址。受内核限制,端口转发功能仅可用于IPv4。
永久禁止区域的端口转发或者端口映射
firewall-cmd --permanent [--zone=] --remove-forward-port=port=[-]:proto= { :toport=[-] | :toaddr= | :toport=[-]:toaddr= }
查询区域的端口转发或者端口映射状态
firewall-cmd --permanent [--zone=] --query-forward-port=port=[-]:proto= { :toport=[-] | :toaddr= | :toport=[-]:toaddr= }
如果服务启用,此命令将有返回值。此命令没有输出信息。
例: 将 home 区域的 ssh 服务转发到 127.0.0.2
firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
直接选项
直接选项主要用于使服务和应用程序能够增加规则。 规则不会被保存,在重新加载或者重启之后必须再次提交。传递的参数 与 iptables, ip6tables 以及 ebtables 一致。
选项–direct需要是直接选项的第一个参数。
将命令传递给防火墙。参数
可以是 iptables, ip6tables 以及 ebtables 命令行参数。
firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb }
为表
增加一个新链 。
firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb }
从表
中删除链 。
firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb }
查询
链是否存在与表 . 如果是,返回0,否则返回1.
firewall-cmd --direct --query-chain { ipv4 | ipv6 | eb }
如果启用,此命令将有返回值。此命令没有输出信息。
获取用空格分隔的表
中链的列表。
firewall-cmd --direct --get-chains { ipv4 | ipv6 | eb }
为表
增加一条参数为 的链 ,优先级设定为 。
firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb }
从表
中删除带参数 的链 。
firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb }
查询带参数
的链 是否存在表 中. 如果是,返回0,否则返回1.
firewall-cmd --direct --query-rule { ipv4 | ipv6 | eb }
如果启用,此命令将有返回值。此命令没有输出信息。
获取表
中所有增加到链 的规则,并用换行分隔。
firewall-cmd --direct --get-rules { ipv4 | ipv6 | eb }
当前的firewalld特性
D-BUS接口
D-BUS 接口提供防火墙状态的信息,使防火墙的启用、停用或查询设置成为可能。
区域
网络或者防火墙区域定义了连接的可信程度。firewalld 提供了几种预定义的区域。区域配置选项和通用配置信息可以在firewall.zone(5)的手册里查到。
服务
服务可以是一系列本读端口、目的以及附加信息,也可以是服务启动时自动增加的防火墙助手模块。预定义服务的使用使启用和禁用对服务的访问变得更加简单。服务配置选项和通用文件信息在 firewalld.service(5) 手册里有描述。
ICMP类型
Internet控制报文协议 (ICMP) 被用以交换报文和互联网协议 (IP) 的错误报文。在 firewalld 中可以使用 ICMP 类型来限制报文交换。 ICMP 类型配置选项和通用文件信息可以参阅 firewalld.icmptype(5) 手册。
直接接口
直接接口主要用于服务或者应用程序增加特定的防火墙规则。这些规则并非永久有效,并且在收到 firewalld 通过 D-Bus 传递的启动、重启、重载信号后需要重新应用。
运行时配置
运行时配置并非永久有效,在重新加载时可以被恢复,而系统或者服务重启、停止时,这些选项将会丢失。
永久配置
永久配置存储在配置文件种,每次机器重启或者服务重启、重新加载时将自动恢复。
托盘小程序
托盘小程序 firewall-applet 为用户显示防火墙状态和存在的问题。它也可以用来配置用户允许修改的设置。
图形化配置工具
firewall daemon 主要的配置工具是 firewall-config 。它支持防火墙的所有特性(除了由服务/应用程序增加规则使用的直接接口)。 管理员也可以用它来改变系统或用户策略。
命令行客户端
firewall-cmd是命令行下提供大部分图形工具配置特性的工具。
对于ebtables的支持
要满足libvirt daemon的全部需求,在内核 netfilter 级上防止 ip*tables 和 ebtables 间访问问题,ebtables 支持是需要的。由于这些命令是访问相同结构的,因而不能同时使用。
/usr/lib/firewalld中的默认/备用配置
该目录包含了由 firewalld 提供的默认以及备用的 ICMP 类型、服务、区域配置。由 firewalld 软件包提供的这些文件不能被修改,即使修改也会随着 firewalld 软件包的更新被重置。 其他的 ICMP 类型、服务、区域配置可以通过软件包或者创建文件的方式提供。
/etc/firewalld中的系统配置设置
存储在此的系统或者用户配置文件可以是系统管理员通过配置接口定制的,也可以是手动定制的。这些文件将重载默认配置文件。
为了手动修改预定义的 icmp 类型,区域或者服务,从默认配置目录将配置拷贝到相应的系统配置目录,然后根据需求进行修改。
如果你加载了有默认和备用配置的区域,在 /etc/firewalld下的对应文件将被重命名为 .old 然后启用备用配置。
正在开发的特性
富语言
富语言特性提供了一种不需要了解iptables语法的通过高级语言配置复杂 IPv4 和 IPv6 防火墙规则的机制。
Fedora 19 提供了带有 D-Bus 和命令行支持的富语言特性第2个里程碑版本。第3个里程碑版本也将提供对于图形界面 firewall-config 的支持。
对于此特性的更多信息,请参阅: firewalld Rich Language
锁定
锁定特性为 firewalld 增加了锁定本地应用或者服务配置的简单配置方式。它是一种轻量级的应用程序策略。
Fedora 19 提供了锁定特性的第二个里程碑版本,带有 D-Bus 和命令行支持。第3个里程碑版本也将提供图形界面 firewall-config 下的支持。
更多信息请参阅: firewalld Lockdown
永久直接规则
这项特性处于早期状态。它将能够提供保存直接规则和直接链的功能。通过规则不属于该特性。更多关于直接规则的信息请参阅Direct options。
从ip*tables和ebtables服务迁移
这项特性处于早期状态。它将尽可能提供由iptables,ip6tables 和 ebtables 服务配置转换为永久直接规则的脚本。此特性在由firewalld提供的直接链集成方面可能存在局限性。
此特性将需要大量复杂防火墙配置的迁移测试。
计划和提议功能 防火墙抽象模型
在 ip*tables 和 ebtables 防火墙规则之上添加抽象层使添加规则更简单和直观。要抽象层功能强大,但同时又不能复杂,并不是一项简单的任务。为此,不得不开发一种防火墙语言。使防火墙规则拥有固定的位置,可以查询端口的访问状态、访问策略等普通信息和一些其他可能的防火墙特性。
对于conntrack的支持
要终止禁用特性已确立的连接需要 conntrack 。不过,一些情况下终止连接可能是不好的,如:为建立有限时间内的连续性外部连接而启用的防火墙服务。
用户交互模型
这是防火墙中用户或者管理员可以启用的一种特殊模式。应用程序所有要更改防火墙的请求将定向给用户知晓,以便确认和否认。为一个连接的授权设置一个时间限制并限制其所连主机、网络或连接是可行的。配置可以保存以便将来不需通知便可应用相同行为。 该模式的另一个特性是管理和应用程序发起的请求具有相同功能的预选服务和端口的外部链接尝试。服务和端口的限制也会限制发送给用户的请求数量。
用户策略支持
管理员可以规定哪些用户可以使用用户交互模式和限制防火墙可用特性。
端口元数据信息(由 Lennart Poettering 提议)
拥有一个端口独立的元数据信息是很好的。当前对 /etc/services 的端口和协议静态分配模型不是个好的解决方案,也没有反映当前使用情况。应用程序或服务的端口是动态的,因而端口本身并不能描述使用情况。
元数据信息可以用来为防火墙制定简单的规则。下面是一些例子:
允许外部访问文件共享应用程序或服务
允许外部访问音乐共享应用程序或服务
允许外部访问全部共享应用程序或服务
允许外部访问 torrent 文件共享应用程序或服务
允许外部访问 http 网络服务
这里的元数据信息不只有特定应用程序,还可以是一组使用情况。例如:组“全部共享”或者组“文件共享”可以对应于全部共享或文件共享程序(如:torrent 文件共享)。这些只是例子,因而,可能并没有实际用处。
这里是在防火墙中获取元数据信息的两种可能途径:
第一种是添加到 netfilter (内核空间)。好处是每个人都可以使用它,但也有一定使用限制。还要考虑用户或系统空间的具体信息,所有这些都需要在内核层面实现。
第二种是添加到 firewall daemon 中。这些抽象的规则可以和具体信息(如:网络连接可信级、作为具体个人/主机要分享的用户描述、管理员禁止完全共享的应归则等)一起使用。
第二种解决方案的好处是不需要为有新的元数据组和纳入改变(可信级、用户偏好或管理员规则等等)重新编译内核。这些抽象规则的添加使得 firewall daemon 更加自由。即使是新的安全级也不需要更新内核即可轻松添加。
sysctld
现在仍有 sysctl 设置没有正确应用。一个例子是,在 rc.sysinit 正运行时,而提供设置的模块在启动时没有装载或者重新装载该模块时会发生问题。
另一个例子是 net.ipv4.ip_forward ,防火墙设置、libvirt 和用户/管理员更改都需要它。如果有两个应用程序或守护进程只在需要时开启 ip_forwarding ,之后可能其中一个在不知道的情况下关掉服务,而另一个正需要它,此时就不得不重启它。
sysctl daemon 可以通过对设置使用内部计数来解决上面的问题。此时,当之前请求者不再需要时,它就会再次回到之前的设置状态或者是直接关闭它。
防火墙规则
netfilter 防火墙总是容易受到规则顺序的影响,因为一条规则在链中没有固定的位置。在一条规则之前添加或者删除规则都会改变此规则的位置。 在静态防火墙模型中,改变防火墙就是重建一个干净和完善的防火墙设置,且受限于 system-config-firewall / lokkit 直接支持的功能。也没有整合其他应用程序创建防火墙规则,且如果自定义规则文件功能没在使用 s-c-fw / lokkit 就不知道它们。默认链通常也没有安全的方式添加或删除规则而不影响其他规则。
动态防火墙有附加的防火墙功能链。这些特殊的链按照已定义的顺序进行调用,因而向链中添加规则将不会干扰先前调用的拒绝和丢弃规则。从而利于创建更为合理完善的防火墙配置。
下面是一些由守护进程创建的规则,过滤列表中启用了在公共区域对 ssh , mdns 和 ipp-client 的支持:
*filter
:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:FORWARD_ZONES - [0:0]:FORWARD_direct - [0:0]:INPUT_ZONES - [0:0]:INPUT_direct - [0:0]:IN_ZONE_public - [0:0]:IN_ZONE_public_allow - [0:0]:IN_ZONE_public_deny - [0:0]:OUTPUT_direct - [0:0]-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES
-A INPUT -p icmp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -j FORWARD_direct
-A FORWARD -j FORWARD_ZONES
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -j OUTPUT_direct
-A IN_ZONE_public -j IN_ZONE_public_deny
-A IN_ZONE_public -j IN_ZONE_public_allow
-A IN_ZONE_public_allow -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
-A IN_ZONE_public_allow -d 224.0.0.251/32 -p udp -m udp --dport 5353 -m conntrack --ctstate NEW -j ACCEPT
-A IN_ZONE_public_allow -p udp -m udp --dport 631 -m conntrack --ctstate NEW -j ACCEPT
使用 deny/allow 模型来构建一个清晰行为(最好没有冲突规则)。例如: ICMP块将进入 IN_ZONE_public_deny 链(如果为公共区域设置了的话),并将在 IN_ZONE_public_allow 链之前处理。
该模型使得在不干扰其他块的情况下向一个具体块添加或删除规则而变得更加容易。
你可能感兴趣的:(linux,centos,firewall)
网页编辑器能否满足Word公式与图片的直接复制粘贴?
2501_90699800
编辑器 word umeditor粘贴word ueditor粘贴word ueditor复制word ueditor上传word图片 ueditor导入word
要求:开源,免费,技术支持编辑器:百度ueditor前端:vue2,vue3,vue-cli,react,html5用户体验:Ctrl+V快捷键操作功能:导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏平台:Windows,macOS,Linux,RedHat,CentOS,Ubuntu,中标麒麟,银河麒麟,统信UOS,
ssh命令
满分对我强制爱
linux 服务器 运维 spark
ssh命令无需密码也可登录要先关闭防火墙,命令如下:systemctlstopfirewalldsystemctldisablefirewalldsystemctlstatusfirewalldeg:目标:hadoop100通过ssh访问hadoop101,hadoop102时不需要密码,其他两台设备也类似。具体操作如下:1.在hadoop100中生成公钥和密码。ssh-keygen-trsa三次
家用笔记本换装centos7当服务器全流程
吕域
服务器 windows 电脑 centos
目录1、安装centos7系统硬件准备软件和镜像准备制作启动盘2、网络连接和ssh远程登陆centos7连接网络ssh远程登陆3、笔记本闭盖不休眠(7*24小时可用)4、定时开关机(省电、保护电脑)5、配置开发环境(此处以python为例,非必要项,示需求安装)1、安装centos7系统硬件准备老旧淘汰笔记本一台(新笔记本不合算,舍不得)一个大于8G的U盘网线一根(后续联网用)软件和镜像准备软件U
Centos7_安装
爱喝兽奶
Linux基础 linux ubuntu centos
一.Linux哲学思想一切都是一个文件(包括硬件)小型,单一用途的程序链接程序,共同完成复杂的任务避免令人困惑的用户界面配置数据存储在文本中二.Linux生产主流版本Linux各种版本CentOS各版本介绍https://zh.wikipedia.org/wiki/CentOSRHEL各版本介绍https://zh.wikipedia.org/wiki/Red_Hat_Enterprise_Lin
Linux学习1_Linux命令及英文全称
Wang_Zhenwei
—Linux 转载 linux
LinuxCommandreferences(命令全称,方便记忆)aliasCreateyourownnameforacommandarchprintmachinearchitectureashashcommandinterpreter(shell)awk(gawk)patternscanningandprocessinglanguagebasenameRemovedirectoryandsuff
CentOS 7.x 快速搭建ARK服务器
Aorsion
Linux ark server ark server centos 方舟服务器搭建Linux 方舟开服教程 方舟多人联机
本人菜鸟一枚,最近喜欢上了ark,也找到了2个基友,但是在别的服玩的不是很开心(非人民币玩家,你们懂),刚好有台闲置的拯救者14笔记本,i7-4720HQ、16G内存、128G三星970pro,1T机械,索性拿来装个Centos7.6搭个服自己玩,就多点电费的事,下面把自己折腾一天的开服经历做个笔记留给和我一样的童鞋,喜欢开服工具的请绕道友情提醒:ARK需要大量内存,建议使用至少具有6GBRAM以
docker-compose笔记
Re_Virtual
docker docker 笔记 容器
docker目前docker官网已经无法登录,但是还可以从清华镜像站(https://mirrors.tuna.tsinghua.edu.cn/docker-ce/)下载。使用方法可以参考早期文章《docker笔记》docker-compose可以从Github下载不同版本的二进制文件,例如docker-compose-linux-x86_64。下载完成后,将二进制文件复制入路径,例如/usr/l
Linux vim mode | raw / cooked
斐夷所非
Linux vim mode
注:机翻,未校。vimterminal“raw”modeVim终端“raw”模式1.原始模式与已处理模式的区别Weknowvimputstheterminalin“raw”modewhereitreceiveskeystrokesastheyaretyped,opposedto“cooked”modewherethecommandisnotprocessedfullyunlesstheend-us
linux自律 第 40 天
嵌入式大大白
数据库
在学习了sqlite3数据库的增删改查之后,我开始做了一个基于web服务端的商品查询系统,将商品的图片,名称,id,详细描述和关键词等都放入了该数据库中,利用该数据库和html构建的网页来完成该项目。该项目首先需要设计出登录系统,登录需要密码和账号,所以需要注册,我打算在注册的时候使用数据库,将注册的信息放在数据库中。然后使用账号密码登录的时候,输入的账号密码在请求报文中,以post的形式发出来,
k8s往secret里导入证书_Kubernetes K8S之存储Secret详解
weixin_39604598
k8s往secret里导入证书
K8S之存储Secret概述与类型说明,并详解经常使用Secret示例html主机配置规划服务器名称(hostname)系统版本配置内网IP外网IP(模拟)k8s-masterCentOS7.72C/4G/20G172.16.1.11010.0.0.110k8s-node01CentOS7.72C/4G/20G172.16.1.11110.0.0.111k8s-node02CentOS7.72C/
【北京迅为】iTOP-RK3568开发板OpenHarmony系统南向驱动开发UART接口运作机制
迅为电子
RK3568开发板 RK3568开发板 OpenHarmony
瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和MaliG522EE图形处理器。RK3568支持4K解码和1080P编码,支持SATA/PCIE/USB3.0外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568支持安卓11和linux系统,主要面向物联网网关、NVR存储、工控平板、工业检测、工控盒、卡拉OK
Docker下载,包含Win、Mac
码码哈哈0.0
实用工具 docker 容器 运维
介绍Docker是一种开源的容器化平台,通过操作系统级虚拟化技术实现应用的快速开发、部署和运行。以下从多个维度对Docker进行详细介绍:一、Docker的核心概念与功能容器化技术Docker利用Linux内核的容器隔离技术(如Cgroups和Namespace),将应用及其依赖打包为轻量级、可移植的容器。容器与虚拟机不同,它无需模拟完整操作系统,而是共享主机内核,因此启动更快、资源占用更低。核心
Ubuntu零基础入门到精通【1.3讲】:为什么选择 Ubuntu?
bug菌¹
滚雪球学Ubuntu ubuntu linux 运维 为什么选择Ubuntu 零基础教程
目录:上期回顾:Ubuntu的生态与社区✨前言:为什么我们都在谈论Ubuntu?为什么Ubuntu是个人和企业的首选?1️⃣安全性与开源:Ubuntu构建的安全生态系统更高的安全性:Ubuntu对安全的极致追求✨️开放性与可审查性:更透明的操作系统长期支持版(LTS):稳定与安全的完美平衡2️⃣对比其他Linux发行版:Ubuntu如何脱颖而出?Fedora:创新的前沿,但稳定性欠佳CentOS:
(备忘) manjaro更换内核后 virtualBox 中打不开虚拟机(已经解决)
波格斯特
问题备忘 linux 内核
文章目录问题描述解决办法参考链接1问题描述更换完5.9内核后VirtualBox提示Kerneldrivernotinstalled(rc=-1908)"TheVirtualBoxLinuxkerneldriveriseithernotloadedornotsetupcorrectly.Pleasetrysettingitupagainbyexecuting'/sbin/vboxconfig'as
一键掌控海量文件!Shell的find命令终极指南 + 高阶组合技
芯有所享
java 前端 android 经验分享
你是否经历过这些崩溃瞬间?想清理3个月前的日志却无从下手要在10万张图片里找出某个版本突然发现服务器被临时文件塞爆…今天介绍的Linux三剑客之find命令,就是你的超级救星!不仅能精准定位文件,结合其他命令更能玩出自动化运维的花样!一、Find基础三连击(新手必看)按图索骥-名称搜索查找当前目录所有.txt文件(精准匹配)find.-name“*.txt”忽略大小写找配置文件(模糊匹配)find
Centos7软件包管理(rpm、yum)
Bulut0907
Linux centos 软件包管理 rpm yum yum源修改
目录1.rpm2.yum2.1修改yum源1.rpmRPM(RedHatPackageManager),redhat系列操作系统里面的打包安装工具查询命令:查询安装的所有rpm软件包:rpm-qa查询指定rpm软件包,并显示详细信息:rpm-qipython3卸载命令:卸载软件包,不管是否有其它软件包依赖该软件包:rpm-e--nodeps软件包名称安装命令:安装rpm包,并显示详细信息和进度条(
解决Ubuntu报错 E: Unable to locate package yum
SH-ke
ubuntu yum apt
开门见山,Ubuntu的包管理工具是apt-get,所以不必再安装yum。如果要安装其他包需要使用apt-get命令。#这里以locate命令为例sudoapt-getinstallmlocate下文就是问题解决的全过程了。1.报错E:Unabletolocatepackageyum我在学习Linux命令的时候需要使用locate命令,但是Ubuntu的系统里没有安装locate命令。根据弹幕的指
为什么在Linux系统中,available会比free+buff/cache的总和少很多
fzip
Linux linux 运维 服务器
在Linux系统中,available内存值小于free+buff/cache总和的现象源于内存管理的复杂机制。以下是核心原因及技术细节:一、背景1.现象#1.free-htotalusedfreesharedbuff/cacheavailableMem:503Gi475Gi8.9Gi605Mi18Gi13GiSwap:63Gi12Gi51Gi#2.grep-E'^(MemTotal|MemFre
ollama 基本使用教程
海上彼尚
AI ai 前端
目录1.安装OllamamacOS或LinuxWindows(WSL2)2.基础命令启动与停止更新Ollama3.模型管理下载预训练模型运行模型查看已安装模型删除模型从Modelfile创建自定义模型4.高级功能服务器模式与API多会话管理环境变量配置5.常见问题与技巧加速模型下载查看日志模型参数调整模型导出与分享Ollama是一个开源的大型语言模型服务工具,能够帮助用户在本地运行大模型。通过简单
【工具】gdb使用详细介绍
努力努力再努力~~
linux疑难问题排查实战 gdb linux 问题调试
linux问题排查实战专栏,分享了作为公司专家,在解决内存、性能、各类死机等疑难问题的排查经验,认真学习可以让你在日后工作中大放光彩。前言在工作中,无论是学习代码流程还是问题的定位,GDB都显得尤为重要,多掌握一些命令可以提升我们的效率和解决问题的能力;按照我的理解,对GDB的掌握程度可以分为三种人:基础命令,大家都知道相对高阶一点的,少数人了解,掌握之后可以提升调试解决问题的效率需要结合反汇编、
linux 批量删除指定类型文件
鸭梨山大哎
linux linux 运维 服务器
如果使用rm*.xlsx时仍然提示确认,可能是因为你的系统默认启用了rm的交互模式(-i选项)。这是某些Linux发行版的默认行为(例如通过alias设置了rm为rm-i)。要避免确认提示,可以通过以下方法解决:方法1:强制删除(使用-f选项)使用rm-f强制删除文件,忽略确认提示:rm-f*.xlsx方法2:检查并移除rm的别名检查rm是否被设置了别名(例如rm-i):aliasrm如果输出类似
使用arm-linux-gdb进行正确安装和编程
风华绚烂
arm开发 linux 运维 编程
在嵌入式系统开发中,使用适用于ARM架构的调试器是至关重要的。GNU调试器(GDB)是一个功能强大的调试工具,可以用于调试ARM平台上的应用程序。本文将介绍如何正确安装arm-linux-gdb,并提供一些示例源代码,以便您开始进行ARM平台上的编程和调试。步骤1:安装arm-linux-gdb首先,我们需要安装arm-linux-gdb。以下是在Linux上安装arm-linux-gdb的步骤:
深入分析串口使用rs485功能的内部机制之使用gpio控制传输方向读取rs485温湿度传感器数据(第一期)
@曙光,
linux 网络 嵌入式
前言首先这是一篇涉及内核分析的,学习这篇文章最好是打开内核源码跟着我的分析去看,我参考的内核源码是linux5.4内核,也可以辅助ai去分析。ModbusRTU读取rs485温湿度传感器使用ModbusRTU读取rs485温湿度传感器有俩种方法,第一种采用gpio控制数据的传输方向:高电平表示主发从收,低电平表示主收从发。第二种采用硬件流控的方法使用串口的rts引脚和cts引脚自动控制收发方向,接
helm安装kubernetes-dashboard(2,Linux运维开发技巧
2401_83974783
2024年程序员学习 kubernetes linux 运维开发
当前k8s集群版本1.23.61.1添加repo[root@masterhelm]#helmrepoaddkubernetes-dashboardhttps://kubernetes.github.io/dashboard/[root@masterhelm]#helmsearchrepokubernetes-dashboard/kubernetes-dashboardNAMECHARTVERSIO
cherry-studio - 多模型支持的跨平台 AI 桌面助手
小众AI
AI开源 人工智能 AI编程
GitHub:https://github.com/CherryHQ/cherry-studio更多AI开源软件:发现分享好用的AI工具、AI开源软件、AI模型、AI变现-小众AI一款支持多种大语言模型服务的跨平台桌面客户端,兼容Windows、Linux和macOS系统。它支持主流云端模型(如OpenAI、Anthropic等)以及本地模型(如Ollama、LMStudio),能够满足文本生成、
【Linux】Linux下调试器gdb的使用
安 度 因
Linux linux 运维 服务器 测试工具 调试
作者主页:@安度因学习社区:StackFrame专栏链接:Linux文章目录一、前言二、铺垫三、指令集和使用1、指令集2、演示四、结语如果无聊的话,就来逛逛我的博客栈吧!一、前言前几篇Linux博客中,我们分别学习了与编辑、编译、自动化构建代码、上传代码的工具。而今天,我们将学习最后一个工具——Linux下的调试器gdb
30岁了,零基础想转行网安从头开始现实吗?
白帽子凯哥哥
tcp/ip 安全 web安全 学习 网络
这篇文章没有什么套路。就是一套自学理论和方向,具体的需要配合网络黑白去学习。毕竟是有网络才会有黑白!有自学也有培训!1.打死也不要相信什么分分钟钟教你成为大黑阔的,各种包教包会的教程,就算打不死也不要去购买那些所谓的盗号软件之类的东西。2,我之前让你们在没有目的的时候学习linux,在学习LINUX的同时你第一个遇到的问题就是命令。作为一个黑客入门着来说你必须要懂什么是命令化系统,什么是图形化系统
RK35XX(3568) Android WSL ubuntu22.04 编译环境配置
hmbbPdx_
firefly-RK3288 RK驱动开发 Rk开发(RK3568) android linux
前言:装Ubuntu真机操作是很流畅但是没什么软件,装Vmware虚拟机操作卡顿配置也麻烦。那不如试一试wsl吧,命令行操作,流程又快捷wsl简介:适用于Linux的Windows子系统可让开发人员按原样运行GNU/Linux环境-包括大多数命令行工具、实用工具和应用程序-且不会产生传统虚拟机或双启动设置开销。window版本:10或11(7不支持)Ubuntu:16.04~22.04.1WSL:
云原生大佬重生,记忆逐步复苏(九:systemd进程)
子恒2005
云原生大佬重生 记忆逐步复苏 云原生 linux
目录1:什么是systemd守护进程2:Systemd参与的系统的初始化是怎么样的?3:systemd的单元类型4:具体的单元配置文件解析1:什么是systemd守护进程systemd是现代Linux系统中的一个系统和服务管理器,用于初始化系统、管理系统服务、维护系统状态、控制系统资源,并提供一系列其他功能来简化系统管理。systemd的主要作用和功能-系统初始化:systemd是Linux系统的
使用vscode远程连接linux运行项目报错解决方案
大数据lsy
笔记 vscode linux python
报错:subprocess.CalledProcessError:Command'['/xxx/anaconda3/envs/graphinvent/bin/python','./graphinvent/main.py','--job-dir','/xxx/GraphINVENT/output_gdb13_1K/example/job_0/']'returnednon-zeroexitstatus
ztree异步加载
3213213333332132
JavaScript Ajax json Web ztree
相信新手用ztree的时候,对异步加载会有些困惑,我开始的时候也是看了API花了些时间才搞定了异步加载,在这里分享给大家。
我后台代码生成的是json格式的数据,数据大家按各自的需求生成,这里只给出前端的代码。
设置setting,这里只关注async属性的配置
var setting = {
//异步加载配置
thirft rpc 具体调用流程
BlueSkator
中间件 rpc thrift
Thrift调用过程中,Thrift客户端和服务器之间主要用到传输层类、协议层类和处理类三个主要的核心类,这三个类的相互协作共同完成rpc的整个调用过程。在调用过程中将按照以下顺序进行协同工作:
(1) 将客户端程序调用的函数名和参数传递给协议层(TProtocol),协议
异或运算推导, 交换数据
dcj3sjt126com
PHP 异或 ^
/*
* 5 0101
* 9 1010
*
* 5 ^ 5
* 0101
* 0101
* -----
* 0000
* 得出第一个规律: 相同的数进行异或, 结果是0
*
* 9 ^ 5 ^ 6
* 1010
* 0101
* ----
* 1111
*
* 1111
* 0110
* ----
* 1001
事件源对象
周华华
JavaScript
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml&q
MySql配置及相关命令
g21121
mysql
MySQL安装完毕后我们需要对它进行一些设置及性能优化,主要包括字符集设置,启动设置,连接优化,表优化,分区优化等等。
一 修改MySQL密码及用户
 
[简单]poi删除excel 2007超链接
53873039oycg
Excel
采用解析sheet.xml方式删除超链接,缺点是要打开文件2次,代码如下:
public void removeExcel2007AllHyperLink(String filePath) throws Exception {
OPCPackage ocPkg = OPCPac
Struts2添加 open flash chart
云端月影
准备以下开源项目:
1. Struts 2.1.6
2. Open Flash Chart 2 Version 2 Lug Wyrm Charmer (28th, July 2009)
3. jofc2,这东西不知道是没做好还是什么意思,好像和ofc2不怎么匹配,最好下源码,有什么问题直接改。
4. log4j
用eclipse新建动态网站,取名OFC2Demo,将Struts2 l
spring包详解
aijuans
spring
下载的spring包中文件及各种包众多,在项目中往往只有部分是我们必须的,如果不清楚什么时候需要什么包的话,看看下面就知道了。 aspectj目录下是在Spring框架下使用aspectj的源代码和测试程序文件。Aspectj是java最早的提供AOP的应用框架。 dist 目录下是Spring 的发布包,关于发布包下面会详细进行说明。 docs&nb
网站推广之seo概念
antonyup_2006
算法 Web 应用服务器 搜索引擎 Google
持续开发一年多的b2c网站终于在08年10月23日上线了。作为开发人员的我在修改bug的同时,准备了解下网站的推广分析策略。
所谓网站推广,目的在于让尽可能多的潜在用户了解并访问网站,通过网站获得有关产品和服务等信息,为最终形成购买决策提供支持。
网站推广策略有很多,seo,email,adv
单例模式,sql注入,序列
百合不是茶
单例模式 序列 sql注入 预编译
序列在前面写过有关的博客,也有过总结,但是今天在做一个JDBC操作数据库的相关内容时 需要使用序列创建一个自增长的字段 居然不会了,所以将序列写在本篇的前面
1,序列是一个保存数据连续的增长的一种方式;
序列的创建;
CREATE SEQUENCE seq_pro
2 INCREMENT BY 1 -- 每次加几个
3
Mockito单元测试实例
bijian1013
单元测试 mockito
Mockito单元测试实例:
public class SettingServiceTest {
private List<PersonDTO> personList = new ArrayList<PersonDTO>();
@InjectMocks
private SettingPojoService settin
精通Oracle10编程SQL(9)使用游标
bijian1013
oracle 数据库 plsql
/*
*使用游标
*/
--显示游标
--在显式游标中使用FETCH...INTO语句
DECLARE
CURSOR emp_cursor is
select ename,sal from emp where deptno=1;
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
begin
ope
【Java语言】动态代理
bit1129
java语言
JDK接口动态代理
JDK自带的动态代理通过动态的根据接口生成字节码(实现接口的一个具体类)的方式,为接口的实现类提供代理。被代理的对象和代理对象通过InvocationHandler建立关联
package com.tom;
import com.tom.model.User;
import com.tom.service.IUserService;
Java通信之URL通信基础
白糖_
java jdk webservice 网络协议 ITeye
java对网络通信以及提供了比较全面的jdk支持,java.net包能让程序员直接在程序中实现网络通信。
在技术日新月异的现在,我们能通过很多方式实现数据通信,比如webservice、url通信、socket通信等等,今天简单介绍下URL通信。
学习准备:建议首先学习java的IO基础知识
URL是统一资源定位器的简写,URL可以访问Internet和www,可以通过url
博弈Java讲义 - Java线程同步 (1)
boyitech
java 多线程 同步 锁
在并发编程中经常会碰到多个执行线程共享资源的问题。例如多个线程同时读写文件,共用数据库连接,全局的计数器等。如果不处理好多线程之间的同步问题很容易引起状态不一致或者其他的错误。
同步不仅可以阻止一个线程看到对象处于不一致的状态,它还可以保证进入同步方法或者块的每个线程,都看到由同一锁保护的之前所有的修改结果。处理同步的关键就是要正确的识别临界条件(cri
java-给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
bylijinnan
java
public class DeleteExtraSpace {
/**
* 题目:给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。
* 方法1.用已有的String类的trim和replaceAll方法
* 方法2.全部用正则表达式,这个我不熟
* 方法3.“重新发明轮子”,从头遍历一次
*/
public static v
An error has occurred.See the log file错误解决!
Kai_Ge
MyEclipse
今天早上打开MyEclipse时,自动关闭!弹出An error has occurred.See the log file错误提示!
很郁闷昨天启动和关闭还好着!!!打开几次依然报此错误,确定不是眼花了!
打开日志文件!找到当日错误文件内容:
--------------------------------------------------------------------------
[矿业与工业]修建一个空间矿床开采站要多少钱?
comsci
地球上的钛金属矿藏已经接近枯竭...........
我们在冥王星的一颗卫星上面发现一些具有开采价值的矿床.....
那么,现在要编制一个预算,提交给财政部门..
解析Google Map Routes
dai_lm
google api
为了获得从A点到B点的路劲,经常会使用Google提供的API,例如
[url]
http://maps.googleapis.com/maps/api/directions/json?origin=40.7144,-74.0060&destination=47.6063,-122.3204&sensor=false
[/url]
从返回的结果上,大致可以了解应该怎么走,但
SQL还有多少“理所应当”?
datamachine
sql
转贴存档,原帖地址:http://blog.chinaunix.net/uid-29242841-id-3968998.html、http://blog.chinaunix.net/uid-29242841-id-3971046.html!
------------------------------------华丽的分割线--------------------------------
Yii使用Ajax验证时,如何设置某些字段不需要验证
dcj3sjt126com
Ajax yii
经常像你注册页面,你可能非常希望只需要Ajax去验证用户名和Email,而不需要使用Ajax再去验证密码,默认如果你使用Yii 内置的ajax验证Form,例如:
$form=$this->beginWidget('CActiveForm', array( 'id'=>'usuario-form',&
使用git同步网站代码
dcj3sjt126com
crontab git
转自:http://ued.ctrip.com/blog/?p=3646?tn=gongxinjun.com
管理一网站,最开始使用的虚拟空间,采用提供商支持的ftp上传网站文件,后换用vps,vps可以自己搭建ftp的,但是懒得搞,直接使用scp传输文件到服务器,现在需要更新文件到服务器,使用scp真的很烦。发现本人就职的公司,采用的git+rsync的方式来管理、同步代码,遂
sql基本操作
蕃薯耀
sql sql基本操作 sql常用操作
sql基本操作
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月1日 17:30:33 星期一
&
Spring4+Hibernate4+Atomikos3.3多数据源事务管理
hanqunfeng
Hibernate4
Spring3+后不再对JTOM提供支持,所以可以改用Atomikos管理多数据源事务。Spring2.5+Hibernate3+JTOM参考:http://hanqunfeng.iteye.com/blog/1554251Atomikos官网网站:http://www.atomikos.com/ 一.pom.xml
<dependency>
<
jquery中两个值得注意的方法one()和trigger()方法
jackyrong
trigger
在jquery中,有两个值得注意但容易忽视的方法,分别是one()方法和trigger()方法,这是从国内作者<<jquery权威指南》一书中看到不错的介绍
1) one方法
one方法的功能是让所选定的元素绑定一个仅触发一次的处理函数,格式为
one(type,${data},fn)
&nb
拿工资不仅仅是让你写代码的
lampcy
工作 面试 咨询
这是我对团队每个新进员工说的第一件事情。这句话的意思是,我并不关心你是如何快速完成任务的,哪怕代码很差,只要它像救生艇通气门一样管用就行。这句话也是我最喜欢的座右铭之一。
这个说法其实很合理:我们的工作是思考客户提出的问题,然后制定解决方案。思考第一,代码第二,公司请我们的最终目的不是写代码,而是想出解决方案。
话粗理不粗。
付你薪水不是让你来思考的,也不是让你来写代码的,你的目的是交付产品
架构师之对象操作----------对象的效率复制和判断是否全为空
nannan408
架构师
1.前言。
如题。
2.代码。
(1)对象的复制,比spring的beanCopier在大并发下效率要高,利用net.sf.cglib.beans.BeanCopier
Src src=new Src();
BeanCopier beanCopier = BeanCopier.create(Src.class, Des.class, false);
ajax 被缓存的解决方案
Rainbow702
JavaScript jquery Ajax cache 缓存
使用jquery的ajax来发送请求进行局部刷新画面,各位可能都做过。
今天碰到一个奇怪的现象,就是,同一个ajax请求,在chrome中,不论发送多少次,都可以发送至服务器端,而不会被缓存。但是,换成在IE下的时候,发现,同一个ajax请求,会发生被缓存的情况,只有第一次才会被发送至服务器端,之后的不会再被发送。郁闷。
解决方法如下:
① 直接使用 JQuery提供的 “cache”参数,
修改date.toLocaleString()的警告
tntxia
String
我们在写程序的时候,经常要查看时间,所以我们经常会用到date.toLocaleString(),但是date.toLocaleString()是一个过时 的API,代替的方法如下:
package com.tntxia.htmlmaker.util;
import java.text.SimpleDateFormat;
import java.util.
项目完成后的小总结
xiaomiya
js 总结 项目
项目完成了,突然想做个总结但是有点无从下手了。
做之前对于客户端给的接口很模式。然而定义好了格式要求就如此的愉快了。
先说说项目主要实现的功能吧
1,按键精灵
2,获取行情数据
3,各种input输入条件判断
4,发送数据(有json格式和string格式)
5,获取预警条件列表和预警结果列表,
6,排序,
7,预警结果分页获取
8,导出文件(excel,text等)
9,修