Kali2017安装后的那些事
Posted Panther1942
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kali2017安装后的那些事相关的知识,希望对你有一定的参考价值。
一、更新源
kali装完后apt的source.list里面是空的,当然有官方源的注释,于是手动添加几个常用的源
#中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib #阿里云 deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb http://mirrors.aliyun.com/kali-security kali/updates main contrib non-free #清华大学 deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free #浙大 deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free #东软大学 deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib #官方源 deb http://http.kali.org/kali kali-rolling main non-free contrib deb-src http://http.kali.org/kali kali-rolling main non-free contrib
这些都是百度上都能找到的
剩下的就是 apt-get update和apt-get dis-upgrade或者apt-get upgrade,前者是更新系统内核和所有程序,后者只更新外围程序
更新系统内核要注意,可能导致部分软件不能使用,比如虚拟机,需要重新编译链接库文件,或者更新虚拟机版本
我是更新系统后发现VM12不能用了,VM14可以用
二、安装fcitx
kali不自带fcitx,不能输中文百度都很费劲啊,还好百度认得拼音,更新完源之后第一件事就是装输入法
感觉还是fcitx好用,不知道为啥,我装不上搜狗拼音的deb,于是google拼音还是sun拼音看你喜欢了
我用的是google拼音
apt-get install fcitx apt-get install fcitx-googlepinyin
不论用哪个都需要重启生效,而且如果重启后依然没有用,估计是fcitx没有启动,用im-config检查一下当前系统用的哪个ime
三、SSH
虽然一般情况用不到,但还是配置一下比较好,有其实想折腾显卡驱动的时候,如果黑屏进不了系统,连控制台都进不去的那种,只有SSH能救了,不然重装系统吧
我重装Linux只有三种情况
一个是硬盘空间分小了,我是双系统,都装固态上,扩容太麻烦,搞不好丢引导又要捣鼓半天
第二个是显卡驱动,目前就成功过一次,用的大蜜蜂(bumblebee)搞得,
第三个是装虚拟机和ORACLE数据库,VM太占地方了,vbox不稳定,装的win7莫名其妙蓝屏,于是放弃linux上玩虚拟机了,另外ORACLE的数据库装上后死活无法启动服务,懒得折腾了,老老实实用mysql
这是我到现在也没有学ORACLE的原因
kali自带SSH,不过默认没有开,配置文件位于/etc/ssh/sshd_config
需要把里面的部分注释去掉#号并修改一下使之生效,vi临时显示行号 :set nu,别忘了冒号
# 允许root用户登录
第32行:PermitRootLogin yes
# 允许使用密码登录
第56行:PasswordAuthentication yes
不同版本的linux行号可能不一样,不过参数名都是一样的
然后启动服务service ssh start
这个服务不是开机自启动,需要自启动的话update-rc.d ssh enable,这个是网上找的设置服务自启动的方法,我没有试,我用的脚本,加到用户配置文件里了,脚本最后贴出来
四、vsftpd服务器
搭建个FTP服务器纯属个人爱好,记录一下,不然还得忘
安装就是apt-get install vsftpd,配置文件位于/etc/vsftpd.conf
同样需要修改一些注释并去掉#号
# 允许匿名用户登录
第25行:anonymous_enable=YES
# 允许修改配置文件
第31行:write_enable=YES
# 因为Linux系统使用的是UTF-8,Windows的话大概不用管吧(win大概是gbk)
第156行:utf8_filesystem=YES
在配置文件末尾加上
userlist_enable=YES # 启用用户列表配置文件
userlist_deny=NO # NO的话是允许列表中的用户登录,YES是禁止列表中的用户登录,一般用NO
# 因为vsftp有一个黑名单列表位于/etc/ftpusers,不想让某些用户登录的话就放这里,vsftp为了安全默认会把权限过大的用户拉黑,比如root
userlist_file=/etc/ftp_user_list # 用户列表配置文件的位置,这个文件需要自己新建,建完之后一行一个用户名这样写就行
seccomp_sandbox=NO # 好像是沙盒模式,自己玩的没必要开
其实这就可以了,然后service vsftpd start启动服务
还有一些其他设置
这个是我设置限制用户切换目录的设置
匿名用户我设置的根目录是/home/uftp/share,这样他就不能访问我其他地方的文件了,这里我禁止了匿名用户的上传
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
anon_root=/home/uftp/share
anon_upload_enable=NO
这个是SSL加密,第一次玩的时候感觉好麻烦,现在就觉得敲配置麻烦
ssl_enable=YES
allow_anon_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file=/etc/vsftpd.pem # 这个密钥文件需要自己生成
pasv_max_port=61100
pasv_min_port=61001
生成密钥文件:openssl req -new -x509 -nodes -out /etc/vsftpd.pem -keyout /etc/vsftpd.pem -days 365
好像是这么写的,回车之后他让你填一些基本信息,国家省份公司名邮箱什么的
因为是被动模式,后面要开防火墙,所以需要配置一下端口范围,
listen_port=21
listen_data_port=20
前者是命令端口,后者是数据端口,可以自定义,建议使用50000以上的端口号,这个数据端口是主动模式用的
如果是被动模式,数据端口就是动态的,比如我上面配置的61001-61100范围,每个ftp连接的数据端口都在这个范围内
本地可以直接用ftp做测试,貌似kali不自带ftp客户端,需要自己安装apt-get install ftp
另外SSL加密的连接没法用FTP命令,于是下载个Filezilla,他有linux版的,包安装貌似也有,不过不是最新的,启动后他会自己检查更新,然后将更新包下载到/root/downloads里面,
用的话就是解压后把filezilla文件夹里面的东西直接复制到/usr就行,提示覆盖就覆盖,提示合并就合并,用习惯win绿色版软件之后这种方式还真不习惯
五、mysql
建议用mariadb,是mysql的一个分支,我感觉比mysql更好,安装apt-get install mariadb-client和apt-get install mariadb-server,前者客户端,后者服务器
启动的话service mysql start,他也是默认不自启的,要自启得手动设置服务
默认用户名密码都是root,然后要注意,因为安全限制,这个root用户只能在本机登录,就算改了user表也不行,于是自己再开个用户给所有权限就好了
-- 建立新用户 CREATE USER \'用户名\'@\'主机地址\' IDENTIFIED BY \'密码\'; -- 授权 这里授予所有权限 GRANT ALL PRIVILEGES ON *.* TO \'用户名\'@\'主机地址\' WITH GRANT OPTION; -- 主机地址填%代表任何地址 -- 修改密码的话 SET PASSWORD FOR \'用户名\'@\'主机地址\' = PASSWORD(\'密码\');
这仨kali都自带了,所以安装就免了,如果没有的话apt-get install 应该会用了吧,另外这仨也都不是自启服务
apache和nginx很像的,但我觉得nginx更好用,这里我用的nginx代理的apache和tomcat,具体见http://www.cnblogs.com/panther1942/p/8695318.html
不过有一点,我的那篇把站点当成配置文件弄了,按说应该存在sites-available里面的,不过因为能用所以也懒得改了,在服务器使用的话需要注意,这不是什么好习惯
apache和nginx的默认网站路径都是/var/www,建议不要改根配置文件,在站点配置文件里面改就好了
php的话看看/etc/apache2/mods-enabled里面有没有php7.x.load和php7.x.conf,x是版本,我的是7.2,如果没有尝试启用 a2enmod php7.2
如果还没有就安装apt-get install libapache2-mod-php 然后启用
apache2启用代理模块的话,就是当反向代理用需要开启proxy,proxy_http,rewrite这仨模块,nginx貌似不用管可以直接用
对了,由于我是nginx和apache并存的,所以要修改apache2的端口,在/etc/apache2/port.conf里面,把监听的80改了就行了
比如我让apache监听9000端口,然后nginx把apache上跑的网站的地址代理到9000的端口上就可以了
另外我启动apache的时候报错了,说是本机地址不明确,于是apache2.conf的最后面加行
ServerName localhost
然后就好了,如果还有错误就是站点配置错误了
站点配置以/etc/apache2/site-avaliable/000-default.conf为模板改就行了
两个最基本的地方
1、根标记 我的是 <VirtualHost *:9000> *我也不知道啥意思,别人都这么配,我感觉大概是代表本机所有回环地址,9000是端口号,不填默认80
2、DocumentRoot 填网站的物理地址(本机地址,实际地址,反正就是本机绝对路径),例如/root/workspace/apache/demo1
3、ServerName 这个可有可无,如果是服务器要写和申请的域名一样,如果是开发的话可以不写,
写的话得在/etc/hosts里面也加上并指向根标签一样的ip,如果是*就指向127.0.0.1
php的话基本装上就能用,如果要用数据库或者其他模块,php配置文件的第893行之后,需要哪个去掉哪行的分号
我的是php7.2,配置文件路径/etc/php/7.2/apache2/php.ini
七、iptables
我觉得linux系统最省事的就是安全防护,基本上开个防火墙就能杜绝大部分危害,尤其是对于我这样的懒虫
1 #! /bin/bash 2 3 iptables -F # 清空原有的iptables规则,避免重复 4 iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT # 允许回环地址的访问,127.0.0.1需要单独设置 5 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许已建立的通信进入 6 iptables -A INPUT -i lo -j ACCEPT # 允许回环地址的访问 7 iptables -A INPUT -p tcp --dport 20 -j ACCEPT # ftp主动模式数据端口 8 iptables -A INPUT -p tcp --dport 21 -j ACCEPT # ftp命令端口 9 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # ssh 10 iptables -A INPUT -p tcp --dport 80 -j ACCEPT # http 11 iptables -A INPUT -p tcp --dport 443 -j ACCEPT # https 12 iptables -A INPUT -p tcp --dport 3306 -j ACCEPT # mysql 13 iptables -A INPUT -p tcp --dport 3690 -j ACCEPT # svn 14 iptables -A INPUT -p tcp --dport 8080 -j ACCEPT # tomcat 其实可以关掉了,因为我用nginx做反向代理了 15 iptables -A INPUT -p tcp --dport 61001:61100 -j ACCEPT # ftp被动模式数据端口 16 iptables -A INPUT -p icmp -m icmp --icmp-type 0 -j REJECT # 拒绝别人ping自己 17 iptables -A INPUT -j REJECT # 拒绝除以上规则外的所有请求进入 18 19 iptables -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT # 允许自己ping别人 20 iptables -A OUTPUT -j ACCEPT # 允许本机任何向外的请求 21 22 iptables -A FORWARD -j REJECT # 拒绝任何转发请求
八、无线网络和蓝牙的小问题
虽然自带开启ap(热点)的功能,不过居然不能修改ap密码,于是github上有个create_ap的程序,很好用,编译安装后好像需要安装hostapd才能用
create_ap 无线设备(一般是无线网卡) 可以上网的设备(一般是有线网卡)热点名 密码
比如 create_ap wlan0 eth0 notepad-AP 123456
蓝牙居然是服务,用的话需要手动开,service bluetooth start
九、杂项
1、字体的话从windows上拷过来(C:\\windows\\fonts)TTF TTC都可以用的,建议放到/usr/share/fonts下,最好建个文件夹
复制进去之后终端进入文件夹三个命令建立缓存
mkfontscale
mkfontdir
fc-cache -fv
2、jdk的话自带的是openjdk,建议下载个jdk放/usr/lib/jvm下,然后改全局配置/etc/profile 最后面加上
export JAVA_HOME=jdk的绝对路径 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
3、安装svn的话,apt-get install subversion和apt-get install subversion-tools
然后svn的使用最频繁的就是创建项目 svnadmin create 绝对路径,其他操作就交给可视化界面的工具操作吧,其实我也不熟,单纯的把它当网盘一类的东西使用了
4、其他软件
音乐 audacious 本地视频 smplayer 文本编辑器 sublime或者vscode 办公软件 wps或者Libre Office
最后那个脚本文件
1 #!/bin/bash 2 3 /root/.config/autostart/iptables-config.sh 4 5 netstat -altnp | grep vsftpd 6 if [ $? -ne 0 ]; then 7 echo "start vsftpd server" 8 service vsftpd start & 9 fi 10 netstat -altnp | grep apache2 11 if [ $? -ne 0 ]; then 12 echo "start apache2 server" 13 service apache2 start & 14 fi 15 netstat -altnp | grep ssh 16 if [ $? -ne 0 ]; then 17 echo "start ssh server" 18 service ssh start & 19 fi 20 netstat -altnp | grep nginx 21 if [ $? -ne 0 ]; then 22 echo "start nginx server" 23 service nginx start & 24 fi
第三行是我加载iptables规则,他不会自动加载规则就只能这么弄了
一些服务我没有设置成自启动,写成启动脚本挂在全局配置文件末尾,缺点是用户登录一次他就执行一次
于是先判断服务是否在运行,如果没有运行则启动,否则啥都不做
bash编程的空格好严格
补记 20180410 1603
忘记了一件很重要的事,远程桌面,公司的服务器是WIN2000和WIN2012,玩redesktop不会SSL加密没法连上去
老提示无法认证,除非服务器的远程桌面安全级别也改了才可以,总觉得这样做会有问题,而且redesktop是运行在终端的,没法最小化,用起来不舒服
于是想装tsclient,但是kali貌似没有,debian貌似也没有,顿时郁闷了,然后突然发现了一条Remmina代替tsclient的网页
看界面感觉貌似很好用,而且apt安装居然源里都有,果断装上apt-get install remmina,界面有种vbox的感觉(貌似GNOME风格的窗口都这样)
而且服务器那边远程桌面的安全等级也不用改了,这玩意支持网络级别安全认证,分辨率也不用憋屈的800*600或者全屏了,总之,真的挺好用的
不建议把图像质量开太高,不然卡成幻灯片,不过用远程桌面一般也就是部署一下项目,重启一下服务或者简单的文本编辑,视觉效果嘛,能看清字就行,所以我用最低的效果感觉还可以接受
以上是关于Kali2017安装后的那些事的主要内容,如果未能解决你的问题,请参考以下文章