The result of tag: (8 results)

Kali Linux出现GPG error: The following signatures were invalid: KEYEXPIRED的解决方案

by LauCyun Feb 05,2018 14:38:22 13,859 views

昨天把我的Kali Linux给搞崩了,所以只能新装一个了。

安装完后,运行apt-get update命令时,出现如下错误:

网上有说:

rm -rf /var/lib/apt/lists
apt-get update 

但是,还是不行啊!

Google一番后,看到https://forums.kali.org/showthread.php?24687-Problem-with-apt-get-update&highlight=1425567400#2的方法,于是尝试:

apt-key adv --keyserver hkp://keys.gnupg.net --recv-keys 7D8D0BF6

如上图,竟然可以了!仰天一笑,哈哈哈~~~

如果你是Ubuntu的话,遇到类似的问题,请参考apt - "GPG error:The following signatures were invalid: KEYEXPIRED" - Ask Ubuntu

...

Tags Read More


Install MongoDB on Ubuntu

by LauCyun Nov 24,2017 13:37:38 17,528 views

Use this tutorial to install MongoDB on LTS Ubuntu Linux systems from .deb packages. While Ubuntu includes its own MongoDB packages, the official MongoDB packages are generally more up-to-date.

1 Packages

MongoDB provides officially supported packages in their own repository. This repository contains the following packages:

Package Name Description
mongodb-org metapackage that will automatically install the four component packages listed below.
mongodb-org-server Contains the mongod daemon and associated configuration and init scripts.
mongodb-org-mongos Contains the mongos daemon.
mongodb-org-shell Contains the mongo shell.
mongodb-org-tools Contains the following MongoDB tools: mongoimport bsondumpmongodumpmongoexportmongofilesmongooplogmongoperfmongorestoremongostat, and mongotop.

The mongodb-org-server package provides an initialization script that starts mongod with the /etc/mongod.conf configuration file.

These packages conflict with the mongodbmongodb-server, and mongodb-clients packages provided by Ubuntu.

2 Install MongoDB

MongoDB only provides packages for 64-bit LTS (long-term support) Ubuntu releases. For example, 12.04 LTS (precise), 14.04 LTS (trusty), 16.04 LTS (xenial), and so on. These packages may work with other Ubuntu releases, however, they are not supported.

2.1 Import the public key used by the package management system.

The Ubuntu package management tools (i.e. dpkg and apt) ensure package consistency and authenticity by requiring that distributors sign packages with GPG keys. Issue the following command to import the MongoDB public GPG Key:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5

2.2 Create a list file for MongoDB

Create the /etc/apt/sources.list.d/mongodb-org-3.6.list list file using the command appropriate for your version of Ubuntu:

  • Ubuntu 12.04

    echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/testing multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
  • Ubuntu 14.04

    echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/testing multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
  • Ubuntu 16.04

    echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/testing multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list

2.3 Reload local package database.

Issue the following command to reload the local package database:

sudo apt-get update

2.4 Install the MongoDB packages.

Install the latest stable version of MongoDB.

Issue the following command:

sudo apt-get install -y mongodb-org

3 Run MongoDB

The MongoDB instance stores its data files in /var/lib/mongodb and its log files in /var/log/mongodbby default, and runs using the mongodb user account. You can specify alternate log and data file directories in /etc/mongod.conf

If you change the user that runs the MongoDB process, you must modify the access control rights to the /var/lib/mongodb and /var/log/mongodb directories to give this user access to these directories.

3.1 Start MongoDB.

Issue the following command to start mongod:

sudo service mongod start

3.2 Run MongoDB On boot.

sudo systemctl enable mongod

3.3 Verify that MongoDB has started successfully.

Verify that the mongod process has started successfully by checking the contents of the log file at/var/log/mongodb/mongod.log for a line reading

[initandlisten] waiting for connections on port <port>

where <port> is the port configured in /etc/mongod.conf27017 by default.

or issue the following command to see mongod status:

sudo systemctl status mongod

3.4 Stop MongoDB.

As needed, you can stop the mongod process by issuing the following command:

sudo service mongod stop

3.5 Restart MongoDB.

Issue the following command to restart mongod:

sudo service mongod restart

4 Settings MongoDB

4.1 Start the mongo Shell

To start the mongo shell and connect to your MongoDB instance running on localhost with default port:

  1. At a prompt in a terminal window (or a command prompt for Windows), go to your <mongodbinstallation dir>:

    cd <mongodb installation dir>
  2. Type ./bin/mongo to start mongo:

    ./bin/mongo

    If you have added the <mongodb installation dir>/bin to the PATH environment variable, you can just type mongo instead of ./bin/mongo.

4.2 Create the user administrator.

MongoDB login authentication is turned off by default, any user of the local system can access the database, and have full access. To improve database security, let's turn on authentication and create an administrator user.

In the admin database, add a user with the userAdminAnyDatabase role. For example, the following creates the user myUserAdmin in the admin database:

> use admin
> db.createUser(
  {
    user: "admin",
    pwd: "12345678",
    roles: [
       { role: "userAdminAnyDatabase", db: "admin" }
    ]
  }
)

Later, press Control+C in the terminal to disconnect the mongo shell.

Detail to see: https://docs.mongodb.com/master/tutorial/create-users/.

4.3 Re-start the MongoDB instance with access control

Add the security.authorization setting to the config file:

security:
  authorization: enabled

It may look like this:

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: "enabled"

save and restart the daemon without the --auth.

4.4 Connect to database instance with superAdmin access

Issue the following command:

mongo -u admin -p --authenticationDatabase admin

5 Reference

...

Tags Read More


如何搭建Jupyter Notebook

by LauCyun Nov 20,2016 10:43:52 13,557 views

相信用过 Jupyter Notebook 的朋友们都知道这个工具的方便和强大。它采用了后台+web端的方式运行,既有可视化的界面,又有web端的灵活。

正常情况下,我们都是在本地运行 Jupyter Notebook,打开一个服务进程,然后在浏览器中访问 Jupyter Notebook。不过,对于拥有 vps 的朋友们来说,怎么能浪费这么有利的运行方式?当然是把它部署到云端,随时随地通过浏览器来写代码、运行代码啦。

因此,今天我们来看看如何在 Linux 平台的 vps 上搭建可以远程访问的 Jupyter Notebook。

一、安装 Jupyter Notebook

我们可以使用 pip 来安装 Jupyter,不过由于 Jupyter 的依赖较多,安装过程可能会有一些问题需要处理。

也可以直接安装 Anaconda 这个项目,十分简单方便,一步到位。Anaconda 包含了 Python、Jupyter Notebook 以及常用的科学计算包。

我们这里通过安装 Anaconda 来安装 Jupyter Notebook,Python 版本为 2.7。

在 Anaconda官网 下载安装包,得到文件 Anaconda2-4.4.0-Linux-x86_64.sh

在 Linux 命令行中输入:

$ bash Anaconda2-4.4.0-Linux-x86_64.sh

注意,无论你使用的终端是否是 bash,命令中的 bash 都不能少。执行该文件后,跟随向导一步一步安装就可以了。

二、设置 PATH 环境变量

安装完 Anaconda 之后,需要先配置环境变量,才能直接使用 pythonjupyter notebook 等命令。

打开用户目录下的 .bashrc 文件,添加下面的命令:

export PATH=/usr/local/anaconda2/bin:$PATH

我的 anaconda 安装目录为 /usr/local/anaconda2/,大家可以根据自己的安装路径修改该命令。

重新登陆终端,就能打开 python 和 jupyter notebook 了。

三、设置 Jupyter 配置文件

Jupyter Notebook 运行需要一些参数,例如登录密码、默认目录、SSL认证等等。

Jupyter 默认不允许直接使用 root 用户运行 Jupyter Notebook,最好是新创建一个用户帐户。如果一定要用 root 账户运行的话,在下面的生成密码这一步中,需要采用第二种方式手动生成密码。

生成密码

我们需要生成经过加密的密码。

$ jupyter notebook password
Enter password:  ****
Verify password: ****
[NotebookPasswordApp] Wrote hashed password to /Users/you/.jupyter/jupyter_notebook_config.json

密码将被保存到 ~/.jupyter/jupyter_notebook_config.json 这个文件中。

也可以手动生成密码:

$ python
>>> from notebook.auth import passwd
>>> passwd()
Enter password:
Verify password:
'sha1:a52b35d305df:c8339cf14bf4f0a8f745c1d1041ec87c03282221'

生成SSL证书

该步骤的目的是采用 HTTPS 连接远程访问 Jupyter Notebook,增加安全性,非必须。

在 ~/.jupyter/ 目录下执行以下命令:

$ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mykey.key -out mycert.pem

生成的 mykey.key 和 mycert.pem 文件将被保存到 ~/.jupyter/ 目录中。

需要注意的是,由于我们自己制作的SSL证书没有被权威机构认证,所以通过浏览器访问时会提示不安全,只需要添加信任并继续访问即可。

这里有一个问题,是关于 ios 系统的。就是当我采用了 SSL 认证,即 HTTPS 访问时,Windows 平台和 Android 平台都能够正常访问并使用 Jupyter Notebook。但是使用 ios 平台访问时,能够登陆 Jupyter Notebook,并且可以打开和编辑文件,但始终提示 Connecting to kernel,即无法连接到 python 解释器内核,因此没办法执行代码。去掉SSL认证之后,ios 才能成功连接到内核。SSL认证的设置在下文中讲述。

生成配置文件

生成默认的 Jupyter 配置文件:

$ jupyter notebook --generate-config

我们可以在 ~/.jupyter 目录中看到 jupyter_notebook_config.py 文件,该文件用于配置 Jupyter Notebook 的运行参数。

然后打开该文件,添加以下配置:

# 设置默认目录
c.NotebookApp.notebook_dir = u'/defult/dir/'
# 允许通过任意绑定服务器的ip访问
c.NotebookApp.ip = '*'
# 用于访问的端口
c.NotebookApp.port = 9999
# 不自动打开浏览器
c.NotebookApp.open_browser = False
# 设置SSL认证
c.NotebookApp.certfile = u'/path/to/.jupyter/mycert.pem'
c.NotebookApp.keyfile = u'/path/to/.jupyter/mykey.key'
# 设置登录密码
c.NotebookApp.password = u'sha1:28436903e41b:e36a5f61317d4f515d46178a81834b20ae60d57b'

如果不设置默认目录,则起始目录就是执行 jupyter notebook 命令时所在的工作目录。

在 Linux 中,非 root 用户无法监听 1024 以内的端口号。

在终端中执行 jupyter notebook,如果是 root 用户,则需要加上 --allow-root 选项。此时,若是没有其它问题出现,你就可以通过你的域名和端口号 https://domain.com:9999 来访问 Jupyter Notebook 了。

注意,如果采用了 SSL 认证,则访问的网址中必须以 https 开头,表示采用 https 连接方式,否则无法访问。

不挂起后台运行

我们希望即使在退出终端后,Jupyter Notebook 依然在后台运行,仍然可以通过远程被访问。

我们可以使用 nohup command & 来实现,nohup 命令会忽略所有的挂起信号,确保命令在后台长期执行。

nohup jupyter notebook > jupyter.log &

这里我们将标准输出定向到 jupyter.log 文件中,如果不指定该文件,则默认定向到 nohup.out 文件中。

接下来,就尽情地享受云端 Jupyter Notebook 所带来的便捷吧!

...

Tags Read More


Ubuntu中如何搭建网桥?

by LauCyun Apr 08,2016 11:45:18 11,603 views

1 安装 uml-utilities

该工具包含建立虚拟网络设备(所谓的“TAP interfaces”)的工具: 

ubuntu@localhost:~$ sudo apt-get install uml-utilities 

2 安装 bridge-utils 

ubuntu@localhost:~$ sudo apt-get install bridge-utils

3 配置 /etc/network/interfaces

ubuntu@localhost:~$ sudo vim /etc/network/interfaces

其配置前的内容:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

其配置后的内容:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet manual

auto br0
iface br0 inet static
	address 192.168.1.104
	network 192.168.1.0
	netmask 255.255.255.0
	broadcast 192.168.1.255
	gateway 192.168.1.1
	dns-nameservers 8.8.8.8
	bridge_ports eth0
	bridge_fd 9
	bridge_hello 2
	bridge_maxage 12
	bridge_stp off

4 修改/etc/sysctl.conf实现转发

上面实现了网桥,但该网桥还不能转发数据,因为在默认情况下,linux系统是不能转发数据的,我们可以通过修改配置文件/etc/sysctl.conf来实现转发,修改地方如下:

# Uncomment the next line to enable packetforwarding for IPv4
net.ipv4.ip_forward=1            # 去掉这一行最前面的注释(#号)

# Uncomment the next line to enable packetforwarding for IPv6
net.ipv6.conf.all.forwarding=1   # 去掉这一行最前面的注释(#号)

修改完之后执行/etc/init.d/procps  restart重启服务。详细可参考:http://www.ducea.com/2006/08/01/how-to-enable-ip-forwarding-in-linux/

5 启动网桥

ubuntu@localhost:~$ sudo /sbin/ifup br0 

重启网络:

ubuntu@localhost:~$ sudo /etc/init.d/networking restart

ubuntu@localhost:~$ sudo restart network-manager

(全文完)

...

Tags Read More


How to install Ubuntu 14.04 Server

by LauCyun Apr 07,2016 10:22:49 8,294 views

Ubuntu分为桌面版(desktop)和服务器版(Server),下面为大家介绍服务器版本Ubuntu Server 14.04的详细安装过程。

step 1:

用UltralSO制作一个U盘系统盘,详细可以参考 UltraISO软件怎么制作ubuntu系统U盘启动镜像

 

step 2:直接进入安装

将您计算机的 BIOS 设定成用 CD-ROM 开机,并将 Ubuntu 服务器(Server)光盘放入光驱起动。

如无意外,您可以看到以下的 Ubuntu 开机画面,您需要选择语言。(建议服务器使用English)选择 English,按回车键:

自然会看到以下的 Ubuntu 开机画面,选择 Install ubuntu Server,按回车键,

在 Ubuntu 的标志下,有五个项目:

  • 安装 Ubuntu 服务器 (Install Ubuntu Server) - 安装 Ubuntu 服务器系统到硬盘中。
  • 安装 Ubuntu 企业云端 (Install Ubuntu Enterprise Cloud) - 安装 Ubuntu 企业云端系统。
  • 检查 CD 是否有缺损 (Check CD for defects) - 检查安装光盘是否有任何缺损。
  • 内存测试 (Test memory) - 检查计算机的内存有没有问题。
  • 从第一个硬盘开机 (Boot from first hard disk) - 启动硬盘中的操作系统。
  • 救援已损坏的系统 (Rescue a broken system)

另外底部亦显示了六个功能键的功能:

  • F1 求助 (Help)
  • F2 语言(Language) - 选择接口语言。这个会影响安装出来系统的接口语言。
  • F3 键盘对应表 (Keymap) - 设定键盘排列。一般中港台澳新的使用者都不用改变此设定。
  • F4 模式 (Mode) - 设定启动模式,可以选择下列模式:
    • 正式模式 (Normal)
    • 安装最小型系统 (Install a minimal system)
    • 安装最小型虚拟机器 (Install a minimal virtual machine)
  • F5 无障碍辅助 (Accessibility) - 选择开启一些无障碍辅助,方便伤健人仕使用安装系统。
    • 无 (None) - 无任何无障碍辅助
    • 高对比 (High Contrast) - 接口采用高对比布景对题,画面主用采用黑白二色,令视力有少许障碍的人仕较易观看萤幕。
    • 放大镜 (Magnifier) - 提供萤幕放大镜,可以放大萤幕上任何一处内容,令视力有少许障碍的人仕较易观看萤幕。
    • 萤幕阅读器 (Screen Reader) - 可以读出萤幕上显示的文字,令视力有障碍的人仕可以知道萤幕的内容。
    • 盲人点字终端机 (Braille Terminal) - 可以把萤幕上显示的文字输出至盲人点字终端机。
    • 键盘修饰键 (Keyboard Modifiers) - 容许使用者分开逐个按下组合键中的每个按键来按该组合键,令手部有少许障碍的人仕较操作系统。
    • 萤幕键盘 (On-Screen Keyboard) - 在萤幕提供虚拟键盘。
  • F6 其他选项 (Other Options) - 手动为 Linux 核心加上其他启动选项。

语言

出现 Select a language 界面,默认选择 English,直接回车即可:

所在地区

为方便日常操作,您需要设定您所在地区,这亦会成为您计算机时钟的时区。

出现 Select your location 界面,选择 other -> Asia -> China,按回车键:

出现 Configure locales 界面,默认选择 United States  -  en_US.UTF-8,直接回车即可。

键盘类型

不同国家键盘的排列可能会有少许分别,所以您需要设定键盘排列避免混乱。

安装程序首先会询问您是否需要侦测键盘排列。如果选择 Yes,安装程序会问您一连串问题以判断您键盘的排列属那种,颇麻烦。加上除了一些日本水货的手提计算机,一般中港澳台的计算机都是采用美式英语 (USA) 键盘排列,所以按 No 再自行选择键盘排列会比较直接方便。

出现 Detect keyboard layout 界面,默认选择 No,直接回车即可:

出现 Origin of the keyboard 界面,默认选择 English(US),直接回车即可。

出现 Keyboard layout 界面,默认选择 English(US),直接回车即可。

加载组件

接着安装程序会加载需要的组件。

设定主机名称

设定好网络后,安装程序会要求您设定计算机的名称。这个名称最好要和计算机网址最开头一段相同,即时说如果网址为esmail.example.org,主机名称应为 esmail 。 (主机名称只可以由英文字母、数目字和减号 ("-") 组成 )。

进入 Please enter the hostname for this system 界面,在文本框中输入hostname,选择 Continue,按回车键继续。

设定用户名和密码

出现 Set up users and passwords 界面,在 Full name for the new user 键入您想用的用户名,选择 Continue,按回车键继续。

在 Username for you account 键入您刚输入的用户名,选择 Continue,按回车键继续。

给您的用户设置一个密码,选择 Continue,按回车键继续。

重复密码,选择 Continue,按回车键继续。

由于输入的密码为弱口令,所以安装程序出现 Use weak password?,选择 Yes,按回车键继续

出现 Encyypt your home directory?,选择 No 不加密 home 文件夹,按回车键继续。

时区

安装程序会根据您之前设定所在地区的选择自动判断您所在的时区,并要求您确认:

不过如果您的所在地区太大有多个时区 (如美国),安装程序会列出地区有的所有时区,让您选择正确的时区。

分割硬盘及格式化硬盘

接着来到了整个安装 GNU/Linux 过程最中最难及最易出错的部份 - 分割硬盘。要将两个或以上的作业系统安装在同一个硬盘上及方便管理不同类型的资料,我们必须要将硬盘分割成多个分割区 (Partition) 。这正如同一屋如果住了两位或以上的住客,屋主亦要间房。就算只有一位住客,亦会有分书房、睡房、饭厅和厨房等。
这项工作困难之处在于大部份个人计算机都预装其他操作系统(大部份为微软窗口),整个硬盘所有空间亦一早分配预装的操作系统。很多非技术人仕对分割硬盘根本毫无概念,有时亦在不自知的情况下损坏了自己原有操作系统和里面的资料。不过其实只需要小心处理,一般不会有问题。
而服务器很少会有同一台计算机安装两个或以上操作系统的情况,所以分割硬盘工作会比桌面简单很多。

系统开始检测硬盘和其他硬件,随后进入 Partition disks 界面。

在 Partitioning method 中选择 Guided - use entire disk and set up LVM,按回车键继续:

为方便大家分割硬盘,Ubuntu提供了几个方案帮您分割硬盘:

  • Guided - use entrie disk:这个方案会删除硬盘上所有分割区,然后重新分割硬盘。如果您硬盘上有其他您想保留的操作系统,请不要选择此项。
  • Guided - use entire disk and set up LVM:这个方案会删除硬盘上所有分割区,然后使用 LVM 分割硬盘。如果您硬盘上有其他您想保留的操作系统,请不要选择此项。
  • Guided - use entire disk and set up encrypted LVM:这个方案会删除硬盘上所有分割区,然后使用 LVM 分割硬盘并加密分割区。如果您硬盘上有其他您想保留的操作系统,请不要选择此项。
  • Manual:这个方案不会帮您自动分割,只会让您手动地自行分割硬盘。

选好方案,安装程序会列出您所有硬盘并问您要分割那个硬盘,按回车键继续:

再一次提醒您,以上所有分割方案一经执行都不能取消或回复,如果硬盘仍有需要保留的资料,切勿使用『删除整颗磁盘』 (Erase entrie disk)。

选择 Yes,按回车键继续:

在文本框中输入要分割的硬盘最大值,选择 Continue,按回车键继续:

选择好适合的方案和硬盘,安装程序自然会为您编好分割方法,并列出来让您作最后确认:

如果没有问题,按 Yes 就可以了。

安装系统

如果您有代理服务器 (Proxy),可以在此设定以减省下载时间:

接着,您需要设定更新方案:

现时 Ubuntu 服务器提供三个更新方案:

  • 不自动更新 (No automatic updates)
  • 自动安装安全更新 (Install security updates automatically)
  • 使用 Landscape 管理系统 (Manage system with Landscape)

选择要安装的软件组合:

现时 Ubuntu 服务器版提供 9 个软件组合:

  • OpenSSH server - 远端存取服务器
  • DNS server - 网域名称服务器
  • LAMP server - 即是所谓 Linux + Apache + MySQL + PHP 组合,以 Apache 作为网页服务器,MySQL 作为数据库管理系统和 PHP 作为网站应用程序语言,可以架设网站或电子商贸系统。
  • Mail server - 电子邮件服务器,使用 Postfix 作为 MTA 及 Dovecot 作为 POP 和 IMAP 服务器。
  • PostgreSQL server - 数据库服务器,使用 PostgreSQL
  • Print server - 打印服务器,使用 CUPS
  • Samba server - 使用 Samba 作为可以整合至 Windows 网络的档案服务器
  • Tomcat Java server - 使用 Tomcat 的 Java 网页应用程序服务器
  • Virtual Machine host - 虚拟机器服务器
  • Manual package selection - 自行手动在数千个套件中选择要安装的。

选好软件组合后,按 Continue 开始安装软件:

提示是否安装 grub 到硬盘引导分区,选择 Yes 后按回车继续下一步:

看到以下画面表示您已成功安装好 Ubuntu 服务器了。

现在您可以按 Continue 重新启动进入安装好的 Ubuntu 服务器。

 

setp 3:初次开机

重新开机后,计算机会自动进入开机管理员(Boot Manager)。

GRUB Loading stage1.5.
 
GRUB loading. please wait...
Press 'ESC' to enter the menu... 4

如果您要启动其他操作系统,请在这一两秒间按 ESC 键进入选单,再选其他操作系统。如果没有按任何键,开机管理员会自动启动 Ubuntu。

成功启动新 Ubuntu 就可以看到有login:的登入画面。

...

Tags Read More