//有一位身在北京的小朋友求一份程序猿的工作,方向是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,备份神器。