導航:首頁 > 編程系統 > selinuxmodchanger

selinuxmodchanger

發布時間:2023-08-28 12:50:12

『壹』 linux 伺服器怎麼啟動ftp

Liux系統下有好幾款很不錯的ftp服務,各有特點,適應於不同的應用場合。一般在各種Linux的發行版中,默認帶有的ftp軟體是vsftp,本文是針對CentOs7系統下搭建vsftpd服務為例。
1. 首先確定系統中已經安裝了vsftpd軟體,查看命令:
rpm -q vsftpd
rpm -qa |grep vsftpd
2. 安裝vsftpd(以yum安裝為例)
yum install -y vsftpd
3.關閉selinux和iptables(也可配置防火牆相關訪問策略,反之系統阻斷),設置vsftpd開機自啟
永久關閉selinux
vi /etc/sysconfig/selinux
將配置SELinux=enforcing改為SELinux=disabled
保存退出並重啟伺服器
驗證是否關閉命令:getenforce
關閉防火牆
centos 7 操作命令:systemctl stop firewalld.service
centos 6 操作命令:service stop iptables
設置vsftpd開機自啟
centos 7 操作命令:systemctl enable vsftpd.service
centos 6 操作命令:chkconfig vsftpd on
4.vsftpd的配置
ftpusers 該文件用來指定哪些用戶不能訪問ftp伺服器。
user_list 該文件用來指定的默認賬戶在默認情況下也不能訪問ftp伺服器。
vsftpd.conf vsftpd的主要配置文件,路徑:
/etc/vsftpd/vsftpd.conf
# vsftpd.conf的配置
# 是否允許匿名登錄
anonymous_enable=NO
# 是否允許本地用戶登錄
local_enable=YES
# 是否允許本地用戶對FTP伺服器文件具有寫許可權
write_enable=YES
# 本地用戶主目錄
local_root=/var/ftp
# 匿名用戶主目錄
anon_root=/var/ftp/pub
# 是否允許匿名用戶上傳文件,如允許,須將全局的
write_enable=YES
anon_upload_enable=YES
# 是否允許匿名用戶創建新文件夾
anon_mkdir_write_enable=YES
# 容許匿名用戶除了新建和上傳外的其他許可權
anon_other_write_enable=YES
# 本地用戶掩碼
local_umask=022
# 設置匿名登入者新增或上傳檔案時的umask值
anon_umask=022
# 是否激活目錄歡迎信息功能
dirmessage_enable=YES
xferlog_enable=YES
# 主動模式數據傳輸20埠
connect_from_port_20=NO
xferlog_std_format=YES
# 是否監聽ipv4
listen=YES
# listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# 是否設置被動模式
pasv_enable=YES
# 被動模式傳輸使用埠
pasv_min_port=20020
pasv_max_port=20020
# 被動模式返回給客戶端的ip地址(伺服器內網穿透時使用)
pasv_address=0.0.0.0( 伺服器外網ip )
# 設置用戶訪問目錄,默認只允許用戶自己的ftp目錄
# 需要同時設置allow_writeable_chroot,允許受限用戶的寫許可權,不然會報錯
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
5.創建例外用戶文件
#哪怕沒有例外用戶也必須創建
vim /etc/vsftpd/chroot_list
只想讓指定賬戶不限制在其主目錄,其它賬戶都限制在主目錄。
對於chroot_local_user與chroot_list_enable的組合效果,可以參考下表:
6. 創建ftp新用戶
#新增一個test(用戶名),並指定上傳目錄在/home/ftp/test下
useradd -g root -d /home/ftp/test -s /sbin/nologin test
# 如果後期想變更此用戶的上傳到(/XXX/ftp/test),請使用下面的命令:
usermod -d /XXX/ftp/test test

# 設置用戶密碼
passwd test
因為安全問題,vaftpd不允許匿名用戶在ftp主目錄上傳,可以新建一個子目錄,設置許可權為777
7. 關於local_umask和anon_umask掩碼
掩碼決定了上傳文件的許可權,掩碼為022代表上傳後的文件許可權為
666-022=644 -> rw-r--r--
掩碼即為要去除的許可權為,默認設為033即可。

8. 啟動vsftp服務
#centos7 操作命令
啟動: systemctl start vsftpd.service
停止: systemctl stop vsftpd.service
重啟: systemctl restart vsftpd.service
查看狀態: systemctl status vsftpd.service
#centos6 操作命令
啟動: service vsftpd start
停止: service vsftpd stop
重啟: service vsftpd restart
查看狀態: service vsftpd status

『貳』 selinux會使某一個進程的許可權變化嗎

這些局限的一種情形是:某個用戶可能通過一個泛泛的 chmod
命令將文件或目錄暴露出現了安全違例,從而引起訪問許可權的意外傳播。結果,由該用戶開啟的任意進程可以對屬於該用戶的文件進行任意的操作,最終一個惡意的
或有其它缺陷的軟體可能會取得整個系統的 root 級別的訪問許可權。

考慮到這些局限性,美國國家安全局(NSA) 率先設計出了
SELinux,一種強制的訪問控制方法,它根據最小許可權模型去限制進程在系統對象(如文件,目錄,網路介面等)上的訪問或執行其他的操作的能力,而這些
限制可以在之後根據需要進行修改。簡單來說,系統的每一個元素只給某個功能所需要的那些許可權。

在 RHEL 7 中,SELinux 被並入了內核中,且默認情況下以強制模式(Enforcing)開啟。在這篇文章中,我們將簡要地介紹有關 SELinux 及其相關操作的基本概念。

SELinux 的模式

SELinux 可以以三種不同的模式運行:
強制模式(Enforcing)
:SELinux 基於其策略規則來拒絕訪問,這些規則是用以控制安全引擎的一系列准則;
寬容模式(Permissive)
:SELinux 不會拒絕訪問,但對於那些如果運行在強制模式下會被拒絕訪問的行為進行記錄;
關閉(Disabled)
(不言自明,即 SELinux 沒有實際運行).

使用 getenforce 命令可以展示 SELinux 當前所處的模式,而 setenforce 命令(後面跟上一個 1 或 0) 則被用來將當前模式切換到強制模式(Enforcing)或寬容模式(Permissive),但只對當前的會話有效。

為了使得在登出和重啟後上面的設置還能保持作用,你需要編輯 /etc/selinux/config 文件並將 SELINUX 變數的值設為 enforcing,permissive,disabled 中之一:
# getenforce# setenforce 0# getenforce# setenforce 1# getenforce# cat /etc/selinux/config

設置 SELinux 模式

通常情況下,你應該使用 setenforce 來在 SELinux
模式間進行切換(從強制模式到寬容模式,或反之),以此來作為你排錯的第一步。假如 SELinux
當前被設置為強制模式,而你遇到了某些問題,但當你把 SELinux 切換為寬容模式後問題不再出現了,則你可以確信你遇到了一個 SELinux
許可權方面的問題。

SELinux 上下文

一個 SELinux 上下文(Context)由一個訪問控制環境所組成,在這個環境中,決定的做出將基於 SELinux 的用戶,角色和類型(和可選的級別):

一個 SELinux 用戶是通過將一個常規的 Linux 用戶賬戶映射到一個 SELinux 用戶賬戶來實現的,反過來,在一個會話中,這個 SELinux 用戶賬戶在 SELinux 上下文中被進程所使用,以便能夠明確定義它們所允許的角色和級別。
角色的概念是作為域和處於該域中的 SELinux 用戶之間的媒介,它定義了 SELinux 可以訪問到哪個進程域和哪些文件類型。這將保護您的系統免受提權漏洞的攻擊。
類型則定義了一個 SELinux 文件類型或一個 SELinux 進程域。在正常情況下,進程將會被禁止訪問其他進程正使用的文件,並禁止對其他進程進行訪問。這樣只有當一個特定的 SELinux 策略規則允許它訪問時,才能夠進行訪問。

下面就讓我們看看這些概念是如何在下面的例子中起作用的。

例 1:改變 sshd 守護進程的默認埠

在 RHCSA 系列(八): 加固 SSH,設定主機名及啟用網路服務 中,我們解釋了更改 sshd 所監聽的默認埠是加固你的伺服器免受外部攻擊的首要安全措施。下面,就讓我們編輯 /etc/ssh/sshd_config 文件並將埠設置為 9999:
Port 9999

保存更改並重啟 sshd:
# systemctl restart sshd# systemctl status sshd

重啟 SSH 服務

正如你看到的那樣, sshd 啟動失敗,但為什麼會這樣呢?

快速檢查 /var/log/audit/audit.log 文件會發現 sshd 已經被拒絕在埠 9999 上開啟(SELinux 的日誌信息包含單詞 "AVC",所以這類信息可以被輕易地與其他信息相區分),因為這個埠是 JBoss 管理服務的保留埠:
# cat /var/log/audit/audit.log | grep AVC | tail -1

查看 SSH 日誌

在這種情況下,你可以像先前解釋的那樣禁用 SELinux(但請不要這樣做!),並嘗試重啟 sshd,且這種方法能夠起效。但是, semanage 應用可以告訴我們在哪些埠上可以開啟 sshd 而不會出現任何問題。

運行:
# semanage port -l | grep ssh

便可以得到一個 SELinux 允許 sshd 在哪些埠上監聽的列表:

Semanage 工具

所以讓我們在 /etc/ssh/sshd_config 中將埠更改為 9998 埠,增加這個埠到 sshportt 的上下文,然後重啟 sshd 服務:
# semanage port -a -t ssh_port_t -p tcp 9998# systemctl restart sshd# systemctl is-active sshd

semanage 添加埠

如你所見,這次 sshd 服務被成功地開啟了。這個例子告訴我們一個事實:SELinux 用它自己的埠類型的內部定義來控制 TCP 埠號。

例 2:允許 httpd 訪問 sendmail

這是一個 SELinux 管理一個進程來訪問另一個進程的例子。假如在你的 RHEL 7 伺服器上,你要為 Apache 配置 mod_security 和 mod_evasive,你需要允許 httpd 訪問 sendmail,以便在遭受到 (D)DoS 攻擊時能夠用郵件來提醒你。在下面的命令中,如果你不想使得更改在重啟後仍然生效,請去掉 -P 選項。
# semanage boolean -1 | grep httpd_can_sendmail# setsebool -P httpd_can_sendmail 1# semanage boolean -1 | grep httpd_can_sendmail

允許 Apache 發送郵件

從上面的例子中,你可以知道 SELinux 布爾設定(或者只是布爾值)分別對應於 true 或 false,被嵌入到了 SELinux 策略中。你可以使用 semanage boolean -l 來列出所有的布爾值,也可以管道至 grep 命令以便篩選輸出的結果。

例 3:在一個特定目錄而非默認目錄下提供一個靜態站點服務

假設你正使用一個不同於默認目錄(/var/www/html)的目錄來提供一個靜態站點服務,例如 /websites 目錄(這種情形會出現在當你把你的網路文件存儲在一個共享網路設備上,並需要將它掛載在 /websites 目錄時)。

a). 在 /websites 下創建一個 index.html 文件並包含如下的內容:
<html><h2>SELinux test</h2></html>

假如你執行
# ls -lZ /websites/index.html

你將會看到這個 index.html 已經被標記上了 default_t SELinux 類型,而 Apache 不能訪問這類文件:

檢查 SELinux 文件的許可權

b). 將 /etc/httpd/conf/httpd.conf 中的 DocumentRoot 改為 /websites,並不要忘了 更新相應的 Directory 塊。然後重啟 Apache。

c). 瀏覽 http://<web server IP address>,則你應該會得到一個 503 Forbidden 的 HTTP 響應。

d). 接下來,遞歸地改變 /websites 的標志,將它的標志變為 httpd_sys_content_t 類型,以便賦予 Apache 對這些目錄和其內容的只讀訪問許可權:
# semanage fcontext -a -t httpd_sys_content_t "/websites(/.*)?"

e). 最後,應用在 d) 中創建的 SELinux 策略:
# restorecon -R -v /websites

現在重啟 Apache 並再次瀏覽到 http://<web server IP address>,則你可以看到被正確展現出來的 html 文件:

確認 Apache 頁面

總結

在本文中,我們詳細地介紹了 SELinux 的基礎知識。請注意,由於這個主題的廣泛性,在單篇文章中做出一個完全詳盡的解釋是不可能的,但我們相信,在這個指南中列出的基本原則將會對你進一步了解更高級的話題有所幫助,假如你想了解的話。

『叄』 幻影pin怎麼用啊, 一直是驅動存在,但驅動失敗,

樓上不懂不要說…你可以切換模式…不行的話去加幻影官方群換驅動文件,或換root軟體,再不行就刷機,最後可以換手機了

『肆』 selinux常用參數

1)ls命令
在命令後加個 -Z 或者加 –context
[root@python azureus]# ls -Z
-rwxr-xr-x fu fu user_u:object_r:user_home_t azureus
-rw-r--r-- fu fu user_u:object_r:user_home_t Azureus2.jar
-rw-r--r-- fu fu user_u:object_r:user_home_t Azureus.png
2)chcon
更改文件的標簽
[root@python tmp]# ls --context test.txt
-rw-r--r-- root root root:object_r:staff_tmp_t test.txt
[root@python tmp]# chcon -t etc_t test.txt
[root@python tmp]# ls -lZ test.txt
-rw-r--r-- root root root:object_r:etc_t test.txt
3)restorecon
當這個文件在策略里有定義是,可以恢復原來的 文件標簽。
4)setfiles
跟chcon一樣可以更改一部分文件的標簽,不需要對整個文件系統重新設定標簽。
5)fixfiles
一般是對整個文件系統的, 後面一般跟 relabel,對整個系統 relabel後,一般我們都重新啟動。如果,在根目錄下有.autorelabel空文件的話,每次重新啟動時都調用 fixfiles relabel
6)star
就是tar在SELinux下的互換命令,能把文件的標簽也一起備份起來。
7)cp
可以跟 -Z, --context=CONTEXT 在拷貝的時候指定目的地文件的security context
8)find
可以跟 –context 查特定的type的文件。
例子:
find /home/fu/ --context fu:fu_r:amule_t -exec ls -Z {} \:
9)run_init
在sysadm_t裏手動啟動一些如Apache之類的程序,也可以讓它正常進行,domain遷移。

閱讀全文

與selinuxmodchanger相關的資料

熱點內容
網路適配器電源管理 瀏覽:261
c盤系統文件損壞win10 瀏覽:364
速達h5賬號密碼 瀏覽:345
哪個網站有微博數據 瀏覽:47
易觀大數據官網怎麼用 瀏覽:347
uibot怎麼設置編程語言 瀏覽:610
tt2文件可以刪除嗎 瀏覽:254
手機酷狗app怎麼關閉開機啟動 瀏覽:248
微信一元購平台 瀏覽:482
蘋果賬號玩安卓游戲嗎 瀏覽:688
提取單元格的所有資料庫 瀏覽:654
java超大文本 瀏覽:322
java聲明常量 瀏覽:528
電腦編程語言怎麼樣 瀏覽:421
wordpress頁面復制 瀏覽:677
app怎麼改流量范圍 瀏覽:1
手機相片源文件怎麼發微信 瀏覽:538
mac上播放swf文件格式 瀏覽:892
linux中更改文件的群組 瀏覽:373
app使用照相許可權的目的是什麼 瀏覽:315

友情鏈接