帮助与文档

帮助与文档 >  云服务器 > 防火墙ip封堵

防火墙ip封堵

调试脚本 $results = shell_exec('echo Abcd@8899 | sudo -S firewall-cmd --add-port=7029/tcp --permanent 2>&1 ');

2.php.ini 放开 shell_exec 执行权限

3.www加入sudoer,并且www需要密码,你需要passwd www给www用设置一个密码。


image.png



方案一


1. www先去掉sudoer权限,并且在/etc/passwd中恢复/sbin/nologin,禁止www用户的登录权限,来保证安全

2. 在php的脚本,执行的命令改为,touch /tmp/run;sleep 2s;cat /tmp/result.txt;,作为一个触发命令


while true; do

    if [ ! -f "/tmp/run" ]; then

        echo "command here"


        # 执行结束后,清理触发文件

        rm -f /tmp/run

    fi

    sleep 1s

done


3. 计划任务的时间颗粒度低,可以使用systemd服务,来专门执行扫描的动作


方案二


1. 同上

2. 我写一个go程序,接收请求,执行脚本,然后返回。

3. 在php的脚本,执行的命令改为:curl http://127.0.0.1:8080/?param=test,会触发我的程序执行脚本。

4. 程序以systemd服务运行。



如果编译shell

安装go,然后go build就行了。