{"id":19442,"date":"2017-02-25T06:17:55","date_gmt":"2017-02-24T22:17:55","guid":{"rendered":"https:\/\/2blog.ilc.edu.tw\/25793\/2017\/02\/25\/%e4%bd%bf%e7%94%a8-fail2ban-%e4%be%86%e4%bf%9d%e8%ad%b7-proxmox\/"},"modified":"2021-03-18T17:24:56","modified_gmt":"2021-03-18T09:24:56","slug":"%e4%bd%bf%e7%94%a8-fail2ban-%e4%be%86%e4%bf%9d%e8%ad%b7-proxmox","status":"publish","type":"post","link":"https:\/\/2blog.ilc.edu.tw\/25793\/2017\/02\/25\/%e4%bd%bf%e7%94%a8-fail2ban-%e4%be%86%e4%bf%9d%e8%ad%b7-proxmox\/","title":{"rendered":"\u4f7f\u7528 fail2ban \u4f86\u4fdd\u8b77 Proxmox"},"content":{"rendered":"<p>\u53c3\u8003\u7db2\u7ad9\uff1a<br \/><a href=\"https:\/\/www.jamescoyle.net\/how-to\/1225-set-up-fail2ban-for-proxmox-web-gui\" target=\"_blank\" rel=\"noopener noreferrer\">Set up Fail2ban for Proxmox Web GUI \u2013 JamesCoyle.net<\/a><\/p>\n<p>1. \u5b89\u88dd fail2ban<br \/># <span style=\"color: #ff0000\">apt-get install fail2ban<\/span><\/p>\n<p>2. \u5099\u4efd fail2ban \u8a2d\u5b9a\u6a94<span style=\"color: #0000ff\"> \/etc\/fail2ban\/jail.conf<\/span><br \/># <span style=\"color: #ff0000\">cp \/etc\/fail2ban\/jail.conf \/etc\/fail2ban\/jail.conf.$(date +%F)<\/span>[@more@]3. \u5728 <span style=\"color: #0000ff\">\/etc\/fail2ban\/jail.conf<\/span> \u8a2d\u5b9a\u6a94\u4e2d\u52a0\u5165\u4e0b\u9762\u5e7e\u884c\u8a2d\u5b9a<br \/><span style=\"color: #0000ff\">[proxmox-web-gui]<\/span><br \/><span style=\"color: #0000ff\">enabled\u00a0 = true<\/span><br \/><span style=\"color: #0000ff\">port\u00a0\u00a0\u00a0\u00a0 = http,https,8006<\/span><br \/><span style=\"color: #0000ff\">filter\u00a0\u00a0 = proxmox-web-gui<\/span><br \/><span style=\"color: #0000ff\">logpath\u00a0 = \/var\/log\/daemon.log<\/span><br \/><span style=\"color: #0000ff\">maxretry = 3<\/span><br \/><span style=\"color: #0000ff\">bantime = 86400<\/span><\/p>\n<p># <span style=\"color: #ff0000\">sed -i &#8216;$a n[proxmox-web-gui]nenabled\u00a0 = truenport\u00a0\u00a0\u00a0\u00a0 = http,https,8006n<\/span><br \/><span style=\"color: #ff0000\">filter\u00a0\u00a0 = proxmox-web-guinlogpath\u00a0 = \/var\/log\/daemon.lognmaxretry = 3nbantim<\/span><br \/><span style=\"color: #ff0000\">e = 86400&#8242; \/etc\/fail2ban\/jail.conf<\/span><\/p>\n<p>4. \u5efa\u7acb <span style=\"color: #0000ff\">proxmox-web-gui.conf<\/span>\u00a0 \u8a2d\u5b9a\u6a94<br \/># <span style=\"color: #ff0000\">vim \/etc\/fail2ban\/filter.d\/proxmox-web-gui.conf<\/span> <br \/>\u52a0\u5165\u4e0b\u9762\u7684\u8a2d\u5b9a<br \/><span style=\"color: #0000ff\">[Definition]<\/span><br \/><span style=\"color: #0000ff\">failregex = pvedaemon[[0-9]+]: authentication failure; rhost=&lt;HOST&gt; user=.* msg=.*<\/span><\/p>\n<p>5. \u6e2c\u8a66\u8a2d\u5b9a\u6a94<br \/># <span style=\"color: #ff0000\">fail2ban-regex \/var\/log\/daemon.log \/etc\/fail2ban\/filter.d\/proxmox-web-gui.conf<\/span><br \/><span style=\"color: #0000ff\">Running tests<\/span><br \/><span style=\"color: #0000ff\">=============<\/span><\/p>\n<p><span style=\"color: #0000ff\">Use\u00a0\u00a0 failregex file : \/etc\/fail2ban\/filter.d\/proxmox-web-gui.conf<\/span><br \/><span style=\"color: #0000ff\">Use\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 log file : \/var\/log\/daemon.log<\/span><\/p>\n<p><span style=\"color: #0000ff\">Results<\/span><br \/><span style=\"color: #0000ff\">=======<\/span><\/p>\n<p><span style=\"color: #0000ff\">Failregex: 1 total<\/span><br \/><span style=\"color: #0000ff\">|-\u00a0 #) [# of hits] regular expression<\/span><br \/><span style=\"color: #0000ff\">|\u00a0\u00a0 1) [1] pvedaemon[[0-9]+]: authentication failure; rhost=&lt;HOST&gt; user=.* msg=.*<\/span><br \/><span style=\"color: #0000ff\">`-<\/span><\/p>\n<p><span style=\"color: #0000ff\">Ignoreregex: 0 total<\/span><\/p>\n<p><span style=\"color: #0000ff\">Date template hits:<\/span><br \/><span style=\"color: #0000ff\">|- [# of hits] date format<\/span><br \/><span style=\"color: #0000ff\">|\u00a0 [4421] MONTH Day Hour:Minute:Second<\/span><br \/><span style=\"color: #0000ff\">`-<\/span><\/p>\n<p><span style=\"color: #0000ff\">Lines: 4421 lines, 0 ignored, 1 matched, 4420 missed<\/span><\/p>\n<p>6. \u91cd\u65b0\u555f\u52d5 fail2ban<br \/># <span style=\"color: #ff0000\">systemctl restart fail2ban<\/span><\/p>\n<p>7. \u5217\u51fa\u4f7f\u7528\u72c0\u6cc1<br \/># <span style=\"color: #ff0000\">fail2ban-client -v status<\/span><br \/><span style=\"color: #0000ff\">INFO\u00a0\u00a0 Using socket file \/var\/run\/fail2ban\/fail2ban.sock<\/span><br \/><span style=\"color: #0000ff\">Status<\/span><br \/><span style=\"color: #0000ff\">|- Number of jail:\u00a0\u00a0\u00a0\u00a0\u00a0 2<\/span><br \/><span style=\"color: #0000ff\">`- Jail list:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ssh, proxmox-web-gui<\/span><\/p>\n<p># <span style=\"color: #ff0000\">fail2ban-client -v status proxmox-web-gui<\/span><br \/><span style=\"color: #0000ff\">INFO\u00a0\u00a0 Using socket file \/var\/run\/fail2ban\/fail2ban.sock<\/span><br \/><span style=\"color: #0000ff\">Status for the jail: proxmox-web-gui<\/span><br \/><span style=\"color: #0000ff\">|- filter<\/span><br \/><span style=\"color: #0000ff\">|\u00a0 |- File list:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/log\/daemon.log<\/span><br \/><span style=\"color: #0000ff\">|\u00a0 |- Currently failed: 1<\/span><br \/><span style=\"color: #0000ff\">|\u00a0 `- Total failed:\u00a0\u00a0\u00a0\u00a0 1<\/span><br \/><span style=\"color: #0000ff\">`- action<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0 |- Currently banned: 0<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0 |\u00a0 `- IP list:<\/span><br \/><span style=\"color: #0000ff\">\u00a0\u00a0 `- Total banned:\u00a0\u00a0\u00a0\u00a0 0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u53c3\u8003\u7db2\u7ad9\uff1aSet up Fail2ban for Proxmox Web GUI \u2013 JamesCoyle.n &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/2blog.ilc.edu.tw\/25793\/2017\/02\/25\/%e4%bd%bf%e7%94%a8-fail2ban-%e4%be%86%e4%bf%9d%e8%ad%b7-proxmox\/\" class=\"more-link\">\u95b1\u8b80\u5168\u6587<span class=\"screen-reader-text\">\u3008\u4f7f\u7528 fail2ban \u4f86\u4fdd\u8b77 Proxmox\u3009<\/span><\/a><\/p>\n","protected":false},"author":55,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[191],"tags":[],"class_list":["post-19442","post","type-post","status-publish","format-standard","hentry","category-c-104943"],"meta_key":{"_pingme":["1"],"_encloseme":["1"],"lt_post_id":["684458"]},"_links":{"self":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19442"}],"collection":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/comments?post=19442"}],"version-history":[{"count":1,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19442\/revisions"}],"predecessor-version":[{"id":20973,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/posts\/19442\/revisions\/20973"}],"wp:attachment":[{"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/media?parent=19442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/categories?post=19442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/2blog.ilc.edu.tw\/25793\/wp-json\/wp\/v2\/tags?post=19442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}