精华内容
下载资源
问答
  • Kali Linux Web 渗透测试秘籍Kali Linux Web 渗透测试秘籍Kali Linux Web 渗透测试秘籍Kali Linux Web 渗透测试秘籍Kali Linux Web 渗透测试秘籍 Kali Linux Web 渗透测试秘籍
  • Linux Web服务器配置

    2011-11-14 08:55:46
    简单介绍Linux Web服务器配置,简单介绍Linux Web服务器配置
  • Kali Linux Web Penetration Testing Cookbook is for IT professionals, web developers, security enthusiasts, and security professionals who want an accessible reference on how to find, exploit, and ...
  • Kali Linux Web Penetration Testing Cookbook.pdf
  • linux Web控制台

    千次阅读 2018-04-18 17:03:57
    前段时间做一个hadoop+Spark的性能监控页面时,需要一个web控制台远程登陆到master节点上去,后来发现这方面资料太少,于是自己参照着零散的东西修修改改,终于做出了一个简单的web shell,记录一下以免时间长了忘记...

    前段时间做一个hadoop+Spark的性能监控页面时,需要一个web控制台远程登陆到master节点上去,后来发现这方面资料太少,于是自己参照着零散的东西修修改改,终于做出了一个简单的web shell,记录一下以免时间长了忘记。大概像这个样子的:


    这样就可以在网页上直接访问linux服务器了,初衷是用来远程关闭正在运行的spark任务的,做发现出来之后一般的linux命令都能执行。

    首先讲一下后台实现:

    1.建立ssh连接,并定义一些流用于收发命令。

    2.其次定义是一个接收命令和返回结果的方法,因为linux每次返回一行,所以我这里存入List<String>返回给前台处理。

    代码都如下:
    package com.java.utils;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.nio.charset.StandardCharsets;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    import ch.ethz.ssh2.Connection;
    import ch.ethz.ssh2.Session;
    import ch.ethz.ssh2.StreamGobbler;
    
    
    public class SSHLinux
    {
    	private String hostname = "11.11.11.15";
    	private int port = 22;
    	private String username = "root";
    	private String password = "123456";
    	
    	private  Connection conn;
    	private  Session sess;
    	private  BufferedReader stdout;
    	private BufferedReader stderr;
    	private PrintWriter pw;
    	
    	public SSHLinux()
    	{
    		//使用默认值		
    		long t1 = System.currentTimeMillis();
    		initSession();
    		long t2 = System.currentTimeMillis();
    		System.out.println("远程登陆linux,连接耗时:"+(t2-t1)/1000.0+"s");
    	}
    	
    	public SSHLinux(String hostname, int port, String username, String password) 
    	{		
    		this.hostname = hostname;
    		this.port = port;
    		this.username = username;
    		this.password = password;
    	
    		long t1 = System.currentTimeMillis();
    		initSession();
    		long t2 = System.currentTimeMillis();
    		System.out.println("远程登陆linux,连接耗时:"+(t2-t1)/1000.0+"s");
    	}
    	
    	//初始化连接并建立虚拟终端
    	public void initSession()
    	{
    		try
    		{			
    			conn = new Connection(hostname,port);
    			conn.connect();
    			boolean isAuthenticated = conn.authenticateWithPassword(username, password);
    			if (isAuthenticated == false)
    				throw new IOException("Authentication failed.");
    			
    			sess = conn.openSession();
    			sess.requestDumbPTY();//建立虚拟终端
    			sess.startShell();//打开一个Shell	
    			
    			stdout = new BufferedReader(new InputStreamReader(new StreamGobbler(sess.getStdout()), StandardCharsets.UTF_8));
    			stderr = new BufferedReader(new InputStreamReader(new StreamGobbler(sess.getStderr()), StandardCharsets.UTF_8));
    			pw = new PrintWriter(sess.getStdin(),true);// 准备输入命令
    			
    		}
    		catch (IOException e)
    		{
    			System.out.println("------建立ssh linux连接错误------");
    		}
    	}
    	
    	
    	public void close()
    	{
    		try
    		{
    			stdout.close();
    			stderr.close();
    			pw.close();
    			sess.close();
    			conn.close();
    		}
    		catch (Exception e) 
    		{
    			System.out.println("------关闭ssh连接错误------");
    		}
    	
    	}
    
    	public List<String> execute(String strcmd)
    	{			
    		System.out.println("在execute()中接收到命令:"+ strcmd );
    		List<String> rstList = new ArrayList<String>();
    		try
    		{		
    			if(strcmd.equals("exit"))
    			{
    				pw.println(strcmd);// 输入待执行命令	
    				close();
    				rstList.add("用户退出,关闭连接!!!");
    				return rstList;
    			}
    			
    			pw.println(strcmd);// 输入待执行命令					
    			
    			while (true)
    			{
    				String line = stdout.readLine();
    				if (line == null || line.trim().endsWith("#"))
    					break;
    				
    				System.out.println(line);
    				rstList.add(line);
    			}
    						
    		}
    		catch (IOException e)
    		{
    			System.out.println("------连接已经关闭或命令出错------");
    		}		
    			
    		return rstList;		
    	}
    
    	
    	public static void main(String[] args)
    	{
    		SSHLinux ssh = new SSHLinux("192.168.0.160",22,"root","123456");
    		List<String> list = ssh.execute("pwd");
    		System.out.println("list----: "+list);
    		//ssh.execute("exit");
    	}
    }


    3.页面后台调用前面初始化方法和执行命令的方法,这个方法叫getLinux(),主要是和前台页面交互。我在这个方法命名为linux,即@RequestMapping("/linux"),前台就可以通过linux.do识别了。

    首先创建弹出框并初始化:

            /*
    	 * 创建按钮弹出框
    	 */
    	@RequestMapping("/addWindow")
    	public ModelAndView goNewAddServer(HttpServletRequest req)
    	{ 
    		//ssh连接linux---------从xml配置文件中读取参数
    		ApplicationContext ct = new ClassPathXmlApplicationContext("applicationContext.xml");
    		Permission per = (Permission) ct.getBean("linux");		
    		String hostname = per.getIp();
    		int port  = per.getPort();
    		String username = per.getUsername();
    		String password = per.getPassword();
    		System.out.println("ssh连接linux---------Permission="+per.toString());
    		
    		try {
    			ssh = new SSHLinux(hostname,port,username,password);
                            //或者将账号写死
    			//ssh = new SSHLinux("192.168.1.12",22,"root","123456");
    		} catch (Exception e) {			
    			e.printStackTrace();
    		}		
    		return new ModelAndView("/admin/cloudcompute/box");///对应web console页面
    	}
    其次执行命令,主要是和前台页面交互
            /*
    	 * 在linux web shell中执行命令
    	 */
    	@RequestMapping("/linux")
    	@ResponseBody
    	private void getLinux(HttpServletRequest request, HttpServletResponse response)throws Exception{
    		System.out.println("\n-----------------Linux Shell-----------------\n");		
    		String cmd = request.getParameter("code");
    		System.out.println("执行命令: "+cmd);
    		
    		if(ssh!=null)
    		{
    			List<String> list = new ArrayList<String>();
    			if(cmd.length()==0)
    			{
    				System.out.println("输入为空");
    				//list.add("输入为空");
    			}
    			else if(cmd!="" || cmd.length()!=0 || cmd!=null)
    			{
    				list = ssh.execute(cmd);	
    			}
    			
    			System.out.println("返回结果list----: "+list);
    			
    			String result = ""; //{'data:','
    			for(String str : list)
    			{
    				result += str.trim()+"<br/>";
    			}
    			//result +="'}";				
    			ResponseUtil.write(response, result);
    			//JsonBinder buildNormalBinder = JsonBinder.buildNormalBinder();
    			//return buildNormalBinder.toJson(result);
    		}
    		else
    		{
    			System.out.println("没有连接,不执行命令");
    			//return "";
    		}
    						
    	}//


    4.接下来看页面,页面很简单:主要是定义<ul>列表来接收命令,因为发送的命令占一行,回来的结果为一行或多行,所以<ul>列表很合适。

    <!-- 按钮触发模态框 -->
    <span class="annnys">
    	<a id="linuxWindow" class="pve-tabletack active-tabletack" href="javascript:establishDialog()" style="cursor:pointer;">控制台</a>											
    </span>
    <!-- 模态框(Modal) -->
    <div class="modal fade" id="myModal"
    	 tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    	<div class="modal-dialog"  style="width:703px;height:410px;">
    		<div class="modal-content">
    			<div class="modal-header">
    				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
    				<p class="modal-title" id="myModalLabel">Linux 控制台</p>
    			</div>
    			<div class="modal-body" style="padding:0px;">
    				<!-- <iframe id="box" src="box.jsp" style="width:600px;height:400px;"></iframe> -->
    				
    				<div class="wingb" id="msg">
    					<ul class="myul">
    					<li>----------------------命令Demo----------------------------</li>
    					<li>关闭进程方式1:</li>	
    					<li>ps -aux | grep test.jar		//根据提交的jar包名字来查找进程,再kill -9 [pid]杀掉进程</li>
    					<li>关闭进程方式2:</li>	
    					<li>ps -aux | grep test.jar | kill -9 `awk '{print $2}'`	//查找进程id并立即杀掉</li>
    					<li>关闭进程方式3:</li>
    					<li>kill -9 $(cat my.pid)	//前提:提交任务时获取进程号: spark-submit --class demo.WordCount test.jar & echo $!>my.pid</li>
    					<li>----------------------开始操作----------------------------</li>
    					</ul>								
    					<!-- <div class="incmd"  contentEditable="true"  id='in'>$</div> -->
    					<input class="incmd" type="text" value="$" id='in'>
    				</div>
    				
    			</div><!-- modal-body -->
    		</div><!-- /.modal-content -->
    	</div><!-- /.modal-dialog -->
    </div><!-- /.modal -->
    <script>				
    $("#in").keyup(function(event) {					
    	if (event.keyCode == 13) {	//回车			
    		$.ajax({
    			async: false,
    			type : "POST",
    			url : "${pageContext.request.contextPath}/admin/cloudcompute/linux.do",
    			data : "code=" + $("#in").val().substring(1),
    			success : function(data) {
    				$("ul").append("<li>" + $("#in").val() + "</li>");  //将输入的输出到界面
    				$("ul").append("<li>" + data + "</li>"); //获取返回值并输出
    				$("#in").val("$"); //清空输入框
    				$("#msg").scrollTop($("#msg").scrollTop() + 9999);//滚动条拉到最下面,显示出输入框
    			}
    		});
    	}
    	else  if(event.ctrlKey && event.which == 81){ //ctrl+Q 中断
    		alert("ctrl+Q 中断");
    		 CloseWebPage();
    	}
    });
    
    $("#in")[0].focus();
    
    function CloseWebPage() {
    	if (navigator.userAgent.indexOf("MSIE") > 0) {
    		if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {
    			window.opener = null;
    			window.close();
    		} else {
    			window.open('', '_top');
    			window.top.close();
    		}
    	} else if (navigator.userAgent.indexOf("Firefox") > 0) {
    		window.location.href = 'about:blank ';
    	} else {
    		window.opener = null;
    		window.open('', '_self', '');
    		window.close();
    	}
    }
    
    //创建按钮 弹出框
    function establishDialog(){
    	xajax.iframeLAYER('${pageContext.request.contextPath}/admin/cloudcompute/addWindow.do',
    			"linux控制台", 
    			'620px', 
    			'430px',
    			function(){	
    	});
    		
    }
    
    </script>

    这是原来的页面中增加的一个模态框,通过按钮触发。当然也可以新建一个页面专门来做控制台,代码都一样,如图:

    <%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>命令行窗口</title>
    <script type="text/javascript" src="${pageContext.request.contextPath}/static/public-js/jquery-1.8.0.min.js"></script>
    <script type="text/javascript" src="${pageContext.request.contextPath}/static/layer/layer.js"></script>
    
    <style type="text/css">
    body{
    	background-color: #424242;  /*背景颜色*/
    	font-size:14px;
    	font: "微软雅黑";
    }
    
    
    .incmd {
    	background-color: #9FB6CD; /*输入行颜色*/
    	border: 0;
    	color: #FFFFFF; /*输入字体颜色*/
    	outline: none;
    	font-size:14px; 
    	width: 99%;
    }
    
    .panel {/*暂时未用*/
    	background-color: #424242;  /*背景颜色*/
    	border-top: #424242 outset 2px;/*上边框*/
     	width: 700px;
    	height: 500px;
    	overflow-y: scroll;
    	overflow-x:visible;
    	font-size:14px;
    	
    }
    
    ul {
    	margin: 0px;
    	padding: 0px;
    	list-style: none;
    	color:#7CFC00; /*显示字体颜色*/
    }
    
    input {
    	background-color: #9FB6CD; /*输入行颜色*/
    	border: 0;
    	color: #FFFFFF; /*输入字体颜色*/
    	outline: none;
    	font-size:14px; 
    	width: 99%;
    }
    </style>
    
    <script>
    $(function(){
    	$("#in").keyup(function(event) {		
    	
    		if (event.keyCode == 13) {	//回车			
    			$.ajax({
    				async: false,
    				type : "POST",
    				url : "${pageContext.request.contextPath}/admin/cloudcompute/linux.do",
    				data : "code=" + $("#in").val().substring(1),
    				success : function(data) {
    					$("ul").append("<li>" + $("#in").val() + "</li>");  //将输入的输出到界面
    					$("ul").append("<li>" + data + "</li>"); //获取返回值并输出
    					$("#in").val("$"); //清空输入框
    					$("#msg").scrollTop($("#msg").scrollTop() + 32);//滚动条拉到最下面,显示出输入框
    				}
    			});
    		}
    		/* else  if(event.ctrlKey && event.which == 81){ //ctrl+Q 中断
            	alert("ctrl+Q 中断");
            }
    		else  if(event.which == 27){ //ESC 退出			
            	alert("ESC终端");
            	CloseWebPage();
            }
    			 */
    	});
    
    	$("#in")[0].focus();	
    	
    });
    	
    	
    
    function CloseWebPage() {
    	if (navigator.userAgent.indexOf("MSIE") > 0) {
    		if (navigator.userAgent.indexOf("MSIE 6.0") > 0) {
    			window.opener = null;
    			window.close();
    		} else {
    			window.open('', '_top');
    			window.top.close();
    		}
    	} else if (navigator.userAgent.indexOf("Firefox") > 0) {
    		window.location.href = 'about:blank ';
    	} else {
    		window.opener = null;
    		window.open('', '_self', '');
    		window.close();
    	}
    }
    </script>
    </head>
    
    <body>
    <div id="msg">
    	<ul>
    	<li>----------------------命令Demo----------------------------</li>
    	<li>关闭进程方式1:</li>	
    	<li>ps -aux | grep test.jar		//根据提交的jar包名字来查找进程,再kill -9 [pid]杀掉进程</li>
    	<li>关闭进程方式2:</li>	
    	<li>ps -aux | grep test.jar | kill -9 `awk '{print $2}'`	//查找进程id并立即杀掉</li>
    	<li>关闭进程方式3:</li>
    	<li>kill -9 $(cat my.pid)	//前提:提交任务时获取进程号: spark-submit --class demo.WordCount test.jar & echo $!>my.pid</li>
    	<li>----------------------开始操作----------------------------</li>
    	</ul>
    
    	<!-- <div class="incmd"  contentEditable="true"  id='in'>$</div> -->
    	<input type="text" value="$" id='in'>
    </div>
    
    </body>
    </html>
    

    5.页面调用后台代码的部分都是一样的,linux.do就会调转到前面提到的getLinux()方法。

    ok, 本文主要从后台到前台的顺序讲了如何实现一个简单web shell。

    完。

    我准备写一个公众号技术博客,回顾我学大数据以来的个人经验,希望和大家一起每天进步一点点!刚刚开始写,请大家多多支持,如有不足之处多多包含,最后多多关注哈哈哈。


    展开全文
  • Linux web服务的基本配置(httpd)

    万次阅读 2017-06-07 18:00:15
    Linux web服务的基本配置参考Linux服务之httpd基本配置详解(主要)Linux中Apache安装与配置(CentOS-6.5:httpd-2.4.tar.gz)总结之:CentOS 6.5 HTTPD服务的全面解读及配置详解环境:​ Red hat 6.5 ​ apache/...

    Linux web服务的基本配置

    参考

    Linux服务之httpd基本配置详解(主要)

    Linux中Apache安装与配置(CentOS-6.5:httpd-2.4.tar.gz)

    总结之:CentOS 6.5 HTTPD服务的全面解读及配置详解

    环境:

    ​ Red hat 6.5

    ​ apache/2.2.15


    安装GNOME视图桌面系统会默认安装httpd服务(依赖关系)

    [httpd]

    俗称apache,是最流行的Web服务器端软件。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。也是一个基金会的名称、一种武装直升机等等。

    httpd其实是一种高度模块化设计的、通常由核心和各种模块所组成

    查询安装:

    rpm -q httpd

    安装apache

    yum install httpd

    查看版本

    [root@conling 桌面]# httpd -v
    Server version: Apache/2.2.15 (Unix)
    Server built:   Aug  2 2013 08:02:15

    httpd的常用的功能特性:

    支持路径别名:alias
    支持用户认证:基本认证和摘要认证authentication
    支持虚拟主机:virtual host 在一个物理主机上提供多个站点
    支持负载均衡:是反向代理的一个子特性
    支持用户站点:当前用户都可以在自己的家目录下创建自己的站点
    支持CGI:Common Gateway Interface 通用网关接口

    目录结构

    服务脚本:/etc/rc.d/init.d/httpd
    脚本配置文件路径:/etc/sysconfig/httpd
    运行目录:/etc/httpd
    配置文件:
      主配置:/etc/httpd/conf/httpd.conf
      扩展配置:/etc/httpd/conf.d/*.conf
    监听的Socket: tcp的80, 443是https/tcp的监听端口
    在内核中使用小于1023的端口的只有管理员
    文档根目录:/var/www/html
    CGI目录:/var/www/cgi-bin/

    主配置文件结构

    全局配置:对主服务器或虚拟主机都有效,且有些功能是服务器自身工作属性;

    主服务器配置:主站属性

    虚拟服务器:虚拟主机及属性定义

    测试配置和查看的命令

    service httpd configtest #测试配置文件有没有语法错误
    
    httpd -t #同上
    
    httpd -l #当前服务器所使用的模型及开启模块
    
    httpd -D DUMP_MODULES #当前服务器支持的模块
    
    service httpd reload #重新加载配置文件
    
    service httpd restart #重启httpd服务

    注意:修改配置文件后要重新加载配置文件,修改服务器监听端口后要重启服务

    主配置文件的基本配置

    配置httpd的工作属性时,指令不区分大小写,但有约定俗成的习惯:

    单词的首字母大写;指令的值很有可能区分大小写;有些指令可以重复使用多次;

    Listen [IP:]PORT    //配置监听的端口,IP为可选项,不写则监听所有接口的端口。
                        例如:Listen 172.16.3.1:80 ,多个站点时需要监听多个接口。

    指定网站的主目录

    DocumentRoot "/var/www/html" 
    Options         //配置页面文件的访问属性
    Indexes #是否允许索引页面文件,建议关闭
    FollowSymLinks #是否跟随软连接文件
    SymLinksifOwnerMatch #跟随符号链接,只允许访问运行apache的用户有属主权限的文件
    ExecCGI: #是否允许执行CGI脚本;

    基于客户端的访问控制

    系统默认允许所有人访问
    Order #定义allow和deny那个为默认法则;写在后面的为默认法则:写在前面的指令没有显示定义的即受后面的指令控制:
    Order allow,deny
    Allow from all #所有人可以访问
    
    例:配置允许172.16.0.0/16访问,但不允许172.16.3.1访问
    Order allow,deny
    Deny from 172.16.3.1 #禁用一个IP访问
    Allow from 172.16.0.0/16 #允许一个网段访问

    userdir个人站点

    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    #UserDir disabled #注释此项
    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    #
    UserDir public_html #开启此项
    //在相应的用户家目录中创建文件public_html 即可实现访问。
    重新加载配置文件后用:http://HOST/~username/
    例如:http://172.16.3.1/~centos/

    定义默认主页

    DirectoryIndex index.PHP index.jsp index.html

    日志功能

    日志有两类:访问日志(格式自定义)、错误日志

    错误日志:
    
    ErrorLog "/path/to/error_log_file"
    
    访问日志:
    
    CustomLog "/path/to/custom_log_file" logformat
    
    日志格式:{combined|common|agent}
    
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    
    LogFormat "%{Referer}i -> %U" referer
    
    LogFormat "%{User-agent}i" agent

    %h #主机名

    %l #

    %u #用户名

    %t #请求到达的时间

    %r #请求报文的起始行,方法

    %s #

    %b #响应报文的大小

    %{Foobar}i #显示从发那个站点跳转过来

    %{User-Agent}i #用户代理


    基于用户访问控制

    当你的网站或者站点的某个路径只想让你授权的用户访问时,就可以使用基于用户的访问控制

    这里使用htpasswd命令建立用户帐号文件

    htpasswd
    
    -c #第一次使用-c创建新文件,不是第一次不要使用此选项
    
    -m #用户密码使用MD5加密后存放
    
    -s #用户密码使用SHA加密后存放
    
    -p #用户密码不加密
    
    -d #禁用一个账户
    
    -e #启用一个账户

    例如:

    # htpasswd -c -m /etc/httpd/conf/.htpass tom

    命令 选项 生成的用户文件路径及文件名 用户名

    # htpasswd -m /etc/httpd/conf/.htpass jerry

    # 再次添加用户时就不要使用-c选项了,否则会覆盖之前内容先生成

    (1)建立用户帐号文件
    
    \# htpasswd -c -m /etc/httpd/conf/.htpass tom
    
    (2)修改主配置文件(直接在主站添加用户认证功能)
    
    \# vi /etc/httpd/conf/httpd.con
    
    DocumentRoot "/www/html" #此时网站根目录就是/www/html
    
    Optins Indexes
    
    AllowOverride AuthConfig
    
    AuthName "Oaly for employees." #登录提示信息,可自定义
    
    AuthType Basic #认证方式
    
    AuthUserFile /etc/httpd/conf/.htpass #用户帐号文件
    
    Require valid-user #允许的用户
    
    Require 指定可以访问的用户,可以指定单个用户,直接写用户名就可以了,用户名可以写多个用空格分开,也可以指定所有用户就用 valid-user

    对某个目录进行用户访问控制
    这里写图片描述

    虚拟主机

    第一种方式,在主配置文件的末尾,有虚拟主机的模板

    <VirtualHost *:8080>
        DocumentRoot /var/www/blog
        DirectoryIndex index.html
    </VirtualHost>
    Listen 8080
    //添加以上内容  意为启用监听8080端口,且该端口的网站目录为/var/www/blog,默认文档为index.html.
    //该方式为通过指定端口的形式来访问不同的站点。
    

    第二种方式,在同一台服务器上创建不同的主机名的虚拟主机。

    (1)注释主服务器,添加虚拟主机
    # DocumentRoot "/www/html" #注释主服务器
    NameVirtualHost 172.16.3.1:80 #开启虚拟主机
    DocumentRoot /www/web1 #虚拟主机的网站根目录
    ServerName web1.lyd.com #主机名
    DocumentRoot /www/web2
    ServerName web2.lyd.com
    (2)给虚拟主机提供测试文件
    mkdir /www/web{1,2}
    echo web1.lyd.com > /www/web1/index.html
    echo web2.lyd.com > /www/web2/index.html
    (3)配置完后用 httpd -t 测试配置文件有没有错误
    (4)重启服务 service httpd restart
    (5)验证,修改验证客户端的hosts文件,
    windows客户端
    开始-->运行-->输入"c:\windows\system32\drivers\etc\hosts"用记事本打开并添加以下行
    172.16.3.1web1.lyd.com
    172.16.3.1web2.lyd.com
    

    配置防火墙

        #修改防火墙配置: 
        # vi + /etc/sysconfig/iptables
        #添加配置项 
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
        #重启防火墙 
        # service iptables restart

    检查端口状态

    netstat -tln    //查看相应的端口是否已开启
    展开全文
  • 原书:Kali Linux Web Penetration Testing Cookbook译者:飞龙 在线阅读 PDF格式 EPUB格式 MOBI格式 Github Git@OSC 赞助我协议CC BY-NC-SA 4.0
    展开全文
  • windows无法访问vmware搭建好虚拟机linux web服务器 【前置条件】 vmware搭建好虚拟机web服务器 ,但是本机就是无法访问的解决办法。 linux虚拟机的网络选择Bridged 桥接到本机网卡。 具体情况如下 : ...

    windows无法访问vmware搭建好虚拟机linux web服务器

    【前置条件】

    vmware搭建好虚拟机web服务器 ,但是本机就是无法访问的解决办法。 linux虚拟机的网络选择Bridged 桥接到本机网卡。

    具体情况如下 :

    1.本机能ping通虚拟机 

    2.虚拟机也能ping通本机 

    3.虚拟机能访问自己的web 

    4.本机无法访问虚拟机的web 

    【问题原因】

    这个情况大多是防火墙屏蔽了80端口导致的,需要对防火墙进行配置。

    【解决方法】

    1、在terminate中敲入命令 setup,进入Firewall configuration

    2、tab键选择Customize

    3、上下箭头选择最后一项www(http)这个是web服务器开通的80端口,勾选上表示trusted 可信 。这里就可以关闭 保存了

     

    保存关闭后,window就可以访问了。

     

    参考网站:http://hi.baidu.com/neuz_/item/ed99fc0924c84d34a3332a1b

    展开全文
  • linux web服务器搭建

    千次阅读 2016-06-30 22:44:59
    linuxWeb服务器搭建 boa web服务器介绍boa是一款非常小巧的web服务器,执行代码大约只有60K,广泛应用于嵌入式平台。boa服务器是一个单任务网络服务器,只能依次执行用户的请求。bao下载地址(已经进10年没有更新...
  • 第一章 配置 Kali Linux 作者:Gilberto Najera-Gutierrez 译者:飞龙 协议:CC BY-NC-SA 4.0 简介在第一章中,我们会涉及如何准备我们的 Kali 以便能够遵循这本书中的秘籍,并使用虚拟机建立带有存在漏洞的 ...
  • 嵌入式Linux Web 编程

    千次阅读 2011-03-07 17:30:00
    好久没有写文章了,最近比较忙了,论文、实习……一堆事情,废话少说,直奔主题今天来谈谈最近做的一个东西,在用的freescale Imx27中架一个WEB server ,其实就是一个简单的B/S架构了。首先,既然是一个WEB server ...
  • linux web项目访问404

    千次阅读 2018-12-28 17:39:00
    写好一个Web项目想部署到Linux上运行一下,把Tomcat、Mysql、JDK等环境搭好后,访问Tomcat欢迎页面正常,访问ip:端口/项目名却显示404。找了好久,修改Tomcat配置文件等等措施都试过了,都无效。 项目用root帐号...
  • vue + flask 实现的 linux web dashboard

    千次阅读 2017-05-15 21:48:14
    最近抽空写了一个linux 的 dashboard, 借此熟悉了vue框架和前端构建技术webpack等技术, 偶尔一次看到羊驼的英文名叫alpaca, 就拿来做这个项目的名字了。 alpaca是一个基于vue2.0 python2.7 flask的简单linux ...
  • CentOs下LinuxWeb服务器的搭建

    千次阅读 2019-04-20 21:42:42
    一、安装Web服务器所需软件,设置服务器的IP为192.168.1.2 。 1、安装Apache服务程序(apache服务的软件包名称叫做httpd) yum install httpd -y 2、将Apache服务添加到 开机自启中 systemctl start httpd ...
  • 嵌入式Linux WEB服务器整体设计

    千次阅读 2014-02-25 10:32:14
    《ARM Linux开发-warewin 2G/3G无线传输(DTU)和路由器—笔记》 特点 最主要的目的是显示设备的状态,显示设备的参数,修改设备的参数。 Web服务器支持GET POST方法 支持包含文本图片的静态网页 用基本的web...
  • linux web端在线查看服务器图片

    千次阅读 2019-01-24 17:25:03
    在图片目录下使用命令行: 基于python3 python -m http.server python2可能是: python -m SimpleHTTPServer 然后在浏览器输入服务器IP:8000进行访问
  • 1、假如web服务器是apache,那么用户访问web页面的时候,就是通过apache服务(httpd)的所有者的身份进行访问,所以要将 apache也就是httpd服务的所有者和所有组设为apache或者自定用户,不要用root,这个一般安装的...
  • linux web监控服务器资源工具 netdata

    千次阅读 2017-01-20 10:07:20
    具体的netdata介绍请参照... 以下只介绍centos下的netdata的安装与使用: 1、安装Netdata需要的基本编译环境安装: yum install zlib-devel gcc make git autoconf autogen automake pkgconfig 2、下载和安装Netdat
  • CentOS并不算是一个流行的Linux发行版,在各种热门Linux发行版的排行上都没什么特别好的排名;CentOS也是一个丝毫没有个性的发行版--它根本就是和Red Hat企业级Linux一模一样的。
  • Applications | Kali Linux | Web Applications | Web Vulnerability Scanners | vega ,或者通过终端来打开 Vega: vega 点击“开始新扫描“按钮。 新的对话框会弹出。在标为 Enter a base URI for scan 的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 658,439
精华内容 263,375
关键字:

linuxweb

linux 订阅