huikai

生于忧患,死于安乐


ls

格式化时间

ls -l --time-style '+%Y-%m-%d %H:%M:%S'

或者 导出环境变量

export TIME_STYLE='+%Y-%m-%d %H:%M:%S'

date

以当前时间创建目录

命令行:

  1. # 定义时间变量名和显示时间格式
  2. date_prefix=$(date +%Y%m%d-%H%M%S)
  3. # 创建与时间相对应的文件
  4. mkdir $date_prefix

.sh文件

  1. a=`date +%Y%m%d`
  2. mkdir output_$a

远程执行脚本

  1. #!/bin/sh
  2. ssh user@host << remote_bash_flag
  3. ./.deploy
  4. exit
  5. remote_bash_flag

shred

粉碎文件。多次覆盖文件,使得即使是昂贵的硬件探测仪器也难以将数据复原。

参数:

  • -f, --force 必要时修改权限以使目标可写
  • -n, --iterations=N 覆盖N 次,而非使用默认的3 次
  • --random-source=文件 从指定文件中取出随机字节
  • -s, --size=N 粉碎数据为指定字节的碎片(可使用K、M 和G 作为单位)
  • -u 重写之后截断并删除文件
  • --remove[=HOW]-u 但是通过HOW参数删除(HOW可选参数: unlink-调用标准的取消链接;wipe-也会首先混淆名称中的字节;wipesync-还将每个混淆的字节同步到磁盘。默认wipesync,注意它开销比较大)
  • -v, --verbose 显示处理信息
  • -x, --exact 不要将文件大小四舍五入到下一个完整块; 这是非常规文件的默认设置
  • -z, --zero 最后一次使用0 进行覆盖以隐藏覆盖动作
  • --help 显示此帮助信息并退出
  • --version 显示版本信息并退出

示例

重写30次,最后一次使用0覆盖,并删除<file>文件

  1. shred -z -n 30 -v -u <file>

批量粉碎<path>目录下的所有文件

  1. find <path> -type f | xargs shred -z -n 30 -v -u

iptables

开放TCP端口

  1. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  2. iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

端口转发

  1. iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443

配置默认策略禁止INPUT数据

  1. iptables -P INPUT DROP

无法访问外网处理

  1. iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

反向代理本机服务无法访问处理

  1. iptables -A INPUT -p tcp --dport <目标服务端口> -d 127.0.0.1 -j ACCEPT

firewall

开放端口

  1. firewall-cmd --zone=public --add-port=22/tcp --permanent

端口转发

  1. firewall-cmd --add-forward-port=port=443:proto=tcp:toport=8443 --permanent

开启ip伪装

  1. firewall-cmd --add-masquerade --permanent

查询ip伪装状态

  1. firewall-cmd --query-masquerade

nftables

开放端口

  1. nft add rule inet filter input tcp dport 80 accept
  2. # 源码
  3. table inet filter {
  4. chain input {
  5. type filter hook input priority 0; policy drop; # 设置默认拒绝策略
  6. tcp dport 80 accept # 允许TCP 80端口入站
  7. ct state established,related accept # 允许已建立连接
  8. }
  9. }

端口转发

  1. # 启用内核IP转发
  2. echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
  3. sysctl -p
  4. # 创建nftables NAT表
  5. nft add table ip nat
  6. # 转发本机端口
  7. nft add rule ip nat prerouting tcp dport 443 redirect to :8443
  8. # 转发内网主机
  9. # DNAT规则(目标地址转换)
  10. # 将eth0接口的80端口流量转发到内网主机
  11. nft add rule ip nat prerouting iif eth0 tcp dport 80 dnat to 192.168.1.100:80
  12. # 源码
  13. table ip nat {
  14. chain prerouting {
  15. type nat hook prerouting priority dstnat; policy accept;
  16. tcp dport 443 redirect to :8443
  17. iif eth0 tcp dport 80 dnat to 192.168.1.100:80
  18. }
  19. }

开启ip伪装

  1. # SNAT/MASQUERADE规则(源地址转换)
  2. nft add rule ip nat postrouting oif eth0 masquerade

查询配置信息

  1. # 查看规则集
  2. nft list ruleset
  3. # 查看规则表
  4. nft list table ip nat

dd

生成1g的0填充文件

  1. dd if=/dev/zero of=1g.zip bs=1M count=1024

生成1g的随机文件

  1. dd if=/dev/urandom of=1g.zip bs=1M count=1024

SELinux

查看安全性本文

  1. ls -Z

nginx 无法访问静态文件提示Permission denied

  1. semanage fcontext -a -t httpd_sys_rw_content_t '<path>(/.*)?'
  2. restorecon -Rv '<path>'

例如:

  1. semanage fcontext -a -t httpd_sys_rw_content_t '/data/www(/.*)?'
  2. restorecon -Rv '/data/www/'

恢复代码:

  1. semanage fcontext -d '<path>(/.*)?'
  2. restorecon -Rv '<path>'

nginx https无法访问证书导致无法启动

BIO_new_file() failed (SSL: error:0200100D:system library:fopen:Permission denied

  1. semanage fcontext -a -t httpd_config_t '<path>(/.*)?'
  2. restorecon -Rv '<path>'

例如:

  1. semanage fcontext -a -t httpd_config_t '/data/cert(/.*)?'
  2. restorecon -Rv '/data/cert/'

恢复代码:

  1. semanage fcontext -d '<path>(/.*)?'
  2. restorecon -Rv '<path>'

nginx 无法访问后端服务提示``

  1. setsebool -P httpd_can_network_connect 1

  1. setsebool -P httpd_can_network_connect on


 Java备忘录 TrueCrypt备忘录