理财记录3

发布在 金融理财

上篇中主要学习了和企业盈利能力相关的知识,这篇中记录一下和企业偿债能力相关的知识,可能对于购买债券的朋友来说更看重这点吧。但我在学习过程中始终有一种似懂非懂的感觉,而没有学习关于盈利能力时那种“AHA~Get It!”的感觉,所以这里只做一些简单记录。

首先,企业是否会陷入财务困境可以从3方面来看:

  1. 财务状况
  2. 盈利能力
  3. 周转速度

同时衡量偿债能力的指标又有下面4种:

  1. 资产负债率
  2. 流动比率
  3. 速动比率
  4. 利息保障倍数
阅读全文

CentOS7和fedora中的默认防火墙都变成了firewalld,当然你也可以选择禁用这个并自己安装iptables,下面内容原文:这里,而且只翻译我用到的部分文章。原文中还展示了如何使用图形界面进行配置,不过作为键盘爱好者,能不用鼠标的就尽量不用鼠标了,直接上命令行操作。


4.5.4 理解域概念

firewalld可以根据不同的信任级别,将处于不同域内的设备进行分离。NetworkManager用于管理firewalld将接口分配到哪个域中,可以通过NetworkManager界面或filrewall-config工具来进行设置。

默认的配置文件位于/etc/firewalld/可以快速的应用在网络接口上,这里有一份关于域的简短的说明:

dorp:任何入站请求都被忽略,无任何回复,只有发起的网络链接请求被放行。

block:任何入站请求都被拒绝,ipv4协议回复”icmp-host-prohibited”消息,ipv6协议回复”icmp6-adm-prohibited”,只有从系统内部发出的链接请求才被放行。

(个人感觉上面两个区别就是在于有无回复,对内的话用block、对外用dorp好一些,让外部扫描费点劲才知道被防火墙过滤了)

public:为在公共场所准备,你不相信网络中的其他电脑不会对你的电脑造成伤害,只有被选定的入站链接被接受。

external:为有伪装的外部网络特别是路由器准备,你不相信网络中的其他电脑不会对你的电脑造成伤害,只有被选定的入站链接被接受。

dmz:为那些处于隔离区(demilitarized zone)可以访问部分内部网络的电脑准备,只有被选定的入站链接被接受。

work:为工作域的电脑准备,你相信网络中其他电脑不会对你的电脑造成伤害,只有被选定的入站链接被接受。

home:为家庭域的电脑准备,你相信网络中其他电脑不会对你的电脑造成伤害,只有被选定的入站链接被接受。

internal:为内部域的电脑准备,你相信网络中其他电脑不会对你的电脑造成伤害,只有被选定的入站链接被接受。

trusted:接受全部请求。

你可以指定一个域为默认域,当一个新接口被添加到NetworkManager中时,它将被分配到默认域中。在默认情况下public为默认域。

4.5.6 理解预设服务

如果一个服务可用的话,它应该有一份本地端口和目标端口的列表,同时防火墙辅助模块自动载入这份列表。使用预设服务可以让用户轻松控制服务是否可以被访问,通过使用预设服务或用户自定义服务的方式来控制访问权限而不是通过管理端口或端口范围也许让管理员更加轻松。(翻译的不好,意思就是只记mysql而不用记3306端口了)服务的配置选项和通用文件信息在firewalld.service(5)中有介绍。服务被指定使用xml文件格式并且命名为service-name.xml这种格式。
可以通过下面的命令查看默认的预设服务:ls /usr/lib/firewalld/services/

不要修改/usr/lib/firewalld/services中的文件,只有/etc/firewalld/services/才可以被修改。

查看系统或用户创建的服务可以使用:ls /etc/firewalld/services/

服务可以通过图形界面或编辑/etc/firewalld/services/中的文件来新增或删除,如果你还没添加或修改过任何一个服务,/etc/firewalld/services/目录下是没有任何文件的,可以把从/usr/lib/firewalld/services/中复制出一个文件作为模板,比如:
cp /usr/lib/firewalld/services/[service].xml /etc/firewalld/services/[service].xml

你也许想新建一个文件,firewalld更喜欢新文件在/etc/firewalld/services/中而非/usr/lib/firewalld/services/中。

4.5.7 理解直接接口

firewalld中有一个功能叫做”直接接口“,它能直接通过iptables、ip6tables、ebtables的规则,这是为应用准备而不是为用户准备的。如果你对iptables不是十分熟悉的话用直接接口是很危险的,这无意间可能导致防火墙规则漏洞。某些规则被添加时仍然被firewalld所追踪,所以还可以用firewalld查看那些应用程序使用直接接口引起变化的规则。可以通过在firewalld-cmd 添加–direct来使用直接接口。

直接接口的目的是让服务或程序在运行时添加特定的防火墙规则, 通过使用–permanent参数或修改/etc/firewalld/direct.xml文件可以让这些规则持久化。如果规则没被持久化,则每次重启、重加载时都要重新添加。

4.5.15.3 通过命令行查看firewalld

查看状态:
firewall-cmd --state

查看当前域:

1
2
3
firewall-cmd --get-active-zones
public
interfaces: em1

根据接口查看所属域:

1
2
firewall-cmd --get-zone-of-interface=em1
public

查看某域下所有接口:

1
2
firewall-cmd --zone=public --list-interfaces
em1 wlan0

这个命令的结果来自Networkmanager而且只显示接口不显示链接。

查看某域的所有设定:

1
2
3
4
5
6
7
firewall-cmd --zone=public --list-all
public
interfaces:
services: mdns dhcpv6-client ssh
ports:
forward-ports:
icmp-blocks: source-quench

查看当前哪些服务被加载:

1
2
firewall-cmd --get-services
cluster-suite pop3s bacula-client smtp ipp radius bacula ftp mdns samba dhcpv6-client dns openvpn imaps samba-client http https ntp vnc-server telnet libvirt ssh ipsec ipp-client amanda-client tftp-client nfs tftp libvirt-tls

这将展示出所有位于/usr/lib/firewalld/services/的预设服务和当前载入的所有用户自定义服务,注意xml文件名必须是service-name.xml。如果用户自定义服务以及创建但没被加载,可以使用命令:firewall-cmd --permanent --get-services

这个命令将展示所有的服务,包括未被加载的那些位于/etc/firewalld/services/的服务。

4.5.15.4 通过命令行设置firewalld

4.5.15.4.1 忽略所有包

使用下面的命令忽略所有入站和出站请求:firewall-cmd --panic-on

已经建立的链接将在会话过期后被终止。重新接受所有请求:firewall-cmd --panic-off

查看panic状态:firewall-cmd --query-panic

yes为启用,no为关闭。

4.5.15.4.2 重载防火墙

重载防火墙但并不打断用户链接:firewall-cmd --reload

重载防火墙同时打断用户链接:firewall-cmd --complete-reload

通常情况这个命令只有在防火墙服务出问题了才被使用。

4.5.15.4.3 通过命令行添加新接口到某个域

更改接口到某个域:firewall-cmd --zone=public --add-interface=em1

从域中删除某接口:firewall-cmd --zone=dmz --change-interface=em1

如果想要持久化,记得添加–permanent参数以及重载防火墙:firewall-cmd --zone=public --remove-interface=em1

4.5.15.4.4 通过修改文件添加新接口到某个域

编辑ifcfg-em1文件(一般位于/ets/sysconfig/network-scripts目录),添加
ZONE=work

如果你省略zone或zone=””,默认将使用默认域。修改完成后NetworkManager将自动重连并设置相应域。

4.5.15.4.5 通过修改配置文件修改默认域

编辑 /etc/firewalld/firewalld.conf

1
2
3
4
default zone
# The default zone used if an empty zone string is used.
# Default: public
DefaultZone=home

保存后重载防火墙,这将中断所有链接。

4.5.15.4.6 通过命令行修改默认域

使用命令:firewall-cmd --set-default-zone=public

将立即生效而不需要重载防火墙 。

4.5.15.4.7 通过命令行开放端口

首先列出所有开放的端口,以dmz域为例:firewall-cmd --zone=dmz --list-ports

注意,这里不会展示被–add-services参数打开的端口。

开放某域内的端口,比如开放dmz域的8080端口,命令如下:firewall-cmd --zone=dmz --add-port=8080/tcp

开放某段的端口,命令如下:firewall-cmd --zone=public --add-port=5060-5065/udp

如果需要的话,记得使用--permanent参数进行持久化。

4.5.15.4.8 通过命令行添加删除服务到某域

这里以smtp服务添加到work域为例:

1
2
firewall-cmd --zone=work --add-service=smtp
firewall-cmd --zone=work --remove-service=smtp

同样的添加--permanent进行持久化,如果你使用了这个参数并想立即生效,请重载防火墙。

4.5.15.4.9 通过修改xml文件添加删除服务到某域

首先查看默认域文件:

1
2
3
ls /usr/lib/firewalld/zones/
block.xml drop.xml home.xml public.xml work.xml
dmz.xml external.xml internal.xml trusted.xml

不要编辑这些文件,如果/etc/firewalld/zones/目录中没有等效文件这些文件将被使用。

想查看哪些域文件被修改,使用:

1
2
ls /etc/firewalld/zones/
external.xml public.xml public.xml.old

这里我们以向work域添加服务为例,首先:

1
cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/

现在可以编辑位于/etc/firewalld/zones下的文件了,以添加smtp服务为例,修改work.xml添加:<service name="smtp"/>

如果你删除了这个文件,那么/usr/lib/firewalld/zones/中的文件将被使用。

删除操作和添加相反,删除我们编辑的xml文件中添加的行就行了,就不翻了。

4.5.14.4.12 ip地址伪装

查看:firewall-cmd --zone=external --query-masquerade

启用:firewall-cmd --zone=external --add-masquerade

禁用:firewall-cmd --zone=external --remove-masquerade

记得添加--permanent以及重载防火墙。

4.5.14.4.12 端口转发

想要进行端口转发,先要启用ip地址伪装,然后使用:firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753

上面的例子中把external域中22端口转发给本机的3753端口,协议为tcp。其中端口可以是一个端口也可以是端口范围,而proto则只能是tcp或udp的协议中的一个。

如果是转发给另一个ip,通常是内部Ip并且端口不变,则firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.0.2.55

如果端口也变了:firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55

记得添加--permanent以及重载防火墙。

4.5.14.6 使用直接接口

车轱辘话略过,见上面

4.5.14.6.1 添加用户规则

添加规则链

1
2
firewall-cmd --direct --add-rule ipv4 filter IN_public_allow \
0 -m tcp -p tcp --dport 666 -j ACCEPT

4.5.14.6.2 删除用户规则

1
2
firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow \
0 -m tcp -p tcp --dport 666 -j ACCEPT

4.5.14.6.3 展示用户规则

1
firewall-cmd --direct --get-rules ipv4 filter IN_public_allow

如果需要的话,同样使用--permanent以及重载防火墙。


翻到后面发现车轮话太多了,就只进行了意译,而且个人也就使用开放端口、转发一类的常见操作,高深地方就不不翻译了,用到了在说吧。注意的就是如果不加--permanent参数则会实时生效,但重启或重加载后会失效。加--permanent参数则不会实时生效,需要重新reload。
再补充一些东西,类似于黑白名单机制,比如我想根据来源ip来分配不同的域规则,则相关命令如下

1
2
3
4
5
firewall-cmd --permanent --zone=public --list-sources
firewall-cmd --permanent --zone=public --add-source=192.168.100.0/24
firewall-cmd --permanent --zone=public --add-source=192.168.222.123/32
firewall-cmd --permanent --zone=public --add-port=1-22/tcp
firewall-cmd --permanent --zone=public --add-port=1-22/udp

有add-source、port自然就会有remove-source、port了,当你只想让某些指定的ip访问某些服务的话,就可以把这些ip放到相应的域内,加载规则如下:

  1. 如果一个包的来源已经绑定在某个域内,则使用这个域的规则。
  2. 如果一个包的来源没绑定任何一个域,但来源访问的接口绑定了某个域(比如eth0),则使用端口绑定的域规则。
  3. 如果一个包的来源和来源接口都没绑定某个域,则使用默认域规则。
    这里还要注意,一个ip地址只能属于一个域,否则会提示域冲突。

评论和分享

今天发现有道词典出了linux版,不过万恶的只有deepin和ubuntu的安装包,作为忠实的红帽系用户只能下源码了。首先从 http://cidian.youdao.com/index-linux.html 选择二进制安装包并解压。

这里注意2个地方,首先fedora21默认为qt4,python2.7,而有道词典需要qt5以及python3,所以先要去官网下载QT5离线安装版(个人建议,我这在线安装qt5慢的不可忍受)。下载完成我们得到qt-opensource-linux-x64-5.4.1.run添加执行权限后执行即可。

安装完成后进入到解压后的有道词典目录,我这里叫youdao-dict_1.0.2~binary_amd64,给里面的install.sh添加执行权限并执行即可。

接下来到了最纠结的地方了,我们要手动安装各个依赖,这里我就直接给出经过N次失败后成功的结果把,下面这些都要用yum命令安装:

1
2
3
4
5
6
7
8
9
yum install python3-qt5
yum install python3-requests
yum install python3-xlib
yum install python3-lxml
yum install python3-pillow
yum install tesseract-langpack-chi_sim
yum install tesseract-langpack-chi_tra
yum install qt5-qtquickcontrols
yum install qt5-qtgraphicaleffects

都安装完成后就可以用了,支持取词、划词,不过取词识别度还有待提高,划词翻译比较好用。当然了,如果你想更geek一点,可以安装openyoudao也很酷。

评论和分享

理财记录2

发布在 金融理财

这个月拿到了人生中第一笔5位数薪水,可仔细一看,税、五险一金居然扣了将近2K!这可把我肉疼坏了,正好最近看到了关于和税有关的会计知识,发现当老板也不容易啊!就拿所得税来说,不管你利润多少,先把25%交上去再说,颇有“此路是我开,此树是我栽,要想过此路,留下买路财”的味道。呃……不知道这么说会不会被跨省——我纳税,我光荣!

上篇记录主要是说了金钱的时间成本,这篇主要和财务报表有关,但相关的会计概念实在太多,我在学习时3页书就记了整整6页A4纸的笔记,所以在这里可能不会解释相关的概念了,有需要的自行百度。老规矩先来个声明:本人非科班出身,所记录均为个人学习心得,不保证正确性、时效性。

阅读全文

理财纪录1

发布在 金融理财

复利是什么?爱因斯坦说它是世界第八大奇迹。下面涉及到复利终值和现值、普通年金终值和现值、预付年金终值与现值、偿债基金、年资本回收额等初级会计知识,本人非会计出身,下面说的仅凭个人理解,如有错误恳请指正。

复利终值是什么?简言之就是今年的x元钱,在保持q%的利率或利率下,相当于n年后多少钱。

阅读全文

django-userena使用记录

发布在 Django

django-userena扩展了django原生的用户系统,提供了注册、登录、修改密码、邮件验证等一系列常用功能。直接使用pip安装即可:pip install django-userena

会自动安装其所需的依赖包,不过个人建议为了更好的定制模板或相关功能,把这个包放到项目目录下当作一个app更方便一些。安装完成后修改settings.py,首先来创建一个app用于扩展用户系统
python manage.py startapp accounts
然后修改Models.py来扩展原生用户字段,我这里以添加用户等级为例:

1
2
3
4
5
6
7
8
9
10
11
# coding=utf-8
from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext as _
from userena.models import UserenaBaseProfile
class CustomerProfile(UserenaBaseProfile):
user = models.OneToOneField(User,
unique=True,
verbose_name=_('user'),
related_name='customer_profile')
level = models.IntegerField(_(u"用户等级"), default=0)

接下来修改settings.py,首先把

1
2
3
4
5
"django.contrib.sites",
"accounts",
'userena',
'guardian',
'easy_thumbnails'

添加到INSTALLED_APPS中,然后把'django.contrib.sites.middleware.CurrentSiteMiddleware',
添加到MIDDLEWARE_CLASSES中,在django1.7.7中如果不添加和site有关的东西时,userena注册用户会抛出”Site matching query does not exist“异常。最后添加下面的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
AUTHENTICATION_BACKENDS = (
'userena.backends.UserenaAuthenticationBackend',
'guardian.backends.ObjectPermissionBackend',
'django.contrib.auth.backends.ModelBackend',
)
EMAIL_HOST = 'xxxx'
EMAIL_HOST_USER = 'xxxx@xxxx'
EMAIL_HOST_PASSWORD = 'xxxx'
EMAIL_PORT = 25
DEFAULT_FROM_EMAIL = 'xxxx@xxxx'
ANONYMOUS_USER_ID = -1
AUTH_PROFILE_MODULE = 'accounts.CustomerProfile'
USERENA_SIGNIN_REDIRECT_URL = '/accounts/%(username)s/'
LOGIN_URL = '/accounts/signin/'
LOGOUT_URL = '/accounts/signout/'

xxxx根据实际情况修改,和发送验证邮件有关。这些都添加完毕后,执行
./manage.py migrate
创建数据库,接下来执行
./manage.py check_permissions
否则报错”Permission matching query does not exist“。最后记得添加url

1
url(r'^accounts/', include('userena.urls')),

都完成后,运行程序,访问http://127.0.0.1:8000/accounts/signup/就可以看见注册页面了。

所有html文件以及email模板都在userena/templates/userena路径下,进行相应定制即可。

评论和分享

MacOS安装Wireshark-qt

发布在 Mac

大名鼎鼎的Wireshark不必多说,在win、linux系统中安装也都比较便捷,不过在网上大多写MacOS中如何安装的都狠麻烦,因为他们写的都是安装gtk版本的方式,而wireshark早就投入了qt阵营的怀抱了。

在brew中直接使用brew install wireshark --with-qt即可安装成功,不过安装后会提示:

1
2
3
4
5
6
7
8
9
10
11
> If your list of available capture interfaces is empty
> (default OS X behavior), try the following commands:
> curl https://bugs.wireshark.org/bugzilla/attachment.cgi?id=3373 -o ChmodBPF.tar.gz
> tar zxvf ChmodBPF.tar.gz
> open ChmodBPF/Install\ ChmodBPF.app
> This adds a launch daemon that changes the permissions of your BPF
> devices so that all users in the 'admin' group - all users with
> 'Allow user to administer this computer' turned on - have both read
> and write access to those devices.
> See bug report:
> https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3760

就是由于某些原因Wireshark找不到网卡,按照上面提示解决后再启动即可。

这种方式安装完后的Wireshark是不会在LaunchPad中有图标的,想启动的话在终端中输入wireshark-qt即可启动gui界面版,tshark则启动命令行版。

评论和分享

fedora21安装MITMf框架

发布在 Linux

关于这大名鼎鼎的中间人攻击框架不多介绍了,如果是kali linux用户直接apt-get install mitmf即可;如果是win用户呢,基本就放弃吧;如果是os x用户呢,有几个依赖我始终安装失败,你要安装成功了请联系我。

网上很多都是讲ubuntu怎么安装这个框架的,这里我记录一下在fedora21上我的安装记录。

首先安装一些系统依赖,这里我系统原来就安装了很多杂七杂八的东西,不保证下面的就是齐全的:

1
2
3
sudo yum install libnetfilter_queue-devel
sudo yum install libffi-devel
sudo yum install libpcap-devel

接下来下载一个不能用pip安装的包

1
git clone https://github.com/fqrouter/python-netfilterqueue.git

然后进入目录中执行python setup.py install即可。

然后把mitmf框架下载下来

1
git clone https://github.com/byt3bl33d3r/MITMf.git

进入目录后,修改requirements.txt,我安装成功后所有的依赖如下,不保证时效。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# NetfilterQueue==0.6  这个是手动安装的
Pillow==2.8.0
PyYAML==3.11
Twisted==15.0.0
capstone==3.0.2
cffi==0.9.2
characteristic==14.3.0
configobj==5.0.6
cryptography==0.8.1
dnspython==1.12.0
enum34==1.0.4
msgpack-python==0.4.6
pefile==1.2.10-114
pyOpenSSL==0.14
pyasn1==0.1.7
pyasn1-modules==0.0.5
pycparser==2.10
pypcap==1.1.1
requests==2.6.0
scapy==2.3.1
service-identity==14.0.0
six==1.9.0
ua-parser==0.3.6
user-agents==0.3.2
wsgiref==0.1.2
zope.interface==4.1.2

都安装完就可以了,如果安装某个包时报错xxx.h不存在,基本就是某个系统依赖的devel包没安装的问题,使用yum安装即可。还有一点,运行这个框架要用root权限。

1
2
3
4
5
6
7
8
9
10
11
12
(mitmfenv)┌─[cpu0@localhost] - [~/git/MITMf] - [5230]
└─[#] ./mitmf.py -h [14:43:41]
▄▄▄▄███▄▄▄▄ ▄█ ███ ▄▄▄▄███▄▄▄▄ ▄████████
▄██▀▀▀███▀▀▀██▄ ███ ▀█████████▄ ▄██▀▀▀███▀▀▀██▄ ███ ███
███ ███ ███ ███▌ ▀███▀▀██ ███ ███ ███ ███ █▀
███ ███ ███ ███▌ ███ ▀ ███ ███ ███ ▄███▄▄▄
███ ███ ███ ███▌ ███ ███ ███ ███ ▀▀███▀▀▀
███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███
▀█ ███ █▀ █▀ ▄████▀ ▀█ ███ █▀ ███
usage:
MITMf v0.9.5 - Framework for MITM attacks

评论和分享

  • 第 1 页 共 1 页
作者的图片

Roy

微信公众号:hi-roy


野生程序猿


China