卖咖啡

卖咖啡 查看完整档案

填写现居城市  |  填写毕业院校  |  填写所在公司/组织填写个人主网站
编辑
_ | |__ _ _ __ _ | '_ \| | | |/ _` | | |_) | |_| | (_| | |_.__/ \__,_|\__, | |___/ 个人简介什么都没有

个人动态

卖咖啡 发布了文章 · 2月21日

ubuntu-20.04.1-desktop上phpipam的其他功能扩展

1. 启用HTTPS服务

  HTTPS是在HTTP基础上加入SSL,安全性更高。嫌麻烦,我们使用OpenSSL生成免费证书,并在apache配置SSL。

1.1 使用openssl生成免费证书

1.安装OpenSSL。

ipam@ubuntu:~/Downloads$ sudo apt-get install openssl

2.生成一个RSA私钥,其中des加密算法,生成2048位私钥。

ipam@ubuntu:~/Downloads$ openssl genrsa -des3 -out ca.key 2048

查看生成的私钥可以使用

ipam@ubuntu:~/Downloads$ openssl rsa -text -in ca.key

3.创建证书签名请求CSR文件,生成过程中会要求填写一些信息

ipam@ubuntu:~/Downloads$ openssl req -new -key ca.key -out ca.csr
Enter pass phrase for ca.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:cn
State or Province Name (full name) [Some-State]:cn
Locality Name (eg, city) []:cn
Organization Name (eg, company) [Internet Widgits Pty Ltd]:cn
Organizational Unit Name (eg, section) []:cn
Common Name (e.g. server FQDN or YOUR name) []:cn //填写即将发布url的根服务器,如*.example.cn
Email Address []:cn

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:cn
string is too short, it needs to be at least 4 bytes long
A challenge password []:cncn   //你的证书密码,如果不想设置密码,可以直接回车
> An optional company name []:cn

查看csr文件命令如下

ipam@ubuntu:~/Downloads$ openssl req -text -in ca.csr -noout

4.生成签名证书

ipam@ubuntu:~/Downloads$ openssl x509 -req -days 3650 -in ca.csr -signkey ca.key -out ca.crt
Signature ok
subject=C = cn, ST = cn, L = cn, O = cn, OU = cn, CN = cn, emailAddress = cn
Getting Private key
Enter pass phrase for ca.key:

1.2 配置apache

1.启用SSL模块
查看/etc/apache2/ports.conf端口配置文件

Listen 80

<IfModule ssl_module>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

  可以看到要使用443服务,需要先启用SSL模块。

ipam@ubuntu:~/Downloads$ sudo a2enmod ssl

2.修改/etc/apache2/sites-available/内的配置文件
  为了方便管理,证书文件和私钥,分别拷贝至/etc/apache2/ssl/certs/ca.crt以及/etc/apache2/ssl/private/ca.key。由于apache在该文件夹内已创建了示例配置文件default-ssl.conf,修改即可。

#三个部分必须修改
SSLEngine On
SSLCertificateFile    /etc/apache2/ssl/certs/ca.crt
SSLCertificateKeyFile /etc/apache2/ssl/private/ca.key

  也可以拷贝000-default.conf文件,并进行简单修改。命名为phpipam-ssl.conf,内容如下:

<VirtualHost *:443>
    # The ServerName directive sets the request scheme, hostname and port that
    # the server uses to identify itself. This is used when creating
    # redirection URLs. In the context of virtual hosts, the ServerName
    # specifies what hostname must appear in the request's Host: header to
    # match this virtual host. For the default virtual host (this file) this
    # value is not decisive as it is used as a last resort host regardless.
    # However, you must set it for any further virtual host explicitly.
    #ServerName www.example.com

    SSLEngine On
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/phpipam
    SSLCertificateFile /etc/apache2/ssl/certs/ca.crt
    SSLCertificateKeyFile /etc/apache2/ssl/private/ca.key
    # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
    # error, crit, alert, emerg.
    # It is also possible to configure the loglevel for particular
    # modules, e.g.
    #LogLevel info ssl:warn

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # For most configuration files from conf-available/, which are
    # enabled or disabled at a global level, it is possible to
    # include a line for only one particular virtual host. For example the
    # following line enables the CGI configuration for this host only
    # after it has been globally disabled with "a2disconf".
    #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

3.启用apache SSL配置
  若是修改了default-ssl.conf,则

ipam@ubuntu:/etc/apache2/sites-available$ sudo a2ensite default-ssl.conf 

文件名根据实际情况自行修改。
4.强制使用https
  由于之前配置过http服务,考虑强制转成https,即输入网址后自动跳转https服务。修改/etc/apache2/sites-available/000-default.conf,里面添加以下内容并保存。

RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R]

5.重载apache

ipam@ubuntu:/etc/apache2/sites-available$ sudo systemctl reload apache2.service 

或者重启

ipam@ubuntu:/etc/apache2/sites-available$ sudo systemctl restart apache2.service 

2. 数据库自动备份

  cron是一个Linux定时执行工具,在Ubuntu,可通过/etc/crontab文件进行查看,或者crontab -l
1.打开cron,并进行编辑。保存关闭有命令提示。

ipam@ubuntu:~/Downloads$ crontab -e

2.配置定时备份
  文件备份在/home/ipam/Documents/bak/。另外,%在crontab为换行,因此%之前需要添加转义字符\{}\之间有空格,\;之间没有空格,否则会报错 /usr/bin/find: 缺少“-exec”参数

#每天0时进行备份并对30天前的备份资料进行删除
* 0 */1 * * /usr/bin/mysqldump -uroot -p123456 phpipam > /home/ipam/Documents/bak/phpipam_bak_$(date "+\%Y\%m\%d").sql
* 0 */1 * * /usr/bin/find /home/ipam/Documents/bak/ -ctime +30 -exec rm {} \;

3. 定时扫描

  也是使用的crontab。

*/30 * * * * /usr/bin/php /var/www/phpipam/functions/scripts/pingCheck.php
*/30 * * * * /usr/bin/php /var/www/phpipam/functions/scripts/discoveryCheck.php

4. 参考资料(因为链接太多被判定为广告,需要的自行百度)

1. Config Server Firewall:How to Generate Self-signed SSL Certificate using OpenSSL in Ubuntu 18.04
2. 挑战者V:Ubuntu 16.04配置SSL免费证书
3. hiekay:ubuntu apache2 配置安装ssl证书,https]
4. 龙恩0707:使用openssl 生成免费证书
5. ubuntu wiki
6. linux 命令大全
7. nancy05:备份与还原mysql 数据库的常用命令
8. 大专栏 IP地址管理(IPAM)
9. crontab命令详解 含启动/重启/停止
10.killkill:crontab 的写法(@reboot, @1early...)
11. siaisjack:Linux下date命令,格式化输出,时间设置
12.听风:linux每日命令(21):find命令之exec*
13. leno米雷のcoding记录:Linux的find命令实例详解和mtime ctime atime

查看原文

赞 0 收藏 0 评论 0

卖咖啡 发布了文章 · 2月13日

ubuntu-20.04.1-desktop上部署phpipam

1. 介绍

  随着网络规模增大,单纯依靠Excel等电子表格已难以有效进行网络管理。存在以下问题:

  • 无法对填写信息的正确与否进行校验
  • 缺乏网络资源可视化管理
  • 异地管理困难
  • 多人维护时,存在版本问题

  在参考Kenelite的IPAM随笔维基百科-关于IPAM介绍后,开始了phpIPAM的安装使用。phpipam官网介绍有以下特性:
phpipam功能特性
  其中IP地址扫描、IP资源信息属性可配置、VLAN及子网管理以及用户权限的管理功能基本满足需求,要是带有OpUtils交换机端口映射管理功能就更好了!

2. 安装配置

2.1安装apache,mysql,php

#以下为官网教程的必要安装包
ipam@ubuntu:/$ sudo apt-get install apache2
ipam@ubuntu:~$ sudo apt-get install mariadb-server
ipam@ubuntu:~$ sudo apt-get install php 
ipam@ubuntu:~$ sudo apt-get install php7.4-pear
ipam@ubuntu:~$ sudo apt-get install php7.4-gmp
ipam@ubuntu:~$ sudo apt-get install php7.4-mysql
ipam@ubuntu:~$ sudo apt-get install php7.4-mbstring
ipam@ubuntu:~$ sudo apt-get install php7.4-gd
#mcrypt为php加密支持扩展库,从 php 7.1.0 已经将此扩展移除到PECL,需要手动安装,此处未进行安装
ipam@ubuntu:~$ sudo apt-get install php7.4-curl
ipam@ubuntu:~$ sudo apt-get install git 
#以下为官网教程外的php扩展库
#snmp扩展库为phpipam snmp功能模块的必要扩展库,建议安装,其他自己看着办
ipam@ubuntu:~$ sudo apt-get install php7.4-snmp
ipam@ubuntu:~$ sudo apt-get install php7.4-fpm php7.4-sqlite3 php7.4-gd php7.4-odbc php7.4-sybase php7.4-gmp php7.4-opcache php7.4-tidy php7.4-cli php7.4-imap php7.4-pgsql php7.4-xml php7.4-common php7.4-interbase php7.4-phpdbg php7.4-xmlrpc php7.4-intl php7.4-pspell php7.4-xsl php7.4-dba  php7.4-json php7.4-readline php7.4-zip php7.4-dev php7.4-ldap php7.4-snmp php7.4-enchant php7.4-soap#

2.2下载安装phpipam

方法一:通过git下载

ipam@ubuntu:/$ cd /var/www/
ipam@ubuntu:/var/www$ sudo mkdir phpipam
ipam@ubuntu:/var/www/phpipam$ sudo git clone https://github.com/phpipam/phpipam.git .
正克隆到 '.'...
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 26844 (delta 2), reused 8 (delta 2), pack-reused 26826
接收对象中: 100% (26844/26844), 19.15 MiB | 120.00 KiB/s, 完成.
处理 delta 中: 100% (19681/19681), 完成.

方法二:自行下载安装包进行部署

ipam@ubuntu:~/Downloads$ sudo cp phpipam-v1.4.2.tgz /var/www/
ipam@ubuntu:~/Downloads$ cd /var/www/
ipam@ubuntu:/var/www$ sudo tar -xvf phpipam-v1.4.2.tgz 

2.3配置apache、mysql

2.3.1修改apache关于phpipam目录的访问配置

  相关配置在/etc/apache2/apache2.conf。其中,

  • Directory是该配置将被应用的位置,此处为phpipam的目录。
  • Options FollowSymLinks为默认设置。
  • AllowOverride all表示.htaccess文件此目录的任何配置override对应的全局配置。
  • Require all granted允许来自所有主机的传入请求。
ipam@ubuntu:/var/www/phpipam$ cd /etc/apache2/
ipam@ubuntu:/etc/apache2$ sudo vim apache2.conf 
#增加/var/www/phpipam目录的设置
<Directory /var/www/phpipam>
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
</Directory>

  查看apache2.conf文件,可以知道apache对配置文件加载顺序,因此对 /var/www/phpipam 目录的配置也可以放在sites-enabled/000-default.conf。当然查看一下这个文件,可以得知其实是引用了sites-available/000-default.conf

#       /etc/apache2/
#       |-- apache2.conf
#       |       `--  ports.conf
#       |-- mods-enabled
#       |       |-- *.load
#       |       `-- *.conf
#       |-- conf-enabled
#       |       `-- *.conf
#       `-- sites-enabled
#               `-- *.conf

2.3.2修改php.ini文件的时区设置

  设置文件位于/etc/php/7.4/apache2/php.ini ,修改后保存关闭即可。

ipam@ubuntu:/var/www/phpipam$ grep timezone /etc/php/7.4/apache2/php.ini 
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
ipam@ubuntu:/var/www/phpipam$ sudo vim /etc/php/7.4/apache2/php.ini 
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Asia/Shanghai

2.3.3启用url_rewrite模块

  phpipam通过apache的mod_rewrite模块来实现url重写,该模块将查询的字符串转换成更具可读性的url。

ipam@ubuntu:/var/www/phpipam$ sudo a2enmod rewrite

  此命令在/etc/apache2/mods-enabled/rewrite/中创建指向/etc/apache2/mods-available/rewrite.load的符号链接,在apache重启后启用该模块。

2.3.4 修改http协议端口

  apache http默认使用的是80端口,正常情况下apache可以访问。但由于个人使用VMware部署的ubuntu,通过netstat -a发现80端口已被占用。因此需要进行修改。需要修改/etc/apache2/ports.conf

#此处80修改为新的端口
Listen 80

以及/etc/apache2/sites-available/000-default.conf

#此处80修改为新的端口
<VirtualHost *:80>

2.3.5 重启apache2

ipam@ubuntu:/$ sudo apache2ctl configtest #测试apache的配置是否存在语法上问题,正常显示syntax OK
ipam@ubuntu:/$ sudo systemctl restart apache2

2.3.6配置mysql root用户密码

  初次部署mysql时,root用户设置了随机密码。查看debian.cnf发现密码是隐藏的。

ipam@ubuntu:/etc/mysql$ sudo cat /etc/mysql/debian.cnf 
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host     = localhost
user     = root
password = 
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = root
password = 
socket   = /var/run/mysqld/mysqld.sock

可以通过以下命令进行修改。

ipam@ubuntu:/etc/mysql$ sudo mysql
MariaDB [(none)]> show databases;
MariaDB [(none)]> use mysql;
MariaDB [mysql]> select user,host ,plugin,authentication_string FROM user;
MariaDB [mysql]> UPDATE user SET plugin="mysql_native_password", authentication_string=PASSWORD("phpipam") WHERE user="root";#将mysql root用户密码设置为phpipam
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> exit;

重启mysql服务。

ipam@ubuntu:/$ sudo systemctl restart mysql 

2.4部署phpipam

2.4.1修改phpipam配置文件

  phpipam的主要配置设置存放在config.php中,虽然默认情况下此文件并不存在,但安装包中附带了一个示例配置文件config.dist.php。因此可以创建该文件的副本,并加以修改使用。

ipam@ubuntu:/$ cd /var/www/phpipam
ipam@ubuntu:/var/www/phpipam$ cp config.dist.php config.php

  查看config.php文件关于数据库连接部分内容,phpipam在部署过程中会在本机localhost上创建名为phpipam的数据库,用户及密码也进行设定。侦听端口为mysql的默认值TCP3306。根据需要自行修改,完成编辑后保存并关闭文件。

/**
 * database connection details
 ******************************/
$db['host'] = 'localhost';
$db['user'] = 'phpipam';
$db['pass'] = 'phpipamadmin';
$db['name'] = 'phpipam';
$db['port'] = 3306;

2.4.2安装phpipam

  这一过程包括为phpipam创建mysql数据库以及用户,web设置管理员用户账号。网页登录http://127.0.0.1:80,即可看到phpipam安装向导界面。
phpipam向导页
  包括三个选项:New phpipam installation、Migrate phpipam installation、Working installation。由于是新的phpipam安装,因此选择New phpipam installation,下个向导页包括三个选项:

  • Automatic database installation:自动数据库安装,向导将使用config.php中设置的信息来创建mysql数据库及用户。
  • MySQL import instructions:mysql导入说明,将使用mysql import工具从提供的文本创建数据库。
  • Manual database installation:手动安装数据库,即使用命令行安装。

  选择Automatic database installation即可。后续向导页为创建数据库及用户,因为需要足够权限的用户数据登录凭据,可选择使用root用户。
root创建数据库
  其中Show advanced options为高级选项。之后的安装过程按向导进行设置即可。

3.参考文献

1.phpipam官网
2.Kenelite IPAM随笔
3.小翼111 如何在Ubuntu 16.04上安装phpIPAM
4.大专栏 IP地址管理(IPAM)
5.体验盒子 phpIPAM – 免费开源的IP地址管理工具,重量级

查看原文

赞 0 收藏 0 评论 0

卖咖啡 关注了用户 · 2月9日

Java课代表 @zhengxl5566

JavaWeb一线开发,5年编程经验
微信公众号:Java课代表
专注分享 JavaWeb 开发实战技巧

关注 994

卖咖啡 关注了专栏 · 2月9日

Coding as Hobby

写技术文章就要脸皮够厚;1.不管别人写没写过,比不比自己写得好,2. 不在乎别人会不会打自己脸或者自己会不会打自己脸。

关注 1323

卖咖啡 关注了专栏 · 2月9日

终身学习者

我要先坚持分享20年,大家来一起见证吧。

关注 57100

卖咖啡 关注了专栏 · 2月9日

SegmentFault 行业快讯

第一时间为开发者提供行业相关的实时热点资讯

关注 63698

卖咖啡 关注了专栏 · 2月9日

有道技术团队

网易有道是中国领先的智能学习公司,致力于提供100%以用户为导向的学习产品和服务。 旗下有网易有道词典、有道精品课、有道云笔记、有道翻译官等多款深受用户喜爱的产品。

关注 5552

卖咖啡 关注了标签 · 2月9日

php

PHP,是英文超文本预处理语言 Hypertext Preprocessor 的缩写。PHP 是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML 中使用。PHP 的语法借鉴吸收 C语言、Java 和 Perl 等流行计算机语言的特点,易于一般程序员学习。(目前是 Web 开发性价比最高的语言)

关注 91533

卖咖啡 关注了标签 · 2月9日

python

Python(发音:英[ˈpaɪθən],美[ˈpaɪθɑ:n]),是一种面向对象、直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句。

Python支持命令式程序设计、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理存储器使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的作业系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

Python的主要参考实现是CPython,它是一个由社区驱动的自由软件。目前由Python软件基金会管理。基于这种语言的相关技术正在飞快的发展,用户数量快速扩大,相关的资源非常多。

关注 138121

卖咖啡 关注了标签 · 2月9日

docker

an open source project to pack, ship and run any application as a lightweight container ! By Lock !

关注 44408

认证与成就

  • 获得 0 次点赞
  • 获得 3 枚徽章 获得 0 枚金徽章, 获得 0 枚银徽章, 获得 3 枚铜徽章

擅长技能
编辑

(゚∀゚ )
暂时没有

开源项目 & 著作
编辑

(゚∀゚ )
暂时没有

注册于 2月9日
个人主页被 455 人浏览