原创 SELinux的運行模式與安全策略詳解

1. SELinux在Linux系統中的運行狀態可以劃分爲如下3種運行模式(run modes) enforcing 默認模式,SELinux會根據安全策略對到達的訪問請求進行檢查。 permissive SELinux假裝在進行安全策略

原创 Java運行時的shutdown hook

Hook作爲一種回調方式,廣泛應用於軟件中。 從Java 1.3開始,JVM的Runtime也提供了hook的機制,即shutdown hook。提供給出shutdown hook,在退出JVM的時候,能夠執行shutdown hook中

原创 Java 7的javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake異常分析

Java7通過httpsURLConnection建立HTTPS連接,異常如下: javax.net.ssl.SSLHandshakeException: Caused by: Remote host closed connection

原创 Google Maven Replacer Plugin插件詳解

在Maven項目的構建過程中,對於Maven標準預定義變量,或者<properties>中定義的變量,都可以被實際的值替換。 但是,如果要在構建的過程中替換文件中的任何指定字符串(這裏成爲tokens),就需要使用Google爲Maven

原创 Docker容器實例通過非默認的網絡命名空間訪問外部網絡

Docker爲所有容器實例建立了獨立的網絡命名空間中,並通過docker0橋接到宿主機的默認網絡命名空間。 如果容器實例要通過宿主機上的一個定製網絡命名空間oam,而非宿主機的默認網絡命名空間,訪問外部網絡,示意圖如下所示。   對於上

原创 RHEL/CentOS 7的FirewallD及其firewall-cmd命令概述

FirewallD是RHEL/CentOS 7+的一個防火牆服務的守護進程,對應系統的firewalld.service。其與iproute2軟件包的iptables/ip6tables的關係如下,實質上都是通過iptables模塊配置內

原创 iptables及其過濾規則

1. iptables是Linux內核的一個模塊,用以管理對網絡設備(網卡)的訪問,如路由過濾、端口轉發、NAT等,root用戶可以通過iptables配置操作系統的路由表。在當前的主流Linux發佈系統中,都默認安裝了iptables。

原创 RHEL/CentOS 7的systemd target及其中的multi-user.target

在RHEL/CentOS 6中,使用SysV init和Upstart,通過預定義一組Runlevels(從0到6)表示不同的執行模式。 [root@myhost app]# ll /etc/rc.d/ total 4 drwxr-xr

原创 RHEL/CentOS 7中通過systemd service持久化網絡命名空間

對於Linux系統中創建的定製的網絡命名空間,目前沒有理想的方法使其持久化,即能夠在Linux系統啓動時應用定製的網絡命名空間的配置。 本文創建了一個systemd service,通過在Linux系統啓動時執行其ExecStart腳本,

原创 Apache Maven Resources Plugin插件詳解

Apache Maven Resources Plugin是Apache Maven團隊提供的官方核心插件,能夠將Maven項目中的各種資源文件複製到指定的輸出目錄中。 1. 在Maven項目中的資源可以分爲兩類 main資源,指位於sr

原创 CPython的命令行與python文件的執行

在Windows系統中,下載並安裝了Python解析器後,就可以運行Python文件了。 可以使用任何編輯器,編寫並保存Python文件。Python運行時提供了多種執行Python文件的方法。 1. 編寫並保存Python文件myfoo

原创 Docker容器啓動時的第一個進程的設置總結

實際生產中,Docker容器創建(或啓動)時,默認即啓動必要的服務進程,這種用法非常常見。容器中默認即啓動的服務往往作爲容器的第一個進程啓動。如docker run命令創建Tomcat容器時即啓動容器中的Tomcat服務。Docker提供

原创 SELinux檢查與Apache HTTP服務器的文件訪問典型錯配案例及解決

在CentOS 7.5配置Apache HTTP服務器後,看到如下錯誤: Permission denied 查看Apache HTTP服務器的錯誤日誌/var/log/httpd/error_log如下: [Wed May 06 23

原创 SELinux檢查與Nginx的反向代理的典型錯配案例及解決

在CentOS 7.5配置並啓動Nginx後,卻總是看到如下異常 Permission denied 查看Nginx的錯誤日誌如下: [root@mylocal ~]# grep Permission /var/log/nginx/er

原创 Linux資源的SELinux context詳解

Linux操作系統中的每個資源(如進程、文件描述符、文件、網絡等),也被稱爲SELinux對象,都擁有一個特別的security label,也被稱爲SELinux label,或SELinux context,以表示該對象能夠執行的pe