Ecoer Logo

@timoschuetz

39

This account was instantly created via @steemwallet.app - available for iOS and Android!

steemit.com/@timoschuetz
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS29.05%
Net Worth
0.106USD
STEEM
0.000STEEM
SBD
0.000SBD
Own SP
1.827SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
1.827SP
Delegated Out
0.000SP
Delegation In
0.000SP
Effective Power
1.827SP
Reward SP (pending)
0.000SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.000SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "2970.869329 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

nametimoschuetz
id1314278
rank1,471,372
reputation38710934222
created2019-08-31T18:42:45
recovery_accountsteemwallet.born
proxyNone
post_count5
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2019-09-29T19:15:00
last_root_post2019-09-29T19:15:00
last_vote_time2019-10-02T21:42:36
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power9,799
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares2970.869329 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares0.000000 VESTS
reward_vesting_balance0.000000 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2019-09-13T14:28:39
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 1314278,
  "name": "timoschuetz",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5SYHLaTedhDN3QELUqrNT61jGHoK9FfnQAhLcwpbq9MJbMJCKR",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6HJgArjprPfcCwxaLEKHj9mMK5PQjWbMFkT822jg64xp3xSLUZ",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [
      [
        "engrave.app",
        1
      ]
    ],
    "key_auths": [
      [
        "STM7G5RQF3onwaJtmEs8CcoREvdWqwwsSnUijtURBZhnpek8qwekp",
        1
      ]
    ]
  },
  "memo_key": "STM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK",
  "json_metadata": "{\"profile\":{\"about\":\"This account was instantly created via @steemwallet.app - available for iOS and Android!\",\"website\":\"https://steemwallet.app\",\"dtube_pub\":\"jTchANECdwQhSamZyRN8qKQGs4GowbavSZshSxXkSX1e\"}}",
  "posting_json_metadata": "",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2019-09-13T14:28:39",
  "created": "2019-08-31T18:42:45",
  "mined": false,
  "recovery_account": "steemwallet.born",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 5,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": 2911451942,
    "last_update_time": 1570052556
  },
  "downvote_manabar": {
    "current_mana": 742717332,
    "last_update_time": 1570052556
  },
  "voting_power": 9799,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.000 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "2019-10-02T21:41:30",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "0.000000 VESTS",
  "reward_vesting_steem": "0.000 STEEM",
  "vesting_shares": "2970.869329 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "curation_rewards": 0,
  "posting_rewards": 1450,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2019-09-29T19:15:00",
  "last_root_post": "2019-09-29T19:15:00",
  "last_vote_time": "2019-10-02T21:42:36",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": "38710934222",
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 1471372
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
2019/10/02 21:42:36
votertimoschuetz
authorsteem.marketing
permlinkget-featured-on-steemit-com
weight10000 (100.00%)
Transaction InfoBlock #36942539/Trx 20c2ff7e4095ce0c36113be10cd261c69707ccef
View Raw JSON Data
{
  "trx_id": "20c2ff7e4095ce0c36113be10cd261c69707ccef",
  "block": 36942539,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-10-02T21:42:36",
  "op": [
    "vote",
    {
      "voter": "timoschuetz",
      "author": "steem.marketing",
      "permlink": "get-featured-on-steemit-com",
      "weight": 10000
    }
  ]
}
timoschuetzpowered up 0.545 STEEM to @timoschuetz
2019/10/02 21:41:57
fromtimoschuetz
totimoschuetz
amount0.545 STEEM
Transaction InfoBlock #36942526/Trx 6f5941b695bc919859eee030d9de9a3c2001c006
View Raw JSON Data
{
  "trx_id": "6f5941b695bc919859eee030d9de9a3c2001c006",
  "block": 36942526,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-10-02T21:41:57",
  "op": [
    "transfer_to_vesting",
    {
      "from": "timoschuetz",
      "to": "timoschuetz",
      "amount": "0.545 STEEM"
    }
  ]
}
timoschuetzclaimed reward balance: 0.545 STEEM, 0.663 SP
2019/10/02 21:41:30
accounttimoschuetz
reward steem0.545 STEEM
reward sbd0.000 SBD
reward vests1078.839211 VESTS
Transaction InfoBlock #36942517/Trx 38ba7d018363a8fecb5d01d3bea7db15eab3eaac
View Raw JSON Data
{
  "trx_id": "38ba7d018363a8fecb5d01d3bea7db15eab3eaac",
  "block": 36942517,
  "trx_in_block": 19,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-10-02T21:41:30",
  "op": [
    "claim_reward_balance",
    {
      "account": "timoschuetz",
      "reward_steem": "0.545 STEEM",
      "reward_sbd": "0.000 SBD",
      "reward_vests": "1078.839211 VESTS"
    }
  ]
}
2019/09/30 11:42:12
voterjoelpugapt
authortimoschuetz
permlinkusing-ha-proxy-to-loadbalance-between-https-endpoints
weight10000 (100.00%)
Transaction InfoBlock #36873074/Trx b17019b80ea960cea83faa3b598d5143bb3d32c4
View Raw JSON Data
{
  "trx_id": "b17019b80ea960cea83faa3b598d5143bb3d32c4",
  "block": 36873074,
  "trx_in_block": 25,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-30T11:42:12",
  "op": [
    "vote",
    {
      "voter": "joelpugapt",
      "author": "timoschuetz",
      "permlink": "using-ha-proxy-to-loadbalance-between-https-endpoints",
      "weight": 10000
    }
  ]
}
2019/09/29 19:19:33
votertimoschuetz
authortimoschuetz
permlinkusing-ha-proxy-to-loadbalance-between-https-endpoints
weight10000 (100.00%)
Transaction InfoBlock #36853468/Trx 58447f8b14e698b61895f00350d309fecab86eff
View Raw JSON Data
{
  "trx_id": "58447f8b14e698b61895f00350d309fecab86eff",
  "block": 36853468,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-29T19:19:33",
  "op": [
    "vote",
    {
      "voter": "timoschuetz",
      "author": "timoschuetz",
      "permlink": "using-ha-proxy-to-loadbalance-between-https-endpoints",
      "weight": 10000
    }
  ]
}
2019/09/29 19:15:00
authortimoschuetz
permlinkusing-ha-proxy-to-loadbalance-between-https-endpoints
max accepted payout1000000.000 SBD
percent steem dollars0
allow votestrue
allow curation rewardstrue
extensions[]
Transaction InfoBlock #36853377/Trx ca5cf678989041d5eef19af79fa7bcf033e60e95
View Raw JSON Data
{
  "trx_id": "ca5cf678989041d5eef19af79fa7bcf033e60e95",
  "block": 36853377,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-29T19:15:00",
  "op": [
    "comment_options",
    {
      "author": "timoschuetz",
      "permlink": "using-ha-proxy-to-loadbalance-between-https-endpoints",
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 0,
      "allow_votes": true,
      "allow_curation_rewards": true,
      "extensions": []
    }
  ]
}
2019/09/29 19:15:00
parent author
parent permlinklinux
authortimoschuetz
permlinkusing-ha-proxy-to-loadbalance-between-https-endpoints
titleUsing HA Proxy to loadbalance between HTTPS endpoints
bodyFor providing a high availability for a service which isn’t high available by design often results in a few hours of headaches before you can solve it. I had the same issue. The situation was a cloud service which is not high available, but can be set up at different server locations. The question is how do I make the users switch when the outage is happening? The application I was facing was a SAP Cloud Platform HTML 5 application which does not offer high availability at this point. Because these applications can proxy data I needed to get them high available. A loadbalancer is a great way to distribute users between these endpoints. I have been using haproxy here in this case and later used an azure front door service for convenience, cause why not, right? ## Prepare the endpoints First of all you need two or more endpoints for your application. I had two endpoints which were both located in the EU, so that they can be reached without huge latency or package loss. Distributing the endpoints across regions is very important to provide a higher availability, because one region can fail due to many reason, while it is very unlikely that two regions fail at the same time. ## Configure Server First of all we need to spin up a linux machine which will be our haproxy host. After that we need to install it: ```bash sudo apt install haproxy ``` After that we can edit the configuration file: ```bash sudo vim /etc/haproxy/haproxy.conf ``` Now is the point where the real magic is happening and we need to append the following to the end of the file: ```bash frontend haproxynode bind *:80 mode http option http-buffer-request timeout http-request 10s default_backend backendnodes backend backendnodes balance roundrobin option forwardfor http-request set-header X-Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if { ssl_fc } option httpchk HEAD / HTTP/1.1\r http-send-name-header Host server application-subaccount.dispatcher.hana.ondemand.com application-subaccount.dispatcher.hana.ondemand.com:443 ssl verify none server application2-subaccount.dispatcher.eu3.hana.ondemand.com application2-subaccount.dispatcher.eu3.hana.ondemand.com:443 ssl verify none ``` Now we can restart the service and take a look on the logs to see if our users are distributed correctly: ```bash sudo systemctl restart haproxy ``` ```bash sudo less +G /var/log/haproxy.log ``` You can change the rules to your needs to provide a location based balancing, if needed.
json metadata{"tags":["linux","haproxy","load","balance","https","endpoint","traffic"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #36853377/Trx ca5cf678989041d5eef19af79fa7bcf033e60e95
View Raw JSON Data
{
  "trx_id": "ca5cf678989041d5eef19af79fa7bcf033e60e95",
  "block": 36853377,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-29T19:15:00",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "linux",
      "author": "timoschuetz",
      "permlink": "using-ha-proxy-to-loadbalance-between-https-endpoints",
      "title": "Using HA Proxy to loadbalance between HTTPS endpoints",
      "body": "For providing a high availability for a service which isn’t high available by design often results in a few hours of headaches before you can solve it. I had the same issue. The situation was a cloud service which is not high available, but can be set up at different server locations. The question is how do I make the users switch when the outage is happening? The application I was facing was a SAP Cloud Platform HTML 5 application which does not offer high availability at this point. Because these applications can proxy data I needed to get them high available. A loadbalancer is a great way to distribute users between these endpoints. I have been using haproxy here in this case and later used an azure front door service for convenience, cause why not, right?\n## Prepare the endpoints\nFirst of all you need two or more endpoints for your application. I had two endpoints which were both located in the EU, so that they can be reached without huge latency or package loss. Distributing the endpoints across regions is very important to provide a higher availability, because one region can fail due to many reason, while it is very unlikely that two regions fail at the same time.\n## Configure Server\nFirst of all we need to spin up a linux machine which will be our haproxy host. After that we need to install it:\n```bash\nsudo apt install haproxy\n```\n\nAfter that we can edit the configuration file:\n```bash\nsudo vim /etc/haproxy/haproxy.conf\n```\n\nNow is the point where the real magic is happening and we need to append the following to the end of the file:\n```bash\nfrontend haproxynode\n    bind *:80\n    mode http\n    option http-buffer-request\n    timeout http-request 10s\n    default_backend backendnodes\n\nbackend backendnodes\n    balance roundrobin\n    option forwardfor\n    http-request set-header X-Forwarded-Port %[dst_port]\n    http-request add-header X-Forwarded-Proto https if { ssl_fc }\n    option httpchk HEAD / HTTP/1.1\\r\n    http-send-name-header Host\n    server application-subaccount.dispatcher.hana.ondemand.com application-subaccount.dispatcher.hana.ondemand.com:443 ssl verify none\n    server application2-subaccount.dispatcher.eu3.hana.ondemand.com application2-subaccount.dispatcher.eu3.hana.ondemand.com:443 ssl verify none\n```\n\nNow we can restart the service and take a look on the logs to see if our users are distributed correctly:\n```bash\nsudo systemctl restart haproxy\n```\n\n```bash\nsudo less +G /var/log/haproxy.log\n```\n\nYou can change the rules to your needs to provide a location based balancing, if needed.",
      "json_metadata": "{\"tags\":[\"linux\",\"haproxy\",\"load\",\"balance\",\"https\",\"endpoint\",\"traffic\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
timoschuetzreceived 0.545 STEEM, 0.663 SP author reward for @timoschuetz / use-su-without-the-need-of-a-password
2019/09/20 09:20:30
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
sbd payout0.000 SBD
steem payout0.545 STEEM
vesting payout1078.839211 VESTS
Transaction InfoBlock #36582857/Virtual Operation #11
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 36582857,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 11,
  "timestamp": "2019-09-20T09:20:30",
  "op": [
    "author_reward",
    {
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "sbd_payout": "0.000 SBD",
      "steem_payout": "0.545 STEEM",
      "vesting_payout": "1078.839211 VESTS"
    }
  ]
}
2019/09/16 06:39:30
votersyntoxictech
authortimoschuetz
permlinksetting-up-grafana-oauth2-in-kubernetes
weight10000 (100.00%)
Transaction InfoBlock #36464689/Trx 89473dbde4e48c3cbd69f3506bbbd5ca0916ad01
View Raw JSON Data
{
  "trx_id": "89473dbde4e48c3cbd69f3506bbbd5ca0916ad01",
  "block": 36464689,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-16T06:39:30",
  "op": [
    "vote",
    {
      "voter": "syntoxictech",
      "author": "timoschuetz",
      "permlink": "setting-up-grafana-oauth2-in-kubernetes",
      "weight": 10000
    }
  ]
}
2019/09/16 06:22:15
voterlaissez-faire
authortimoschuetz
permlinksetting-up-grafana-oauth2-in-kubernetes
weight10000 (100.00%)
Transaction InfoBlock #36464344/Trx 4c101937f57c0d5fa2063986170902bb8b38f2b8
View Raw JSON Data
{
  "trx_id": "4c101937f57c0d5fa2063986170902bb8b38f2b8",
  "block": 36464344,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-16T06:22:15",
  "op": [
    "vote",
    {
      "voter": "laissez-faire",
      "author": "timoschuetz",
      "permlink": "setting-up-grafana-oauth2-in-kubernetes",
      "weight": 10000
    }
  ]
}
2019/09/16 06:22:09
voteranomaly
authortimoschuetz
permlinksetting-up-grafana-oauth2-in-kubernetes
weight100 (1.00%)
Transaction InfoBlock #36464342/Trx ac8ae420d14a2a51abc1ebd49292e24c1e04ce8a
View Raw JSON Data
{
  "trx_id": "ac8ae420d14a2a51abc1ebd49292e24c1e04ce8a",
  "block": 36464342,
  "trx_in_block": 25,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-16T06:22:09",
  "op": [
    "vote",
    {
      "voter": "anomaly",
      "author": "timoschuetz",
      "permlink": "setting-up-grafana-oauth2-in-kubernetes",
      "weight": 100
    }
  ]
}
2019/09/16 06:21:12
parent author
parent permlinkgrafana
authortimoschuetz
permlinksetting-up-grafana-oauth2-in-kubernetes
titleSetting up Grafana OAuth2 (in Kubernetes)
bodyIn this guide we are setting up Grafana in a Kubernetes cluster to use OAuth2 based authorization. First of all you need to have a running Kubernetes cluster and helm installed and configured. If you do not know how to set it up click [here] to get to my Helm installation guide. I’ve been using AKS, but it will probably work on your environment too. ## Setting up your IdP First of all you need to create a new application in your identity provider. I have been using Okta, but every other IdP which supports openID should work as well. In Okta you have to select `Web` as Applicaton type and enable `Refresh Tokens`. For your redirect URL you need to set it to `https://example.com/generic_oauth` ![image](https://i.imgur.com/8ETQJ8h.png) ## Configure Installation Create a new file, which will be used to configure the installation. Name the file `values.yaml`. Insert the following content: [https://pastebin.com/raw/HVkXjxfQ ] Now we need to change some stuff in that file: Change the `root_url` to `https://your.domain.com` so that your IdP can redirect you after logging in successfully. If you already know what your datasource is, you can fill it in. If you don’t want to use that feature just replace the section with a `{}`. First of all you need to fill in your client id and client secret. Also do not forget to change the IdP URLs. Now you need to edit the hosts in the ingress controller so that it can be created automatically. ## Install Grafana After all the configuration is done you can finally deploy Grafana using this command (Feel free to change name and namespace to your liking): `helm install --name grafana --namespace monitoring stable/grafana -f values.yaml` ## Setup Grafana Login at the Grafana Dashboard and change the default admin password. Now you can setup your datasources and dashboards. After all that login with the IdP to register your user to Grafana. Then log back in with you admin account and assign administrator privileges to your IdP user. ## Disable Basic Auth If you want to, you can disable basic authentication to only allow users to log on using OAuth. Now we can change some stuff to disable the basic authentication and fully go to IdP login. For this create and open the file `patch_values.yaml`. ``` grafana.ini: auth.basic: enabled: false auth: oauth_auto_login: true disable_login_form: true ``` Now we can change the config file in the cluster with: `helm upgrade --reuse-values -f patch_values.yml grafana stable/grafana`
json metadata{"tags":["grafana","oauth2","kubernetes","idp","identity"],"image":["https://i.imgur.com/8ETQJ8h.png"],"links":["https://pastebin.com/raw/HVkXjxfQ"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #36464323/Trx c3556107808a65577210ed0763406fff5ec43058
View Raw JSON Data
{
  "trx_id": "c3556107808a65577210ed0763406fff5ec43058",
  "block": 36464323,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-16T06:21:12",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "grafana",
      "author": "timoschuetz",
      "permlink": "setting-up-grafana-oauth2-in-kubernetes",
      "title": "Setting up Grafana OAuth2 (in Kubernetes)",
      "body": "In this guide we are setting up Grafana in a Kubernetes cluster to use OAuth2 based authorization. First of all you need to have a running Kubernetes cluster and helm installed and configured. If you do not know how to set it up click [here] to get to my Helm installation guide. I’ve been using AKS, but it will probably work on your environment too. \n\n## Setting up your IdP\nFirst of all you need to create a new application in your identity provider. I have been using Okta, but every other IdP which supports openID should work as well.\nIn Okta you have to select `Web` as Applicaton type and enable `Refresh Tokens`. For your redirect URL you need to set it to `https://example.com/generic_oauth`\n\n![image](https://i.imgur.com/8ETQJ8h.png)\n\n## Configure Installation\nCreate a new file, which will be used to configure the installation. Name the file `values.yaml`. Insert the following content:\n[https://pastebin.com/raw/HVkXjxfQ ]\n\nNow we need to change some stuff in that file:\nChange the `root_url` to `https://your.domain.com` so that your IdP can redirect you after logging in successfully.\n\nIf you already know what your datasource is, you can fill it in. If you don’t want to use that feature just replace the section with a `{}`.\n\nFirst of all you need to fill in your client id and client secret. Also do not forget to change the IdP URLs. Now you need to edit the hosts in the ingress controller so that it can be created automatically. \n\n## Install Grafana\nAfter all the configuration is done you can finally deploy Grafana using this command (Feel free to change name and namespace to your liking):\n`helm install --name grafana --namespace monitoring stable/grafana -f values.yaml`\n\n## Setup Grafana\nLogin at the Grafana Dashboard and change the default admin password. Now you can setup your datasources and dashboards. \n\nAfter all that login with the IdP to register your user to Grafana. Then log back in with you admin account and assign administrator privileges to your IdP user.\n\n## Disable Basic Auth\nIf you want to, you can disable basic authentication to only allow users to log on using OAuth. Now we can change some stuff to disable the basic authentication and fully go to IdP login. For this create and open the file  `patch_values.yaml`.\n```\ngrafana.ini:\n  auth.basic:\n    enabled: false\n  auth:\n    oauth_auto_login: true\n    disable_login_form: true\n```\nNow we can change the config file in the cluster with:\n`helm upgrade --reuse-values -f patch_values.yml grafana stable/grafana`",
      "json_metadata": "{\"tags\":[\"grafana\",\"oauth2\",\"kubernetes\",\"idp\",\"identity\"],\"image\":[\"https://i.imgur.com/8ETQJ8h.png\"],\"links\":[\"https://pastebin.com/raw/HVkXjxfQ\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2019/09/14 14:06:45
votertimoschuetz
authorengrave
permlinkre-timoschuetz-setting-up-and-secure-a-linux-server-20190913t145941875z
weight10000 (100.00%)
Transaction InfoBlock #36416137/Trx 5055f5f78be148955a8add34c367b930d75ebb65
View Raw JSON Data
{
  "trx_id": "5055f5f78be148955a8add34c367b930d75ebb65",
  "block": 36416137,
  "trx_in_block": 28,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-14T14:06:45",
  "op": [
    "vote",
    {
      "voter": "timoschuetz",
      "author": "engrave",
      "permlink": "re-timoschuetz-setting-up-and-secure-a-linux-server-20190913t145941875z",
      "weight": 10000
    }
  ]
}
2019/09/13 14:59:42
parent authortimoschuetz
parent permlinksetting-up-and-secure-a-linux-server
authorengrave
permlinkre-timoschuetz-setting-up-and-secure-a-linux-server-20190913t145941875z
titleRE: Setting up and secure a Linux server
bodyGreat article! I would like to see more of them on [ENGRAVE](https://engrave.website) :) Keep it up, good work!
json metadata{"app":"engrave"}
Transaction InfoBlock #36388455/Trx 6102a79b9c74558b3faa5e90f96d3bb3ca7a2a11
View Raw JSON Data
{
  "trx_id": "6102a79b9c74558b3faa5e90f96d3bb3ca7a2a11",
  "block": 36388455,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:59:42",
  "op": [
    "comment",
    {
      "parent_author": "timoschuetz",
      "parent_permlink": "setting-up-and-secure-a-linux-server",
      "author": "engrave",
      "permlink": "re-timoschuetz-setting-up-and-secure-a-linux-server-20190913t145941875z",
      "title": "RE: Setting up and secure a Linux server",
      "body": "Great article! I would like to see more of them on [ENGRAVE](https://engrave.website) :) Keep it up, good work!",
      "json_metadata": "{\"app\":\"engrave\"}"
    }
  ]
}
2019/09/13 14:53:42
voterbgornicki
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388335/Trx dd09b4475e74bf79611c40e3359f9053ffe07197
View Raw JSON Data
{
  "trx_id": "dd09b4475e74bf79611c40e3359f9053ffe07197",
  "block": 36388335,
  "trx_in_block": 30,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:42",
  "op": [
    "vote",
    {
      "voter": "bgornicki",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voteracronyms
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx f9d34291c1237d27e60be1a15f15ff6aa22bdd0f
View Raw JSON Data
{
  "trx_id": "f9d34291c1237d27e60be1a15f15ff6aa22bdd0f",
  "block": 36388334,
  "trx_in_block": 57,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "acronyms",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voterglodniwiedzy
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 383182f9e0cab43dda81159437934cb8ea36dfe7
View Raw JSON Data
{
  "trx_id": "383182f9e0cab43dda81159437934cb8ea36dfe7",
  "block": 36388334,
  "trx_in_block": 52,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "glodniwiedzy",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
votermeowcliver
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx efac10c3ea96a8a08cb39a87e54baf9cac16b63a
View Raw JSON Data
{
  "trx_id": "efac10c3ea96a8a08cb39a87e54baf9cac16b63a",
  "block": 36388334,
  "trx_in_block": 51,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "meowcliver",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voterxara
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 1ace6e8879132df51bcf8f8e8c2437e577126531
View Raw JSON Data
{
  "trx_id": "1ace6e8879132df51bcf8f8e8c2437e577126531",
  "block": 36388334,
  "trx_in_block": 50,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "xara",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voterspacesheep
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx b4b4c270c599f458e0369a77222ccd1a4c9f3a23
View Raw JSON Data
{
  "trx_id": "b4b4c270c599f458e0369a77222ccd1a4c9f3a23",
  "block": 36388334,
  "trx_in_block": 47,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "spacesheep",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voterfreakout-pl
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 0a2503478c18f5b98e1d5c537b4190a6cb2e9ea8
View Raw JSON Data
{
  "trx_id": "0a2503478c18f5b98e1d5c537b4190a6cb2e9ea8",
  "block": 36388334,
  "trx_in_block": 46,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "freakout-pl",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voternicniezgrublem
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 583d675f270a2ff7547aa94566c2f50a046b4c0e
View Raw JSON Data
{
  "trx_id": "583d675f270a2ff7547aa94566c2f50a046b4c0e",
  "block": 36388334,
  "trx_in_block": 42,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "nicniezgrublem",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voteraceofsteem
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 7b22c8da0eaa2fa34ab41c78de7430867f014e73
View Raw JSON Data
{
  "trx_id": "7b22c8da0eaa2fa34ab41c78de7430867f014e73",
  "block": 36388334,
  "trx_in_block": 40,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "aceofsteem",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
votergameeit
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 0fc62c8c16d6f2a006a0c7998e4406e9f3a46ad4
View Raw JSON Data
{
  "trx_id": "0fc62c8c16d6f2a006a0c7998e4406e9f3a46ad4",
  "block": 36388334,
  "trx_in_block": 38,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "gameeit",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voteraditor
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx feacc19dcaa673e7e5458f909d4343682a9c8893
View Raw JSON Data
{
  "trx_id": "feacc19dcaa673e7e5458f909d4343682a9c8893",
  "block": 36388334,
  "trx_in_block": 32,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "aditor",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voterocisly
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 5015e0dc69eee46a3190f3a9013bcb3a3864ae44
View Raw JSON Data
{
  "trx_id": "5015e0dc69eee46a3190f3a9013bcb3a3864ae44",
  "block": 36388334,
  "trx_in_block": 31,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "ocisly",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
voterkrasnalek
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 16bbb84dbdb60d4fa009e910cbec3402fb8d2763
View Raw JSON Data
{
  "trx_id": "16bbb84dbdb60d4fa009e910cbec3402fb8d2763",
  "block": 36388334,
  "trx_in_block": 29,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "krasnalek",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:39
votertechnocracy
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388334/Trx 21f45e7b445486d77ac39792237d302f9afab189
View Raw JSON Data
{
  "trx_id": "21f45e7b445486d77ac39792237d302f9afab189",
  "block": 36388334,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:39",
  "op": [
    "vote",
    {
      "voter": "technocracy",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:36
votersantarius
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388333/Trx dfe50a8e51133230a44db4b0981425ccae784bad
View Raw JSON Data
{
  "trx_id": "dfe50a8e51133230a44db4b0981425ccae784bad",
  "block": 36388333,
  "trx_in_block": 30,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:36",
  "op": [
    "vote",
    {
      "voter": "santarius",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:53:33
voterengrave
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36388332/Trx 557ea852d3d9afedf8e0291a35ea2fe4356235d1
View Raw JSON Data
{
  "trx_id": "557ea852d3d9afedf8e0291a35ea2fe4356235d1",
  "block": 36388332,
  "trx_in_block": 30,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:53:33",
  "op": [
    "vote",
    {
      "voter": "engrave",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 14:37:36
votertimoschuetz
authorsteemitblog
permlinksteem-dao-ui-and-pausing-steem-sales
weight10000 (100.00%)
Transaction InfoBlock #36388014/Trx 9dcaf1a98cb2b5400b147de6150e78230725a3f0
View Raw JSON Data
{
  "trx_id": "9dcaf1a98cb2b5400b147de6150e78230725a3f0",
  "block": 36388014,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:37:36",
  "op": [
    "vote",
    {
      "voter": "timoschuetz",
      "author": "steemitblog",
      "permlink": "steem-dao-ui-and-pausing-steem-sales",
      "weight": 10000
    }
  ]
}
timoschuetzupdated their account properties
2019/09/13 14:28:39
accounttimoschuetz
posting{"weight_threshold":1,"account_auths":[["engrave.app",1]],"key_auths":[["STM7G5RQF3onwaJtmEs8CcoREvdWqwwsSnUijtURBZhnpek8qwekp",1]]}
memo keySTM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK
json metadata{"profile":{"about":"This account was instantly created via @steemwallet.app - available for iOS and Android!","website":"https://steemwallet.app","dtube_pub":"jTchANECdwQhSamZyRN8qKQGs4GowbavSZshSxXkSX1e"}}
Transaction InfoBlock #36387835/Trx dbbe71968d62f65b14bbf0c2fee0259f471a59b3
View Raw JSON Data
{
  "trx_id": "dbbe71968d62f65b14bbf0c2fee0259f471a59b3",
  "block": 36387835,
  "trx_in_block": 21,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:28:39",
  "op": [
    "account_update",
    {
      "account": "timoschuetz",
      "posting": {
        "weight_threshold": 1,
        "account_auths": [
          [
            "engrave.app",
            1
          ]
        ],
        "key_auths": [
          [
            "STM7G5RQF3onwaJtmEs8CcoREvdWqwwsSnUijtURBZhnpek8qwekp",
            1
          ]
        ]
      },
      "memo_key": "STM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK",
      "json_metadata": "{\"profile\":{\"about\":\"This account was instantly created via @steemwallet.app - available for iOS and Android!\",\"website\":\"https://steemwallet.app\",\"dtube_pub\":\"jTchANECdwQhSamZyRN8qKQGs4GowbavSZshSxXkSX1e\"}}"
    }
  ]
}
2019/09/13 14:26:33
parent authortimoschuetz
parent permlinkuse-su-without-the-need-of-a-password
authorsteemitboard
permlinksteemitboard-notify-timoschuetz-20190913t142632000z
title
bodyCongratulations @timoschuetz! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td><img src="https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstvote.png"></td><td>You made your First Vote</td></tr> <tr><td><img src="https://steemitimages.com/60x70/http://steemitboard.com/@timoschuetz/voted.png?201909131340"></td><td>You received more than 10 upvotes. Your next target is to reach 50 upvotes.</td></tr> </table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@timoschuetz) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=timoschuetz)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #36387793/Trx f7da0a920db8020f75d94fa858597c1069b75ce2
View Raw JSON Data
{
  "trx_id": "f7da0a920db8020f75d94fa858597c1069b75ce2",
  "block": 36387793,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T14:26:33",
  "op": [
    "comment",
    {
      "parent_author": "timoschuetz",
      "parent_permlink": "use-su-without-the-need-of-a-password",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-timoschuetz-20190913t142632000z",
      "title": "",
      "body": "Congratulations @timoschuetz! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td><img src=\"https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstvote.png\"></td><td>You made your First Vote</td></tr>\n<tr><td><img src=\"https://steemitimages.com/60x70/http://steemitboard.com/@timoschuetz/voted.png?201909131340\"></td><td>You received more than 10 upvotes. Your next target is to reach 50 upvotes.</td></tr>\n</table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@timoschuetz) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=timoschuetz)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
timoschuetzupvoted (100.00%) @syntoxictech / pxru3a
2019/09/13 13:17:27
votertimoschuetz
authorsyntoxictech
permlinkpxru3a
weight10000 (100.00%)
Transaction InfoBlock #36386417/Trx 06dd625338bf533518bf1dac9cb1b8855a671eb5
View Raw JSON Data
{
  "trx_id": "06dd625338bf533518bf1dac9cb1b8855a671eb5",
  "block": 36386417,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T13:17:27",
  "op": [
    "vote",
    {
      "voter": "timoschuetz",
      "author": "syntoxictech",
      "permlink": "pxru3a",
      "weight": 10000
    }
  ]
}
2019/09/13 13:14:00
parent authortimoschuetz
parent permlinkuse-su-without-the-need-of-a-password
authorsyntoxictech
permlinkpxru3a
title
bodyReally cool, works perfectly in my environment!
json metadata{"tags":["linux"],"app":"steemit/0.1"}
Transaction InfoBlock #36386348/Trx b37e68f30b7ee1d506c64461576e6b6b405bb6ec
View Raw JSON Data
{
  "trx_id": "b37e68f30b7ee1d506c64461576e6b6b405bb6ec",
  "block": 36386348,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T13:14:00",
  "op": [
    "comment",
    {
      "parent_author": "timoschuetz",
      "parent_permlink": "use-su-without-the-need-of-a-password",
      "author": "syntoxictech",
      "permlink": "pxru3a",
      "title": "",
      "body": "Really cool, works perfectly in my environment!",
      "json_metadata": "{\"tags\":[\"linux\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2019/09/13 12:54:03
votersyntoxictech
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36385950/Trx 24a351f0328b8591fc6353063c592a9dd7b870d9
View Raw JSON Data
{
  "trx_id": "24a351f0328b8591fc6353063c592a9dd7b870d9",
  "block": 36385950,
  "trx_in_block": 21,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T12:54:03",
  "op": [
    "vote",
    {
      "voter": "syntoxictech",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
2019/09/13 11:30:00
voterjoelpugapt
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36384275/Trx 655060c4b4793f89196acadbb454c6a7dccac51a
View Raw JSON Data
{
  "trx_id": "655060c4b4793f89196acadbb454c6a7dccac51a",
  "block": 36384275,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T11:30:00",
  "op": [
    "vote",
    {
      "voter": "joelpugapt",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
timoschuetzpowered up 0.051 STEEM to @timoschuetz
2019/09/13 09:36:27
fromtimoschuetz
totimoschuetz
amount0.051 STEEM
Transaction InfoBlock #36382008/Trx 8b0eb63d0b57cafa1af545ea2f25cc0dc94bf95e
View Raw JSON Data
{
  "trx_id": "8b0eb63d0b57cafa1af545ea2f25cc0dc94bf95e",
  "block": 36382008,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T09:36:27",
  "op": [
    "transfer_to_vesting",
    {
      "from": "timoschuetz",
      "to": "timoschuetz",
      "amount": "0.051 STEEM"
    }
  ]
}
syntoxictechsent 0.051 STEEM to @timoschuetz
2019/09/13 09:35:33
fromsyntoxictech
totimoschuetz
amount0.051 STEEM
memo
Transaction InfoBlock #36381990/Trx adefea73757475e2006b1cfaa8519662a91e97e9
View Raw JSON Data
{
  "trx_id": "adefea73757475e2006b1cfaa8519662a91e97e9",
  "block": 36381990,
  "trx_in_block": 17,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T09:35:33",
  "op": [
    "transfer",
    {
      "from": "syntoxictech",
      "to": "timoschuetz",
      "amount": "0.051 STEEM",
      "memo": ""
    }
  ]
}
2019/09/13 09:32:45
voterprofit-shooter
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
weight10000 (100.00%)
Transaction InfoBlock #36381935/Trx 7f79ee1441d90d865be42bfc85f7db01e3d5c915
View Raw JSON Data
{
  "trx_id": "7f79ee1441d90d865be42bfc85f7db01e3d5c915",
  "block": 36381935,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T09:32:45",
  "op": [
    "vote",
    {
      "voter": "profit-shooter",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "weight": 10000
    }
  ]
}
timoschuetzpowered up 0.180 STEEM to @timoschuetz
2019/09/13 09:28:45
fromtimoschuetz
totimoschuetz
amount0.180 STEEM
Transaction InfoBlock #36381855/Trx b8a494fa91c2669e2168d7b912124d8a71fba983
View Raw JSON Data
{
  "trx_id": "b8a494fa91c2669e2168d7b912124d8a71fba983",
  "block": 36381855,
  "trx_in_block": 29,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T09:28:45",
  "op": [
    "transfer_to_vesting",
    {
      "from": "timoschuetz",
      "to": "timoschuetz",
      "amount": "0.180 STEEM"
    }
  ]
}
2019/09/13 09:21:21
parent author
parent permlinklinux
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
titleUse su without the need of a password
bodyI recently searched for a solution to su into a user which is only used for an application without entering a password. I normally create an application user without any password because that user never should be able to be logged on to. If you are not using the root user or sudo to log on you are required to enter a password even though the user does not have one at all. I found a neat trick which I want to share with you. We can achieve these goals using Pluggable Authentication Modules or short PAM. We need to edit the corosponding su file with is located under `/etc/pam.d/su` and add the following lines under `pam_rootok.so`: auth [success=ignore default=1] pam_succeed_if.so user = user auth sufficient pam_succeed_if.so use_uid user = adminuser If you want to allow a group of users to su into the user defined in the first line instead of one single user you can use auth sufficient pam_succeed_if.so use_uid user ingroup admins for the second line. In this example the group is called `admins`, the user which will su into another user `adminuser` and the user that will be su’ed in `user` The finished file should now look like this: ``` # # The PAM configuration file for the Shadow `su' service # # This allows root to su without passwords (normal operation) auth sufficient pam_rootok.so auth [success=ignore default=1] pam_succeed_if.so user = user auth sufficient pam_succeed_if.so use_uid user ingroup admins ... ```
json metadata{"tags":["linux","server","authorization"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #36381707/Trx f1a5fbfce96b53c03634efa80b074f26b20c7ff3
View Raw JSON Data
{
  "trx_id": "f1a5fbfce96b53c03634efa80b074f26b20c7ff3",
  "block": 36381707,
  "trx_in_block": 21,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T09:21:21",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "linux",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "title": "Use su without the need of a password",
      "body": "I recently searched for a solution to su into a user which is only used for an application without entering a password. I normally create an application user without any password because that user never should be able to be logged on to.   If you are not using the root user or sudo to log on you are required to enter a password even though the user does not have one at all. I found a neat trick which I want to share with you. \nWe can achieve these goals using Pluggable Authentication Modules or short PAM. We need to edit the corosponding su file with is located under `/etc/pam.d/su` and add the following lines under `pam_rootok.so`:\nauth  [success=ignore default=1] pam_succeed_if.so user = user\nauth  sufficient                 pam_succeed_if.so use_uid user = adminuser\nIf you want to allow a group of users to su into the user defined in the first line instead of one single user you can use\nauth sufficient pam_succeed_if.so use_uid user ingroup admins\nfor the second line. In this example the group is called `admins`, the user which will su into another user `adminuser` and the user that will be su’ed in `user`\nThe finished file should now look like this:\n```\n#\n# The PAM configuration file for the Shadow `su' service\n#\n\n# This allows root to su without passwords (normal operation)\nauth       sufficient pam_rootok.so\nauth  [success=ignore default=1] pam_succeed_if.so user = user\nauth sufficient pam_succeed_if.so use_uid user ingroup admins\n...\n```",
      "json_metadata": "{\"tags\":[\"linux\",\"server\",\"authorization\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2019/09/13 09:20:30
parent author
parent permlinklinux
authortimoschuetz
permlinkuse-su-without-the-need-of-a-password
titleUse su without the need of a password
bodyI recently searched for a solution to su into a user which is only used for an application without entering a password. I normally create an application user without any password because that user never should be able to be logged on to. If you are not using the root user or sudo to log on you are required to enter a password even though the user does not have one at all. I found a neat trick which I want to share with you. We can achieve these goals using Pluggable Authentication Modules or short PAM. We need to edit the corosponding su file with is located under `/etc/pam.d/su` and add the following lines under `pam_rootok.so`: auth [success=ignore default=1] pam_succeed_if.so user = user auth sufficient pam_succeed_if.so use_uid user = adminuser If you want to allow a group of users to su into the user defined in the first line instead of one single user you can use auth sufficient pam_succeed_if.so use_uid user ingroup admins for the second line. In this example the group is called `admins`, the user which will su into another user `adminuser` and the user that will be su’ed in `user` The finished file should now look like this: ``` # # The PAM configuration file for the Shadow `su' service # # This allows root to su without passwords (normal operation) auth sufficient pam_rootok.so auth [success=ignore default=1] pam_succeed_if.so user = user auth sufficient pam_succeed_if.so use_uid user ingroup admins ... ```
json metadata{"tags":["linux"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #36381690/Trx 49dc26429e8c40f7e5ec81eb4f25ccbaf3b4fa4b
View Raw JSON Data
{
  "trx_id": "49dc26429e8c40f7e5ec81eb4f25ccbaf3b4fa4b",
  "block": 36381690,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T09:20:30",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "linux",
      "author": "timoschuetz",
      "permlink": "use-su-without-the-need-of-a-password",
      "title": "Use su without the need of a password",
      "body": "I recently searched for a solution to su into a user which is only used for an application without entering a password. I normally create an application user without any password because that user never should be able to be logged on to.   If you are not using the root user or sudo to log on you are required to enter a password even though the user does not have one at all. I found a neat trick which I want to share with you. \nWe can achieve these goals using Pluggable Authentication Modules or short PAM. We need to edit the corosponding su file with is located under `/etc/pam.d/su` and add the following lines under `pam_rootok.so`:\nauth  [success=ignore default=1] pam_succeed_if.so user = user\nauth  sufficient                 pam_succeed_if.so use_uid user = adminuser\nIf you want to allow a group of users to su into the user defined in the first line instead of one single user you can use\nauth sufficient pam_succeed_if.so use_uid user ingroup admins\nfor the second line. In this example the group is called `admins`, the user which will su into another user `adminuser` and the user that will be su’ed in `user`\nThe finished file should now look like this:\n```\n#\n# The PAM configuration file for the Shadow `su' service\n#\n\n# This allows root to su without passwords (normal operation)\nauth       sufficient pam_rootok.so\nauth  [success=ignore default=1] pam_succeed_if.so user = user\nauth sufficient pam_succeed_if.so use_uid user ingroup admins\n...\n```",
      "json_metadata": "{\"tags\":[\"linux\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
timoschuetzclaimed reward balance: 0.180 STEEM, 0.219 SP
2019/09/13 09:13:51
accounttimoschuetz
reward steem0.180 STEEM
reward sbd0.000 SBD
reward vests356.584942 VESTS
Transaction InfoBlock #36381558/Trx 9f7299113e3191052a57289286463dfda0ed57a5
View Raw JSON Data
{
  "trx_id": "9f7299113e3191052a57289286463dfda0ed57a5",
  "block": 36381558,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-13T09:13:51",
  "op": [
    "claim_reward_balance",
    {
      "account": "timoschuetz",
      "reward_steem": "0.180 STEEM",
      "reward_sbd": "0.000 SBD",
      "reward_vests": "356.584942 VESTS"
    }
  ]
}
timoschuetzreceived 0.180 STEEM, 0.219 SP author reward for @timoschuetz / setting-up-and-secure-a-linux-server
2019/09/07 22:25:36
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
sbd payout0.000 SBD
steem payout0.180 STEEM
vesting payout356.584942 VESTS
Transaction InfoBlock #36225191/Virtual Operation #4
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 36225191,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 4,
  "timestamp": "2019-09-07T22:25:36",
  "op": [
    "author_reward",
    {
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "sbd_payout": "0.000 SBD",
      "steem_payout": "0.180 STEEM",
      "vesting_payout": "356.584942 VESTS"
    }
  ]
}
2019/09/03 13:26:39
voterjoelpugapt
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
weight10000 (100.00%)
Transaction InfoBlock #36099887/Trx 020c96223bcc692527124089a3e034af54221715
View Raw JSON Data
{
  "trx_id": "020c96223bcc692527124089a3e034af54221715",
  "block": 36099887,
  "trx_in_block": 64,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-03T13:26:39",
  "op": [
    "vote",
    {
      "voter": "joelpugapt",
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "weight": 10000
    }
  ]
}
2019/09/01 11:01:27
votersyntoxictech
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
weight10000 (100.00%)
Transaction InfoBlock #36055405/Trx 02916cf34c217e7e587e7dca4304c4b7d1e45001
View Raw JSON Data
{
  "trx_id": "02916cf34c217e7e587e7dca4304c4b7d1e45001",
  "block": 36055405,
  "trx_in_block": 24,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-01T11:01:27",
  "op": [
    "vote",
    {
      "voter": "syntoxictech",
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "weight": 10000
    }
  ]
}
timoschuetzupdated options for px5ct2
2019/09/01 09:53:27
authortimoschuetz
permlinkpx5ct2
max accepted payout1000000.000 SBD
percent steem dollars0
allow votestrue
allow curation rewardstrue
extensions[]
Transaction InfoBlock #36054049/Trx 87e074afa48aa58bc942b31f7129e767743ef5af
View Raw JSON Data
{
  "trx_id": "87e074afa48aa58bc942b31f7129e767743ef5af",
  "block": 36054049,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-01T09:53:27",
  "op": [
    "comment_options",
    {
      "author": "timoschuetz",
      "permlink": "px5ct2",
      "max_accepted_payout": "1000000.000 SBD",
      "percent_steem_dollars": 0,
      "allow_votes": true,
      "allow_curation_rewards": true,
      "extensions": []
    }
  ]
}
2019/09/01 09:53:27
parent authorboosta
parent permlinkhappy-birthday-linux
authortimoschuetz
permlinkpx5ct2
title
bodyManjao/ Arch, will go to Gentoo in the future
json metadata{"tags":["linux"],"app":"steemit/0.1"}
Transaction InfoBlock #36054049/Trx 87e074afa48aa58bc942b31f7129e767743ef5af
View Raw JSON Data
{
  "trx_id": "87e074afa48aa58bc942b31f7129e767743ef5af",
  "block": 36054049,
  "trx_in_block": 20,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-01T09:53:27",
  "op": [
    "comment",
    {
      "parent_author": "boosta",
      "parent_permlink": "happy-birthday-linux",
      "author": "timoschuetz",
      "permlink": "px5ct2",
      "title": "",
      "body": "Manjao/ Arch, will go to Gentoo in the future",
      "json_metadata": "{\"tags\":[\"linux\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2019/09/01 01:09:51
parent authortimoschuetz
parent permlinksetting-up-and-secure-a-linux-server
authorsteemitboard
permlinksteemitboard-notify-timoschuetz-20190901t010953000z
title
bodyCongratulations @timoschuetz! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td><img src="https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstpost.png"></td><td>You published your First Post</td></tr> <tr><td><img src="https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstvoted.png"></td><td>You got a First Vote</td></tr> </table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@timoschuetz) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=timoschuetz)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #36043634/Trx fd99c2f11d70f99b169fc7fda43fe19d6b30b5cd
View Raw JSON Data
{
  "trx_id": "fd99c2f11d70f99b169fc7fda43fe19d6b30b5cd",
  "block": 36043634,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-09-01T01:09:51",
  "op": [
    "comment",
    {
      "parent_author": "timoschuetz",
      "parent_permlink": "setting-up-and-secure-a-linux-server",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-timoschuetz-20190901t010953000z",
      "title": "",
      "body": "Congratulations @timoschuetz! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td><img src=\"https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstpost.png\"></td><td>You published your First Post</td></tr>\n<tr><td><img src=\"https://steemitimages.com/60x60/http://steemitboard.com/img/notifications/firstvoted.png\"></td><td>You got a First Vote</td></tr>\n</table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@timoschuetz) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=timoschuetz)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
2019/08/31 22:30:36
votersteemworld
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
weight300 (3.00%)
Transaction InfoBlock #36040462/Trx 98b26694b36f1f4e674689901888795b01775168
View Raw JSON Data
{
  "trx_id": "98b26694b36f1f4e674689901888795b01775168",
  "block": 36040462,
  "trx_in_block": 35,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-31T22:30:36",
  "op": [
    "vote",
    {
      "voter": "steemworld",
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "weight": 300
    }
  ]
}
2019/08/31 22:30:36
votermisan
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
weight780 (7.80%)
Transaction InfoBlock #36040462/Trx 373b92f985f978ee15fd08a97465ead0abaf7b28
View Raw JSON Data
{
  "trx_id": "373b92f985f978ee15fd08a97465ead0abaf7b28",
  "block": 36040462,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-31T22:30:36",
  "op": [
    "vote",
    {
      "voter": "misan",
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "weight": 780
    }
  ]
}
2019/08/31 22:30:36
votersophieandhenrik
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
weight600 (6.00%)
Transaction InfoBlock #36040462/Trx 3180bb025eea25987954b570ff65d616c8e95724
View Raw JSON Data
{
  "trx_id": "3180bb025eea25987954b570ff65d616c8e95724",
  "block": 36040462,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-31T22:30:36",
  "op": [
    "vote",
    {
      "voter": "sophieandhenrik",
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "weight": 600
    }
  ]
}
2019/08/31 22:30:33
votervannour
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
weight300 (3.00%)
Transaction InfoBlock #36040461/Trx e35dd1e087be1fc2fc96ad0847ab57777ae4f469
View Raw JSON Data
{
  "trx_id": "e35dd1e087be1fc2fc96ad0847ab57777ae4f469",
  "block": 36040461,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-31T22:30:33",
  "op": [
    "vote",
    {
      "voter": "vannour",
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "weight": 300
    }
  ]
}
2019/08/31 22:30:30
votershaka
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
weight1200 (12.00%)
Transaction InfoBlock #36040460/Trx 43ea54a916a3507c1ece62139560ea98fb72df74
View Raw JSON Data
{
  "trx_id": "43ea54a916a3507c1ece62139560ea98fb72df74",
  "block": 36040460,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-31T22:30:30",
  "op": [
    "vote",
    {
      "voter": "shaka",
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "weight": 1200
    }
  ]
}
2019/08/31 22:25:36
parent author
parent permlinklinux
authortimoschuetz
permlinksetting-up-and-secure-a-linux-server
titleSetting up and secure a Linux server
bodyIn this post I want to give some tips and hints for securing a linux server. Keep in mind that everybody have a different definition of security and most you will have a different setup. This guide does not replace manual information gathering about how to protect your specific application, because there are no general rules that can be applied to every application. ## Getting Started What you need: * A linux machine (virtualized or bare metal) with shell access * some basic knowledge about how to use the terminal At first we need to connect to our machine using ssh. Then we will secure the ssh access to only login using ssh keys instead of plaintext passwords. Furthermore we will configure ssh to only let certain users log in, because users which only run our application should not be used for logging on. ## Basic Setup ### Update your system The first and most important step for keeping your systems safe is to keep them updated, so that is the first thing we are going to do. ``` bash $ apt update && apt upgrade -y ``` ### Create new user The first thing we should do is to create a personalized user, because we will disable root login over ssh later in this guide for security reasons. You can do this with Test ``` bash $ adduser timo ``` ### Add user to group To allow your newly created user to use the sudo prefix to execute commands as root, you first need to add him to the sudo group: ``` $ adduser timo sudo ``` ### Create ssh key Following you need your client machine to generate a new ssh key. You can use the Linux bash or shell, the Mac OS X terminal or the Windows subsystem (I personally use Debian, but you can choose whatever you prefer). If you don't have these options you can generate a new key using the putty keygen, but here we are using the shell. If you are asked in which file you want to save the key, just keep the defaults if you didn't have one already. If you already have a pair of keys then you should choose a different name to not overwrite them. The default name for most distributions and operating system is id\_rsa. ``` $ ssh-keygen -t rsa -b 4096 ``` After we created a new key we need to transfer it to our server: ``` $ ssh-copy-id -i /.ssh/id_rsa.pub timo @SERVERIP ``` After you have entered the password of your new user the key should be transferred to your server. **Check if ssh keys work** Before disabling password authentication we should check if ssh-keys are working correctly. For this you can open up a new terminal and try to connect with: ``` $ ssh timo@SERVERIP ``` If you are connected without the server asking for a password you setup ssh-keys successful. It may happen, that it does not work and that an error message like `access denied (publickey)` appears. Don't worry we will fix this right away. **Troubleshooting** To do this we need to open up the ssh daemon configuration file which is located at `/etc/ssh/`. ``` $ sudo vim /etc/ssh/sshd_config ``` You need to search for the following line: ``` #PubkeyAuthentication no ``` The line may be commented out or not, if it is you need to remove the hashtag. Now we need to set the variable to yes, so that it looks like this at the end: ``` PubkeyAuthentication yes ``` Now we need to restart the ssh daemon to use our edited config. ``` $ sudo systemctl restart sshd ``` Now you have to try again and check if it works. ### Restricting SSH access After setting up authentication over ssh keys we need to lock down the ssh daemon. For that we need to edit the `sshd_config` once again. ``` $ sudo vim /etc/ssh/sshd_config ``` Now we have to change some more parameters: First of all we will disable password based authentication for the whole system. Find the value `PasswordAuthentication no` uncomment it if necessary and set it to no, if it isn’t. ``` PasswordAuthentication no ``` Because the root user hold all permissions and can do everything on the system we do not want that user to be able to log on to prevent attacks or misuse. For logging on we created a new personal user before. To disable login of the root user find `PermitRootLogin no` uncomment it and set it to no if it isn’t. **Optional Steps** Because all users that do not have a ssh key in their directory are unable to authenticate we could just deny them getting logged on at all to minimize attack surface. For that we append a new line at the end of the file: ``` AllowGroups sudo ``` In this example I use the sudo group, but feel free to create a new group which will be used only for logon. If you only have one or two users it does not make much sense to use a group or if you do not want to use the sudo group you can also restrict to a user level: ``` AllowUsers timo ``` **Restart SSH daemon to apply changes** With that we have restricted the ssh access a far amount. Now to apply these changes we need to restart the ssh daemon. ``` $ sudo systemctl restart sshd ``` Double check in a seperate shell window that the access to the system still works before proceeding to the next steps. ## Setting up fail2ban (Optional) Fail2ban is a piece of software that was written in Python and it gives us the possibility to monitor the log files of the ssh daemon and block brute force attacks. Its functions are not only restricted to ssh, they can be used for all kinds of services. For some applications their are already some presets, but you can easily write your own, if you want to. SSH keys are not very likely to be brute forced because it would need a few millions attempts, but technically it is possible, so we want to prevent that. If you have other outside facing application as well I highly recommend using it. To use the software we first need to install it: ``` $ sudo apt install fail2ban ``` After that we need to create our own definition file. In this so called fail file we define which services to monitor and what actions to take, when a brute force is detected: ``` $ sudo vim /etc/fail2ban/jail.local ``` Here we add the following lines: ``` [sshd] enabled = true banaction = iptables-multiport maxretry = 8 findtime = 36000 bantime = 2629746 ``` The `maxretry` variable defines how much tries one IP has in a fixed amount of time `findtime` before getting banned for a certain amount of time `bantime`. All time variables are defined in seconds so in this example a IP with 8 unsuccessful authentications during 10 hours will get banned for a whole month. A month seems to be quite a long time, but because I only use ssh keys it is very unlikely that I will ever will trigger this accidentally and most compromised servers stay the same. Now we need to enable and start the fail2ban service to make everything work: ``` sudo systemctl enable fail2ban ``` ``` sudo systemctl restart fail2ban ``` Now we are ready to go. Have fun with your server, but always keep an eye on your system, because there is no 100% security and no system is safe.
json metadata{"tags":["linux","server","security","guide"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #36040363/Trx 1a41b854ba69bd825d018eaa7ff5d02b96fd6156
View Raw JSON Data
{
  "trx_id": "1a41b854ba69bd825d018eaa7ff5d02b96fd6156",
  "block": 36040363,
  "trx_in_block": 26,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-31T22:25:36",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "linux",
      "author": "timoschuetz",
      "permlink": "setting-up-and-secure-a-linux-server",
      "title": "Setting up and secure a Linux server",
      "body": "In this post I want to give some tips and hints for securing a linux server. Keep in mind that everybody have a different definition of security and most you will have a different setup. This guide does not replace manual information gathering about how to protect your specific application, because there are no general rules that can be applied to every application.\n\n## Getting Started\n What you need:\n* A linux machine (virtualized or bare metal) with shell access\n* some basic knowledge about how to use the terminal\n\nAt first we need to connect to our machine using ssh. Then we will secure the ssh access to only login using ssh keys instead of plaintext passwords. Furthermore we will configure ssh to only let certain users log in, because users which only run our application should not be used for logging on.\n\n## Basic Setup\n### Update your system\nThe first and most important step for keeping your systems safe is to keep them updated, so that is the first thing we are going to do.\n``` bash \n$ apt update && apt upgrade -y\n```\n### Create new user\nThe first thing we should do is to create a personalized user, because we will disable root login over ssh later in this guide for security reasons. You can do this with \nTest\n``` bash \n$ adduser timo\n```\n\n### Add user to group\nTo allow your newly created user to use the sudo prefix to execute commands as root, you first need to add him to the sudo group:\n```\n$ adduser timo sudo\n```\n\n### Create ssh key\nFollowing you need your client machine to generate a new ssh key. You can use the Linux bash or shell, the Mac OS X terminal or the Windows subsystem (I personally use Debian, but you can choose whatever you prefer). If you don't have these options you can generate a new key using the putty keygen, but here we are using the shell. If you are asked in which file you want to save the key, just keep the defaults if you didn't have one already. If you already have a pair of keys then you should choose a different name to not overwrite them. The default name for most distributions and operating system is id\\_rsa.\n```\n$ ssh-keygen -t rsa -b 4096\n```\n\nAfter we created a new key we need to transfer it to our server:\n```\n$ ssh-copy-id -i /.ssh/id_rsa.pub timo @SERVERIP\n```\n\nAfter you have entered the password of your new user the key should be transferred to your server.\n\n**Check if ssh keys work**\nBefore disabling password authentication we should check if ssh-keys are working correctly. For this you can open up a new terminal and try to connect with: \n```\n$ ssh timo@SERVERIP\n```\nIf you are connected without the server asking for a password you setup ssh-keys successful. It may happen, that it does not work and that an error message like `access denied (publickey)` appears. Don't worry we will fix this right away.\n\n**Troubleshooting**\nTo do this we need to open up the ssh daemon configuration file which is located at `/etc/ssh/`.\n```\n$ sudo vim /etc/ssh/sshd_config\n```\n\nYou need to search for the following line:\n```\n#PubkeyAuthentication no\n```\nThe line may be commented out or not, if it is you need to remove the hashtag. Now we need to set the variable to yes, so that it looks like this at the end:\n```\nPubkeyAuthentication yes\n```\n\nNow we need to restart the ssh daemon to use our edited config.\n```\n$ sudo systemctl restart sshd\n```\n\nNow you have to try again and check if it works.\n\n### Restricting SSH access\nAfter setting up authentication over ssh keys we need to lock down the ssh daemon. For that we need to edit the `sshd_config` once again.\n```\n$ sudo vim /etc/ssh/sshd_config\n```\n\nNow we have to change some more parameters:\n\nFirst of all we will disable password based authentication for the whole system. Find the value  `PasswordAuthentication no` uncomment it if necessary and set it to no, if it isn’t.\n```\nPasswordAuthentication no\n```\nBecause the root user hold all permissions and can do everything on the system we do not want that user to be able to log on to prevent attacks or misuse. For logging on we created a new personal user before. To disable login of the root user find `PermitRootLogin no` uncomment it and set it to no if it isn’t. \n\n**Optional Steps**\nBecause all users that do not have a ssh key in their directory are unable to authenticate we could just deny them getting logged on at all to minimize attack surface. For that we append a new line at the end of the file:\n```\nAllowGroups sudo\n```\n\nIn this example I use the sudo group, but feel free to create a new group which will be used only for logon. If you only have one or two users it does not make much sense to use a group or if you do not want to use the sudo group you can also restrict to a user level:\n```\nAllowUsers timo\n```\n\n**Restart SSH daemon to apply changes**\nWith that we have restricted the ssh access a far amount. Now to apply these changes we need to restart the ssh daemon.\n```\n$ sudo systemctl restart sshd\n```\n\nDouble check in a seperate shell window that the access to the system still works before proceeding to the next steps.\n\n## Setting up fail2ban (Optional)\nFail2ban is a piece of software that was written in Python and it gives us the possibility to monitor the log files of the ssh daemon and block brute force attacks. Its functions are not only restricted to ssh, they can be used for all kinds of services. For some applications their are already some presets, but you can easily write your own, if you want to. SSH keys are not very likely to be brute forced because it would need a few millions attempts, but technically it is possible, so we want to prevent that. If you have other outside facing application as well I highly recommend using it.\n\nTo use the software we first need to install it:\n```\n$ sudo apt install fail2ban\n```\n\nAfter that we need to create our own definition file. In this so called fail file we define which services to monitor and what actions to take, when a brute force is detected:\n```\n$ sudo vim /etc/fail2ban/jail.local\n```\n\nHere we add the following lines:\n```\n[sshd]\nenabled = true\nbanaction = iptables-multiport\nmaxretry = 8\nfindtime = 36000\nbantime = 2629746\n```\n\nThe `maxretry` variable defines how much tries one IP has in a fixed amount of time `findtime`  before getting banned for a certain amount of time `bantime`. All time variables are defined in seconds so in this example a IP with 8 unsuccessful authentications during 10 hours will get banned for a whole month. A month seems to be quite a long time, but because I only use ssh keys it is very unlikely that I will ever will trigger this accidentally and most compromised servers stay the same. \n\nNow we need to enable and start the fail2ban service to make everything work:\n```\nsudo systemctl enable fail2ban\n```\n\n```\nsudo systemctl restart fail2ban\n```\nNow we are ready to go. Have fun with your server, but always keep an eye on your system, because there is no 100% security and no system is safe.",
      "json_metadata": "{\"tags\":[\"linux\",\"server\",\"security\",\"guide\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
timoschuetzupdated their account properties
2019/08/31 22:16:57
accounttimoschuetz
memo keySTM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK
json metadata{"profile":{"about":"This account was instantly created via @steemwallet.app - available for iOS and Android!","website":"https://steemwallet.app","dtube_pub":"jTchANECdwQhSamZyRN8qKQGs4GowbavSZshSxXkSX1e"}}
Transaction InfoBlock #36040194/Trx 898ec4d9edb49ee0c2fc4c7ee7c11f6798b38ce7
View Raw JSON Data
{
  "trx_id": "898ec4d9edb49ee0c2fc4c7ee7c11f6798b38ce7",
  "block": 36040194,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-31T22:16:57",
  "op": [
    "account_update",
    {
      "account": "timoschuetz",
      "memo_key": "STM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK",
      "json_metadata": "{\"profile\":{\"about\":\"This account was instantly created via @steemwallet.app - available for iOS and Android!\",\"website\":\"https://steemwallet.app\",\"dtube_pub\":\"jTchANECdwQhSamZyRN8qKQGs4GowbavSZshSxXkSX1e\"}}"
    }
  ]
}
steemwallet.borncreated a new account: @timoschuetz
2019/08/31 18:42:45
creatorsteemwallet.born
new account nametimoschuetz
owner{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5SYHLaTedhDN3QELUqrNT61jGHoK9FfnQAhLcwpbq9MJbMJCKR",1]]}
active{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6HJgArjprPfcCwxaLEKHj9mMK5PQjWbMFkT822jg64xp3xSLUZ",1]]}
posting{"weight_threshold":1,"account_auths":[],"key_auths":[["STM7G5RQF3onwaJtmEs8CcoREvdWqwwsSnUijtURBZhnpek8qwekp",1]]}
memo keySTM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK
json metadata{"profile":{"about":"This account was instantly created via @steemwallet.app - available for iOS and Android!","website":"https://steemwallet.app"}}
extensions[]
Transaction InfoBlock #36035930/Trx 8ba42b74224d0f50007c8382039c51a5657d8122
View Raw JSON Data
{
  "trx_id": "8ba42b74224d0f50007c8382039c51a5657d8122",
  "block": 36035930,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-08-31T18:42:45",
  "op": [
    "create_claimed_account",
    {
      "creator": "steemwallet.born",
      "new_account_name": "timoschuetz",
      "owner": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM5SYHLaTedhDN3QELUqrNT61jGHoK9FfnQAhLcwpbq9MJbMJCKR",
            1
          ]
        ]
      },
      "active": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6HJgArjprPfcCwxaLEKHj9mMK5PQjWbMFkT822jg64xp3xSLUZ",
            1
          ]
        ]
      },
      "posting": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM7G5RQF3onwaJtmEs8CcoREvdWqwwsSnUijtURBZhnpek8qwekp",
            1
          ]
        ]
      },
      "memo_key": "STM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK",
      "json_metadata": "{\"profile\":{\"about\":\"This account was instantly created via @steemwallet.app - available for iOS and Android!\",\"website\":\"https://steemwallet.app\"}}",
      "extensions": []
    }
  ]
}

Account Metadata

POSTING JSON METADATA
None
JSON METADATA
profile{"about":"This account was instantly created via @steemwallet.app - available for iOS and Android!","website":"https://steemwallet.app","dtube_pub":"jTchANECdwQhSamZyRN8qKQGs4GowbavSZshSxXkSX1e"}
{
  "posting_json_metadata": {},
  "json_metadata": {
    "profile": {
      "about": "This account was instantly created via @steemwallet.app - available for iOS and Android!",
      "website": "https://steemwallet.app",
      "dtube_pub": "jTchANECdwQhSamZyRN8qKQGs4GowbavSZshSxXkSX1e"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM5SYHLaTedhDN3QELUqrNT61jGHoK9FfnQAhLcwpbq9MJbMJCKR1/1
Active
Single Signature
Public Keys
STM6HJgArjprPfcCwxaLEKHj9mMK5PQjWbMFkT822jg64xp3xSLUZ1/1
Posting
Single Signature
Public Keys
STM7G5RQF3onwaJtmEs8CcoREvdWqwwsSnUijtURBZhnpek8qwekp1/1
App Permissions
Memo
STM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5SYHLaTedhDN3QELUqrNT61jGHoK9FfnQAhLcwpbq9MJbMJCKR",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6HJgArjprPfcCwxaLEKHj9mMK5PQjWbMFkT822jg64xp3xSLUZ",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [
      [
        "engrave.app",
        1
      ]
    ],
    "key_auths": [
      [
        "STM7G5RQF3onwaJtmEs8CcoREvdWqwwsSnUijtURBZhnpek8qwekp",
        1
      ]
    ]
  },
  "memo": "STM6z2oUYmfR5qEwUVwG5FQn1u9iYZdvtZkESypm7JNCwUvn5WRrK"
}

Witness Votes

0 / 30
No active witness votes.
[]