fail2ban解封IP

fail2ban可以解封或者添加IP到白名单,但网上基本都是写的直接改iptables

  1. 错误提示:
  2. ERROR  NOK: ('Invalid Action name',)
  3. 'Invalid Action name'
  4.  
  5. 日志提示:
  6. May 11 17:12:32 localhost fail2ban.comm[132096]: WARNING Command ['get', 'JAIL', 'actionban', 'x.x.x.x'] has failed. Received KeyError('Invalid Action name',)
  7.  
  8. fail2ban解封命令:
  9. fail2ban-client set [$JAIL_Name] unbanip [xx.xx.xx.xx]

Linux强制重启关机

  1. 如果Linuxreboot或者shutdown失效时,可以打开sysrq然后强制重启或关机
  2.  
  3. #开启sysrq
  4. echo 1 > /proc/sys/kernel/sysrq 
  5.  
  6. #强制把内存缓存数据刷到硬盘上
  7. echo s > /proc/sysrq-trigger
  8.  
  9. #强制立即重启
  10. echo b > /proc/sysrq-trigger 
  11.  
  12. #强制立即关机
  13. echo o > /proc/sysrq-trigger
  14.  
  15. #Docs
  16. https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s3-proc-sys-kernel.html

openssl生成公钥私钥

  1. 生成RSA私钥
  2. [root@localhost ]# openssl genrsa -out rsa_private_key.pem 1024
  3. Generating RSA private key, 1024 bit long modulus
  4. ...................................................++++++
  5. ................................++++++
  6. e is 65537 (0x10001)
  7.  
  8. RSA私钥转换成PKCS8格式
  9. [root@localhost ]# openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt >>PKCS8
  10. -----BEGIN PRIVATE KEY-----
  11. MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAK3yRORPFpdAroGb
  12. zf8fZSJk+W4FUJKOwtFuiFYb/U1IpcRwHIZOILOPHsMPxoKY26rS2Ou12NRv7Un+
  13. xdWV71237Bxch3lC8BgxYOOPW0Kf/Coz0nqQH6t8z74MI5M+lUn8wleYUVGnZpzC
  14. qiAIn/eAQCeN8TN+UacU6Tt8rtFBAgMBAAECgYAskky219EpFqjgiyTgv5Gxm4AS
  15. ggggVbZz5cfHkMp6OChJypR0kaZtfDncr7klE7gN8JMm6uTRopCCCmd1EENSKtYx
  16. dMrNyTKJfy+ZaApmAn1ecRXuIbsTSfpILy1RSBv9kJFY1ZQs8NBLM62V8u5SM7YJ
  17. g1elwFLQmccF2bmE5QJBAOYptj2dPyUsxEzpreCMnlH8FZE4Nf50alcISwEkWSN3
  18. cul2NNCt2Zn/mId0e9Fj15z/khHIWZsaCxe9WXUv3H8CQQDBeQnFJtSDEpp+Yyti
  19. EdLFfupa+oCywvGtbkRTtJFjnXDt19hXoy/HUfLOrBybyHpoozZK+oGvAviucIjK
  20. yXI/AkEA3oyMm20VppNvx9LX/tzZJPrzu7Q3eTAFttvc8mC8FDAmm5lhnjnLwz1C
  21. tg8qvh+lVzhDfBBWnEOFYFIFUuuRbwJBAK4ha0q3dSN3VfeU+BHvKr24SeOSfMzn
  22. qi9HBFY2OXjn1iErWLsf07vYpOmgfKs1V/7fjtkS+C91RC90d5nUj28CQQCmmgdJ
  23. xn10l0N4iQ4co0UclmGYKNkYd+BXLrvPzaSx0v8FlQgcggOOqpDUuSR0Qq3XEhqI
  24. vKnLReXzcEEJuv55
  25. -----END PRIVATE KEY-----
  26.  
  27. 生成公钥
  28. [root@localhost ]# openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
  29. writing RSA key
  30.  
  31.  
  32. [root@localhost 1]# ls -1
  33. PKCS8 #PKCS8格式的私钥,从RSA私钥来的
  34. rsa_private_key.pem #RSA私钥
  35. rsa_public_key.pem #RSA公钥

keepalived双机热备服务高可用

keepalived+nginx,场景适用于非高并发,但又偏核心业务

VIP: 192.168.3.111
Node1: 192.168.3.171
Node2: 192.168.3.175

  1. 用户
  2.                         ||
  3.                         ISP
  4.                         ||
  5.                 Virtual IP [192.168.3.111]
  6.                 |                |
  7. Node1[192.168.3.171]        Node2[192.168.3.175]
  1. Node1配置文件:
  2. [root@localhost ~]# cat /etc/keepalived/keepalived.conf
  3. vrrp_script check_nginx {              
  4.         script "/usr/bin/killall -0 nginx"
  5.         interval 1 #每秒钟检查一次
  6.         weight 2 #每次priority增加2 如果状态正常的话
  7. }                                        
  8. vrrp_instance VI_1 {
  9.         interface eth1
  10.         state MASTER
  11.         virtual_router_id 51
  12.         priority 101 #Master为101,Slave为100
  13.         authentication {
  14.             auth_type PASS
  15.             auth_pass 123456
  16.         }
  17.         track_script {
  18.                 check_nginx
  19.         }
  20.         virtual_ipaddress {
  21.                 192.168.3.111 dev eth1
  22.         }
  23. }
  24.  
  25. Node2配置文件:
  26. [root@localhost ~]# cat /etc/keepalived/keepalived.conf
  27. vrrp_script check_nginx {
  28.         script "/usr/bin/killall -0 nginx"
  29.         interval 1
  30.         weight 2
  31. }
  32. vrrp_instance VI_1 {
  33.         interface eth1
  34.         state BACKUP
  35.         virtual_router_id 51
  36.         priority 100
  37.         authentication {
  38.             auth_type PASS
  39.             auth_pass 123456
  40.         }
  41.         track_script {
  42.                 check_nginx
  43.         }
  44.         virtual_ipaddress {
  45.                 192.168.3.111 dev eth1
  46.         }
  47. }
  1. Note:
  2. 停止NginxKeepalived本身,两台都会切换;
  3. 在负载较高的服务器上,如果没有对“服务”进行冗余而频繁切换IP是不严谨的,nopreempt可以防止来回抢占IP
  4. nopreempt需要stateBACKUP模式下才允许,并且给它们相同的route_id,两台间优先级较高的将优先取得VIP
  5.  
  6. /etc/sysctl.conf
  7. net.ipv4.ip_nonlocal_bind=1

yum Error: rpmdb open failed 的解决办法

  1. rm -f /var/lib/rpm/__db.*
  2. yum clean all
  3. rpm --rebuilddb
  4. yum makecache