Free yourself from fixing complex.
eleven

//有一位身在北京的小朋友求一份程序猿的工作,方向是JAVA(android),有需求请联系我,或者看这里的简历。

        • -
          有些东西暴露在外网是不安全的,例如phpmyadmin,vpn | ftp帐号管理页面。
          开始琢磨着能不能把这些东西用VPN隔离起来,于是调整nginx的配置文件如下:
location /admin { 
                     allow 192.168.11.0/24; # pptp拨号的IP段 
             deny all; 
}

但是这样做是无效的,然后再试下面的:

allow 86.11.34.123; # 服务器IP地址

还是403错误。瞄了下nginx的日志,发现nginx获得的请求ip是PPTP客户端的真实IP,而不是理解中ppp内网IP或者服务器的IP。
发了一些帖子,有用的回复一个都没有,突然灵光一闪,不如这样:

server {
           listen 192.168.11.1:80; 
       server_name 192.168.11.1; 
       root /home/wwwroot/manager; 
       location / { 
                allow 192.168.11.0/24; # pptp拨号的IP段 
            deny all; 
       } 
}

果然就把这些敏感内容跟外网隔离起来了。
肯定还有其他更简单聪明的办法,不过这样也算满足需求了。我估摸着第一个配置无效的原因大概是pptp的nat没有配置好。

一些tips:

  • 增加一个非root账户,让该用户使用ssh key登录;
  • 在sshd\_config里面关闭root的远程访问,并关闭密码验证使用key验证;
  • 登入系统后,可以使用sudo或者su来切换身份;
  • 更改常用服务的端口,例如ssh,ftp等等;
  • 给web目录赋予正确的权限, 时不时地chown -R一下;
  • 有必要定期apt-get upgrade一下;
  • 可以在服务器上安装一个dropbox,备份神器。

Linux真好玩。

2011-09-28