centos搭建dns服务器

发布在 Centos

安装bind
yum install bind

编辑/etc/named.conf,添加域配置:

1
2
3
4
5
6
7
8
zone "xxx.com" IN {
type master;
file "xxx.com.zone";
};
zone "2.168.192.in-addr.arpa" IN {
type master;
file "2.168.192.zone";
};

这里注意修改options中的listen-on port 以及allow-query,默认是localhost,测试的话可以修改成any。

在相应目录下建立 xxx.com.zone和2.168.192.zone文件:

xxx.com.zone

1
2
3
4
5
6
7
8
9
10
$TTL 1D
@ IN SOA xxx.com. root (
20140929 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns1.xxx.com.
ns1 IN A 192.168.2.26
www IN A 192.168.2.26

2.168.192.zone

1
2
3
4
5
6
7
8
9
10
TTL 1D
@ IN SOA xxx.com. root (
20140929 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns1.xxx.com.
26 IN PTR ns1.xxx.com.
26 IN PTR www.xxx.com.

保存后记得修改权限!否则/var/log/message中会出现权限被拒绝错误。

然后修改防火墙配置以及selinux。

启动服务service named start

验证正向解析:

1
2
3
4
5
6
7
root@xsy:~# host www.xxx.com
www.xxx.com has address 192.168.2.26
root@xsy:~# nslookup www.xxx.com
Server: 192.168.2.222
Address: 192.168.2.222#53
Name: www.xxx.com
Address: 192.168.2.26

反向解析:

1
2
3
4
5
root@xsy:~# nslookup 192.168.2.26
Server: 192.168.2.222
Address: 192.168.2.222#53
26.2.168.192.in-addr.arpa name = ns1.xxx.com.
26.2.168.192.in-addr.arpa name = www.xxx.com.

如果检查文件、启动服务都没错误,但客户端就是显示“connect time out”,原因可能有下面几点:

  1. zone文件路径不对。
  2. zone文件权限不对。
  3. 防火墙和selinux设置。
  4. options中listen-on port 以及allow-query设置。
    其中1、2看日志有明显输出,比如:
    1
    2
    3
    4
    5
    6
    [root@localhost named]# tail -f /var/log/messages
    Sep 28 17:15:04 localhost named[13020]: command channel listening on ::1#953
    Sep 28 17:15:04 localhost named[13020]: zone 0.in-addr.arpa/IN: loaded serial 0
    Sep 28 17:15:04 localhost named[13020]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
    Sep 28 17:15:04 localhost named[13020]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
    Sep 28 17:15:04 localhost named[13020]: zone xxx.com/IN: loading from master file xxx.com.zone failed: permission denied

评论和分享

nessus使用记录

发布在 Linux

至于介绍以及安装部分这里不再赘述,网上很多,可以直接下载rpm包进行安装。

fedora20安装后需要启动服务:sudo service nessusd start

浏览器访问 https://localhost:8834 即可看到nessus主界面。第一次使用时候需要注册码,翻墙去官方网站注册一个即可。

首先我们需要创建一个Policy,点击policies标签页后选择new policy,会弹出一个Policy Wizards 选择,这里我选择web application tests。

接下来就是填写关于Policy相关的信息,第一步就是填写名称、简介一类的信息,第二步则需要选择是快速扫描或者是深度扫描以及扫描开始的位置,这里我填写/,即从首页开始。

第三步比较重要,填写关于验证方面的相关信息,填写完成后点击save后就可以看到刚才建立的Policy了。

接下来选择Scans标签,新建一个Scan,填写一些名称、简介一类的基本信息,Policy中选择刚才建立的Policy,Targets中填写目标网站的URL或者IP段,左边的schedule settings中可设置扫描时间,一般使用默认的now。还可以设置email settings不过需要设置SMTP服务器相关信息,这里测试我就仅仅使用基本配置了。

接着点击lunch就开始扫描了,等待时间是几分钟到几个小时不定。

当扫描状态变成completed时,点击扫描即可进入结果页面,Vulnerabilities标签记录了详细信息,随意点击一条即可查看产生原因以及解决办法等详细信息。

评论和分享

Nginx+Uwsgi部署Django程序

发布在 Linux

原来使用apache进行部署,感觉内存占用大以及速度比较慢就换成了nginx+uwsgi的方式,结果完爆apache啊!

首先安装nginx以及uwsgi:

1
2
yum install nginx
pip install uwsgi

然后编辑uwsgi的配置文件,这里我使用ini文件格式,示例如下:

1
2
3
4
5
6
7
8
9
[uwsgi]
socket = 127.0.0.1:9000
chdir = /var/www/html/test
pidfile = /var/run/db_uwsgi.pid
daemonize = /var/log/db_uwsgi.log
wsgi-file = /var/www/html/test/wsgi.py
processes = 4
threads = 2
stats = 127.0.0.1:9191

根据实际情况修改程序目录、进程、线程,还有更高级的配置选项细节看uwsgi的文档。

启动:uwsgi ini路径

停止:uwsgi –stop pidfile路径

重起:uwsgi –reload pidfile路径

nginx配置示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
server {
listen 800;
server_name 192.168.2.42 ;
access_log /var/log/nginx-dc-access_log;
error_log /var/log/nginx-dc-error.log;
charset utf-8;
default_type text/html;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
set_real_ip_from 192.168.2.0/24;
set_real_ip_from 192.168.2.42;
real_ip_header X-Real-IP;
location / {
uwsgi_pass 127.0.0.1:9000;
include uwsgi_params;
}
location /static {
root /var/www/html/test;
}
}

更多高级配置请看nginx文档。

配置完成后启动nginx以及uwsgi即可:

1
2
3
service nginx start
uwsgi test.ini
[uWSGI] getting INI configuration from test.ini

如果你需要使用脚本方式进行uwsgi的重启,记得stop后sleep3秒钟左右再启动,否则重启不一定成功。

1
2
3
4
5
6
echo "stop uwsgi"
uwsgi --stop /var/run/db_uwsgi.pid
echo "wait 5's"
sleep 5
uwsgi /var/www/html/test/test.ini
echo "start uwsgi"

评论和分享

安装完kali系统后应该已经默认安装了这个程序,如果没有的话使用apt-get install tightvncserver

安装完成后执行

1
tightvncserver -depth 24 -geometry 1440x900 :1

-depth 24 使用24位颜色,这里一般用16或者24

-geometry 桌面分辨率,根据要求调整,数字之间是英文字母x而不是乘号。

:1 会话代号

1
2
3
New 'X' desktop is xsy:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/xsy:1.log

如果是第一次执行的话会提示输入密码。

客户端我使用freora20自带的remote desktop viwer ,windows下有vnc viewer。

链接方式使用VNC,HOST填写ip:上面建立的桌面会话代号,比如:127.0.0.1:1即可。

然后点击链接即可。

停止某个桌面活动:tightvncserver -kill :1

重置密码使用tightvncpasswd

小提示:F11是全屏/非全屏切换。

评论和分享

python中and-or小技巧

发布在 Python

首先,python中逻辑运算从左到右进行,and运算返回第一个假值,若都为真则返回最后一个真值。or运算返回第一个真值,若都为假则返回最后一个假值。

其次,python中0,(),[],{},None,空字符串都是假。

下面用简单的例子说明一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def f():
print "in f"
return False
def t():
print "in t"
return True
def n():
print "in n"
In [105]: r = t() and f() or n()
in t
in f
in n
In [106]: r
In [107]: r = t() and n() or f()
in t
in n
in f
In [108]: r
Out[108]: False
In [111]: r = f() and n() or t()
in f
in t
In [112]: r
Out[112]: True

上面我们定义了3个函数,没返回值的情况下函数会默认返回None。这里有个地方需要注意,虽然函数可以返回true、false、none,但函数本身都是为真的,比如:

1
2
3
4
5
6
7
In [127]: rr = f and t or n
In [128]: rr
Out[128]: <function __main__.t="">
In [129]: rr = f and n or t
In [130]: rr
Out[130]: <function __main__.n="">
</function></function>

再举个《python简明教程》的例子:

1
processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)

processFunc 现在是一个函数,但是它到底是哪一个函数还要取决于 collapse 变量。如果 collapse 为真,processFunc(string) 将压缩空白;否则 processFunc(string) 将返回未改变的参数。

假设我们有一个对象,我们需要先判断这个对象是否存在,如果存在的话则取它的id,就可以这么写:

1
pid = user and user.id or False

评论和分享

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

Roy

微信公众号:hi-roy


野生程序猿


China