分类 Linux 下的文章

使用Snuffleupagus保护PHP

之前介绍了使用Suhosin保护PHP,由于Suhosin仅支持到php5.x,对于php7.x及以上版本可以试试Snuffleupagus

编译安装:

git clone https://github.com/jvoisin/snuffleupagus
cd snuffleupagus/src
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-snuffleupagus
make
make install

然后在php.ini中引用

[Snuffleupagus]
extension=snuffleupagus.so
sp.configuration_file=/usr/local/php/conf.d/snuffleupagus.rules

其中/usr/local/php/conf.d/snuffleupagus.rules为规则文件,内容可参考:

sp.eval_blacklist.list("base64_decode,system,exec,shell_exec,passthru,proc_open,proc_close, proc_get_status,checkdnsrr,getmxrr,getservbyname,getservbyport, syslog,popen,show_source,highlight_file,dl,socket_listen,socket_create,socket_bind,socket_accept, socket_connect, stream_socket_server, stream_socket_accept,stream_socket_client,ftp_connect, ftp_login,ftp_pasv,ftp_get,sys_getloadavg,disk_total_space, disk_free_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");

和Suhosin一样,可以设置函数黑白名单。
更多使用方法参考官网:https://snuffleupagus.readthedocs.io/config.html

为CentOS7升级gcc至9.3以上版本

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要永久生效的话,执行:

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

/usr/bin/rm: Argument list too long

ls | xargs -n 90 rm -rf

ls 列出当前目录下的所有文件,以空格作为分隔
xargs 是一个过滤器
-n 90 表示每90个文件作为一组
作为 命令 rm -rf 的参数,这样命令行就不会过长了。

Linux服务器快速屏蔽指定国家访问

1、安装 ipset

#Debian/Ubuntu 系统
apt-get -y install ipset
#CentOS 系统
yum -y install ipset

2、创建规则

#创建一个名为 krip 的规则
ipset -N krip hash:net
#下载国家 IP 段,以韩国为例
wget -P . http://www.ipdeny.com/ipblocks/data/countries/kr.zone
#将 IP 段添加到 krip 规则中
for i in $(cat /root/kr.zone ); do ipset -A krip $i; done

3、开始屏蔽

iptables -I INPUT -p tcp -m set --match-set krip src -j DROP

4、解除屏蔽

#-D 为删除规则
iptables -D INPUT -p tcp -m set --match-set krip src -j DROP

5、保存规则

service iptables save

CentOS7.x安装VNC

1、安装GNOME Desktop

yum groupinstall "GNOME Desktop" 

修改默认启动方式为图形化界面

systemctl set-default graphical.target

如果要换回成命令模式

systemctl set-default multi-user.target

2、安装VNC

yum install tigervnc-server

复制VNC启动脚本

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

vncserver@:1.service中的:1表示"桌面号",启动的端口号就是5900+桌面号,即是5901,如果再有一个就是2啦,端口号加1就是5902,以此类推。

- 阅读剩余部分 -