chmod 777、755 root权限

rm 删除文件

rm -rf 删除文件夹

ctrl+o 保存

ctrl+x 退出

:wq 保存并退出

查看一台服务器上面哪些服务及端口

netstat  -lanp

查看一个服务有几个端口。比如要查看mysqld

ps -ef |grep mysqld

查看某一端口的连接数量,比如443端口

netstat -pnt |grep :443 |wc

查看某一端口的连接客户端IP 比如443端口

netstat -anp |grep 443

下载WordPress安装包并解压

  • wget http://wordpress.org/latest.tar.gz
  • 接着使用一下命令解压缩: 
    tar -xzvf latest.tar.gz

安装ufw
sudo apt-get install ufw
 
启用ufw
sudo ufw enable
 
阻止所有外部对本机的访问
sudo ufw default deny
 
允许所有的外部IP访问本机的22/tcp (ssh)端口
sudo ufw allow 22/tcp
 
允许此IP访问所有的本机端口
sudo ufw allow from 10.0.0.163
 
sudo ufw allow from 10.0.0.162
 
sudo ufw allow from 10.0.0.161
 
查看防火墙状态
sudo ufw status
 
删除上面建立的某条规则
sudo ufw delete allow smtp 
 
防火墙规则文件路径
/lib/ufw/user.rules
 
关闭防火墙 
sudo ufw disable

通过登入IP记录Linux所有用户登录所操作的日志

对于Linux用户操作记录一般通过命令history来查看历史记录,但是如果在由于误操作而删除了重要的数据的情况下,history命令就不会有什么作用了。那么依然要存有历史操作记录应该如何来实现呢?其实我们可以通过登陆IP地址来记录所有用户登录所操作的历史操作!具体操作就是在/etc/profile配置文件的末尾加入以下脚本代码来实现:

# History

USER=`whoami`

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`

if [ "$USER_IP" = "" ]; then

USER_IP=`hostname`

fi

if [ ! -d /usr/local/history ]; then

mkdir /usr/local/history

chmod 777 /usr/local/history

fi

if [ ! -d /usr/local/history/${LOGNAME} ]; then

mkdir /usr/local/history/${LOGNAME}

chmod 300 /usr/local/history/${LOGNAME}

fi

export HISTSIZE=10000

DT=`date +"%Y-%m-%d_%H:%M:%S"`

export HISTFILE="/usr/local/history/${LOGNAME}/${USER}@${USER_IP}_history.$DT"

chmod 600 /usr/local/history/${LOGNAME}/*history* 2>/dev/null

[root@server ~]# source /etc/profile

[root@server ~]# logout

# 此时需要退出系统再重新登录,在/usr/local/history/目录下才有记录

[root@server ~]# ll /usr/local/history/root/

总用量 12

-rw------- 1 root root  77 10月 11 09:09 root@192.168.1.23_history.2012-10-11_09:09:12

-rw------- 1 root root 529 10月 11 09:11 root@192.168.1.23_history.2012-10-11_09:09:16

-rw------- 1 root root 187 10月 11 09:12 root@192.168.1.23_history.2012-10-11_09:11:26

终于到了在这里简洁的介绍一下ufw到底如何去用的时候了。本文只讲顺序问题不讲语法问题,语法问题可以自己查询man page或者其他网站的精彩文章。这里只说一些别的文章上不说的地方,从实际生产环境和多次测试得来经验。

那iptables通过-A和-I区分插入还是添加,ufw也是有的,而且ufw的本质还是跟iptables风格一样的配置文件(这个文件是/lib/ufw/user.rules,这个文件就像CentOS下的/etc/sysconfig/iptables文件一样,记录着用户自定义的规则),具体什么内容什么语法自己可以去查看。

此处以ssh默认端口22为例,列举一下允许所有主机访问本机22端口但禁止某一台主机(10.20.0.1)访问22端口的例子。

如果是初次配置ufw防火墙,那么可以这么做:

sudo ufw reset#重置防火墙    
sudo ufw enable#启用防火墙     
sudo ufw default reject#配置默认规则,拒绝     
sudo ufw deny from 10.20.0.1#拒绝某IP访问,或执行sudo ufw deny from 10.20.0.1 to 10.20.0.130 port 22     
sudo ufw allow 22/tcp#允许所有主机访问22端口     
sudo ufw status#查看ufw状态

如果ufw已经被配置过,规则已经有了,那就这么做:

sudo ufw status numbered#按照数字书序查看ufw状态,注意带v6的不用管    
sudo ufw insert 1 deny from 10.20.0.1#或者sudo ufw insert 1 deny from 10.20.0.1 to 10.20.0.130 port 22

sudo ufw allow 22/tcp    
sudo ufw status

经过上述配置以后,如/lib/ufw/user.rules文件会像下面显示:

### tuple ### deny any 22 10.20.0.130 any 10.20.0.1 in    
-A ufw-user-input -p tcp -d 10.20.0.130 --dport 22 -s 10.20.0.1 -j DROP     
-A ufw-user-input -p udp -d 10.20.0.130 --dport 22 -s 10.20.0.1 -j DROP

### tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 in    
-A ufw-user-input -p tcp --dport 22 -j ACCEPT

上面的###开始的注释能使ufw正确识别通过ufw命令添加的规则,自己可以手动用iptables命令去改写。因此通过命令也是可以添加这样的规则的。

例如:

iptables -I ufw-user-input -p tcp -d 10.20.0.130 --dport 22 -s 10.20.0.1 -j DROP      
iptables -I ufw-user-input -p udp -d 10.20.0.130 --dport 22 -s 10.20.0.1 -j DROP

iptables -I ufw-user-input -p tcp --dport 22 -j ACCEPT

为何能手动改写?原因可以通过先启用ufw后再用iptables-save命令查看:

-A ufw-user-input -s 10.20.0.1/32 -d 10.20.0.130/32 -p tcp -m tcp --dport 22 -j DROP    
-A ufw-user-input -s 10.20.0.1/32 -d 10.20.0.130/32 -p udp -m udp --dport 22 -j DROP     
-A ufw-user-input -p tcp -m tcp --dport 22 -j ACCEPT     
-A ufw-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "     
-A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable     
-A ufw-user-limit-accept -j ACCEPT

通过这一段信息可以发现,其实这跟/etc/sysconfig/iptables文件真的一样。

简单一句话,就是先deny,后allow,deny规则插入到allow规则前面,这样才能起到禁止的作用。

ubuntu命令的更多相关文章

  1. ubuntu命令大全

    一.文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回 ...

  2. ubuntu命令行下java工程编辑与算法(第四版)环境配置

    ubuntu命令行下java工程编辑与算法(第四版)环境配置 java 命令行 javac java 在学习算法(第四版)中的实例时,因需要安装配套的java编译环境,可是在编译java文件的时候总是 ...

  3. Ubuntu命令整理

    linux下find命令的使用和总结 - CS408 - 博客园 ubuntu 命令简写和全称 su:Swith user  切换用户,切换到root用户 cat: Concatenate  串联 u ...

  4. Ubuntu命令基础

    Ubuntu命令基础 1.打开终端窗口快捷键. Ctrl+alt+t 2.更新设置root密码. $sudo passwd  root  3.切换到root用户用su,前提是自己设置了root密码(看 ...

  5. ubuntu命令错误集

    1.在ubuntu命令行使用rz从windows传输文件时出现乱码 解决方法:使用 rz -e    选项进行传输,一般小文件传输不用加 -e 选项,大文件传输需要.

  6. 改变Ubuntu命令行 用户名显示前缀

    改变Ubuntu命令行 用户名显示前缀 1.修改命令 [root@daokr ubuntu]#vim ~/.bashrc 修改第 56行 注释掉原来 # PS1='${debian_chroot:+( ...

  7. Ubuntu命令行操作

    一.文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回 ...

  8. Ubuntu命令集(持续更新)

    Ubuntu命令集,生活工作汇总,没有顺序.(持续更新...) 1 pwd:没有参数,在终端现实我们当前所处的文件夹位置:ctrl+l:清除当前终端屏: 2 --------------------- ...

  9. ubuntu命令行打开html文件的方法

    1.Ctrl+Alt+T可以打开shell,F11可以全屏显示,输入以下命令即可打开js17.html,并且指定浏览器,比如指定chrome, 复制代码 代码如下: google-chrome js1 ...

  10. ubuntu命令行相关命令使用心得

    一.Ubuntu解压缩zip,tar,tar.gz,tar.bz2 ZIP zip可能是目前使用得最多的文档压缩格式.它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac ...

随机推荐

  1. Excel与Word套打功能使用技巧及EXCEL数据处理成绩

    Excel与Word套打功能使用技巧 婚礼邀请友人参加,就需要写请柬.而且写请柬不但要求字写得端正,还不能有错别字,再加上邀请的朋友多,写请柬就是一个劳累活.这时我们利用Word的套打功能,就会让写请 ...

  2. SQL Join的一些总结

    1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接.外联接和交叉联接等.如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的 ...

  3. C++ STL之vector用法总结

    介绍 vector是表示可变大小数组的序列容器. 就像数组一样,vector也采用的连续存储空间来存储元素.也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效.但是又不像数组,它的大 ...

  4. Openstack+Kubernetes+Docker微服务实践之路--弹性扩容

    服务上线就要顶的住压力.扛的住考验,不然挨说的还是我们这帮做事的兄弟,还记得上图这个场景吗 老办法是服务集群部署,但总归有个上限,之前跟阿里合作的时候他们有个弹性计算可以通过设置CPU的阀值来动态扩展 ...

  5. 巧用CSS3伪类选择器自定义checkbox和radio的样式

    由于原生的checkbox和radio的样式太简陋了,在设计页面的时候,设计师往往会设计自己的checkbox和radio样式.一半情况下,为了适应各个浏览器的兼容性,我们都会用其他的元素替代原生的c ...

  6. SQL基础--索引

    索引的概念: 在数据库中索引是用于提升数据库查询操作性能的一种手段,但在频繁更新的表上,索引反而会降低性能. 常用的索引结构: B*树索引 位图索引 B树索引: B书索引是最基本的索引结构,Oracl ...

  7. mac系统安装node

    1.node 是通过brew来安装的,所以第一步先安装brew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebre ...

  8. 6.1-CALayer 使用

    @设置圆角 注意点 1圆角效果,并不是在给定frame布局后有,要给定内容后才有 //头像 NSData *data = [[DJXMPPTool sharedInstance].cardAvatar ...

  9. Python中Paramiko协程方式详解

    什么是协程 协程我们可以看做是一种用户空间的线程. 操作系统对齐存在一无所知,需要用户自己去调度. 比如说进程,线程操作系统都是知道它们存在的.协程的话是用户空间的线程,操作系统是不知道的. 为什么要 ...

  10. settings.php rwx

    440/400 https://www.drupal.org/node/137702 You must understand the meaning of XYZ chmod from file at ...