一、前言:
对于运维管理人员,ip地址进行管理很重要,很多公司都是采用电子文档的形式,以手工更新为主,对ip地址和子网的实际使用情况无法进行有效的实时监控和统计,随着网络变得越来越大,ip设备越来越多,手工IP地址管理将会成为网络管理和扩展的瓶颈。
二软件介绍:
phpIPAM是一个开源的Web IP地址管理应用程序(IPAM)。其目标是提供轻松,现代和有用的IP地址管理。它是基于php的应用程序,带有MySQL数据库后端,使用jQuery库,ajax和HTML5 / CSS3功能。
三、搭建系统:
官方安装教程指南链接:
https:///documents/installation/
https:///news/phpipam-installation-on-centos-7/
一、设置系统环境和安装依赖包 1、禁用SELINUX,并重启服务器
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config && reboot
2、关闭防火墙 systemctl stop firewalld
3、 更换阿里云wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
4、安装依赖包
yum install wget vim net-tools httpd mariadb-server php php-cli php-gd php-common php-ldap php-pdo php-pear php-snmp php-xml php-mysql php-mbstring git -y
#如果您需要API的crypt方法,您还需要安装php-mcrypt php扩展
yum install epel-release -y
yum -y install php-mcrypt
# centos7版本好坑,PHP、mariadb版本都低需要升级
yum install -y MariaDB-server
yum install wget vim net-tools httpd -y git
5、 设置区域设置(可选)
首先,让我们设置要在服务器上使用的正确区域设置,它们也是翻译所必需的。将以下内容添加到文件 /etc/environment
对于en_US编码,如果您要使用不同的编码,请添加您的编码:
[root@localhost ~]# more /etc/environment LC_ALL=en_US.utf-8 LANG=en_US.utf-8
二、配置和运行 Apache
1、修改apache配置文件/etc/httpd/conf/httpd.conf,主要是修改以下两个地方
vim /etc/httpd/conf/httpd.conf
ServerName localhost:80
<Directory '/var/www/html'> #修改目录设置以允许mod_rewrite URL重写
Options FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
#Require all granted
</Directory>
2、检查配置文件,显示 OK 状态为正常
httpd -t -f /etc/httpd/conf/httpd.conf
3、修改/etc/php.ini配置文件的时区为Asia/Shanghai
vim /etc/php.ini
date.timezone = Asia/Shanghai
4、启动httpd并配置开机启动
#开机启动Apache
systemctl enable httpd
#启动Apache
systemctl start httpd
#其他方法
现在启动apache服务器,并确保它在引导时启动:
sudo service httpd start
sudo chkconfig httpd on
5、如果需要,使用以下命令将http/https流量从外部接口传递到web服务器也需要防火墙规则(可选):
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload
三、初始化配置mariaDB
①启动mariadb数据库
#启动mariadb
systemctl start mariadb
#开机启动mariadb
systemctl enable mariadb
其他方法:
sudo service mariadb start
sudo chkconfig mariadb on
②初始化mariaDB,配置好密码 mysql_secure_installation
# 从10.5.2开始已经由mariadb-secure-installation命令替换
mariadb-secure-installation
四、下载和配置phpipam
①下载phpipam文件代码到/var/www/html
cd /var/www/html/
git clone https://github.com/phpipam/phpipam.git .
git checkout 1.6
git clone https://github.com/phpipam/phpipam.git /var/www/phpipam/
cd /var/www/phpipam
git checkout 1.6
git submodule update --init --recursive
#这将把当前代码下载到/var/www/中的phpipam目录。为此,我们还需要安装子模块
②文件权限配置
sudo chown apache:apache -R /var/www/html/
sudo chcon -t httpd_sys_content_t /var/www/html/ –R #报错
cd /var/www/html/
find . -type f -exec chmod 0644 {} \;
find . -type d -exec chmod 0755 {} \;
sudo chcon -t httpd_sys_rw_content_t app/admin/import-export/upload/ -R #报错
sudo chcon -t httpd_sys_rw_content_t app/subnets/import-subnet/upload/ -R #报错
sudo chcon -t httpd_sys_rw_content_t css/1.6.0/images/logo/ -R #报错
③拷贝必要文件到相关目录
cp /var/www/html/config.dist.php /var/www/html/config.dist.php.bak
mv /var/www/html/config.dist.php /var/www/html/config.php
④编辑/var/www/html/config.php文件(不用改)
vim /var/www/html/config.php
define('BASE', '/phpipam'); #修改这行
See http://phbase connection details
******************************/
$db['host'] = 'localhost';
$db['user'] = 'phpipam_user';
$db['pass'] = 'phpipam_Pass';
$db['name'] = 'phpipam_db';
$db['port'] = 3306;
##/**
⑤重启httpd服务
systemctl restart httpd
5、配置phpipam 打开地址:http://服务器IP/phpipam ①选择新的phpipam安装
② 安装pfpipam数据库
③设置数据库
④填写系统初始化信息
⑤登录系统
四、使用教程:
① 登录成功后会自动跳转到主界面
②修改 admin 语言,改成中文(如图操作),修改后需要退出重新登陆
③子网创建(添加),默认会自带一些测试子网,可以手动删除
④子网页面预览
⑤选中对应的 IP 可以进行编辑
要启用网络扫描,我们有两个选项:禁用SELinux或为其创建策略。建议创建SELinux策略,请阅读 这 话题。现在我们将通过输入以下命令禁用SELinux setenforce 0
命令:
[root@localhost html]# getenforce
Enforcing
[root@localhost html]# setenforce 0
[root@localhost html]# getenforce
Permissive
[root@localhost html]#
这将启用从web、发现等进行icmp检查。要同时扫描网络并定期检查地址状态,请阅读
从0.9版开始,有一个选项可以自动检查选定子网的已配置主机的状态,并发现新主机。我收到了一些相关的问题,所以这里有一个简短的描述和指南。
首先,建议pcntl支持php cli,这样phpipam可以进行并行icmp检查,这大大减少了检查状态所需的时间。您可以使用以下命令检查您的安装是否正常:
php -m | grep pcntl
1.)配置pinging的参数 在管理》IPAM设置(Ping状态间隔)下设置状态的时间参数,phpipam将根据这些值将主机设置为关闭/启动。此外,设置正确的icmp参数和路径。
2.)选择检查哪些网络 现在您必须选择哪些子网应该扫描已配置主机的状态。 转到编辑子网并选中“检查主机状态”。这将告诉cron脚本检查该子网内主机的状态。“发现新主机”将尝试为该子网寻找新主机,并将它们自动添加到phpipam数据库中。
3.)添加cron脚本 每15分钟检查一次:
自动扫描
yum install fping
setcap 'CAP_NET_RAW+ep' /usr/sbin/fping #有一步是给 fping读网卡的权限
crontab -e
*/15 * * * * /usr/bin/php /var/www/html/functions/scripts/pingCheck.php >> /dev/null 2>&1
*/15 * * * * /usr/bin/php /var/www/html/functions/scripts/discoveryCheck.php >> /dev/null 2>&1
crontab -l
# 官方
# update host statuses exery 15 minutes
*/15 * * * * /usr/local/bin/php /usr/local/www/phpipam/functions/scripts/pingCheck.php
*/15 * * * * /usr/local/bin/php /usr/local/www/phpipam/functions/scripts/discoveryCheck.php
当然,根据您的安装更改路径🙂
附: icmp检查的SElinux策略
许多关于扫描子网和更新主机状态的问题都与SElinux的启用有关。到目前为止,解决方案是完全禁用SElinux,但这比其他任何方法都更适合。Robert好心地分享了SElinux策略,如果您的服务器上启用了SElinux,那么phpipam应该使用SElinux策略。
基本上,它允许为非根用户打开执行ping命令所需的原始IP套接字。
1)创建文件http_ping.tt并向其中添加以下内容:
module http_ping 1.0; require { type httpd_t; class capability net_raw; class rawip_socket { getopt create setopt write read }; } #============= httpd_t ============== allow httpd_t self:capability net_raw; allow httpd_t self:rawip_socket { getopt create setopt write read }; 2)运行以下命令(作为root用户):
checkmodule -M -m -o http_ping.mod http_ping.tt semodule_package -o http_ping.pp -m http_ping.mod semodule -i http_ping.pp
这也有助于检查状态,setenforce 0:
[root@ipam selinux]# getenforceEnforcing [root@ipam selinux]# setenforce 0 [root@ipam selinux]# getenforcePermissive [root@ipam selinux]# 然后添加正确的ping权限
[root@ipam selinux]# ls -ls `which fping` 88 -rwxr-xr-x. 1 root root 89927 Apr 3 17:11 /usr/local/sbin/fping [root@ipam selinux]# chmod 4755 /usr/local/sbin/fping [root@ipam selinux]# ls -ls `which fping` 88 -rwsr-xr-x. 1 root root 89927 Apr 3 17:11 /usr/local/sbin/fping [root@ipam selinux]#
brm
fping软件配置:
检查你的系统中有没有fping这个软件
[root@web phpipam.t.com]# fping -v
fping: Version 3.10
fping: comments to david@schweikert.ch
如果没有,请通过以下命令安装:
[root@web phpipam.t.com]# yum install fping -y
机柜乱码问题
在win系统下复制字体文件
到/var/www/html/css/fonts
直接将字体文件改名为:
或修改文件/var/www/html/functions/classes/class.Rackspace.php,找到“private function imageCenterString”这个php function,修改ttf字体为文件名
机柜正反面由字母替换为中文汉字方法
找到“public function draw_rack”,“[F]”替换为“[正面]”,“[R]”替换为“[背面]”
下图中,第一个字体是机柜U数那个数字用的字体,不用改,即“MesloLGS-Regular.ttf”;第二个字体改成“HarmonyOS_Sans_SC_Regular.ttf”,自己保存退出后,刷新网页试试效果就知道用途了!