linux下 hook sethostname

要想禁止修改主机名,我们首先要知道怎么能修改主机名。

1.hostname xxx 这个调用了系统调用函数sethostname(); 修改的位置/proc/sys/kernel/hostname

2.sysctl kernel.hostname = xxx  调用了write 修改的位置/proc/sys/kernel/hostname

3.vi /etc/hostname 然后在写。调用了write

前两个都是临时修改主机名(重启之后失效),第三个是重启之后才生效,开机是自动读取配置文件下的hostname。

这样我们就开始分析:

1和2,hook住sethostname和write,write通过fd得到路径名是不是/proc/sys/kernel/hostname(内核里的路径就是/sys/kernel/hostname)

3 可以在写一个开机脚本,一开机就修改过来。

2和3也可以用inotify 来监听/proc/sys/kernel/hostname和/etc/hostname是否发生改动删除移动(IN_MODIFY | IN_DELETE_SELF | IN_MOVE_SELF),这个就比较强硬一些。

猜你喜欢

转载自blog.csdn.net/lyw13522476337/article/details/79657927