Here are the log files for both the client and the server.
SERVER
Code: Select all
2012-05-15 22:13:35 *Tunnelblick: OS X 10.7.3; Tunnelblick 3.2.6 (build 2891.3007)
2012-05-15 22:13:35 *Tunnelblick: Attempting connection with server; Set nameserver = 1; monitoring connection
2012-05-15 22:13:35 *Tunnelblick: /Applications/Tunnelblick.app/Contents/Resources/openvpnstart start server.ovpn 1338 1 0 0 0 49 -atDASNGWrdasngw
2012-05-15 22:13:35 *Tunnelblick: openvpnstart: /Applications/Tunnelblick.app/Contents/Resources/openvpn/openvpn-2.2.1/openvpn --cd /Users/michael/Library/Application Support/Tunnelblick/Configurations --daemon --management 127.0.0.1 1338 --config /Users/michael/Library/Application Support/Tunnelblick/Configurations/server.ovpn --log /Library/Application Support/Tunnelblick/Logs/-SUsers-Smichael-SLibrary-SApplication Support-STunnelblick-SConfigurations-Sserver.ovpn.1_0_0_0_49.1338.openvpn.log --management-query-passwords --management-hold --script-security 2 --up /Applications/Tunnelblick.app/Contents/Resources/client.up.tunnelblick.sh -m -w -d -atDASNGWrdasngw --down /Applications/Tunnelblick.app/Contents/Resources/client.down.tunnelblick.sh -m -w -d -atDASNGWrdasngw --up-restart
2012-05-15 22:13:36 *Tunnelblick: openvpnstart message: Loading tun.kext
2012-05-15 22:13:36 us=35673 Current Parameter Settings:
2012-05-15 22:13:36 us=35900 config = '/Users/michael/Library/Application Support/Tunnelblick/Configurations/server.ovpn'
2012-05-15 22:13:36 us=35916 mode = 1
2012-05-15 22:13:36 us=35929 show_ciphers = DISABLED
2012-05-15 22:13:36 us=35942 show_digests = DISABLED
2012-05-15 22:13:36 us=35955 show_engines = DISABLED
2012-05-15 22:13:36 us=35968 genkey = DISABLED
2012-05-15 22:13:36 us=35985 key_pass_file = '[UNDEF]'
2012-05-15 22:13:36 us=35999 show_tls_ciphers = DISABLED
2012-05-15 22:13:36 us=36011 Connection profiles [default]:
2012-05-15 22:13:36 us=36024 proto = tcp-server
2012-05-15 22:13:36 us=36037 local = '[UNDEF]'
2012-05-15 22:13:36 us=36050 local_port = 1194
2012-05-15 22:13:36 us=36063 remote = '[UNDEF]'
2012-05-15 22:13:36 us=36076 remote_port = 1194
2012-05-15 22:13:36 us=36089 remote_float = DISABLED
2012-05-15 22:13:36 us=36102 bind_defined = DISABLED
2012-05-15 22:13:36 us=36115 bind_local = ENABLED
2012-05-15 22:13:36 us=36128 connect_retry_seconds = 5
2012-05-15 22:13:36 us=36141 connect_timeout = 10
2012-05-15 22:13:36 us=36154 connect_retry_max = 0
2012-05-15 22:13:36 us=36167 socks_proxy_server = '[UNDEF]'
2012-05-15 22:13:36 us=36180 socks_proxy_port = 0
2012-05-15 22:13:36 us=36192 socks_proxy_retry = DISABLED
2012-05-15 22:13:36 us=36205 Connection profiles END
2012-05-15 22:13:36 us=36218 remote_random = DISABLED
2012-05-15 22:13:36 us=36231 ipchange = '[UNDEF]'
2012-05-15 22:13:36 us=36243 dev = 'tun'
2012-05-15 22:13:36 us=36256 dev_type = '[UNDEF]'
2012-05-15 22:13:36 us=36269 dev_node = '[UNDEF]'
2012-05-15 22:13:36 us=36282 lladdr = '[UNDEF]'
2012-05-15 22:13:36 us=36295 topology = 1
2012-05-15 22:13:36 us=36308 tun_ipv6 = DISABLED
2012-05-15 22:13:36 us=36321 ifconfig_local = '10.10.46.1'
2012-05-15 22:13:36 us=36333 ifconfig_remote_netmask = '10.10.46.2'
2012-05-15 22:13:36 us=36346 ifconfig_noexec = DISABLED
2012-05-15 22:13:36 us=36359 ifconfig_nowarn = DISABLED
2012-05-15 22:13:36 us=36372 shaper = 0
2012-05-15 22:13:36 us=36385 tun_mtu = 1500
2012-05-15 22:13:36 us=36398 tun_mtu_defined = ENABLED
2012-05-15 22:13:36 us=36411 link_mtu = 1500
2012-05-15 22:13:36 us=36424 link_mtu_defined = DISABLED
2012-05-15 22:13:36 us=36436 tun_mtu_extra = 0
2012-05-15 22:13:36 us=36449 tun_mtu_extra_defined = DISABLED
2012-05-15 22:13:36 us=36462 fragment = 0
2012-05-15 22:13:36 us=36475 mtu_discover_type = -1
2012-05-15 22:13:36 us=36488 mtu_test = 0
2012-05-15 22:13:36 us=36501 mlock = DISABLED
2012-05-15 22:13:36 us=36514 keepalive_ping = 10
2012-05-15 22:13:36 us=36526 keepalive_timeout = 120
2012-05-15 22:13:36 us=36539 inactivity_timeout = 0
2012-05-15 22:13:36 us=36552 ping_send_timeout = 10
2012-05-15 22:13:36 us=36565 ping_rec_timeout = 240
2012-05-15 22:13:36 us=36578 ping_rec_timeout_action = 2
2012-05-15 22:13:36 us=36591 ping_timer_remote = DISABLED
2012-05-15 22:13:36 us=36603 remap_sigusr1 = 0
2012-05-15 22:13:36 us=36616 explicit_exit_notification = 0
2012-05-15 22:13:36 us=36629 persist_tun = ENABLED
2012-05-15 22:13:36 us=36642 persist_local_ip = DISABLED
2012-05-15 22:13:36 us=36655 persist_remote_ip = DISABLED
2012-05-15 22:13:36 us=36668 persist_key = ENABLED
2012-05-15 22:13:36 us=36681 mssfix = 1450
2012-05-15 22:13:36 us=36693 passtos = DISABLED
2012-05-15 22:13:36 us=36706 resolve_retry_seconds = 1000000000
2012-05-15 22:13:36 us=36719 username = '[UNDEF]'
2012-05-15 22:13:36 us=36735 groupname = '[UNDEF]'
2012-05-15 22:13:36 us=36748 chroot_dir = '[UNDEF]'
2012-05-15 22:13:36 us=36761 cd_dir = '/Users/michael/Library/Application Support/Tunnelblick/Configurations'
2012-05-15 22:13:36 us=36789 writepid = '[UNDEF]'
2012-05-15 22:13:36 us=36803 up_script = '/Applications/Tunnelblick.app/Contents/Resources/client.up.tunnelblick.sh -m -w -d -atDASNGWrdasngw'
2012-05-15 22:13:36 us=36817 down_script = '/Applications/Tunnelblick.app/Contents/Resources/client.down.tunnelblick.sh -m -w -d -atDASNGWrdasngw'
2012-05-15 22:13:36 us=36830 down_pre = DISABLED
2012-05-15 22:13:36 us=36842 up_restart = ENABLED
2012-05-15 22:13:36 us=36855 up_delay = DISABLED
2012-05-15 22:13:36 us=36871 daemon = ENABLED
2012-05-15 22:13:36 us=36889 inetd = 0
2012-05-15 22:13:36 us=36902 log = ENABLED
2012-05-15 22:13:36 us=36915 suppress_timestamps = DISABLED
2012-05-15 22:13:36 us=36928 nice = 0
2012-05-15 22:13:36 us=36944 verbosity = 4
2012-05-15 22:13:36 us=36958 mute = 0
2012-05-15 22:13:36 us=36970 gremlin = 0
2012-05-15 22:13:36 us=36983 status_file = 'openvpn-status.log'
2012-05-15 22:13:36 us=36996 status_file_version = 1
2012-05-15 22:13:36 us=37009 status_file_update_freq = 60
2012-05-15 22:13:36 us=37022 occ = ENABLED
2012-05-15 22:13:36 us=37035 rcvbuf = 65536
2012-05-15 22:13:36 us=37047 sndbuf = 65536
2012-05-15 22:13:36 us=37060 sockflags = 0
2012-05-15 22:13:36 us=37077 fast_io = DISABLED
2012-05-15 22:13:36 us=37091 lzo = 7
2012-05-15 22:13:36 us=37104 route_script = '[UNDEF]'
2012-05-15 22:13:36 us=37117 route_default_gateway = '[UNDEF]'
2012-05-15 22:13:36 us=37130 route_default_metric = 0
2012-05-15 22:13:36 us=37143 route_noexec = DISABLED
2012-05-15 22:13:36 us=37155 route_delay = 0
2012-05-15 22:13:36 us=37168 route_delay_window = 30
2012-05-15 22:13:36 us=37181 route_delay_defined = DISABLED
2012-05-15 22:13:36 us=37194 route_nopull = DISABLED
2012-05-15 22:13:36 us=37207 route_gateway_via_dhcp = DISABLED
2012-05-15 22:13:36 us=37220 max_routes = 100
2012-05-15 22:13:36 us=37233 allow_pull_fqdn = DISABLED
2012-05-15 22:13:36 us=37247 route 10.10.46.0/255.255.255.0/nil/nil
2012-05-15 22:13:36 us=37261 management_addr = '127.0.0.1'
2012-05-15 22:13:36 us=37274 management_port = 1338
2012-05-15 22:13:36 us=37287 management_user_pass = '[UNDEF]'
2012-05-15 22:13:36 us=37301 management_log_history_cache = 250
2012-05-15 22:13:36 us=37315 management_echo_buffer_size = 100
2012-05-15 22:13:36 us=37329 management_write_peer_info_file = '[UNDEF]'
2012-05-15 22:13:36 us=37342 management_client_user = '[UNDEF]'
2012-05-15 22:13:36 us=37356 management_client_group = '[UNDEF]'
2012-05-15 22:13:36 us=37369 management_flags = 6
2012-05-15 22:13:36 us=37382 shared_secret_file = '[UNDEF]'
2012-05-15 22:13:36 us=37396 key_direction = 0
2012-05-15 22:13:36 us=37409 ciphername_defined = ENABLED
2012-05-15 22:13:36 us=37422 ciphername = 'BF-CBC'
2012-05-15 22:13:36 us=37436 authname_defined = ENABLED
2012-05-15 22:13:36 us=37449 authname = 'SHA1'
2012-05-15 22:13:36 us=37462 prng_hash = 'SHA1'
2012-05-15 22:13:36 us=37476 prng_nonce_secret_len = 16
2012-05-15 22:13:36 us=37489 keysize = 0
2012-05-15 22:13:36 us=37502 engine = DISABLED
2012-05-15 22:13:36 us=37515 replay = ENABLED
2012-05-15 22:13:36 us=37529 mute_replay_warnings = DISABLED
2012-05-15 22:13:36 us=37542 replay_window = 64
2012-05-15 22:13:36 us=37555 replay_time = 15
2012-05-15 22:13:36 us=37568 packet_id_file = '[UNDEF]'
2012-05-15 22:13:36 us=37582 use_iv = ENABLED
2012-05-15 22:13:36 us=37595 test_crypto = DISABLED
2012-05-15 22:13:36 us=37608 tls_server = ENABLED
2012-05-15 22:13:36 us=37625 tls_client = DISABLED
2012-05-15 22:13:36 us=37638 key_method = 2
2012-05-15 22:13:36 us=37651 ca_file = 'ca.crt'
2012-05-15 22:13:36 us=37665 ca_path = '[UNDEF]'
2012-05-15 22:13:36 us=37678 dh_file = 'dh2048.pem'
2012-05-15 22:13:36 us=37705 cert_file = 'server.crt'
2012-05-15 22:13:36 us=37719 priv_key_file = 'server.key'
2012-05-15 22:13:36 us=37732 pkcs12_file = '[UNDEF]'
2012-05-15 22:13:36 us=37745 cipher_list = '[UNDEF]'
2012-05-15 22:13:36 us=37758 tls_verify = '[UNDEF]'
2012-05-15 22:13:36 us=37771 tls_export_cert = '[UNDEF]'
2012-05-15 22:13:36 us=37784 tls_remote = '[UNDEF]'
2012-05-15 22:13:36 us=37797 crl_file = '[UNDEF]'
2012-05-15 22:13:36 us=37811 ns_cert_type = 0
2012-05-15 22:13:36 us=37824 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37837 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37851 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37864 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37877 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37890 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37903 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37916 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37929 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37942 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37955 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37968 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37981 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=37995 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=38008 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=38021 remote_cert_ku[i] = 0
2012-05-15 22:13:36 us=38034 remote_cert_eku = '[UNDEF]'
2012-05-15 22:13:36 us=38047 tls_timeout = 2
2012-05-15 22:13:36 us=38060 renegotiate_bytes = 0
2012-05-15 22:13:36 us=38074 renegotiate_packets = 0
2012-05-15 22:13:36 us=38087 renegotiate_seconds = 3600
2012-05-15 22:13:36 us=38100 handshake_window = 60
2012-05-15 22:13:36 us=38114 transition_window = 3600
2012-05-15 22:13:36 us=38127 single_session = DISABLED
2012-05-15 22:13:36 us=38140 push_peer_info = DISABLED
2012-05-15 22:13:36 us=38153 tls_exit = DISABLED
2012-05-15 22:13:36 us=38167 tls_auth_file = '[UNDEF]'
2012-05-15 22:13:36 us=38180 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38194 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38207 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38221 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38234 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38248 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38261 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38275 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38288 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38302 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38315 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38329 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38342 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38356 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38369 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38383 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:36 us=38397 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38410 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38424 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38437 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38451 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38464 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38477 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38491 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38504 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38518 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38531 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38557 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38571 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38585 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38598 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38612 pkcs11_private_mode = 00000000
2012-05-15 22:13:36 us=38625 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38638 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38651 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38665 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38678 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38691 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38704 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38717 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38730 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38743 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38756 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38770 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38783 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38796 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38809 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38823 pkcs11_cert_private = DISABLED
2012-05-15 22:13:36 us=38836 pkcs11_pin_cache_period = -1
2012-05-15 22:13:36 us=38850 pkcs11_id = '[UNDEF]'
2012-05-15 22:13:36 us=38863 pkcs11_id_management = DISABLED
2012-05-15 22:13:36 us=38879 server_network = 10.10.46.0
2012-05-15 22:13:36 us=38894 server_netmask = 255.255.255.0
2012-05-15 22:13:36 us=38909 server_bridge_ip = 0.0.0.0
2012-05-15 22:13:36 us=38924 server_bridge_netmask = 0.0.0.0
2012-05-15 22:13:36 us=38939 server_bridge_pool_start = 0.0.0.0
2012-05-15 22:13:36 us=38954 server_bridge_pool_end = 0.0.0.0
2012-05-15 22:13:36 us=38968 push_entry = 'route 10.10.46.1'
2012-05-15 22:13:36 us=38981 push_entry = 'topology net30'
2012-05-15 22:13:36 us=38995 push_entry = 'ping 10'
2012-05-15 22:13:36 us=39008 push_entry = 'ping-restart 120'
2012-05-15 22:13:36 us=39022 ifconfig_pool_defined = ENABLED
2012-05-15 22:13:36 us=39037 ifconfig_pool_start = 10.10.46.4
2012-05-15 22:13:36 us=39052 ifconfig_pool_end = 10.10.46.251
2012-05-15 22:13:36 us=39067 ifconfig_pool_netmask = 0.0.0.0
2012-05-15 22:13:36 us=39081 ifconfig_pool_persist_filename = 'ipp.txt'
2012-05-15 22:13:36 us=39095 ifconfig_pool_persist_refresh_freq = 600
2012-05-15 22:13:36 us=39108 n_bcast_buf = 256
2012-05-15 22:13:36 us=39121 tcp_queue_limit = 64
2012-05-15 22:13:36 us=39134 real_hash_size = 256
2012-05-15 22:13:36 us=39147 virtual_hash_size = 256
2012-05-15 22:13:36 us=39161 client_connect_script = '[UNDEF]'
2012-05-15 22:13:36 us=39174 learn_address_script = '[UNDEF]'
2012-05-15 22:13:36 us=39188 client_disconnect_script = '[UNDEF]'
2012-05-15 22:13:36 us=39202 client_config_dir = '[UNDEF]'
2012-05-15 22:13:36 us=39215 ccd_exclusive = DISABLED
2012-05-15 22:13:36 us=39228 tmp_dir = '/var/folders/6k/r4rml09s5x50_t3s2lq90w2m0000gn/T/'
2012-05-15 22:13:36 us=39242 push_ifconfig_defined = DISABLED
2012-05-15 22:13:36 us=39257 push_ifconfig_local = 0.0.0.0
2012-05-15 22:13:36 us=39272 push_ifconfig_remote_netmask = 0.0.0.0
2012-05-15 22:13:36 us=39285 enable_c2c = DISABLED
2012-05-15 22:13:36 us=39298 duplicate_cn = DISABLED
2012-05-15 22:13:36 us=39311 cf_max = 0
2012-05-15 22:13:36 us=39325 cf_per = 0
2012-05-15 22:13:36 us=39338 max_clients = 1024
2012-05-15 22:13:36 us=39351 max_routes_per_client = 256
2012-05-15 22:13:36 us=39364 auth_user_pass_verify_script = '[UNDEF]'
2012-05-15 22:13:36 us=39378 auth_user_pass_verify_script_via_file = DISABLED
2012-05-15 22:13:36 us=39405 ssl_flags = 0
2012-05-15 22:13:36 us=39419 port_share_host = '[UNDEF]'
2012-05-15 22:13:36 us=39432 port_share_port = 0
2012-05-15 22:13:36 us=39445 client = DISABLED
2012-05-15 22:13:36 us=39458 pull = DISABLED
2012-05-15 22:13:36 us=39472 auth_user_pass_file = '[UNDEF]'
2012-05-15 22:13:36 us=39490 OpenVPN 2.2.1 i386-apple-darwin10.7.1 [SSL] [LZO2] [PKCS11] [eurephia] built on May 2 2012
2012-05-15 22:13:36 us=39629 MANAGEMENT: TCP Socket listening on 127.0.0.1:1338
2012-05-15 22:13:36 us=40211 Need hold release from management interface, waiting...
2012-05-15 22:13:36 us=151246 MANAGEMENT: Client connected from 127.0.0.1:1338
2012-05-15 22:13:36 us=186701 MANAGEMENT: CMD 'pid'
2012-05-15 22:13:36 us=187063 MANAGEMENT: CMD 'state on'
2012-05-15 22:13:36 us=187196 MANAGEMENT: CMD 'state'
2012-05-15 22:13:36 us=187363 MANAGEMENT: CMD 'hold release'
2012-05-15 22:13:36 us=187806 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2012-05-15 22:13:36 *Tunnelblick: Established communication with OpenVPN
2012-05-15 22:13:36 us=271213 Diffie-Hellman initialized with 2048 bit key
2012-05-15 22:13:36 us=273556 WARNING: file 'server.key' is group or others accessible
2012-05-15 22:13:36 us=274387 TLS-Auth MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:36 us=274529 Socket Buffers: R=[262140->65536] S=[131070->65536]
2012-05-15 22:13:36 us=274805 ROUTE default_gateway=192.168.178.1
2012-05-15 22:13:36 us=275280 TUN/TAP device /dev/tun0 opened
2012-05-15 22:13:36 us=275392 MANAGEMENT: >STATE:1337112816,ASSIGN_IP,,10.10.46.1,
2012-05-15 22:13:36 us=275658 /sbin/ifconfig tun0 delete
ifconfig: ioctl (SIOCDIFADDR): Can't assign requested address
2012-05-15 22:13:36 us=289372 NOTE: Tried to delete pre-existing tun/tap instance -- No Problem if failure
2012-05-15 22:13:36 us=289562 /sbin/ifconfig tun0 10.10.46.1 10.10.46.2 mtu 1500 netmask 255.255.255.255 up
2012-05-15 22:13:36 us=298344 /Applications/Tunnelblick.app/Contents/Resources/client.up.tunnelblick.sh -m -w -d -atDASNGWrdasngw tun0 1500 1544 10.10.46.1 10.10.46.2 init
2012-05-15 22:13:38 *Tunnelblick client.up.tunnelblick.sh: No network configuration changes need to be made.
2012-05-15 22:13:38 *Tunnelblick client.up.tunnelblick.sh: Will NOT monitor for other network configuration changes.
2012-05-15 22:13:38 us=386030 MANAGEMENT: >STATE:1337112818,ADD_ROUTES,,,
2012-05-15 22:13:38 us=386347 /sbin/route add -net 10.10.46.0 10.10.46.2 255.255.255.0
add net 10.10.46.0: gateway 10.10.46.2
2012-05-15 22:13:38 us=389217 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:38 us=389370 Listening for incoming TCP connection on [undef]:1194
2012-05-15 22:13:38 us=389470 TCPv4_SERVER link local (bound): [undef]:1194
2012-05-15 22:13:38 us=389548 TCPv4_SERVER link remote: [undef]
2012-05-15 22:13:38 us=389639 MULTI: multi_init called, r=256 v=256
2012-05-15 22:13:38 us=389760 IFCONFIG POOL: base=10.10.46.4 size=62
2012-05-15 22:13:38 us=389849 IFCONFIG POOL LIST
2012-05-15 22:13:38 us=389940 MULTI: TCP INIT maxclients=1020 maxevents=1024
2012-05-15 22:13:38 us=390088 Initialization Sequence Completed
2012-05-15 22:13:38 us=390376 MANAGEMENT: >STATE:1337112818,CONNECTED,SUCCESS,10.10.46.1,
2012-05-15 22:13:38 *Tunnelblick: Flushed the DNS cache
2012-05-15 22:13:43 us=31875 MULTI: multi_create_instance called
2012-05-15 22:13:43 us=32107 Re-using SSL/TLS context
2012-05-15 22:13:43 us=32252 LZO compression initialized
2012-05-15 22:13:43 us=32510 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:43 us=32637 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:43 us=32790 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
2012-05-15 22:13:43 us=32890 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
2012-05-15 22:13:43 us=33009 Local Options hash (VER=V4): 'c0103fa8'
2012-05-15 22:13:43 us=33112 Expected Remote Options hash (VER=V4): '69109d17'
2012-05-15 22:13:43 us=33948 TCP connection established with 192.168.178.18:57255
2012-05-15 22:13:43 us=34057 TCPv4_SERVER link local: [undef]
2012-05-15 22:13:43 us=34153 TCPv4_SERVER link remote: 192.168.178.18:57255
2012-05-15 22:13:44 us=34206 192.168.178.18:57255 TLS: Initial packet from 192.168.178.18:57255, sid=82a6f64e 02a662d0
2012-05-15 22:13:44 us=82525 192.168.178.18:57255 Connection reset, restarting [0]
2012-05-15 22:13:44 us=82701 192.168.178.18:57255 SIGUSR1[soft,connection-reset] received, client-instance restarting
2012-05-15 22:13:44 us=82879 TCP/UDP: Closing socket
2012-05-15 22:13:44 us=89585 MULTI: multi_create_instance called
2012-05-15 22:13:44 us=89750 Re-using SSL/TLS context
2012-05-15 22:13:44 us=89840 LZO compression initialized
2012-05-15 22:13:44 us=89992 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:44 us=90083 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:44 us=90195 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
2012-05-15 22:13:44 us=90275 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
2012-05-15 22:13:44 us=90365 Local Options hash (VER=V4): 'c0103fa8'
2012-05-15 22:13:44 us=90450 Expected Remote Options hash (VER=V4): '69109d17'
2012-05-15 22:13:44 us=90545 TCP connection established with 192.168.178.18:57256
2012-05-15 22:13:44 us=90630 TCPv4_SERVER link local: [undef]
2012-05-15 22:13:44 us=90711 TCPv4_SERVER link remote: 192.168.178.18:57256
2012-05-15 22:13:45 us=89924 192.168.178.18:57256 TLS: Initial packet from 192.168.178.18:57256, sid=17bf6baa 2d4a24f0
2012-05-15 22:13:45 us=135364 192.168.178.18:57256 Connection reset, restarting [0]
2012-05-15 22:13:45 us=135567 192.168.178.18:57256 SIGUSR1[soft,connection-reset] received, client-instance restarting
2012-05-15 22:13:45 us=135722 TCP/UDP: Closing socket
2012-05-15 22:13:45 us=162029 MULTI: multi_create_instance called
2012-05-15 22:13:45 us=162452 Re-using SSL/TLS context
2012-05-15 22:13:45 us=162556 LZO compression initialized
2012-05-15 22:13:45 us=162857 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:45 us=162965 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:45 us=163096 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
2012-05-15 22:13:45 us=163176 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
2012-05-15 22:13:45 us=163262 Local Options hash (VER=V4): 'c0103fa8'
2012-05-15 22:13:45 us=163347 Expected Remote Options hash (VER=V4): '69109d17'
2012-05-15 22:13:45 us=163442 TCP connection established with 192.168.178.18:57257
2012-05-15 22:13:45 us=163539 TCPv4_SERVER link local: [undef]
2012-05-15 22:13:45 us=163835 TCPv4_SERVER link remote: 192.168.178.18:57257
2012-05-15 22:13:46 us=162734 192.168.178.18:57257 TLS: Initial packet from 192.168.178.18:57257, sid=5a713988 0286f71c
2012-05-15 22:13:46 us=212099 192.168.178.18:57257 Connection reset, restarting [0]
2012-05-15 22:13:46 us=212542 192.168.178.18:57257 SIGUSR1[soft,connection-reset] received, client-instance restarting
2012-05-15 22:13:46 us=212731 TCP/UDP: Closing socket
2012-05-15 22:13:46 us=254158 MULTI: multi_create_instance called
2012-05-15 22:13:46 us=254583 Re-using SSL/TLS context
2012-05-15 22:13:46 us=254675 LZO compression initialized
2012-05-15 22:13:46 us=255324 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:46 us=255453 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:46 us=258114 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
2012-05-15 22:13:46 us=258223 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
2012-05-15 22:13:46 us=258385 Local Options hash (VER=V4): 'c0103fa8'
2012-05-15 22:13:46 us=258621 Expected Remote Options hash (VER=V4): '69109d17'
2012-05-15 22:13:46 us=258724 TCP connection established with 192.168.178.18:57258
2012-05-15 22:13:46 us=259359 TCPv4_SERVER link local: [undef]
2012-05-15 22:13:46 us=259447 TCPv4_SERVER link remote: 192.168.178.18:57258
2012-05-15 22:13:46 us=652441 192.168.178.18:57258 Connection reset, restarting [0]
2012-05-15 22:13:46 us=652631 192.168.178.18:57258 SIGUSR1[soft,connection-reset] received, client-instance restarting
2012-05-15 22:13:46 us=652817 TCP/UDP: Closing socket
2012-05-15 22:13:50 *Tunnelblick: Disconnecting; 'disconnect' button pressed
2012-05-15 22:13:50 us=369157 TCP/UDP: Closing socket
2012-05-15 22:13:50 us=369344 /sbin/route delete -net 10.10.46.0 10.10.46.2 255.255.255.0
delete net 10.10.46.0: gateway 10.10.46.2
2012-05-15 22:13:50 us=372743 Closing TUN/TAP interface
2012-05-15 22:13:50 us=373168 /Applications/Tunnelblick.app/Contents/Resources/client.down.tunnelblick.sh -m -w -d -atDASNGWrdasngw tun0 1500 1544 10.10.46.1 10.10.46.2 init
2012-05-15 22:13:51 *Tunnelblick client.down.tunnelblick.sh: WARNING: No existing OpenVPN DNS configuration found; not tearing down anything; exiting.
2012-05-15 22:13:51 us=410242 SIGTERM[hard,] received, process exiting
2012-05-15 22:13:51 us=410409 MANAGEMENT: >STATE:1337112831,EXITING,SIGTERM,,
2012-05-15 22:13:51 *Tunnelblick: Flushed the DNS cache
CLIENT
Code: Select all
2012-05-15 22:13:42 *Tunnelblick: OS X 10.7.4; Tunnelblick 3.2.6 (build 2891.3007) Unsigned
2012-05-15 22:13:42 *Tunnelblick: Attempting connection with client1; Set nameserver = 1; monitoring connection
2012-05-15 22:13:42 *Tunnelblick: /Applications/Tunnelblick.app/Contents/Resources/openvpnstart start client1.ovpn 1338 1 0 0 0 49 -atDASNGWrdasngw
2012-05-15 22:13:42 us=899560 Current Parameter Settings:
2012-05-15 22:13:42 us=899722 config = '/Users/michael/Library/Application Support/Tunnelblick/Configurations/client1.ovpn'
2012-05-15 22:13:42 us=899733 mode = 0
2012-05-15 22:13:42 us=899742 show_ciphers = DISABLED
2012-05-15 22:13:42 us=899750 show_digests = DISABLED
2012-05-15 22:13:42 us=899759 show_engines = DISABLED
2012-05-15 22:13:42 us=899767 genkey = DISABLED
2012-05-15 22:13:42 us=899778 key_pass_file = '[UNDEF]'
2012-05-15 22:13:42 us=899787 show_tls_ciphers = DISABLED
2012-05-15 22:13:42 us=899796 Connection profiles [default]:
2012-05-15 22:13:42 us=899804 proto = tcp-client
2012-05-15 22:13:42 us=899813 local = '[UNDEF]'
2012-05-15 22:13:42 us=899822 local_port = 0
2012-05-15 22:13:42 us=899830 remote = '192.168.178.10'
2012-05-15 22:13:42 us=899839 remote_port = 1194
2012-05-15 22:13:42 us=899847 remote_float = DISABLED
2012-05-15 22:13:42 us=899855 bind_defined = DISABLED
2012-05-15 22:13:42 us=899864 bind_local = DISABLED
2012-05-15 22:13:42 us=899872 connect_retry_seconds = 5
2012-05-15 22:13:42 us=899881 connect_timeout = 10
2012-05-15 22:13:42 us=899890 connect_retry_max = 0
2012-05-15 22:13:42 us=899898 socks_proxy_server = '[UNDEF]'
2012-05-15 22:13:42 us=899907 socks_proxy_port = 0
2012-05-15 22:13:42 us=899915 socks_proxy_retry = DISABLED
2012-05-15 22:13:42 us=899924 Connection profiles END
2012-05-15 22:13:42 us=899932 remote_random = DISABLED
2012-05-15 22:13:42 us=899941 ipchange = '[UNDEF]'
2012-05-15 22:13:42 us=899949 dev = 'tun'
2012-05-15 22:13:42 us=899958 dev_type = '[UNDEF]'
2012-05-15 22:13:42 us=899966 dev_node = '[UNDEF]'
2012-05-15 22:13:42 us=899975 lladdr = '[UNDEF]'
2012-05-15 22:13:42 us=899983 topology = 1
2012-05-15 22:13:42 us=899991 tun_ipv6 = DISABLED
2012-05-15 22:13:42 us=900000 ifconfig_local = '[UNDEF]'
2012-05-15 22:13:42 us=900008 ifconfig_remote_netmask = '[UNDEF]'
2012-05-15 22:13:42 us=900017 ifconfig_noexec = DISABLED
2012-05-15 22:13:42 us=900025 ifconfig_nowarn = DISABLED
2012-05-15 22:13:42 us=900034 shaper = 0
2012-05-15 22:13:42 us=900042 tun_mtu = 1500
2012-05-15 22:13:42 us=900051 tun_mtu_defined = ENABLED
2012-05-15 22:13:42 us=900059 link_mtu = 1500
2012-05-15 22:13:42 us=900067 link_mtu_defined = DISABLED
2012-05-15 22:13:42 us=900076 tun_mtu_extra = 0
2012-05-15 22:13:42 us=900084 tun_mtu_extra_defined = DISABLED
2012-05-15 22:13:42 us=900093 fragment = 0
2012-05-15 22:13:42 us=900101 mtu_discover_type = -1
2012-05-15 22:13:42 us=900110 mtu_test = 0
2012-05-15 22:13:42 us=900122 mlock = DISABLED
2012-05-15 22:13:42 us=900131 keepalive_ping = 0
2012-05-15 22:13:42 us=900139 keepalive_timeout = 0
2012-05-15 22:13:42 us=900148 inactivity_timeout = 0
2012-05-15 22:13:42 us=900156 ping_send_timeout = 0
2012-05-15 22:13:42 us=900165 ping_rec_timeout = 0
2012-05-15 22:13:42 us=900173 ping_rec_timeout_action = 0
2012-05-15 22:13:42 us=900181 ping_timer_remote = DISABLED
2012-05-15 22:13:42 us=900190 remap_sigusr1 = 0
2012-05-15 22:13:42 us=900198 explicit_exit_notification = 0
2012-05-15 22:13:42 us=900207 persist_tun = ENABLED
2012-05-15 22:13:42 us=900215 persist_local_ip = DISABLED
2012-05-15 22:13:42 us=900224 persist_remote_ip = DISABLED
2012-05-15 22:13:42 us=900232 persist_key = ENABLED
2012-05-15 22:13:42 us=900241 mssfix = 1450
2012-05-15 22:13:42 us=900249 passtos = DISABLED
2012-05-15 22:13:42 us=900258 resolve_retry_seconds = 1000000000
2012-05-15 22:13:42 us=900266 username = '[UNDEF]'
2012-05-15 22:13:42 us=900275 groupname = '[UNDEF]'
2012-05-15 22:13:42 us=900283 chroot_dir = '[UNDEF]'
2012-05-15 22:13:42 us=900292 cd_dir = '/Users/michael/Library/Application Support/Tunnelblick/Configurations'
2012-05-15 22:13:42 us=900309 writepid = '[UNDEF]'
2012-05-15 22:13:42 us=900318 up_script = '/Applications/Tunnelblick.app/Contents/Resources/client.up.tunnelblick.sh -m -w -d -atDASNGWrdasngw'
2012-05-15 22:13:42 us=900327 down_script = '/Applications/Tunnelblick.app/Contents/Resources/client.down.tunnelblick.sh -m -w -d -atDASNGWrdasngw'
2012-05-15 22:13:42 us=900335 down_pre = DISABLED
2012-05-15 22:13:42 us=900344 up_restart = ENABLED
2012-05-15 22:13:42 us=900352 up_delay = DISABLED
2012-05-15 22:13:42 us=900363 daemon = ENABLED
2012-05-15 22:13:42 us=900372 inetd = 0
2012-05-15 22:13:42 us=900380 log = ENABLED
2012-05-15 22:13:42 us=900395 suppress_timestamps = DISABLED
2012-05-15 22:13:42 us=900404 nice = 0
2012-05-15 22:13:42 us=900415 verbosity = 4
2012-05-15 22:13:42 us=900424 mute = 0
2012-05-15 22:13:42 us=900433 gremlin = 0
2012-05-15 22:13:42 us=900441 status_file = '[UNDEF]'
2012-05-15 22:13:42 us=900450 status_file_version = 1
2012-05-15 22:13:42 us=900458 status_file_update_freq = 60
2012-05-15 22:13:42 us=900481 occ = ENABLED
2012-05-15 22:13:42 us=900490 rcvbuf = 65536
2012-05-15 22:13:42 us=900499 sndbuf = 65536
2012-05-15 22:13:42 us=900507 sockflags = 0
2012-05-15 22:13:42 us=900516 fast_io = DISABLED
2012-05-15 22:13:42 us=900524 lzo = 7
2012-05-15 22:13:42 us=900533 route_script = '[UNDEF]'
2012-05-15 22:13:42 us=900542 route_default_gateway = '[UNDEF]'
2012-05-15 22:13:42 us=900551 route_default_metric = 0
2012-05-15 22:13:42 us=900559 route_noexec = DISABLED
2012-05-15 22:13:42 us=900568 route_delay = 0
2012-05-15 22:13:42 us=900576 route_delay_window = 30
2012-05-15 22:13:42 us=900585 route_delay_defined = DISABLED
2012-05-15 22:13:42 us=900593 route_nopull = DISABLED
2012-05-15 22:13:42 us=900602 route_gateway_via_dhcp = DISABLED
2012-05-15 22:13:42 us=900611 max_routes = 100
2012-05-15 22:13:42 us=900620 allow_pull_fqdn = DISABLED
2012-05-15 22:13:42 us=900628 management_addr = '127.0.0.1'
2012-05-15 22:13:42 us=900637 management_port = 1338
2012-05-15 22:13:42 us=900646 management_user_pass = '[UNDEF]'
2012-05-15 22:13:42 us=900655 management_log_history_cache = 250
2012-05-15 22:13:42 us=900664 management_echo_buffer_size = 100
2012-05-15 22:13:42 us=900673 management_write_peer_info_file = '[UNDEF]'
2012-05-15 22:13:42 us=900682 management_client_user = '[UNDEF]'
2012-05-15 22:13:42 us=900691 management_client_group = '[UNDEF]'
2012-05-15 22:13:42 us=900700 management_flags = 6
2012-05-15 22:13:42 us=900709 shared_secret_file = '[UNDEF]'
2012-05-15 22:13:42 us=900718 key_direction = 0
2012-05-15 22:13:42 us=900727 ciphername_defined = ENABLED
2012-05-15 22:13:42 us=900736 ciphername = 'BF-CBC'
2012-05-15 22:13:42 us=900744 authname_defined = ENABLED
2012-05-15 22:13:42 us=900753 authname = 'SHA1'
2012-05-15 22:13:42 us=900762 prng_hash = 'SHA1'
2012-05-15 22:13:42 us=900771 prng_nonce_secret_len = 16
2012-05-15 22:13:42 us=900779 keysize = 0
2012-05-15 22:13:42 us=900788 engine = DISABLED
2012-05-15 22:13:42 us=900797 replay = ENABLED
2012-05-15 22:13:42 us=900806 mute_replay_warnings = DISABLED
2012-05-15 22:13:42 us=900814 replay_window = 64
2012-05-15 22:13:42 us=900823 replay_time = 15
2012-05-15 22:13:42 us=900832 packet_id_file = '[UNDEF]'
2012-05-15 22:13:42 us=900840 use_iv = ENABLED
2012-05-15 22:13:42 us=900849 test_crypto = DISABLED
2012-05-15 22:13:42 us=900858 tls_server = DISABLED
2012-05-15 22:13:42 us=900869 tls_client = ENABLED
2012-05-15 22:13:42 us=900878 key_method = 2
2012-05-15 22:13:42 us=900887 ca_file = 'ca.crt'
2012-05-15 22:13:42 us=900896 ca_path = '[UNDEF]'
2012-05-15 22:13:42 us=900913 dh_file = '[UNDEF]'
2012-05-15 22:13:42 us=900922 cert_file = 'client1.crt'
2012-05-15 22:13:42 us=900931 priv_key_file = 'client1.key'
2012-05-15 22:13:42 us=900939 pkcs12_file = '[UNDEF]'
2012-05-15 22:13:42 us=900948 cipher_list = '[UNDEF]'
2012-05-15 22:13:42 us=900957 tls_verify = '[UNDEF]'
2012-05-15 22:13:42 us=900965 tls_export_cert = '[UNDEF]'
2012-05-15 22:13:42 us=900974 tls_remote = '[UNDEF]'
2012-05-15 22:13:42 us=900983 crl_file = '[UNDEF]'
2012-05-15 22:13:42 us=900991 ns_cert_type = 0
2012-05-15 22:13:42 us=901000 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901009 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901018 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901026 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901035 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901044 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901052 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901061 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901070 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901078 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901087 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901096 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901104 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901113 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901122 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901130 remote_cert_ku[i] = 0
2012-05-15 22:13:42 us=901139 remote_cert_eku = '[UNDEF]'
2012-05-15 22:13:42 us=901148 tls_timeout = 2
2012-05-15 22:13:42 us=901156 renegotiate_bytes = 0
2012-05-15 22:13:42 us=901165 renegotiate_packets = 0
2012-05-15 22:13:42 us=901174 renegotiate_seconds = 3600
2012-05-15 22:13:42 us=901183 handshake_window = 60
2012-05-15 22:13:42 us=901192 transition_window = 3600
2012-05-15 22:13:42 us=901200 single_session = DISABLED
2012-05-15 22:13:42 us=901209 push_peer_info = DISABLED
2012-05-15 22:13:42 us=901218 tls_exit = DISABLED
2012-05-15 22:13:42 us=901227 tls_auth_file = '[UNDEF]'
2012-05-15 22:13:42 us=901236 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901245 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901254 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901263 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901271 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901280 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901289 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901298 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901307 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901316 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901325 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901333 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901342 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901351 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901360 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901369 pkcs11_protected_authentication = DISABLED
2012-05-15 22:13:42 us=901378 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901387 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901396 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901404 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901413 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901422 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901431 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901440 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901449 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901465 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901474 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901483 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901492 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901501 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901510 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901519 pkcs11_private_mode = 00000000
2012-05-15 22:13:42 us=901527 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901536 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901545 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901554 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901563 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901571 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901580 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901589 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901598 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901607 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901615 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901624 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901633 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901642 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901651 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901659 pkcs11_cert_private = DISABLED
2012-05-15 22:13:42 us=901668 pkcs11_pin_cache_period = -1
2012-05-15 22:13:42 us=901677 pkcs11_id = '[UNDEF]'
2012-05-15 22:13:42 us=901686 pkcs11_id_management = DISABLED
2012-05-15 22:13:42 us=901712 server_network = 0.0.0.0
2012-05-15 22:13:42 us=901723 server_netmask = 0.0.0.0
2012-05-15 22:13:42 us=901733 server_bridge_ip = 0.0.0.0
2012-05-15 22:13:42 us=901743 server_bridge_netmask = 0.0.0.0
2012-05-15 22:13:42 us=901753 server_bridge_pool_start = 0.0.0.0
2012-05-15 22:13:42 us=901763 server_bridge_pool_end = 0.0.0.0
2012-05-15 22:13:42 us=901772 ifconfig_pool_defined = DISABLED
2012-05-15 22:13:42 us=901781 ifconfig_pool_start = 0.0.0.0
2012-05-15 22:13:42 us=901791 ifconfig_pool_end = 0.0.0.0
2012-05-15 22:13:42 us=901801 ifconfig_pool_netmask = 0.0.0.0
2012-05-15 22:13:42 us=901810 ifconfig_pool_persist_filename = '[UNDEF]'
2012-05-15 22:13:42 us=901819 ifconfig_pool_persist_refresh_freq = 600
2012-05-15 22:13:42 us=901827 n_bcast_buf = 256
2012-05-15 22:13:42 us=901836 tcp_queue_limit = 64
2012-05-15 22:13:42 us=901845 real_hash_size = 256
2012-05-15 22:13:42 us=901854 virtual_hash_size = 256
2012-05-15 22:13:42 us=901863 client_connect_script = '[UNDEF]'
2012-05-15 22:13:42 us=901872 learn_address_script = '[UNDEF]'
2012-05-15 22:13:42 us=901881 client_disconnect_script = '[UNDEF]'
2012-05-15 22:13:42 us=901890 client_config_dir = '[UNDEF]'
2012-05-15 22:13:42 us=901899 ccd_exclusive = DISABLED
2012-05-15 22:13:42 us=901908 tmp_dir = '/var/folders/mn/1r1wj7k13nzdhpss1tb7y_j00000gn/T/'
2012-05-15 22:13:42 us=901917 push_ifconfig_defined = DISABLED
2012-05-15 22:13:42 us=901926 push_ifconfig_local = 0.0.0.0
2012-05-15 22:13:42 us=901936 push_ifconfig_remote_netmask = 0.0.0.0
2012-05-15 22:13:42 us=901945 enable_c2c = DISABLED
2012-05-15 22:13:42 us=901954 duplicate_cn = DISABLED
2012-05-15 22:13:42 us=901963 cf_max = 0
2012-05-15 22:13:42 us=901971 cf_per = 0
2012-05-15 22:13:42 us=901980 max_clients = 1024
2012-05-15 22:13:42 us=901989 max_routes_per_client = 256
2012-05-15 22:13:42 us=901997 auth_user_pass_verify_script = '[UNDEF]'
2012-05-15 22:13:42 us=902006 auth_user_pass_verify_script_via_file = DISABLED
2012-05-15 22:13:42 us=902015 ssl_flags = 0
2012-05-15 22:13:42 us=902024 port_share_host = '[UNDEF]'
2012-05-15 22:13:42 us=902041 port_share_port = 0
2012-05-15 22:13:42 us=902050 client = ENABLED
2012-05-15 22:13:42 us=902058 pull = ENABLED
2012-05-15 22:13:42 us=902067 auth_user_pass_file = '[UNDEF]'
2012-05-15 22:13:42 us=902080 OpenVPN 2.2.1 i386-apple-darwin10.7.1 [SSL] [LZO2] [PKCS11] [eurephia] built on May 2 2012
2012-05-15 22:13:42 us=902187 MANAGEMENT: TCP Socket listening on 127.0.0.1:1338
2012-05-15 22:13:42 us=902538 Need hold release from management interface, waiting...
2012-05-15 22:13:42 *Tunnelblick: openvpnstart: /Applications/Tunnelblick.app/Contents/Resources/openvpn/openvpn-2.2.1/openvpn --cd /Users/michael/Library/Application Support/Tunnelblick/Configurations --daemon --management 127.0.0.1 1338 --config /Users/michael/Library/Application Support/Tunnelblick/Configurations/client1.ovpn --log /Library/Application Support/Tunnelblick/Logs/-SUsers-Smichael-SLibrary-SApplication Support-STunnelblick-SConfigurations-Sclient1.ovpn.1_0_0_0_49.1338.openvpn.log --management-query-passwords --management-hold --script-security 2 --up /Applications/Tunnelblick.app/Contents/Resources/client.up.tunnelblick.sh -m -w -d -atDASNGWrdasngw --down /Applications/Tunnelblick.app/Contents/Resources/client.down.tunnelblick.sh -m -w -d -atDASNGWrdasngw --up-restart
2012-05-15 22:13:43 *Tunnelblick: openvpnstart message: Loading tun.kext
2012-05-15 22:13:43 us=18950 MANAGEMENT: Client connected from 127.0.0.1:1338
2012-05-15 22:13:43 us=30339 MANAGEMENT: CMD 'pid'
2012-05-15 22:13:43 us=30587 MANAGEMENT: CMD 'state on'
2012-05-15 22:13:43 us=30683 MANAGEMENT: CMD 'state'
2012-05-15 22:13:43 us=30809 MANAGEMENT: CMD 'hold release'
2012-05-15 22:13:43 *Tunnelblick: Established communication with OpenVPN
2012-05-15 22:13:43 us=31127 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
2012-05-15 22:13:43 us=31184 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2012-05-15 22:13:43 us=31998 WARNING: file 'client1.key' is group or others accessible
2012-05-15 22:13:43 us=32463 LZO compression initialized
2012-05-15 22:13:43 us=32592 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:43 us=32689 Socket Buffers: R=[262140->65536] S=[131070->65536]
2012-05-15 22:13:43 us=32748 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:43 us=32809 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
2012-05-15 22:13:43 us=32861 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
2012-05-15 22:13:43 us=34316 Local Options hash (VER=V4): '69109d17'
2012-05-15 22:13:43 us=34375 Expected Remote Options hash (VER=V4): 'c0103fa8'
2012-05-15 22:13:43 us=34439 Attempting to establish TCP connection with 192.168.178.10:1194 [nonblock]
2012-05-15 22:13:43 us=34504 MANAGEMENT: >STATE:1337112823,TCP_CONNECT,,,
2012-05-15 22:13:44 us=35675 TCP connection established with 192.168.178.10:1194
2012-05-15 22:13:44 us=35862 TCPv4_CLIENT link local: [undef]
2012-05-15 22:13:44 us=35969 TCPv4_CLIENT link remote: 192.168.178.10:1194
2012-05-15 22:13:44 us=36496 MANAGEMENT: >STATE:1337112824,WAIT,,,
2012-05-15 22:13:44 us=37637 MANAGEMENT: >STATE:1337112824,AUTH,,,
2012-05-15 22:13:44 us=37783 TLS: Initial packet from 192.168.178.10:1194, sid=b559972c beac9110
2012-05-15 22:13:44 us=84884 VERIFY ERROR: depth=0, error=self signed certificate: /C=NL/L=Amsterdam/O=domain/CN=vpn.domain.tld/emailAddress=client1@domain.tld
2012-05-15 22:13:44 us=85076 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
2012-05-15 22:13:44 us=85132 TLS Error: TLS object -> incoming plaintext read error
2012-05-15 22:13:44 us=85183 TLS Error: TLS handshake failed
2012-05-15 22:13:44 us=85266 Fatal TLS error (check_tls_errors_co), restarting
2012-05-15 22:13:44 us=85338 TCP/UDP: Closing socket
2012-05-15 22:13:44 us=85411 SIGUSR1[soft,tls-error] received, process restarting
2012-05-15 22:13:44 us=85466 MANAGEMENT: >STATE:1337112824,RECONNECTING,tls-error,,
2012-05-15 22:13:44 us=89997 MANAGEMENT: CMD 'hold release'
2012-05-15 22:13:44 us=90147 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
2012-05-15 22:13:44 us=90224 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2012-05-15 22:13:44 us=90287 Re-using SSL/TLS context
2012-05-15 22:13:44 us=90341 LZO compression initialized
2012-05-15 22:13:44 us=90453 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:44 us=90527 Socket Buffers: R=[262140->65536] S=[131070->65536]
2012-05-15 22:13:44 us=90586 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:44 us=90646 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
2012-05-15 22:13:44 us=90697 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
2012-05-15 22:13:44 us=90753 Local Options hash (VER=V4): '69109d17'
2012-05-15 22:13:44 us=90809 Expected Remote Options hash (VER=V4): 'c0103fa8'
2012-05-15 22:13:44 us=90865 Attempting to establish TCP connection with 192.168.178.10:1194 [nonblock]
2012-05-15 22:13:44 us=90917 MANAGEMENT: >STATE:1337112824,TCP_CONNECT,,,
2012-05-15 22:13:45 us=92063 TCP connection established with 192.168.178.10:1194
2012-05-15 22:13:45 us=92238 TCPv4_CLIENT link local: [undef]
2012-05-15 22:13:45 us=92343 TCPv4_CLIENT link remote: 192.168.178.10:1194
2012-05-15 22:13:45 us=92463 MANAGEMENT: >STATE:1337112825,WAIT,,,
2012-05-15 22:13:45 us=93409 MANAGEMENT: >STATE:1337112825,AUTH,,,
2012-05-15 22:13:45 us=93583 TLS: Initial packet from 192.168.178.10:1194, sid=6f6c0ff9 19cbcb52
2012-05-15 22:13:45 us=137799 VERIFY ERROR: depth=0, error=self signed certificate: /C=NL/L=Amsterdam/O=domain/CN=vpn.domain.tld/emailAddress=client1@domain.tld
2012-05-15 22:13:45 us=137967 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
2012-05-15 22:13:45 us=138067 TLS Error: TLS object -> incoming plaintext read error
2012-05-15 22:13:45 us=138123 TLS Error: TLS handshake failed
2012-05-15 22:13:45 us=138199 Fatal TLS error (check_tls_errors_co), restarting
2012-05-15 22:13:45 us=138283 TCP/UDP: Closing socket
2012-05-15 22:13:45 us=138356 SIGUSR1[soft,tls-error] received, process restarting
2012-05-15 22:13:45 us=138420 MANAGEMENT: >STATE:1337112825,RECONNECTING,tls-error,,
2012-05-15 22:13:45 us=163849 MANAGEMENT: CMD 'hold release'
2012-05-15 22:13:45 us=163972 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
2012-05-15 22:13:45 us=164027 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2012-05-15 22:13:45 us=164085 Re-using SSL/TLS context
2012-05-15 22:13:45 us=164140 LZO compression initialized
2012-05-15 22:13:45 us=164222 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:45 us=164301 Socket Buffers: R=[262140->65536] S=[131070->65536]
2012-05-15 22:13:45 us=164360 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:45 us=164422 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
2012-05-15 22:13:45 us=164473 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
2012-05-15 22:13:45 us=164530 Local Options hash (VER=V4): '69109d17'
2012-05-15 22:13:45 us=164585 Expected Remote Options hash (VER=V4): 'c0103fa8'
2012-05-15 22:13:45 us=164641 Attempting to establish TCP connection with 192.168.178.10:1194 [nonblock]
2012-05-15 22:13:45 us=164694 MANAGEMENT: >STATE:1337112825,TCP_CONNECT,,,
2012-05-15 22:13:46 us=164978 TCP connection established with 192.168.178.10:1194
2012-05-15 22:13:46 us=165158 TCPv4_CLIENT link local: [undef]
2012-05-15 22:13:46 us=165264 TCPv4_CLIENT link remote: 192.168.178.10:1194
2012-05-15 22:13:46 us=165383 MANAGEMENT: >STATE:1337112826,WAIT,,,
2012-05-15 22:13:46 us=166241 MANAGEMENT: >STATE:1337112826,AUTH,,,
2012-05-15 22:13:46 us=166390 TLS: Initial packet from 192.168.178.10:1194, sid=cba8be2d 8087b91c
2012-05-15 22:13:46 us=210753 VERIFY ERROR: depth=0, error=self signed certificate: /C=NL/L=Amsterdam/O=domain/CN=vpn.domain.tld/emailAddress=client1@domain.tld
2012-05-15 22:13:46 us=212739 TLS_ERROR: BIO read tls_read_plaintext error: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
2012-05-15 22:13:46 us=214103 TLS Error: TLS object -> incoming plaintext read error
2012-05-15 22:13:46 us=214695 TLS Error: TLS handshake failed
2012-05-15 22:13:46 us=214881 Fatal TLS error (check_tls_errors_co), restarting
2012-05-15 22:13:46 us=214960 TCP/UDP: Closing socket
2012-05-15 22:13:46 us=215041 SIGUSR1[soft,tls-error] received, process restarting
2012-05-15 22:13:46 us=215096 MANAGEMENT: >STATE:1337112826,RECONNECTING,tls-error,,
2012-05-15 22:13:46 *Tunnelblick: Disconnecting; 'disconnect' button pressed
2012-05-15 22:13:46 *Tunnelblick: Flushed the DNS cache
2012-05-15 22:13:46 us=255591 MANAGEMENT: CMD 'hold release'
2012-05-15 22:13:46 us=255866 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
2012-05-15 22:13:46 us=255923 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
2012-05-15 22:13:46 us=256086 Re-using SSL/TLS context
2012-05-15 22:13:46 us=256190 LZO compression initialized
2012-05-15 22:13:46 us=256334 Control Channel MTU parms [ L:1544 D:140 EF:40 EB:0 ET:0 EL:0 ]
2012-05-15 22:13:46 us=256411 Socket Buffers: R=[262140->65536] S=[131070->65536]
2012-05-15 22:13:46 us=256470 Data Channel MTU parms [ L:1544 D:1450 EF:44 EB:135 ET:0 EL:0 AF:3/1 ]
2012-05-15 22:13:46 us=256532 Local Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_CLIENT,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-client'
2012-05-15 22:13:46 us=256583 Expected Remote Options String: 'V4,dev-type tun,link-mtu 1544,tun-mtu 1500,proto TCPv4_SERVER,comp-lzo,cipher BF-CBC,auth SHA1,keysize 128,key-method 2,tls-server'
2012-05-15 22:13:46 us=256640 Local Options hash (VER=V4): '69109d17'
2012-05-15 22:13:46 us=256694 Expected Remote Options hash (VER=V4): 'c0103fa8'
2012-05-15 22:13:46 us=256749 Attempting to establish TCP connection with 192.168.178.10:1194 [nonblock]
2012-05-15 22:13:46 us=256805 MANAGEMENT: >STATE:1337112826,TCP_CONNECT,,,
2012-05-15 22:13:46 us=654629 TCP/UDP: Closing socket
2012-05-15 22:13:46 us=655286 SIGTERM[hard,init_instance] received, process exiting
2012-05-15 22:13:46 us=655410 MANAGEMENT: >STATE:1337112826,EXITING,init_instance,,
I’ve also tried regenerating the certificates, also on another machine, Linux instead of Mac OS X.
Thank you for you help again!
Если в двух словах, то SSL/TLS-сертификат (SSL: Secure Sockets Layer, TLS: Transport Layer Security) – это уникальная цифровая подпись, необходимая для организации защищенного соединения между клиентом и сервером.
Создание SSL-сертификата условно можно разделить на следующие шаги:
- создание личного ключа (Private Key);
- создание запроса для получения сертификата (Certificate Signing Request);
- создание самоподписанного сертификата (Self-Signed Certificate).
Для создания сертификатов я написал небольшой скриптик:
#!/bin/sh
#--------------------------------------------------------------------------
# certroutine.sh: script for creating SSL Certificates
# $Revision: 1.00 (CentOS Edition by Wakko Warner) $
# $Comment: Any comments please send to wakko@acmelabs.spb.ru $
#--------------------------------------------------------------------------
#################
# User Settings #
#################
# Country Name (2 letter code)
C_="RU"
# State or Province Name (full name)
ST_="North-West"
# Locality Name (eg, city)
L_="Saint-Petersburg"
# Organizational Name (eg, company)
O_=""
# Organizational Unit Name (eg, section)
OU_=""
# Common Name (eg, YOUR name, domain or host name, don't add *. for wildcards)
CN_=""
# Email Address
EM_=""
# Subject Alternative Names (enter * for wildcard certificate)
SAN_=""
[ "$C" == "" ] && C="$C_"; [ "$ST" == "" ] && ST="$ST_"; [ "$L" == "" ] && L="$L_"
[ "$O" == "" ] && O="$O_"; [ "$OU" == "" ] && OU="$OU_"; [ "$CN" == "" ] && CN="$CN_"
[ "$EM" == "" ] && EM="$EM_"; [ "$SAN" == "" ] && SAN="$SAN_"
if [ "$CN" == "" ]; then
echo "This script allows you to create:"
echo " o public/private key pairs"
echo " o SSL certificate signing requests (CSRs)"
echo " o self-signed SSL certificates"
echo
echo "Edit settings in the script before beginning!"
exit 0
fi
OPENSSL=/usr/bin/openssl
UTF8=`locale -c LC_CTYPE -k | grep -q charmap.*UTF-8 && echo -utf8`
KEYLEN=2048
TYPE=rsa:${KEYLEN}
[ "$SERIAL" == "" ] && SERIAL=0
[ "$DAYS" == "" ] && DAYS=365
TLSROOT=/etc/pki/tls
KEY=${TLSROOT}/private/$CN.key
CSR=${TLSROOT}/certs/$CN.csr
CRT=${TLSROOT}/certs/$CN.crt
PEM=${TLSROOT}/certs/$CN.pem
if [ "$SAN" == "*" ]; then
CN="*.$CN"
SAN=""
fi
createconfig() {
CNF=`/bin/mktemp /tmp/openssl.XXXXXX`
CONFIG="-batch -config $CNF"
cat <<EOF >$CNF
[req]
default_bits = $KEYLEN
default_md = sha256
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = $C
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = $ST
localityName = Locality Name (eg, city)
localityName_default = $L
organizationName = Organizational Name (eg, company)
organizationName_default = $O
organizationalUnitName = Organizational Unit Name (eg, section)
organizationalUnitName_default = $OU
commonName = Common Name (eg, YOUR name)
commonName_default = $CN
commonName_max = 64
emailAddress = Email Address
emailAddress_default = $EM
[v3_ca]
basicConstraints = CA:TRUE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:always
[v3_req]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
EOF
if [ ! "$SAN" == "" ]; then
echo "subjectAltName = @alt_names" >>$CNF
echo "" >>$CNF
echo "[alt_names]" >>$CNF
i=0
for AN in $SAN
do
((i++))
echo "DNS.$i = $AN" >>$CNF
done
fi
}
usage() {
echo "This script allows you to create:"
echo " o public/private key pairs"
echo " o SSL certificate signing requests (CSRs)"
echo " o self-signed SSL certificates"
echo
echo Usage:
echo " To create a KEY file, run "$0 genkey";"
echo " To create a CSR file, run "$0 gencsr";"
echo " To create a CRT file, run "$0 gencrt";"
echo " To create a PEM file, run "$0 genpem";"
echo " To verify a CSR file, run "$0 verifycsr";"
echo " To verify a CRT file, run "$0 verifycrt"."
echo
echo "${TLSROOT}/private/ is output directory for key files"
echo "${TLSROOT}/certs/ is output directory for CSR, CRT and PEM files"
echo
echo "To create a test certificate with serial number other than zero, add SERIAL=num"
echo "You can also specify key length with KEYLEN=n and expiration in days with DAYS=n"
echo "Also you can specify C=, ST=, L=, O=, OU=, CN=, EM=, SAN=..."
echo
echo Examples:
echo " CN=www.example.com $0 genkey"
echo " CN=www.example.com SAN="mail.example.com blog.example.com" $0 gencsr"
echo " CN=www.example.com SAN="mail.example.com blog.example.com" $0 gencrt"
return 0
}
genkey() {
umask 77
$OPENSSL genrsa $KEYLEN -sha256 -nodes >$KEY
return 0
}
gencsr() {
umask 77
[ ! -f $KEY ] && genkey
createconfig
$OPENSSL req $UTF8 -new -key $KEY -out $CSR $CONFIG
rm -f $CNF
return 0
}
verifycsr() {
$OPENSSL req -in $CSR -text -verify -noout
return 0
}
gencrt() {
umask 77
[ ! -f $KEY ] && genkey
createconfig
$OPENSSL req $UTF8 -new -key $KEY -x509 -days $DAYS -out $CRT $CONFIG -set_serial $SERIAL
rm -f $CNF
CRTHASH=`openssl x509 -hash -noout -in $CRT`.0
rm -f ${TLSROOT}/certs/$CRTHASH
ln -s $CN.crt ${TLSROOT}/certs/$CRTHASH
return 0
}
verifycrt() {
$OPENSSL verify $CRT
return 0
}
genpem() {
umask 77
PEM1=`/bin/mktemp /tmp/openssl.XXXXXX`
PEM2=`/bin/mktemp /tmp/openssl.XXXXXX`
createconfig
$OPENSSL req $UTF8 -newkey $TYPE -keyout $PEM1 -nodes -x509 -days $DAYS -out $PEM2
$CONFIG -set_serial $SERIAL
rm -f $CNF
cat $PEM1 > $PEM
echo "" >> $PEM
cat $PEM2 >> $PEM
rm -f $PEM1 $PEM2
return 0
}
case $1 in
genkey | gencsr | gencrt | genpem | verifycsr | verifycrt)
$1
exit $?
;;
*)
usage
exit $?
;;
esac
В верхней части скрипта можно заполнить дефолтные значения:
# Country Name (2 letter code) C_="RU" # State or Province Name (full name) ST_="North-West" # Locality Name (eg, city) L_="Saint-Petersburg" # Organizational Name (eg, company) O_="Example Organization" # Organizational Unit Name (eg, section) OU_="" # Common Name (eg, YOUR name, domain or host name, don't add *. for wildcards) CN_="www.example.com" # Email Address EM_="hostmaster@example.com" # Subject Alternative Names (enter * for wildcard certificate) SAN_="mail.example.com"
Тогда для создания ключа и самоподписанного сертификата, нужно будет выполнить:
$ ./certroutine.sh genkey Generating RSA private key, 2048 bit long modulus ............................................+++ .....................................+++ e is 65537 (0x10001) $ ./certroutine.sh gencrt $ ./certroutine.sh verifycrt /etc/pki/tls/certs/www.example.com.crt: OK
Первая команда создаст приватный ключ /etc/pki/tls/private/www.example.com.key, вторая команда создаст самоподписанный сертификат /etc/pki/tls/certs/www.example.com.crt, а третья команда проверит валидность этого сертификата.
Note: Безотносительно скрипта, если при проверке любого сертификата пишется что-то типа:
/etc/pki/tls/certs/www.example.com.crt: C = RU, ST = North-West, L = Saint-Petersburg, O = ACME Networks, CN = www.example.com, emailAddress = admin@acmenet.ru error 18 at 0 depth lookup:self signed certificate OK
Это означает, что для этого сертификата, в папке /etc/pki/tls/certs отсутствует необходимая информация для проверки. Необходимо убедиться, что в этой папке присутствует проверяемый сертификат, а так же присутствуем симлинк с хэшем вместо имени, на проверяемый сертификат. Если симлинка нет – его необходимо создать:
$ cd /etc/pki/tls/certs $ ln -s $CRT `openssl x509 -hash -noout -in $CRT`.0
Где вместо $CRT – имя файла нашего сертификата.
Если планируется подписывать сертификат по-взрослому, на стороне – необходимо создать личный ключ и запроса для получения сертификата:
$ ./certroutine.sh genkey
Generating RSA private key, 2048 bit long modulus
............................................+++
.....................................+++
e is 65537 (0x10001)
$ ./certroutine.sh gencsr
$ ./certroutine.sh verifycsr
verify OK
Certificate Request:
Data:
Version: 0 (0x0)
Subject: C=RU, ST=North-West, L=Saint-Petersburg, O=ACME Networks, CN=www.example.com/emailAddress=admin@acmenet.ru
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
[...]
Exponent: 65537 (0x10001)
Attributes:
Requested Extensions:
X509v3 Basic Constraints:
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment
Signature Algorithm: sha256WithRSAEncryption
[...]
$ cat /etc/pki/tls/certs/www.example.com.csr
-----BEGIN CERTIFICATE REQUEST-----
[...]
-----END CERTIFICATE REQUEST-----
Содержимое этого csr-файла необходимо будет отправлять в компанию, которая будет заверять ваш сертификат.
Так же, скриптом можно пользоваться вот таким образом:
$ CN="www.example.com" ./certroutine.sh genkey $ C="RU" ST="North-West" L="Saint-Petersburg" O="Example Org" CN="www.example.com" EM="hostmaster@example.com" SAN="mail.example.com" ./certroutine.sh gencsr $ C="RU" ST="North-West" L="Saint-Petersburg" O="Example Org" CN="www.example.com" EM="hostmaster@example.com" SAN="mail.example.com" ./certroutine.sh gencrt
Если будете использовать бесплатные сертификаты от StartSSL, не забудьте сделать следующее:
$ cd /etc/pki/tls/certs $ wget https://www.startssl.com/certs/sub.class1.server.ca.pem $ ln -s sub.class1.server.ca.pem `openssl x509 -hash -noout -in sub.class1.server.ca.pem`.0
Иначе при верификации сертификата будете получать ошибку:
$ openssl verify mail.example.com.crt mail.example.com.crt: C = RU, CN = mail.example.com, emailAddress = hostmaster@example.com error 20 at 0 depth lookup:unable to get local issuer certificate
Материал из Xgu.ru
Перейти к: навигация, поиск
OpenSSL — универсальный криптографический инструмент,
построенный вокруг протоколов SSL/TLS и сертификатов X.509.
Помимо того, что этот инструмент позволяет
работать с соединениями SSL/TLS, сертификатами X.509,
он может делать множество других полезных вещей:
шифровать и расшифровывать файлы,
создавать и проверять цифровые подписи,
проверять числа на простоту,
тестировать производительность компьютера
и другое.
Содержание
- 1 Вопросы и ответы
- 1.1 Введение
- 1.1.1 Как определить какую версию OpenSSL я использую?
- 1.1.2 Как получить список доступных команд?
- 1.1.3 Как посмотреть список доступных шифров?
- 1.2 Измерение производительности
- 1.2.1 Как измерить производительность системы с помощью openssl?
- 1.2.2 Как измерить производительность сетевого соединения?
- 1.3 Сертификаты
- 1.3.1 Как сгенерировать самоподписной сертификат?
- 1.3.2 Как сгенерировать запрос сертификата у VeriSign?
- 1.3.3 Как проверить новый сертификат?
- 1.3.4 Как получить удалённый сертификат?
- 1.3.5 Как извлечь какую-либо информацию из сертификата?
- 1.3.6 Как экспортировать или импортировать сертификат PKCS#12?
- 1.4 Проверка сертификата
- 1.4.1 Как проверить сертификат?
- 1.4.2 Какие центры сертификации распознаёт OpenSSL?
- 1.4.3 Как мне заставить OpenSSL признавать сертификат?
- 1.5 Клиенты и серверы для командной строки
- 1.5.1 Как подключиться к безопасному SMTP-серверу?
- 1.5.2 Как подключиться к [какому-либо] безопасному серверу?
- 1.5.3 Как запустить SSL-сервер из командной строки?
- 1.6 Дайджесты
- 1.6.1 Как создавать дайджесты MD5 или SHA1?
- 1.6.2 Как подписать дайджест?
- 1.6.3 Как проверить подписанный дайджест?
- 1.6.4 Как создать запись типа digest для файла паролей Apache?
- 1.6.5 Какие ещё есть дайджесты?
- 1.7 Шифрование/расшифровка
- 1.7.1 Как закодировать что-то по методу base64?
- 1.7.2 Как зашифровать файл?
- 1.8 Ошибки
- 1.8.1 Как интерпретировать сообщения об ошибках SSL?
- 1.9 Ключи
- 1.9.1 Как сгенерировать ключ RSA?
- 1.9.2 Как сгенерировать открытый ключ RSA?
- 1.9.3 Как сгенерировать ключ DSA?
- 1.9.4 Как создать ключ, основанный на эллиптических кривых (elliptic curve key)?
- 1.9.5 Как создать открытый EC ключ?
- 1.9.6 Как удалить парольную фразу у ключа?
- 1.10 Хэши для паролей
- 1.10.1 Как сгенерировать хэш в стиле crypt?
- 1.10.2 Как сгенерировать хэш пароля в стиле shadow?
- 1.11 Простые числа
- 1.11.1 Как проверить, является ли число простым?
- 1.11.2 Как сгенерировать набор простых чисел?
- 1.12 Случайные данные
- 1.12.1 Как генерировать случайные данные?
- 1.13 S/MIME
- 1.13.1 Как проверить подписанное сообщение S/MIME?
- 1.13.2 Как зашифровать сообщение S/MIME?
- 1.13.3 Как подписать сообщение S/MIME?
- 1.1 Введение
- 2 Подключение сертифицированного СКЗИ Рутокен ЭЦП к OpenSSL
- 3 Дополнительная информация
- 4 Примечания
Вопросы и ответы
- Раздел написан на основе OpenSSL Command-Line HOWTO[1]
Введение
Как определить какую версию OpenSSL я использую?
Использовать опцию version:
$ openssl version OpenSSL 0.9.8b 04 May 2006
Расширенная информация с опцией -a:
$ openssl version -a OpenSSL 0.9.8b 04 May 2006 built on: Fri Sep 29 18:45:58 UTC 2006 platform: debian-i386-i686/cmov options: bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) blowfish(idx) compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O3 -march=i686 -Wa,--noexecstack -g -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DSHA1_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM OPENSSLDIR: "/usr/lib/ssl"
Как получить список доступных команд?
Вызвать с неправильным ключом (например, help или -h).
$ openssl help openssl:Error: 'help' is an invalid command. Standard commands asn1parse ca ciphers crl crl2pkcs7 dgst dh dhparam dsa dsaparam ec ecparam enc engine errstr gendh gendsa genrsa nseq ocsp passwd pkcs12 pkcs7 pkcs8 prime rand req rsa rsautl s_client s_server s_time sess_id smime speed spkac verify version x509 Message Digest commands (see the `dgst' command for more details) md2 md4 md5 rmd160 sha sha1 Cipher commands (see the `enc' command for more details) aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc aes-256-ecb base64 bf bf-cbc bf-cfb bf-ecb bf-ofb cast cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb des3 desx rc2 rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb rc4 rc4-40
Аналогично с подкомандами:
$ openssl dgst -h unknown option '-h' options are -c to output the digest with separating colons -d to output debug info -hex output as hex dump -binary output in binary form -sign file sign digest using private key in file -verify file verify a signature using public key in file -prverify file verify a signature using private key in file -keyform arg key file format (PEM or ENGINE) -signature file signature to verify -binary output in binary form -engine e use engine e, possibly a hardware device. -md5 to use the md5 message digest algorithm (default) -md4 to use the md4 message digest algorithm -md2 to use the md2 message digest algorithm -sha1 to use the sha1 message digest algorithm -sha to use the sha message digest algorithm -sha256 to use the sha256 message digest algorithm -sha512 to use the sha512 message digest algorithm -mdc2 to use the mdc2 message digest algorithm -ripemd160 to use the ripemd160 message digest algorithm
Как посмотреть список доступных шифров?
Использовать команду ciphers:
# все доступные шифры openssl ciphers -v # только шифры TLSv1 openssl ciphers -v -tls1 # только шифры длиною больше 128 битов (high ciphers) openssl ciphers -v 'HIGH' # только шифры длиною больше 128 битов, использующие AES openssl ciphers -v 'AES+HIGH'
Измерение производительности
Как измерить производительность системы с помощью openssl?
Общая производительность:
openssl speed
Пример для 2.16GHz Intel Core 2.
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md2 1736.10k 3726.08k 5165.04k 5692.28k 5917.35k
mdc2 0.00 0.00 0.00 0.00 0.00
md4 18799.87k 65848.23k 187776.43k 352258.73k 474622.63k
md5 16807.01k 58256.45k 160439.13k 287183.53k 375220.91k
hmac(md5) 23601.24k 74405.08k 189993.05k 309777.75k 379431.59k
sha1 16774.59k 55500.39k 142628.69k 233247.74k 288382.98k
rmd160 13854.71k 40271.23k 87613.95k 124333.06k 141781.67k
rc4 227935.60k 253366.06k 261236.94k 259858.09k 194928.50k
des cbc 48478.10k 49616.16k 49765.21k 50106.71k 50034.01k
des ede3 18387.39k 18631.02k 18699.26k 18738.18k 18718.72k
idea cbc 0.00 0.00 0.00 0.00 0.00
rc2 cbc 19247.24k 19838.12k 19904.51k 19925.33k 19834.98k
rc5-32/12 cbc 0.00 0.00 0.00 0.00 0.00
blowfish cbc 79577.50k 83067.03k 84676.78k 84850.01k 85063.00k
cast cbc 45362.14k 48343.34k 49007.36k 49202.52k 49225.73k
aes-128 cbc 58751.94k 94443.86k 111424.09k 116704.26k 117997.57k
aes-192 cbc 53451.79k 82076.22k 94609.83k 98496.85k 99150.51k
aes-256 cbc 49225.21k 72779.84k 82266.88k 85054.81k 85762.05k
sha256 9359.24k 22510.83k 40963.75k 51710.29k 56014.17k
sha512 7026.78k 28121.32k 54330.79k 86190.76k 104270.51k
sign verify sign/s verify/s
rsa 512 bits 0.000522s 0.000042s 1915.8 23969.9
rsa 1024 bits 0.002321s 0.000109s 430.8 9191.1
rsa 2048 bits 0.012883s 0.000329s 77.6 3039.6
rsa 4096 bits 0.079055s 0.001074s 12.6 931.3
sign verify sign/s verify/s
dsa 512 bits 0.000380s 0.000472s 2629.3 2117.9
dsa 1024 bits 0.001031s 0.001240s 969.6 806.2
dsa 2048 bits 0.003175s 0.003744s 314.9 267.1
Каждый тест можно вызывать отдельно:
# проверить скорость rsa openssl speed rsa # проверить то же самое на 2-процессорной системе openssl speed rsa -multi 2
Как измерить производительность сетевого соединения?
openssl s_time -connect remote.host:443
Помимо этого простейшего измерения у подкоманды s_time
есть множество других возможностей:
# получить удалённую страницу test.html, используя только новые сеансы
openssl s_time -connect remote.host:443 -www /test.html -new
# аналогично, но только используя SSLv3 и сильное шифрование
# (подробности относительно шифрования в ciphers(1))
openssl s_time
-connect remote.host:443 -www /test.html -new
-ssl3 -cipher HIGH
# сравнить относительную производительность разных шифров
# 10-секундные тесты
IFS=":"
for c in $(openssl ciphers -ssl3 RSA); do
echo $c
openssl s_time -connect remote.host:443
-www / -new -time 10 -cipher $c 2>&1 |
grep bytes
echo
done
Сэмулировать web-сервер с помощью openssl s_server:
# запустить сервер (на порту 4433) openssl s_server -cert mycert.pem -www # на втором хосте (или даже этом же) запустить s_time openssl s_time -connect myhost:4433 -www / -new -ssl3
Сертификаты
Как сгенерировать самоподписной сертификат?
Создать файл mycert.pem, в котором будет и секретный ключ
и открытый сертификат, основанный на нём. Сертификат будет
действителен в течение 365 дней; ключ (благодаря опции -nodes)
будет нешифрованным.
openssl req
-x509 -nodes -days 365
-newkey rsa:1024 -keyout mykey.pem -out mycert.pem
После вызова команды надо будет ответить на несколько вопросов: Country Name, State, City и так далее. На вопрос “Common Name” нужно отвечать именем сервера, по которому будут обращаться люди.
Можно автоматизировать ввод ответов с помощью опции -subj.
openssl req -x509 -nodes -days 365 -subj '/C=US/ST=Oregon/L=Portland/CN=www.madboa.com' -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
Как сгенерировать запрос сертификата у VeriSign?
Секретный ключ в файле mykey.pem и запрос на сертификат myreq.pem:
openssl req -new -newkey rsa:1024 -nodes -keyout mykey.pem -out myreq.pem
Если ключ уже есть, и его надо использовать только для генерации сертификата,
используется команда попроще:
openssl req -new -key mykey.pem -out myreq.pem
Или, с информацией для сертификата прямо в командной строке:
openssl req -new -newkey rsa:1024 -nodes -subj '/CN=www.mydom.com/O=My Dom, Inc./C=US/ST=Oregon/L=Portland' -keyout mykey.pem -out myreq.pem
Не допускайте ошибок в названиях! Каждый символ важен.
Проверка:
# проверить подпись openssl req -in myreq.pem -noout -verify -key mykey.pem # проверить информацию openssl req -in myreq.pem -noout -text
Файл с ключом нужно сохранить в надёжном месте.
Как проверить новый сертификат?
Подкоманда s_server предоставляет простой, но эффективный метод тестирования.
В примерах ниже предполагается, что ключ и сертификат хранятся в файле mycert.pem.
Запустите тестовый сервер на машине, на которой будет использоваться сертификат.
По умолчанию, открывается порт 4433; другой порт можно задать опцией -accept.
openssl s_server -cert mycert.pem -www
Если команда запустилась без ошибок,
открывайте в браузере страницу: https://127.0.0.1:4433/
Как получить удалённый сертификат?
С помощью openssl и sed:
#!/bin/sh
#
# usage: retrieve-cert.sh remote.host.name [port]
#
REMHOST=$1
REMPORT=${2:-443}
echo |
openssl s_client -connect ${REMHOST}:${REMPORT} 2>&1 |
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'
Можно вернуть данные openssl,
например, для того чтобы выяснить,
для каких дат он действителен:
#!/bin/sh
#
for CERT in
www.yourdomain.com:443
ldap.yourdomain.com:636
imap.yourdomain.com:993
do
echo |
openssl s_client -connect ${CERT} 2>/dev/null |
sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' |
openssl x509 -noout -subject -dates
done
Как извлечь какую-либо информацию из сертификата?
В SSL-сертификате есть много информации, в частности:
- кто выдал сертификат (issuer);
- насколько долго он действителен (valid dates);
- получатель сертификата (subject);
- разнообразная криптографическая информация.
Опция текст даёт весь объём информации:
openssl x509 -text -in cert.pem
Другие опции дают другую информацию:
# кто его выдал? openssl x509 -noout -in cert.pem -issuer # кому его выдали? openssl x509 -noout -in cert.pem -subject # до какой даты он действителен? openssl x509 -noout -in cert.pem -dates # всё вышеперечисленное: openssl x509 -noout -in cert.pem -issuer -subject -dates # какой у него хэш? openssl x509 -noout -in cert.pem -hash # какой у него отпечаток MD5? openssl x509 -noout -in cert.pem -fingerprint
Извлечение открытого ключа, который требуется для проверки цифровой подписи (дайджеста):
openssl x509 -noout -in cert.pem -pubkey > pubkey.pem
Как экспортировать или импортировать сертификат PKCS#12?
Файлы PKCS#12 используются в разных приложениях типа MS IIS.
Они часто имеют расширение .pfx.
# создать файл, содержащий ключ и самоподписной сертификат openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem # экспортировать mycert.pem как файл PKCS#12, mycert.pfx openssl pkcs12 -export -out mycert.pfx -in mycert.pem -name "My Certificate"
Превратить pfx в pem:
# export certificate and passphrase-less key openssl pkcs12 -in mycert.pfx -out mycert.pem -nodes # same as above, but you’ll be prompted for a passphrase for # the private key openssl pkcs12 -in mycert.pfx -out mycert.pem
Проверка сертификата
Приложения, слинкованные с библиотеками OpenSSL,
могут проверять подлинность сертификатов, выданных сервером сертификатов (certificate authority, CA).
Как проверить сертификат?
Использовать подкоманду verify:
openssl verify cert.pem
Если в сертификате всё в норме, то будет выдано сообщение OK:
$ openssl verify remote.site.pem remote.site.pem: OK
Если чего-то не хватает, появятся соответствующие сообщения об ошибках, например:
- error 10 at 0 depth lookup:certificate has expired. Время действия сертификата истекло.
- error 18 at 0 depth lookup:self signed certificate. Если не указать явным образом, openssl не будет проверять самоподписные сертификаты (self-signed certificate).
Какие центры сертификации распознаёт OpenSSL?
При сборке OpenSSL в нём настраивается местоположение OpenSSL-файлов (Directory for OpenSSL files). Этот параметр задаётся опцией —openssldir, передающейся конфигурационному скрипту.
В этом каталоге, как правило, хранится информация о центрах сертификации, которым
доверяет система.
По умолчанию, этот каталог находится в /usr/local/ssl, но большинство сборщиков
размещает его в других местах, таких как /etc/pki/tls (Red Hat/Fedora), /etc/ssl (Gentoo), /usr/lib/ssl (Debian) или /System/Library/OpenSSL (Macintosh OS X).
Посмотреть, какой именно каталог используется в конкретной инсталляции,
можно с помощью опции version(параметр OPENSSLDIR):
openssl version -d
Внутри данного каталога есть подкаталог certs/,
в котором находятся файлы трёх разных типов:
- Большой файл под названием cert.pem, объёмистый сборник многих сертификатов от признанных общеизвестных центров сертификации, таких как VeriSign и Thawte.
- Множество маленьких файлов с расширением .pem, каждый из которых содержит сертификат от отдельного центра сертификации;
- Символические ссылки в со странными именами вида 052eae11.0. Как правило, для каждого .pem-файла есть такая ссылка.
Первая часть странного имени ссылки — это, на самом деле, хэш, основанный на сертификате
внутри .pem-файла, на который эта ссылка указывает. Расширение файла это итератор (то есть, номер), поскольку теоретически возможно, что разные сертификаты укажут на одинаковый хэш.
Например, ссылка f73e89fd.0 указывает на файл vsignss.pem.
Значит, сертификат соответствует хэшу, который равен имени ссылки:
$ openssl x509 -noout -hash -in vsignss.pem f73e89fd
Когда приложение получает удалённый сертификат, оно сначала проверяет,
есть ли этот сертификат в cert.pem и, если нет, смотрит в файле,
соответствующем хэшу сертификата. Если такой файл найден, сертификат считается
верным.
Нужно иметь в виду, что некоторые приложения, такие как Sendmail, например,
позволяют во время исполнения указывать местоположение сертификатов,
а некоторые, например Pine, нет.
Как мне заставить OpenSSL признавать сертификат?
Сертификат, которому нужно доверять, должен быть размещён в каталоге certs/.
После этого необходимо создать хэшированную символическую ссылку на него.
Вот небольшой скрипт, который делает это:
#!/bin/sh
#
# usage: certlink.sh filename [filename ...]
for CERTFILE in "$@"; do
# Убедиться, что файл существует и это сертификат
test -f "$CERTFILE" || continue
HASH=$(openssl x509 -noout -hash -in "$CERTFILE")
test -n "$HASH" || continue
# использовать для ссылки наименьший итератор
for ITER in 0 1 2 3 4 5 6 7 8 9; do
test -f "${HASH}.${ITER}" && continue
ln -s "$CERTFILE" "${HASH}.${ITER}"
test -L "${HASH}.${ITER}" && break
done
done
Клиенты и серверы для командной строки
Подкоманды s_client и s_server предоставляют возможность
для запуска SSL-клиентов для командной строки.
Как подключиться к безопасному SMTP-серверу?
С помощью подкоманды s_client можно проверить
или даже использовать SMTP-сервер с поддержкой SSL.
Безопасные SMTP-серверы могут предлагать безопасные соединения на портах:
25 (TLS), 465 (SSL) и 587 (TLS). Где-то в районе релиза 0.9.7
у openssl появилась возможность использовать STARTTLS в ходе общения с SMTP-серверами.
# порт 25/TLS; использовать такой же синтаксис для порта 587 openssl s_client -connect remote.host:25 -starttls smtp # порт 465/SSL openssl s_client -connect remote.host:465
Чтобы использовать для обозначения конца строки именно CRLF, а не CR или LF,
используется опция -crlf. Это важно особенно для Qmail.
openssl s_client -connect remote.host:25 -crlf -starttls smtp
Как подключиться к [какому-либо] безопасному серверу?
На момент написания openssl поддерживал TLS из командной строки
только с SMTP, поэтому для других протоколов нужно использовать
прямые SSL-соединения.
# https: HTTP over SSL openssl s_client -connect remote.host:443 # ldaps: LDAP over SSL openssl s_client -connect remote.host:636 # imaps: IMAP over SSL openssl s_client -connect remote.host:993 # pop3s: POP-3 over SSL openssl s_client -connect remote.host:995
Как запустить SSL-сервер из командной строки?
Подкоманда s_server позволяет запустить сервер с поддержкой SSL
прямо из командной строки; сервер предназначен только для проверки
и отладки. Для полноценной работы рекомендуется использовать stunnel.
Подкоманда s_server работает намного лучше, если есть сертификат;
когда его нет, её возможности сильно сокращаются.
# при использовании опции -www # каждому HTTP-клиенту, запросившему страницу # будет отправляться статусная страничка HTML openssl s_server -cert mycert.pem -www # опция -WWW эмулирует простой web-сервер; # поиск страничек будет выполняться относительно текущего каталога # В этом примере прослушивание будет выполнять на порт 443, не на 4433 как обычно openssl s_server -accept 443 -cert mycert.pem -WWW
Дайджесты
Создание дайджестов (криптографических контрольных сумм) с помощью подкоманды dgst — одна из наиболее распространённых задач, выполняемых с помощью openssl.
Как создавать дайджесты MD5 или SHA1?
Дайджесты создаются с помощью подкоманды dgst:
# MD5 digest openssl dgst -md5 filename # SHA1 digest openssl dgst -sha1 filename
Дайджест MD5 эквивалентен дайджесту, создаваемому известной утилитой md5sum,
хотя выводится в другом формате:
$ openssl dgst -md5 foo-2.23.tar.gz MD5(foo-2.23.tar.gz)= 81eda7985e99d28acd6d286aa0e13e07 $ md5sum foo-2.23.tar.gz 81eda7985e99d28acd6d286aa0e13e07 foo-2.23.tar.gz
То же верно и для дайджестов SHA1 и программы sha1sum:
$ openssl dgst -sha1 foo-2.23.tar.gz SHA1(foo-2.23.tar.gz)= e4eabc78894e2c204d788521812497e021f45c08 $ sha1sum foo-2.23.tar.gz e4eabc78894e2c204d788521812497e021f45c08 foo-2.23.tar.gz
Как подписать дайджест?
Для того, чтобы быть уверенным, что дайджест никто не изменял,
его можно подписать с помощью своего закрытого ключа.
Подписать дайджест SHA1 для файла foo-1.23.tar.gz:
# подписанный дайджест будет в foo-1.23.tar.gz.sha1 openssl dgst -sha1 -sign mykey.pem -out foo-1.23.tar.gz.sha1 foo-1.23.tar.gz
Как проверить подписанный дайджест?
Для того чтобы проверить правильность дайджеста,
нужен файл, на основе которого был получен дайджест,
сам подписанный дайджест и открытый ключ того, кто подписывал дайджест:
# есть файл foo-1.23.tar.gz, дайджест foo-1.23.tar.gz.sha1
# и открытый ключ pubkey.pem
openssl dgst -sha1
-verify pubkey.pem
-signature foo-1.23.tar.gz.sha1
foo-1.23.tar.gz
Как создать запись типа digest для файла паролей Apache?
У web-сервера Apache есть специальный формат файла с паролями,
использующийся для выполнения digest-аутентификации.
В комплект с web-сервером входит утилита htdigest,
но она умеет записывать данные только в файл, а не на стандартный поток вывода.
При работе с удалёнными пользователями может быть целесообразным
им сначала сгенерировать хэш, а потом переправить его по почте
или другому каналу информации для включения в базу.
Формат базы паролей прост: список нескольких полей, разделённых двоеточиями.
Поля:
- имя пользователя (username);
- область авторизации (authorization realm; AuthRealm);
- MD5-суммы для этих полей и пароля.
Скрипт, представленный ниже, повторяет действие htdigest
с той разницей, что выводит данные на стандартный поток вывода.
Кроме того, он умеет считывать данные со стандартного потока ввода.
#!/bin/bash
echo "Create an Apache-friendly Digest Password Entry"
echo "-----------------------------------------------"
# get user input, disabling tty echoing for password
read -p "Enter username: " UNAME
read -p "Enter Apache AuthName: " AUTHNAME
read -s -p "Enter password: " PWORD; echo
printf "n%s:%s:%sn"
"$UNAME"
"$AUTHNAME"
$(printf "${UNAME}:${AUTHNAME}:${PWORD}" | openssl dgst -md5)
Какие ещё есть дайджесты?
Подкоманда list-message-digest-commands даёт
список типов дайджестов, доступных в данной инсталляции.
openssl list-message-digest-commands
Шифрование/расшифровка
Как закодировать что-то по методу base64?
Использовать опцию -base64.
# закодировать file.txt в base64 и вывести его на стандартный поток вывода openssl enc -base64 -in file.txt # то же, но вывести результат в файл file.txt.enc openssl enc -base64 -in file.txt -out file.txt.enc
Закодировать одну строку:
$ echo "encode me" | openssl enc -base64 ZW5jb2RlIG1lCg==
Без перевода строки (важно для паролей):
$ echo -n "encode me" | openssl enc -base64 ZW5jb2RlIG1l
Опция -d выполняет обратный процесс (то есть, раскодирование):
$ echo "ZW5jb2RlIG1lCg==" | openssl enc -base64 -d encode me
Как зашифровать файл?
Простое шифрование файлов, вероятно, лучше делать инструментами типа GPG.
Тем не менее, иногда может возникнуть необходимость зашифровать файл
без развёртывания инфраструктуры ключей и сертификатов, а пользуясь
одним только паролем. Второе, что нужно будет запомнить — это шифр,
с помощью которого выполнялось шифрование.
Список поддерживаемых шифров есть на странице enc(1).
Более просто (и более точно) узнать этот список у самой программы openssl.
# в подзаголовке 'Cipher commands' есть список openssl -h # или длинный список, по одному шифру в строке openssl list-cipher-commands
Кроме выбора шифра нужно также решить, будут ли данные закодированы в base64.
Если будут, то их можно будет, грубо говоря, вставить в почтовое сообщение, прямо в текст.
В противном случае это будет простой бинарный файл.
# зашифровать file.txt в file.enc с помощью 256-битного шифра AES в режиме CBC openssl enc -aes-256-cbc -salt -in file.txt -out file.enc # то же, но выполнять кодирование base64 openssl enc -aes-256-cbc -a -salt -in file.txt -out file.enc
Расшифровка файла на стороне получателя:
# расшифровать бинарный файл openssl enc -d -aes-256-cbc -in file.enc # расшифровать base64-файл openssl enc -d -aes-256-cbc -a -in file.enc
Можно не вводить парольную фразу постоянно при шифровании и расшифровке,
а передавать её автоматически (подробнее: openssl(1); раздел «PASS PHRASE ARGUMENTS»).
Формат аргумента прост:
# provide password on command line openssl enc -aes-256-cbc -salt -in file.txt -out file.enc -pass pass:mySillyPassword # provide password in a file openssl enc -aes-256-cbc -salt -in file.txt -out file.enc -pass file:/path/to/secret/password.txt
Ошибки
Как интерпретировать сообщения об ошибках SSL?
В системных журналах обнаружились строки, которые, похоже, имеют отношение
к OpenSSL или crypto:
sshd[31784]: error: RSA_public_decrypt failed: error:0407006A:lib(4):func(112):reason(106) sshd[770]: error: RSA_public_decrypt failed: error:0407006A:lib(4):func(112):reason(106)
В первом приближении определить, что не так,
можно с помощью подкоманды errstr,
которая умеет интерпретировать код ошибки.
Код ошибки находится между «error:» и «:lib».
В данном случае это 0407006A.
$ openssl errstr 0407006A error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01
Дальше информацию надо искать в документации.
В данном случае в man-странице RSA_padding_add_PKCS1_type_1(3)
будет написано, что PKCS #1 использует для подписей блочные методы.
Ключи
Как сгенерировать ключ RSA?
Использовать подкоманду genrsa:
# по умолчанию длина ключа 512 бит; ключ выводится на стандартный поток openssl genrsa # ключ 1024 бита, сохраняется в файл mykey.pem openssl genrsa -out mykey.pem 1024 # то же, что выше, только зашифрован с помощью парольной фразы openssl genrsa -des3 -out mykey.pem 1024
Как сгенерировать открытый ключ RSA?
С помощью подкоманды rsa можно создать открытую
версию для закрытого ключа RSA:
openssl rsa -in mykey.pem -pubout
Как сгенерировать ключ DSA?
Для построения ключей DSA нужен специальный файл параметров
(parameter file), кроме того, операции с DSA медленнее
чем аналогичные операции с RSA, в связи с этим,
DSA используется не так часто, как RSA.
Если нужно сгенерировать только один ключ DSA,
то это можно сделать одной командой, с помощью подкоманды dsaparam:
# ключ будет называться dsakey.pem openssl dsaparam -noout -out dsakey.pem -genkey 1024
Если же нужно создавать несколько ключей DSA, перед тем как их генерировать,
можно сделать общий файл параметров.
Файл параметров генерируется сравнительно медленно,
а файлы ключей очень быстро.
# записать параметры в dsaparam.pem openssl dsaparam -out dsaparam.pem 1024 # создать первый ключ openssl gendsa -out key1.pem dsaparam.pem # и второй openssl gendsa -out key2.pem dsaparam.pem
Как создать ключ, основанный на эллиптических кривых (elliptic curve key)?
Процедуры для работы с эллиптическими кривыми были добавлены в openssl,
начиная с версии 0.9.8.
Работа с этими процедурами выполняется через подкоманду ecparam.
openssl ecparam -out key.pem -name prime256v1 -genkey # openssl может показать полный список параметров кривых, # который можно передавать с опцией <tt>-name</tt> openssl ecparam -list_curves
Как создать открытый EC ключ?
С помощью подкоманды ec можно создать открытую
версию для закрытого ключа EC (elliptic curve):
openssl ec -in key.pem -pubout -out pub.pem
Как удалить парольную фразу у ключа?
Каждый раз, когда запускается демон, использующий ключ,
надо будет набирать парольную фразу.
Её можно убрать.
Допустим, ключ, зашифрованный парольной фразой,
находится в файле key.pem; после выполнения команды
расшифрованный ключ будет в newkey.pem:
# надо будет ввести парольную фразу openssl rsa -in key.pem -out newkey.pem
Если закрытый ключ (private key)
и открытый сертификат хранятся в одном файле,
нужно будет выполнить две команды:
# надо ввести парольную фразу ещё раз openssl rsa -in mycert.pem -out newcert.pem openssl x509 -in mycert.pem >>newcert.pem
Хэши для паролей
С помощью подкоманды passwd можно генерировать хэши паролей, которые совместимы
со стандартными хэшами из /etc/passwd, /etc/shadow или файла паролей Apache.
Как сгенерировать хэш в стиле crypt?
Сгенерировать хэш очень просто:
$ openssl passwd MySecret 8E4vqBR4UOYF.
Если salt для пароля известен, можно воссоздать хэш.
$ openssl passwd -salt 8E MySecret 8E4vqBR4UOYF.
Как сгенерировать хэш пароля в стиле shadow?
В новых UNIX/Linux-системах вместо старого crypt-хэша используется
новый, более стойкий хэш MD5. Его генерирование выполняется с помощью
ключа -1:
$ openssl passwd -1 MySecret $1$sXiKzkus$haDZ9JpVrRHBznY5OxB82.
В этом формате salt состоит из 8 символов; он находится между вторым и третьим знаком $,
в данном случае это sXiKzkus.
$ openssl passwd -1 -salt sXiKzkus MySecret $1$sXiKzkus$haDZ9JpVrRHBznY5OxB82.
Простые числа
Поскольку openssl активно использует механизмы для работы с простыми числами,
не удивительно, что в нём есть соответствующие процедуры.
Начиная с версии 0.9.7e (или где-то так), в openssl появилась подкоманда binary.
Как проверить, является ли число простым?
Передать число как аргумент к подкоманде prime. Результат будет не в десятичном,
а в шестнадцатеричном виде.
$ openssl prime 119054759245460753 1A6F7AC39A53511 is not prime
Можно проверять и шестнадцатеричные числа:
$ openssl prime -hex 2f 2F is prime
Как сгенерировать набор простых чисел?
Сгенерировать множество чисел и оставить только простые среди них.
Для генерирования последовательностей удобно использовать seq.
# начальная и конечная точки
AQUO=10000
ADQUEM=10100
for N in $(seq $AQUO $ADQUEM); do
# в десятичную форму преобразуем с помощью bc
openssl prime $N | awk '/is prime/ {print "ibase=16;"$1}' | bc
done
Случайные данные
Как генерировать случайные данные?
Используйте подкоманду rand.
# Выдать 128 случайных байтов, закодированных в base64 на стандартный поток вывода openssl rand -base64 128 # Записать 1024 случайных байта в файл openssl rand -out random-data.bin 1024 # Инициализировать генератор случайныхх чисел полуслучайными данными из кэша браузера cd $(find ~/.mozilla/firefox -type d -name Cache) openssl rand -rand $(find . -type f -printf '%f:') -base64 1024
На UNIX/Linux-системах, в которых есть файл /dev/urandom, похожего эффекта
можно добиться иначе, и иногда с лучшим результатом даже:
# взять 32 символа из /dev/urandom и закодировать их в base64 head -c 32 /dev/urandom | openssl enc -base64
Между устройствами random и urandom есть разница.
Дополнительная информация в random(4) для Linux и BSD или random(7D) для Solaris.
S/MIME
S/MIME — стандарт для получения и отправки безопасных MIME-данных,
в особенности, почтовых сообщений.
Большинство почтовых клиентов умеет работать с такими сообщениями сами,
но для этого же можно использовать и openssl smime.
Много хороших примеров есть в smime(1).
Как проверить подписанное сообщение S/MIME?
Проверить, сохранённое в файле msg.txt подписанное сообщение:
openssl smime -verify -in msg.txt
Если сертификат отправителя подписан сервером сертификатов, которому доверяет
инсталляция OpenSSL, будут показаны заголовки сообщения, копия сообщения
и заключительная строка «Verification successful».
Если сообщение было изменено, в выводе будет содержаться сообщение о том,
что подпись или дайджест (контрольная сумма) не соответствуют действительности:
Verification failure 23016:error:21071065:PKCS7 routines:PKCS7_signatureVerify:digest failure:pk7_doit.c:804: 23016:error:21075069:PKCS7 routines:PKCS7_verify:signature failure:pk7_smime.c:265:
Если сертификат не опознан, возникнет похожая ошибка:
Verification failure 9544:error:21075075:PKCS7 routines:PKCS7_verify:certificate verify error:pk7_smime.c:222:Verify error:self signed certificate
Большинство почтовых клиентов отправляют копию открытого сертификата
прикреплёнными к сообщению. Данные сертификата можно посмотреть из командной строки.
Используется хитрая комбинация подкоманд smime -pk7out и pkcs7.
Немного странно на первый взгляд, но работает!
openssl smime -pk7out -in msg.txt | openssl pkcs7 -text -noout -print_certs
Если нужно вытащить сертификат автора письма,
для того, чтобы использовать его в дальнейшем,
то нужна только первая часть команды:
openssl smime -pk7out -in msg.txt -out her-cert.pem
Дальше этот сертификат можно или интегрировать в инфраструктуру OpenSSL,
или сохранить его для будущего использования, например, такого:
openssl smime -verify -in msg.txt -CAfile /path/to/her-cert.pem
Как зашифровать сообщение S/MIME?
Допустим, кто-то прислал вам свой сертификат, которым попросил шифровать сообщения ему.
Сертификат сохранён в her-cert.pem. Ответ сохранен в файле my-message.txt.
Для того чтобы получить шифрование по умолчанию RC2-40 (оно, правда, слабое),
нужно только сказать ‘openssl, где находится сертификат:
openssl smime her-cert.pem -encrypt -in my-message.txt
Если есть уверенность, что на удалённой стороне есть современная поддержка SSL,
можно использовать алгоритм шифрования посильнее чем DES:
openssl smime her-cert.pem -encrypt -des3 -in my-message.txt
По умолчанию, зашифрованные сообщения, включая почтовые заголовки,
отправляются на стандартный поток вывода.
С помощью опции -out их можно отправить в файл.
Если постараться, то передать сообщение можно и сразу программе sendmail.
openssl smime her-cert.pem -encrypt -des3 -in my-message.txt -from 'Your Fullname <you@youraddress.com>' -to 'Her Fullname <her@heraddress.com>' -subject 'My encrypted reply' | sendmail her@heraddress.com
Как подписать сообщение S/MIME?
Подписать (но не шифровать) сообщение своим собственным
сертификатом, так чтобы получатель имел возможность
убедиться, кто является истинным автором.
openssl smime -sign -signer /path/to/your-cert.pem -in my-message.txt -from 'Your Fullname <you@youraddress.com>' -to 'Her Fullname <her@heraddress.com>' -subject 'My signed reply' | sendmail her@heraddress.com
Подключение сертифицированного СКЗИ Рутокен ЭЦП к OpenSSL
http://forum.rutoken.ru/topic/1639/
Дополнительная информация
- openssl.org (англ.) — домашний сайт проекта
- Использование OpenSSL (рус.), Всеволод Стахов — большая статья, посвящённая использованию OpenSSL
- OpenSSL demystified (англ.) — несколько дополнительных примеров использования OpenSSL и родственных инструментов
| |
||
|---|---|---|
| Основы | Криптография | |
| AAA | Kerberos • EAP • Host-based аутентификация в OpenSSH | |
| Шифрование данных на диске | Шифрование LVM • LUKS | |
| Шифрование сетевых данных | VPN • IPsec • OpenVPN • SSL • OpenSSL • TLS • SSH | |
| Криптография в VoIP | Шифрование звонков в Asterisk • SRTP |
Примечания
- ↑ http://www.madboa.com/geek/openssl/
