皮皮网
皮皮网

【趋势黑马源码】【中一源码】【合肥房源码】源码关闭selinux

来源:没有正品溯源码 发表时间:2024-12-23 00:33:55

1.SELinux基本操作
2.CentOS 6.2编译安装Nginx1.0.14+MySQL5.5.22+PHP5.3.10步骤分享
3.CentOS 6.3下使用Gitosis安装搭建Git Server教程

源码关闭selinux

SELinux基本操作

       SELinux,源码作为一款强化安全的关闭Linux操作系统,其设计初衷是源码让大多数应用程序无需修改即可在其上运行,只有少数几个经过特别调整的关闭RPM包大约个。它扩展了原有的源码文件系统如EXT3,并对一些命令进行了扩充,关闭趋势黑马源码还新增了一些功能。源码下面是关闭一些基本操作命令的介绍。

       1. ls 命令:在命令后添加 -Z 或 --context 可以查看文件的源码标签,如 ls -Z。关闭

       2. chcon:用于更改文件的源码标签,例如,关闭chcon -t etc_t test.txt 可以更改文件类型。源码中一源码

       3. restorecon:当文件在策略中定义后,关闭可以恢复其原始标签。源码

       4. setfiles:类似 chcon,可以对部分文件标签进行更改,无需重置整个系统。

       5. fixfiles:通常用于整个文件系统,特别是配合 relabel 使用,系统重启后可能需要调用 fixfiles relabel。

       6. star:SELinux下的tar命令替代,支持备份文件及其标签。

       7. cp:在拷贝文件时,可以使用 -Z 或 --context=CONTEXT 指定目标文件的合肥房源码安全上下文。

       8. find:配合 --context 可以查找特定类型文件。

       9. run_init:在sysadm_t权限下启动程序,如Apache,同时确认进程在哪个domain运行。

       . id 和 newrole:用来确认用户security context和更改权限。

       . getenforce 和 setenforce:分别用于获取和设置SELinux模式。

       . sestatus:显示SELinux状态和相关信息。

       . Audit2allow:处理日志,将违反策略行为转换为access vector,对安全策略开发有重要作用。

       . checkmodule 和 semodule_package:用于编译和创建模块。

       . semodule 和 semanage:管理模块和策略的偷口令源码强大工具,semanage尤其适合无策略源代码管理。

扩展资料

       SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux® 上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。

CentOS 6.2编译安装Nginx1.0.+MySQL5.5.+PHP5.3.步骤分享

       说明:

       操作系统:CentOS 6.2 位

           准备篇:

           一、配置好IP、DNS 、网关,源码搭建诚信确保使用远程连接工具能够连接服务器

           二、配置防火墙,开启端口、端口

           vi /etc/sysconfig/iptables

           -A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT(允许端口通过防火墙)

           -A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT(允许端口通过防火墙)

           特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的端口这条规则的下面

           添加好之后防火墙规则如下所示:

           #########################################################

           # Firewall configuration written by system-config-firewall

           # Manual customization of this file is not recommended.

           *filter

           :INPUT ACCEPT [0:0]

           :FORWARD ACCEPT [0:0]

           :OUTPUT ACCEPT [0:0]

           -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

           -A INPUT -p icmp -j ACCEPT

           -A INPUT -i lo -j ACCEPT

           -A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT

           -A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT

           -A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT

           -A INPUT -j REJECT --reject-with icmp-host-prohibited

           -A FORWARD -j REJECT --reject-with icmp-host-prohibited

           COMMIT

           #########################################################

           /etc/init.d/iptables restart #最后重启防火墙使配置生效

           三、关闭SELINUX

           vi /etc/selinux/config

           #SELINUX=enforcing #注释掉

           #SELINUXTYPE=targeted #注释掉

           SELINUX=disabled #增加

           :wq 保存,关闭

           shutdown -r now #重启系统

           四 、系统约定

           软件源代码包存放位置:/usr/local/src

           源码包编译安装位置:/usr/local/软件名字

           五、下载软件包

           1、下载nginx(目前稳定版)

           .php.net/distributions/php-5.3..tar.gz

           5、下载cmake(MySQL编译工具)

           f /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)

           vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加

           datadir = /data/mysql #添加MySQL数据库路径

           ./scripts/mysql_install_db --user=mysql #生成mysql系统数据库

           cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动

           chmod /etc/init.d/mysqld #增加执行权限

           chkconfig mysqld on #加入开机启动

           vi /etc/rc.d/init.d/mysqld #编辑

           basedir = /usr/local/mysql #MySQL程序安装路径

           datadir = /data/mysql #MySQl数据库存放目录

           service mysqld start #启动

           vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行

           export PATH=$PATH:/usr/local/mysql/bin

           下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。

           ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql

           ln -s /usr/local/mysql/include/mysql /usr/include/mysql

           shutdown -r now #需要重启系统,等待系统重新启动之后继续在终端命令行下面操作

           mysql_secure_installation #设置Mysql密码

           根据提示按Y 回车输入2次密码

           或者直接修改密码/usr/local/mysql/bin/mysqladmin -u root -p password "" #修改密码

           service mysqld restart #重启

           到此,mysql安装完成!

           五、安装 nginx

           groupadd www #添加www组

           useradd -g www www -s /bin/false #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统cd /usr/local/src

           tar zxvf nginx-1.0..tar.gz

           cd nginx-1.0.

           ./configure --prefix=/usr/local/nginx --user=www --group=www --with-tl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl #配置

           make #编译

           make install #安装

           cp php.ini-production /usr/local/php5/etc/php.ini #复制php配置文件到安装目录

           rm -rf /etc/php.ini #删除系统自带配置文件

           ln -s /usr/local/php5/etc/php.ini /etc/php.ini #添加软链接

           cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

           vi /usr/local/php5/etc/php-fpm.conf #编辑

           user = www #设置php-fpm运行账号为www

           group = www #设置php-fpm运行组为www

           pid = run/php-fpm.pid #取消前面的分号

           设置 php-fpm开机启动

           cp /usr/local/src/php-5.3./sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录

           chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限

           chkconfig php-fpm on #设置开机启动

           vi /usr/local/php5/etc/php.ini #编辑配置文件

           找到:;open_basedir =

           修改为:open_basedir = .:/tmp/ #防止php木马跨站,重要!!

           找到:disable_functions =

           修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

           #列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

           找到:;date.timezone =

           修改为:date.timezone = PRC #设置时区

           找到:expose_php = On

           修改为:expose_php = OFF #禁止显示php版本的信息

           找到:display_errors = On

           修改为:display_errors = OFF #关闭错误提示

           七、配置nginx支持php

           vi /usr/local/nginx/conf/nginx.conf

           修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改

           user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php5/etc/php-fpm.conf中的user,group配置相同,否则php运行出错

           index index.php index.html index.htm; #添加index.php

           # pass the PHP scripts to FastCGI server listening on .0.0.1:

           #

           location ~ /.php$ {

           root html;

           fastcgi_pass .0.0.1:;

           fastcgi_index index.php;

           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

           include fastcgi_params;

           }

           #取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径

           /etc/init.d/nginx restart #重启nginx

           八、配置php支持Zend Guard

           安装Zend Guard

           cd /usr/local/src

           mkdir /usr/local/zend #建立Zend安装目录

           tar xvfz ZendGuardLoader-php-5.3-linux-glibc-i.tar.gz #解压安装文件

           cp ZendGuardLoader-php-5.3-linux-glibc-i/php-5.3.x/ZendGuardLoader.so /usr/local/zend/ #拷贝文件到安装目录

           vi /usr/local/php5/etc/php.ini #编辑文件

           在最后位置添加以下内容

           [Zend Guard]

           zend_extension=/usr/local/zend/ZendGuardLoader.so

           zend_loader.enable=1

           zend_loader.disable_licensing=0

           zend_loader.obfuscation_level_support=3

           zend_loader.license_path=

           测试篇

           cd /usr/local/nginx/html/ #进入nginx默认网站根目录

           rm -rf /usr/local/nginx/html/* #删除默认测试页

           vi index.php #新建index.php文件

           ?php

           phpinfo();

           ?

           :wq! #保存

           chown www.www /usr/local/nginx/html/ -R #设置目录所有者

           chmod /usr/local/nginx/html/ -R #设置目录权限

           shutdown -r now #重启

           在客户端浏览器输入服务器IP地址,可以看到相关的配置信息!

           service nginx restart #重启nginx

           service mysqld restart #重启mysql

           /usr/local/php5/sbin/php-fpm #启动php-fpm

           /etc/rc.d/init.d/php-fpm restart #重启php-fpm

           /etc/rc.d/init.d/php-fpm stop #停止php-fpm

           /etc/rc.d/init.d/php-fpm start #启动php-fpm

           #############################################################################

           备注:

           nginx默认站点目录是:/usr/local/nginx/html/

           权限设置:chown www.www /usr/local/nginx/html/ -R

           MySQL数据库目录是:/data/mysql

           权限设置:chown mysql.mysql -R /data/mysql

           到此,CentOS 6.2下 Nginx1.0.+MySQL5.5.+PHP5.3.+Zend Guard Loader基本运行环境搭建完成!

CentOS 6.3下使用Gitosis安装搭建Git Server教程

       Git作为一个分布式的版本控制系统,使用git的时候,一般和服务器通讯使用的是ssh协议,用ssh的主要优点是速度快(传输前数据会先压缩,比HTTP快),安全,方便读写。

       客户端通过ssh访问服务器端的验证方式一般有两种,一种是用户名密码的方式,一种是使用公私钥认证的方式. 使用公私钥的方式比较方便,无需每次登录输入密码。

       某个受信任的客户端的公钥会被设置在服务器端的 ~/.ssh/authorized_keys文件中,有关此文件的格式可以参见 sshd的用户手册 man sshd . authorized_keys有个比较厉害的功能是 支持 command参数,使得每次用户使用此公钥进行验证的时候执行此后面的命令.这样就可以做一些逻辑处理了.

       一般git库的管理需要权限控制,如何方便简单的进行库的权限管理呢? authorized_keys是一个思路,指定特定command参数,每次验证好用户后首先执行相关逻辑,检测当前用户是否具有某个权限。 所以便有了gitosis,与其说gitosis是一个git权限管理系统,还不如说它是一个authorized_keys文件管理器.

       解决方案:

环境部署

       操作系统:              centos6.3 x

           Git: git-1.7.1

           Gitosis:                   Gitosis

           Gitweb:                   1.7.1-3        

           OpenSSH Server:     openssh-server-5.3p1

           apache:                  .pool.ntp.org

三.安装apache

       传送门:/tv/gitosis.git

           # cd gitosis

           # python setup.py install

       3.为gitosis创建系统用户

       复制代码

           

       代码如下:

       # useradd -m git

           # passwd git

       4. 运行gitosis

       (1).将管理员生成的公钥上传或拷贝到服务器上。这里的公钥需要在git服务器管理员下使用ssh-keygen命令来创建

       复制代码

           

       代码如下:

       # su - git

       保证web页面有权限显示该仓库内容

       复制代码

           

       代码如下:

       # chmod -R /home/git

           # ssh-keygen -t rsa

           # cp ~/.ssh/id_rsa.pub /tmp

       (2).初始化gitosis

       进入到拷贝过来的id_rsa.pub所在目录

       复制代码

           

       代码如下:

       # cd /tmp

           # gitosis-init id_rsa.pub

       此时,会在/home/git目录下生成gitosis仓库和配置目录

       复制代码

           

       代码如下:

       # cd /home/git

           # ll

           ----------------------------------------------------------------

           drwxr-xr-x 2 git git Aug : gitosis

           drwxr-xr-x 4 git git Aug : repositories

           ---------------------------------------------------------------

       (3).切换回当前(root)用户

       复制代码

           

       代码如下:

       # exit

       (4).配置权限

       如果想要别人能够clone gitosis-admin.git,需要执行以下操作:

       复制代码

           

       代码如下:

       # chmod /home/git/repositories/gitosis-admin.git/hooks/post-update

       至此,gitosis的安装工作已完成,其相关配置可以有管理员来操作,然后再提交到服务器上.

           (5)现在可以试一下用初始化 Gitosis 的公钥的拥有者身份 SSH 登录服务器,应该会看到类似下面这样:

       复制代码

           

       代码如下:

       # su - git

           $ ssh git@.0.0.1

           ------------------------------------------------

           PTY allocation request failed on channel 0

           ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.

           Connection to gitserver closed.

           ------------------------------------------------

       说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令,所以它切断了连接。那么,现在运行一个实际的 Git 命令 — 克隆 Gitosis 的控制仓库:

       在你本地计算机上克隆git仓库

       复制代码

           

       代码如下:

       # cd /tmp

           # git clone git@gitserver:gitosis-admin.git

       这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:

       红色为git仓库配置,蓝色为实际仓库保存的文件

       复制代码

           

       代码如下:

       # cd gitosis-admin

           # ll -a

           ----------------------------------------------------------

           total

           drwxr-xr-x 4 git git Aug : .

           drwxr-xr-x 4 git git Aug : ..

           drwxr-xr-x 8 git git Aug : .git

           -rwxr-xr-x 1 git git Aug : gitosis.conf

           drwxr-xr-x 2 git git Aug : keydir

           -----------------------------------------------------------

       以上操作相当于,系统git用户初始化并成为gitosis管理员,且利用其管理员权限将gitosis-admin仓库clone到本地.

           5.添加本地用户john和仓库test到gitosis,并和管理员git合作管理gitosis

       1. 用户john添加并发送id_rsa.pub给git

       复制代码

           

       代码如下:

       # su -

           # useradd john passwd john

           # su - john

           # ssh-keygen -t rsa

           -----------------------------------------------------------

           Generating public/private rsa key pair.

           Enter file in which to save the key (/home/john/.ssh/id_rsa):

           Created directory '/home/john/.ssh'.

           Enter passphrase (empty for no passphrase):

           Enter same passphrase again:

           Your identification has been saved in /home/john/.ssh/id_rsa.

           Your public key has been saved in /home/john/.ssh/id_rsa.pub.

           -----------------------------------------------------------

           # cp /home/john/.ssh/id_rsa.pub /tmp

       2. gitosis管理员git分配john权限

       复制代码

           

       代码如下:

       # su - git

           # mkdir projects

           # cd ~/projects

           # git clone git@node2.example.com:gitosis-admin

           # cd gitosis-admin

           # cat gitosis.conf

           ------------------------------------------------

           [gitosis]

           [group gitosis-admin]

           writable = gitosis-admin

           members = git@node2.example.com

           ------------------------------------------------

           # ls keydir/

           -------------------------

           git@node2.example.com.pub

           -------------------------

           # cp /tmp/id_rsa.pub keydir/john.pub

           # vi gitosis.conf

           ————————————————————————————————————

           [gitosis]

           [group gitosis-admin]

           writable = gitosis-admin

           members = git@node2.example.com

           [group test]

           writable = test

           members = git@node2.example.com john

           ————————————————————————————————————

           # git add .

           # git commit -am "add member john and project foo"

           # git push

       3. 用户git添加项目test

       复制代码

           

       代码如下:

       # su - git

           # cd ~/projects

           # mkdir test

           # cd test

           # git init

           # echo "Hello World." hello.txt

           # git add hello.txt

           # git commit -am 'first commit'

           # git remote add origin git@node2.example.com:test.git

           # git push origin master

       4. 用户 john clone test并修改hello.txt

       复制代码

           

       代码如下:

       # su - john

           # git clone git@node2.example.com:test.git

           # cd test

           # date hello.txt

           # git commit -am 'add time to hello.txt' git push

       整个过程分为:

       1.通过修改gitosis-admin管理gitosis用户权限,需要clone到本地,然后修改配置文件,最后add push将结果推送到远程实现权限修改.

       2.添加系统用户,生成该用户公钥,并将其复制到keydir下,实现该用户有权限进行git等相关操作.

       3.登陆该用户账户进行git相关操作,修改完后commit,push到中服务器即可完成仓库权限配置.

七.安装gitweb

       1.首先我们需要Git的源码,其中带有GitWeb,并能生成定制的CGI脚本:

       复制代码

           

       代码如下:

       # git clone git://git.kernel.org/pub/scm/git/git.git

           # cd git/

           # make GITWEB_PROJECTROOT="/home/git/repositories" prefix=/usr gitweb

           # cp -rf gitweb /usr/local/apache2/htdocs/

       注: 通过指定 GITWEB_PROJECTROOT 变量告诉编译命令 Git 仓库的位置

           2.设置Apache以CGI方式运行该脚本,并添加一个VirtualHost配置:

       (1).加载apache的vhost配置文件

       复制代码

           

       代码如下:

       # vi /usr/local/apache2/conf/

           DocumentRoot /usr/local/apache2/htdocs/gitweb

           Directory /usr/local/apache2/htdocs/gitweb

           Options +ExecCGI

           AllowOverride All

           order allow,deny

           Allow from all

           AddHandler cgi-script cgi pl

           DirectoryIndex gitweb.cgi

           /Directory

           /VirtualHost

           ——————————————————————————————————————————

       (4).安装Time/HiRes.pm perl模块

       首次打开web页面报Can't locate Time/HiRes.pm in @INC ….错误

       解决方法:

       复制代码

           

       代码如下:

       # yum install perl-devel perl-CPAN -y

           # perl -MCPAN -e shell

           cpan[2] install Time::HiRes

           cpan[3] exit

       (5).重启apache服务

       复制代码

           

       代码如下:

       # /usr/local/apache2/bin/apachectl restart

       (6).修改本机HOST,并打开gitweb页面

       

           

       大功告成....

相关栏目:休闲